From 3a1c7cb065d91e47a3788a6d34ff842c78d05b55 Mon Sep 17 00:00:00 2001 From: Yordan Miladinov Date: Mon, 6 Mar 2023 05:16:58 +0200 Subject: [PATCH 001/105] incorrect-equality: do not check addresses --- .../statements/incorrect_strict_equality.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/slither/detectors/statements/incorrect_strict_equality.py b/slither/detectors/statements/incorrect_strict_equality.py index bc7b0cebe..bd34d61b1 100644 --- a/slither/detectors/statements/incorrect_strict_equality.py +++ b/slither/detectors/statements/incorrect_strict_equality.py @@ -72,6 +72,14 @@ contract Crowdsale{ def is_direct_comparison(ir: Operation) -> bool: return isinstance(ir, Binary) and ir.type == BinaryType.EQUAL + @staticmethod + def is_not_comparing_addresses(ir: Binary) -> bool: + """ + Comparing addresses strictly should not be flagged. + """ + addr = ElementaryType("address") + return ir.variable_left.type != addr or ir.variable_right.type != addr + @staticmethod def is_any_tainted( variables: List[ @@ -145,7 +153,12 @@ contract Crowdsale{ for ir in node.irs_ssa: # Filter to only tainted equality (==) comparisons - if self.is_direct_comparison(ir) and self.is_any_tainted(ir.used, taints, func): + if ( + self.is_direct_comparison(ir) + and self.is_not_comparing_addresses(ir) + and self.is_any_tainted(ir.used, taints, func) + ): + # if func not in results: results[func] = [] results[func].append(node) From 3cdb23c584f48582593f2ccd22491579fc190729 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 16 Mar 2023 21:42:26 -0500 Subject: [PATCH 002/105] upgrade-prettytable, use colored table --- setup.py | 2 +- slither/utils/myprettytable.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 0d26167b3..ccab5a21a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( python_requires=">=3.8", install_requires=[ "packaging", - "prettytable>=0.7.2", + "prettytable>=3.3.0", "pycryptodome>=3.4.6", # "crytic-compile>=0.3.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", diff --git a/slither/utils/myprettytable.py b/slither/utils/myprettytable.py index a1dfd7ac0..60eed182e 100644 --- a/slither/utils/myprettytable.py +++ b/slither/utils/myprettytable.py @@ -1,6 +1,6 @@ from typing import List, Dict -from prettytable import PrettyTable +from prettytable.colortable import ColorTable, Themes class MyPrettyTable: @@ -11,8 +11,8 @@ class MyPrettyTable: def add_row(self, row: List[str]) -> None: self._rows.append(row) - def to_pretty_table(self) -> PrettyTable: - table = PrettyTable(self._field_names) + def to_pretty_table(self) -> ColorTable: + table = ColorTable(self._field_names, theme=Themes.OCEAN) for row in self._rows: table.add_row(row) return table From 0ff95eb876ba797d2bbdb9492da5aa1713bca1db Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 17 Mar 2023 08:34:29 -0500 Subject: [PATCH 003/105] add tx.gasprice to generic taints --- slither/analyses/data_dependency/data_dependency.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/analyses/data_dependency/data_dependency.py b/slither/analyses/data_dependency/data_dependency.py index b2a154672..7750fc99a 100644 --- a/slither/analyses/data_dependency/data_dependency.py +++ b/slither/analyses/data_dependency/data_dependency.py @@ -107,6 +107,7 @@ GENERIC_TAINT = { SolidityVariableComposed("msg.value"), SolidityVariableComposed("msg.data"), SolidityVariableComposed("tx.origin"), + SolidityVariableComposed("tx.gasprice"), } From 6a3ae82b56592769fa426fc8d264292f7bf16c91 Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:50:18 -0500 Subject: [PATCH 004/105] Add option to skip unrolling user-defined-types --- slither/utils/code_generation.py | 48 +++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 951bf4702..ae03e2090 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -2,12 +2,14 @@ from typing import TYPE_CHECKING, Optional from slither.utils.type import convert_type_for_solidity_signature_to_string +from slither.core.solidity_types.user_defined_type import UserDefinedType +from slither.core.declarations import Structure, Enum if TYPE_CHECKING: - from slither.core.declarations import FunctionContract, Structure, Contract + from slither.core.declarations import FunctionContract, Contract, CustomErrorContract -def generate_interface(contract: "Contract") -> str: +def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: """ Generates code for a Solidity interface to the contract. Args: @@ -22,13 +24,7 @@ def generate_interface(contract: "Contract") -> str: name, args = event.signature interface += f" event {name}({', '.join(args)});\n" for error in contract.custom_errors: - args = [ - convert_type_for_solidity_signature_to_string(arg.type) - .replace("(", "") - .replace(")", "") - for arg in error.parameters - ] - interface += f" error {error.name}({', '.join(args)});\n" + interface += generate_custom_error_interface(error, unroll_structs) for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" for struct in contract.structures: @@ -38,12 +34,16 @@ def generate_interface(contract: "Contract") -> str: for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue - interface += f" function {generate_interface_function_signature(func)};\n" + interface += ( + f" function {generate_interface_function_signature(func, unroll_structs)};\n" + ) interface += "}\n\n" return interface -def generate_interface_function_signature(func: "FunctionContract") -> Optional[str]: +def generate_interface_function_signature( + func: "FunctionContract", unroll_structs: bool = True +) -> Optional[str]: """ Generates a string of the form: func_name(type1,type2) external {payable/view/pure} returns (type3) @@ -56,7 +56,7 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ Returns None if the function is private or internal, or is a constructor/fallback/receive. """ - name, parameters, return_vars = func.signature + name, _, _ = func.signature if ( func not in func.contract.functions_entry_points or func.is_constructor @@ -69,16 +69,24 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ payable = " payable" if func.payable else "" returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") + if unroll_structs + else f"{str(ret.type.type)} memory" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) + else str(ret.type) for ret in func.returns ] parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") + if unroll_structs + else f"{str(param.type.type)} memory" + if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + else str(param.type) for param in func.parameters ] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) - if len(return_vars) > 0: + if len(returns) > 0: _interface_signature_str += " returns (" + ",".join(returns) + ")" return _interface_signature_str @@ -102,3 +110,17 @@ def generate_struct_interface_str(struct: "Structure") -> str: definition += f" {elem.type} {elem.name};\n" definition += " }\n" return definition + + +def generate_custom_error_interface(error: "CustomErrorContract", unroll_structs: bool = True) -> str: + args = [ + convert_type_for_solidity_signature_to_string(arg.type) + .replace("(", "") + .replace(")", "") + if unroll_structs + else str(arg.type.type) + if isinstance(arg.type, UserDefinedType) and isinstance(arg.type.type, (Structure, Enum)) + else str(arg.type) + for arg in error.parameters + ] + return f" error {error.name}({', '.join(args)});\n" From b5cd4642e0a55fc06e1f4535d0512f2d8812b27a Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:50:45 -0500 Subject: [PATCH 005/105] Test option to skip unrolling user-defined-types --- .../TEST_generated_code_not_unrolled.sol | 24 +++++++++++++++++++ tests/test_code_generation.py | 8 +++++++ 2 files changed, 32 insertions(+) create mode 100644 tests/code_generation/TEST_generated_code_not_unrolled.sol diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol new file mode 100644 index 000000000..959525259 --- /dev/null +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -0,0 +1,24 @@ +interface ITestContract { + event NoParams(); + event Anonymous(); + event OneParam(address); + event OneParamIndexed(address); + error ErrorWithEnum(SomeEnum); + error ErrorSimple(); + error ErrorWithArgs(uint256, uint256); + error ErrorWithStruct(St); + enum SomeEnum { ONE, TWO, THREE } + struct St { + uint256 v; + } + function stateA() external returns (uint256); + function owner() external returns (address); + function structs(address,uint256) external returns (uint256); + function err0() external; + function err1() external; + function err2(uint256,uint256) external; + function newSt(uint256) external returns (St memory); + function getSt(uint256) external view returns (St memory); + function removeSt(St memory) external; +} + diff --git a/tests/test_code_generation.py b/tests/test_code_generation.py index 13d1c8fb0..d69a7836d 100644 --- a/tests/test_code_generation.py +++ b/tests/test_code_generation.py @@ -23,3 +23,11 @@ def test_interface_generation() -> None: expected = file.read() assert actual == expected + + actual = generate_interface(sl.get_contract_from_name("TestContract")[0], unroll_structs=False) + expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code_not_unrolled.sol") + + with open(expected_path, "r", encoding="utf-8") as file: + expected = file.read() + + assert actual == expected From c3f42c62e66fa6682c0b1985d6226e47e540eac8 Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:54:53 -0500 Subject: [PATCH 006/105] Black --- slither/utils/code_generation.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index ae03e2090..f0c433ac3 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -79,7 +79,8 @@ def generate_interface_function_signature( convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs else f"{str(param.type.type)} memory" - if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + if isinstance(param.type, UserDefinedType) + and isinstance(param.type.type, (Structure, Enum)) else str(param.type) for param in func.parameters ] @@ -112,11 +113,11 @@ def generate_struct_interface_str(struct: "Structure") -> str: return definition -def generate_custom_error_interface(error: "CustomErrorContract", unroll_structs: bool = True) -> str: +def generate_custom_error_interface( + error: "CustomErrorContract", unroll_structs: bool = True +) -> str: args = [ - convert_type_for_solidity_signature_to_string(arg.type) - .replace("(", "") - .replace(")", "") + convert_type_for_solidity_signature_to_string(arg.type).replace("(", "").replace(")", "") if unroll_structs else str(arg.type.type) if isinstance(arg.type, UserDefinedType) and isinstance(arg.type.type, (Structure, Enum)) From 36e1ac1e011aab8fa22b47e6de5ff4d728f647a6 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 10:37:36 -0500 Subject: [PATCH 007/105] Better handling of state variable signatures especially contract-type variables and functions that return them --- slither/utils/code_generation.py | 51 ++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f0c433ac3..fc7578040 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,19 +1,25 @@ # Functions for generating Solidity code from typing import TYPE_CHECKING, Optional -from slither.utils.type import convert_type_for_solidity_signature_to_string -from slither.core.solidity_types.user_defined_type import UserDefinedType -from slither.core.declarations import Structure, Enum +from slither.utils.type import ( + convert_type_for_solidity_signature_to_string, + export_nested_types_from_variable, + export_return_type_from_variable, +) +from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType +from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: - from slither.core.declarations import FunctionContract, Contract, CustomErrorContract + from slither.core.declarations import FunctionContract, CustomErrorContract + from slither.core.variables import StateVariable def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: """ Generates code for a Solidity interface to the contract. Args: - contract: A Contract object + contract: A Contract object. + unroll_structs: Specifies whether to use structures' underlying types instead of the user-defined type. Returns: A string with the code for an interface, with function stubs for all public or external functions and @@ -30,7 +36,7 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str for struct in contract.structures: interface += generate_struct_interface_str(struct) for var in contract.state_variables_entry_points: - interface += f" function {var.signature_str.replace('returns', 'external returns ')};\n" + interface += generate_interface_variable_signature(var, unroll_structs) for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue @@ -41,6 +47,35 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str return interface +def generate_interface_variable_signature( + var: "StateVariable", unroll_structs: bool = True +) -> Optional[str]: + if unroll_structs: + params = [ + convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") + for x in export_nested_types_from_variable(var) + ] + returns = [ + convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") + for x in export_return_type_from_variable(var) + ] + else: + _, params, _ = var.signature + returns = [] + _type = var.type + while isinstance(_type, MappingType): + _type = _type.type_to + while isinstance(_type, (ArrayType, UserDefinedType)): + _type = _type.type + ret = str(_type) + if isinstance(_type, Structure): + ret += " memory" + elif isinstance(_type, Contract): + ret = "address" + returns.append(ret) + return f" function {var.name}({','.join(params)}) external returns ({', '.join(returns)});\n" + + def generate_interface_function_signature( func: "FunctionContract", unroll_structs: bool = True ) -> Optional[str]: @@ -72,6 +107,8 @@ def generate_interface_function_signature( if unroll_structs else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) + else "address" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) else str(ret.type) for ret in func.returns ] @@ -81,6 +118,8 @@ def generate_interface_function_signature( else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + else "address" + if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) else str(param.type) for param in func.parameters ] From 380301b08da55fdd23efb7838be4f5e108acbcdc Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 10:38:57 -0500 Subject: [PATCH 008/105] More robust testing including ArrayType vars and user-defined contract types --- tests/code_generation/CodeGeneration.sol | 13 +++++++++---- tests/code_generation/TEST_generated_code.sol | 5 ++++- .../TEST_generated_code_not_unrolled.sol | 5 ++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/code_generation/CodeGeneration.sol b/tests/code_generation/CodeGeneration.sol index c15017abd..749e23f32 100644 --- a/tests/code_generation/CodeGeneration.sol +++ b/tests/code_generation/CodeGeneration.sol @@ -8,7 +8,9 @@ contract TestContract is I { uint public stateA; uint private stateB; address public immutable owner = msg.sender; - mapping(address => mapping(uint => St)) public structs; + mapping(address => mapping(uint => St)) public structsMap; + St[] public structsArray; + I public otherI; event NoParams(); event Anonymous() anonymous; @@ -44,13 +46,16 @@ contract TestContract is I { function newSt(uint x) public returns (St memory) { St memory st; st.v = x; - structs[msg.sender][x] = st; + structsMap[msg.sender][x] = st; return st; } function getSt(uint x) public view returns (St memory) { - return structs[msg.sender][x]; + return structsMap[msg.sender][x]; } function removeSt(St memory st) public { - delete structs[msg.sender][st.v]; + delete structsMap[msg.sender][st.v]; + } + function setOtherI(I _i) public { + otherI = _i; } } \ No newline at end of file diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/code_generation/TEST_generated_code.sol index 62e08bd74..cbddea2ef 100644 --- a/tests/code_generation/TEST_generated_code.sol +++ b/tests/code_generation/TEST_generated_code.sol @@ -13,12 +13,15 @@ interface ITestContract { } function stateA() external returns (uint256); function owner() external returns (address); - function structs(address,uint256) external returns (uint256); + function structsMap(address,uint256) external returns (uint256); + function structsArray(uint256) external returns (uint256); + function otherI() external returns (address); function err0() external; function err1() external; function err2(uint256,uint256) external; function newSt(uint256) external returns (uint256); function getSt(uint256) external view returns (uint256); function removeSt(uint256) external; + function setOtherI(address) external; } diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol index 959525259..b8e8c5d04 100644 --- a/tests/code_generation/TEST_generated_code_not_unrolled.sol +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -13,12 +13,15 @@ interface ITestContract { } function stateA() external returns (uint256); function owner() external returns (address); - function structs(address,uint256) external returns (uint256); + function structsMap(address,uint256) external returns (St memory); + function structsArray(uint256) external returns (St memory); + function otherI() external returns (address); function err0() external; function err1() external; function err2(uint256,uint256) external; function newSt(uint256) external returns (St memory); function getSt(uint256) external view returns (St memory); function removeSt(St memory) external; + function setOtherI(address) external; } From 45aca8be103b1f57866692c9d3e04ac0a7a217cc Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:19:34 -0500 Subject: [PATCH 009/105] Handle nested Structures --- slither/utils/code_generation.py | 8 +++++++- tests/code_generation/CodeGeneration.sol | 4 ++++ tests/code_generation/TEST_generated_code.sol | 3 +++ .../code_generation/TEST_generated_code_not_unrolled.sol | 3 +++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index fc7578040..11459d05d 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -147,7 +147,13 @@ def generate_struct_interface_str(struct: "Structure") -> str: """ definition = f" struct {struct.name} {{\n" for elem in struct.elems_ordered: - definition += f" {elem.type} {elem.name};\n" + if isinstance(elem.type, UserDefinedType): + if isinstance(elem.type.type, (Structure, Enum)): + definition += f" {elem.type.type} {elem.name};\n" + elif isinstance(elem.type.type, Contract): + definition += f" address {elem.name};\n" + else: + definition += f" {elem.type} {elem.name};\n" definition += " }\n" return definition diff --git a/tests/code_generation/CodeGeneration.sol b/tests/code_generation/CodeGeneration.sol index 749e23f32..6f1f63c72 100644 --- a/tests/code_generation/CodeGeneration.sol +++ b/tests/code_generation/CodeGeneration.sol @@ -25,6 +25,10 @@ contract TestContract is I { uint v; } + struct Nested{ + St st; + } + function err0() public { revert ErrorSimple(); } diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/code_generation/TEST_generated_code.sol index cbddea2ef..373fba9ca 100644 --- a/tests/code_generation/TEST_generated_code.sol +++ b/tests/code_generation/TEST_generated_code.sol @@ -11,6 +11,9 @@ interface ITestContract { struct St { uint256 v; } + struct Nested { + St st; + } function stateA() external returns (uint256); function owner() external returns (address); function structsMap(address,uint256) external returns (uint256); diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol index b8e8c5d04..0cc4dc040 100644 --- a/tests/code_generation/TEST_generated_code_not_unrolled.sol +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -11,6 +11,9 @@ interface ITestContract { struct St { uint256 v; } + struct Nested { + St st; + } function stateA() external returns (uint256); function owner() external returns (address); function structsMap(address,uint256) external returns (St memory); From 552a24d8579a0efe4ee0bf5e3f490875ac49db75 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:25:18 -0500 Subject: [PATCH 010/105] Make events, errors, enums and structs optional but include all by default --- slither/utils/code_generation.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 11459d05d..718410fb7 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -14,7 +14,14 @@ if TYPE_CHECKING: from slither.core.variables import StateVariable -def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: +def generate_interface( + contract: "Contract", + unroll_structs: bool = True, + skip_events: bool = False, + skip_errors: bool = False, + skip_enums: bool = False, + skip_structs: bool = False +) -> str: """ Generates code for a Solidity interface to the contract. Args: @@ -26,15 +33,19 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str state variables, as well as any events, custom errors and/or structs declared in the contract. """ interface = f"interface I{contract.name} {{\n" - for event in contract.events: - name, args = event.signature - interface += f" event {name}({', '.join(args)});\n" - for error in contract.custom_errors: - interface += generate_custom_error_interface(error, unroll_structs) - for enum in contract.enums: - interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" - for struct in contract.structures: - interface += generate_struct_interface_str(struct) + if not skip_events: + for event in contract.events: + name, args = event.signature + interface += f" event {name}({', '.join(args)});\n" + if not skip_errors: + for error in contract.custom_errors: + interface += generate_custom_error_interface(error, unroll_structs) + if not skip_enums: + for enum in contract.enums: + interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" + if not skip_structs: + for struct in contract.structures: + interface += generate_struct_interface_str(struct) for var in contract.state_variables_entry_points: interface += generate_interface_variable_signature(var, unroll_structs) for func in contract.functions_entry_points: From f61c59ae6c1de66b91131fc035e57a32e5bbc069 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:43:16 -0500 Subject: [PATCH 011/105] Handle arrays of user-defined types in params/returns --- slither/utils/code_generation.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 718410fb7..e7647bfcc 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -15,12 +15,12 @@ if TYPE_CHECKING: def generate_interface( - contract: "Contract", - unroll_structs: bool = True, - skip_events: bool = False, - skip_errors: bool = False, - skip_enums: bool = False, - skip_structs: bool = False + contract: "Contract", + unroll_structs: bool = True, + skip_events: bool = False, + skip_errors: bool = False, + skip_enums: bool = False, + skip_structs: bool = False, ) -> str: """ Generates code for a Solidity interface to the contract. @@ -116,6 +116,7 @@ def generate_interface_function_signature( returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") if unroll_structs + or (isinstance(ret.type, ArrayType) and isinstance(ret.type.type, UserDefinedType)) else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" @@ -126,6 +127,7 @@ def generate_interface_function_signature( parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs + or (isinstance(param.type, ArrayType) and isinstance(param.type.type, UserDefinedType)) else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) From 0cac8ccb07b99ef897555a655babd5c9be695668 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 12:20:32 -0500 Subject: [PATCH 012/105] Handle array's data location in params/returns --- slither/utils/code_generation.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index e7647bfcc..f1099a66a 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,7 @@ from slither.utils.type import ( export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType +from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType, ElementaryType from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: @@ -14,6 +14,7 @@ if TYPE_CHECKING: from slither.core.variables import StateVariable +# pylint: disable=too-many-arguments def generate_interface( contract: "Contract", unroll_structs: bool = True, @@ -116,7 +117,12 @@ def generate_interface_function_signature( returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") if unroll_structs - or (isinstance(ret.type, ArrayType) and isinstance(ret.type.type, UserDefinedType)) + else convert_type_for_solidity_signature_to_string(ret.type) + .replace("(", "") + .replace(")", "") + + f" {ret.location}" + if isinstance(ret.type, ArrayType) + and isinstance(ret.type.type, (UserDefinedType, ElementaryType)) else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" @@ -127,7 +133,12 @@ def generate_interface_function_signature( parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs - or (isinstance(param.type, ArrayType) and isinstance(param.type.type, UserDefinedType)) + else convert_type_for_solidity_signature_to_string(param.type) + .replace("(", "") + .replace(")", "") + + f" {param.location}" + if isinstance(param.type, ArrayType) + and isinstance(param.type.type, (UserDefinedType, ElementaryType)) else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) From 216ccdc9594d85114e592868d4b004b13bc2fa21 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 13:31:06 -0500 Subject: [PATCH 013/105] Refactor to avoid assumptions re: indentation, semicolon and new line --- slither/utils/code_generation.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f1099a66a..34c489b74 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -40,15 +40,15 @@ def generate_interface( interface += f" event {name}({', '.join(args)});\n" if not skip_errors: for error in contract.custom_errors: - interface += generate_custom_error_interface(error, unroll_structs) + interface += f" error {generate_custom_error_interface(error, unroll_structs)};\n" if not skip_enums: for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" if not skip_structs: for struct in contract.structures: - interface += generate_struct_interface_str(struct) + interface += generate_struct_interface_str(struct, indent=4) for var in contract.state_variables_entry_points: - interface += generate_interface_variable_signature(var, unroll_structs) + interface += f" function {generate_interface_variable_signature(var, unroll_structs)};\n" for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue @@ -85,7 +85,7 @@ def generate_interface_variable_signature( elif isinstance(_type, Contract): ret = "address" returns.append(ret) - return f" function {var.name}({','.join(params)}) external returns ({', '.join(returns)});\n" + return f"{var.name}({','.join(params)}) external returns ({', '.join(returns)})" def generate_interface_function_signature( @@ -155,7 +155,7 @@ def generate_interface_function_signature( return _interface_signature_str -def generate_struct_interface_str(struct: "Structure") -> str: +def generate_struct_interface_str(struct: "Structure", indent: int = 0) -> str: """ Generates code for a structure declaration in an interface of the form: struct struct_name { @@ -164,21 +164,25 @@ def generate_struct_interface_str(struct: "Structure") -> str: ... ... } Args: - struct: A Structure object + struct: A Structure object. + indent: Number of spaces to indent the code block with. Returns: The structure declaration code as a string. """ - definition = f" struct {struct.name} {{\n" + spaces = "" + for _ in range(0, indent): + spaces += " " + definition = f"{spaces}struct {struct.name} {{\n" for elem in struct.elems_ordered: if isinstance(elem.type, UserDefinedType): if isinstance(elem.type.type, (Structure, Enum)): - definition += f" {elem.type.type} {elem.name};\n" + definition += f"{spaces} {elem.type.type} {elem.name};\n" elif isinstance(elem.type.type, Contract): - definition += f" address {elem.name};\n" + definition += f"{spaces} address {elem.name};\n" else: - definition += f" {elem.type} {elem.name};\n" - definition += " }\n" + definition += f"{spaces} {elem.type} {elem.name};\n" + definition += f"{spaces}\n" return definition @@ -193,4 +197,4 @@ def generate_custom_error_interface( else str(arg.type) for arg in error.parameters ] - return f" error {error.name}({', '.join(args)});\n" + return f"{error.name}({', '.join(args)})" From 0d3115fda08baf9bb559ef7f317e6efa92d21bb2 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 28 Mar 2023 11:54:16 -0500 Subject: [PATCH 014/105] run tests in parallel locally with makefile --- .github/workflows/test.yml | 2 - Makefile | 87 + setup.py | 2 + tests/conftest.py | 27 + tests/e2e/compilation/test_resolution.py | 12 +- tests/tools/read-storage/test_read_storage.py | 6 +- tests/unit/core/test_arithmetic.py | 6 +- tests/unit/core/test_code_comments.py | 18 +- tests/unit/core/test_constant_folding.py | 15 +- tests/unit/core/test_contract_declaration.py | 17 +- tests/unit/core/test_function_declaration.py | 24 +- tests/unit/core/test_source_mapping.py | 29 +- tests/unit/core/test_storage_layout.py | 10 +- tests/unit/core/test_using_for.py | 36 +- tests/unit/slithir/test_operation_reads.py | 6 +- tests/unit/slithir/test_ssa_generation.py | 2161 ++++++++--------- .../unit/slithir/test_ternary_expressions.py | 6 +- tests/unit/utils/test_code_generation.py | 6 +- tests/unit/utils/test_functions_ids.py | 6 +- tests/unit/utils/test_type_helpers.py | 6 +- 20 files changed, 1287 insertions(+), 1195 deletions(-) create mode 100644 Makefile create mode 100644 tests/conftest.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 44bba5878..a003eb168 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,8 +37,6 @@ jobs: - name: Install dependencies run: | pip install ".[test]" - solc-select install 0.8.0 - solc-select use 0.8.0 - name: Setup node uses: actions/setup-node@v3 diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..cc102c958 --- /dev/null +++ b/Makefile @@ -0,0 +1,87 @@ +SHELL := /bin/bash + +PY_MODULE := slither + +ALL_PY_SRCS := $(shell find $(PY_MODULE) -name '*.py') \ + $(shell find test -name '*.py') + +# Optionally overriden by the user, if they're using a virtual environment manager. +VENV ?= env + +# On Windows, venv scripts/shims are under `Scripts` instead of `bin`. +VENV_BIN := $(VENV)/bin +ifeq ($(OS),Windows_NT) + VENV_BIN := $(VENV)/Scripts +endif + +# Optionally overridden by the user in the `release` target. +BUMP_ARGS := + +# Optionally overridden by the user in the `test` target. +TESTS := + +# Optionally overridden by the user/CI, to limit the installation to a specific +# subset of development dependencies. +SLITHER_EXTRA := dev + +# If the user selects a specific test pattern to run, set `pytest` to fail fast +# and only run tests that match the pattern. +# Otherwise, run all tests and enable coverage assertions, since we expect +# complete test coverage. +ifneq ($(TESTS),) + TEST_ARGS := -x -k $(TESTS) + COV_ARGS := +else + TEST_ARGS := -n auto + COV_ARGS := --cov-append # --fail-under 100 +endif + +.PHONY: all +all: + @echo "Run my targets individually!" + +.PHONY: dev +dev: $(VENV)/pyvenv.cfg + +.PHONY: run +run: $(VENV)/pyvenv.cfg + @. $(VENV_BIN)/activate && slither $(ARGS) + +$(VENV)/pyvenv.cfg: pyproject.toml + # Create our Python 3 virtual environment + python3 -m venv env + $(VENV_BIN)/python -m pip install --upgrade pip + $(VENV_BIN)/python -m pip install -e .[$(SLITHER_EXTRA)] + +.PHONY: lint +lint: $(VENV)/pyvenv.cfg + . $(VENV_BIN)/activate && \ + black --check $(ALL_PY_SRCS) && \ + pylint $(ALL_PY_SRCS) + # ruff $(ALL_PY_SRCS) && \ + # mypy $(PY_MODULE) && + +.PHONY: reformat +reformat: + . $(VENV_BIN)/activate && \ + black $(PY_MODULE) + +.PHONY: test tests +test tests: $(VENV)/pyvenv.cfg + . $(VENV_BIN)/activate && \ + pytest --cov=$(PY_MODULE) $(T) $(TEST_ARGS) && \ + python -m coverage report -m $(COV_ARGS) + +.PHONY: doc +doc: $(VENV)/pyvenv.cfg + . $(VENV_BIN)/activate && \ + PDOC_ALLOW_EXEC=1 pdoc -o html slither '!slither.tools' + +.PHONY: package +package: $(VENV)/pyvenv.cfg + . $(VENV_BIN)/activate && \ + python3 -m build + +.PHONY: edit +edit: + $(EDITOR) $(ALL_PY_SRCS) \ No newline at end of file diff --git a/setup.py b/setup.py index 105209851..4ec357ac0 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,7 @@ setup( # "crytic-compile>=0.3.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", "web3>=6.0.0", + "solc-select@git+https://github.com/crytic/solc-select.git@query-artifact-path#egg=solc-select", ], extras_require={ "lint": [ @@ -31,6 +32,7 @@ setup( "deepdiff", "numpy", "coverage[toml]", + "filelock", ], "doc": [ "pdoc", diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 000000000..bf15b27d1 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,27 @@ +import pytest +from filelock import FileLock +from solc_select import solc_select + +@pytest.fixture(scope="session") +def solc_versions_installed(): + """List of solc versions available in the test environment.""" + return [] + +@pytest.fixture(scope="session", autouse=True) +def register_solc_versions_installed(solc_versions_installed): + solc_versions_installed.extend(solc_select.installed_versions()) + +@pytest.fixture(scope="session") +def use_solc_version(request, solc_versions_installed): + def _use_solc_version(version): + print(version) + if version not in solc_versions_installed: + print("Installing solc version", version) + solc_select.install_artifacts([version]) + artifact_path = solc_select.artifact_path(version) + lock = FileLock(artifact_path) + try: + yield artifact_path + finally: + lock.release() + return _use_solc_version diff --git a/tests/e2e/compilation/test_resolution.py b/tests/e2e/compilation/test_resolution.py index 4b50b0737..3444af2e9 100644 --- a/tests/e2e/compilation/test_resolution.py +++ b/tests/e2e/compilation/test_resolution.py @@ -24,8 +24,8 @@ def test_node_modules() -> None: _run_all_detectors(slither) -def test_contract_name_collisions() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) +def test_contract_name_collision(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.0")) standard_json = SolcStandardJson() standard_json.add_source_file( Path(TEST_DATA_DIR, "test_contract_name_collisions", "a.sol").as_posix() @@ -34,13 +34,13 @@ def test_contract_name_collisions() -> None: Path(TEST_DATA_DIR, "test_contract_name_collisions", "b.sol").as_posix() ) - compilation = CryticCompile(standard_json) + compilation = CryticCompile(standard_json, solc=solc_path) slither = Slither(compilation) _run_all_detectors(slither) -def test_cycle() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither(Path(TEST_DATA_DIR, "test_cyclic_import", "a.sol").as_posix()) +def test_cycle(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.0")) + slither = Slither(Path(TEST_DATA_DIR, "test_cyclic_import", "a.sol").as_posix(), solc=solc_path) _run_all_detectors(slither) diff --git a/tests/tools/read-storage/test_read_storage.py b/tests/tools/read-storage/test_read_storage.py index 38d909bf8..3b83df855 100644 --- a/tests/tools/read-storage/test_read_storage.py +++ b/tests/tools/read-storage/test_read_storage.py @@ -90,7 +90,9 @@ def deploy_contract(w3, ganache, contract_bin, contract_abi) -> Contract: # pylint: disable=too-many-locals @pytest.mark.usefixtures("web3", "ganache") -def test_read_storage(web3, ganache) -> None: +def test_read_storage(web3, ganache, use_solc_version) -> None: + solc_path = next(use_solc_version(version="0.8.10")) + assert web3.is_connected() bin_path = Path(TEST_DATA_DIR, "StorageLayout.bin").as_posix() abi_path = Path(TEST_DATA_DIR, "StorageLayout.abi").as_posix() @@ -100,7 +102,7 @@ def test_read_storage(web3, ganache) -> None: contract.functions.store().transact({"from": ganache.eth_address}) address = contract.address - sl = Slither(Path(TEST_DATA_DIR, "storage_layout-0.8.10.sol").as_posix()) + sl = Slither(Path(TEST_DATA_DIR, "storage_layout-0.8.10.sol").as_posix(), solc=solc_path) contracts = sl.contracts srs = SlitherReadStorage(contracts, 100) diff --git a/tests/unit/core/test_arithmetic.py b/tests/unit/core/test_arithmetic.py index 621ff0f94..6e7843ea0 100644 --- a/tests/unit/core/test_arithmetic.py +++ b/tests/unit/core/test_arithmetic.py @@ -8,9 +8,9 @@ from slither.utils.arithmetic import unchecked_arithemtic_usage TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "arithmetic_usage" -def test_arithmetic_usage() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(TEST_DATA_DIR, "test.sol").as_posix()) +def test_arithmetic_usage(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(TEST_DATA_DIR, "test.sol").as_posix(), solc=solc_path) assert { f.source_mapping.content_hash for f in unchecked_arithemtic_usage(slither.contracts[0]) diff --git a/tests/unit/core/test_code_comments.py b/tests/unit/core/test_code_comments.py index 01b9ff336..4fbbae658 100644 --- a/tests/unit/core/test_code_comments.py +++ b/tests/unit/core/test_code_comments.py @@ -8,9 +8,9 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CUSTOM_COMMENTS_TEST_DATA_DIR = Path(TEST_DATA_DIR, "custom_comments") -def test_upgradeable_comments() -> None: - solc_select.switch_global_version("0.8.10", always_install=True) - slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "upgrade.sol").as_posix()) +def test_upgradeable_comments(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.10")) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "upgrade.sol").as_posix(), solc=solc_path) compilation_unit = slither.compilation_units[0] proxy = compilation_unit.get_contract_from_name("Proxy")[0] @@ -27,11 +27,11 @@ def test_upgradeable_comments() -> None: assert v1.upgradeable_version == "version_1" -def test_contract_comments() -> None: +def test_contract_comments(use_solc_version) -> None: comments = " @title Test Contract\n @dev Test comment" - solc_select.switch_global_version("0.8.10", always_install=True) - slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix()) + solc_path = next(use_solc_version("0.8.10")) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path) compilation_unit = slither.compilation_units[0] contract = compilation_unit.get_contract_from_name("A")[0] @@ -40,8 +40,8 @@ def test_contract_comments() -> None: # Old solc versions have a different parsing of comments # the initial space (after *) is also not kept on every line comments = "@title Test Contract\n@dev Test comment" - solc_select.switch_global_version("0.5.16", always_install=True) - slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix()) + solc_path = next(use_solc_version("0.5.16")) + slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path) compilation_unit = slither.compilation_units[0] contract = compilation_unit.get_contract_from_name("A")[0] @@ -49,10 +49,10 @@ def test_contract_comments() -> None: # Test with legacy AST comments = "@title Test Contract\n@dev Test comment" - solc_select.switch_global_version("0.5.16", always_install=True) slither = Slither( Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc_force_legacy_json=True, + solc=solc_path, ) compilation_unit = slither.compilation_units[0] contract = compilation_unit.get_contract_from_name("A")[0] diff --git a/tests/unit/core/test_constant_folding.py b/tests/unit/core/test_constant_folding.py index eb40a43c0..d01b35dc0 100644 --- a/tests/unit/core/test_constant_folding.py +++ b/tests/unit/core/test_constant_folding.py @@ -6,13 +6,15 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CONSTANT_FOLDING_TEST_ROOT = Path(TEST_DATA_DIR, "constant_folding") -def test_constant_folding_unary(): +def test_constant_folding_unary(use_solc_version): + solc_path = next(use_solc_version("0.8.0")) file = Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_unary.sol").as_posix() - Slither(file) + Slither(file, solc=solc_path) -def test_constant_folding_rational(): - s = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_rational.sol").as_posix()) +def test_constant_folding_rational(use_solc_version): + solc_path = next(use_solc_version("0.8.0")) + s = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_rational.sol").as_posix(), solc=solc_path) contract = s.get_contract_from_name("C")[0] variable_a = contract.get_state_variable_from_name("a") @@ -50,8 +52,9 @@ def test_constant_folding_rational(): assert str(ConstantFolding(variable_g.expression, "int64").result()) == "-7" -def test_constant_folding_binary_expressions(): - sl = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix()) +def test_constant_folding_binary_expressions(use_solc_version): + solc_path = next(use_solc_version("0.8.0")) + sl = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix(), solc=solc_path) contract = sl.get_contract_from_name("BinOp")[0] variable_a = contract.get_state_variable_from_name("a") diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index db9a141f5..3c1e7175e 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -9,25 +9,26 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CONTRACT_DECL_TEST_ROOT = Path(TEST_DATA_DIR, "contract_declaration") -def test_abstract_contract() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix()) +def test_abstract_contract(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.0")) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) assert not slither.contracts[0].is_fully_implemented - solc_select.switch_global_version("0.5.0", always_install=True) - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix()) + solc_path = next(use_solc_version("0.5.0")) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path) assert not slither.contracts[0].is_fully_implemented slither = Slither( Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc_force_legacy_json=True, + solc=solc_path ) assert not slither.contracts[0].is_fully_implemented -def test_private_variable() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "private_variable.sol").as_posix()) +def test_private_variable(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "private_variable.sol").as_posix(), solc=solc_path) contract_c = slither.get_contract_from_name("C")[0] f = contract_c.functions[0] var_read = f.variables_read[0] diff --git a/tests/unit/core/test_function_declaration.py b/tests/unit/core/test_function_declaration.py index 6f7aa23e7..4faa9d919 100644 --- a/tests/unit/core/test_function_declaration.py +++ b/tests/unit/core/test_function_declaration.py @@ -15,11 +15,11 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" FUNC_DELC_TEST_ROOT = Path(TEST_DATA_DIR, "function_declaration") -def test_functions(): +def test_functions(use_solc_version): # pylint: disable=too-many-statements - solc_select.switch_global_version("0.6.12", always_install=True) + solc_path = next(use_solc_version("0.6.12")) file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) functions = slither.get_contract_from_name("TestFunction")[0].available_functions_as_dict() f = functions["external_payable(uint256)"] @@ -248,10 +248,10 @@ def test_functions(): assert f.return_type[0] == ElementaryType("bool") -def test_function_can_send_eth(): - solc_select.switch_global_version("0.6.12", always_install=True) +def test_function_can_send_eth(use_solc_version): + solc_path = next(use_solc_version("0.6.12")) file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) compilation_unit = slither.compilation_units[0] functions = compilation_unit.get_contract_from_name("TestFunctionCanSendEth")[ 0 @@ -273,10 +273,10 @@ def test_function_can_send_eth(): assert functions["highlevel_call_via_external()"].can_send_eth() is False -def test_reentrant(): - solc_select.switch_global_version("0.8.10", always_install=True) +def test_reentrant(use_solc_version): + solc_path = next(use_solc_version("0.8.10")) file = Path(FUNC_DELC_TEST_ROOT, "test_function_reentrant.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) compilation_unit = slither.compilation_units[0] functions = compilation_unit.get_contract_from_name("TestReentrant")[ 0 @@ -290,10 +290,10 @@ def test_reentrant(): assert functions["internal_and_reentrant()"].is_reentrant -def test_public_variable() -> None: - solc_select.switch_global_version("0.6.12", always_install=True) +def test_public_variable(use_solc_version) -> None: + solc_path = next(use_solc_version("0.6.12")) file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) contracts = slither.get_contract_from_name("TestFunction") assert len(contracts) == 1 contract = contracts[0] diff --git a/tests/unit/core/test_source_mapping.py b/tests/unit/core/test_source_mapping.py index 745d391d9..2dd8c2435 100644 --- a/tests/unit/core/test_source_mapping.py +++ b/tests/unit/core/test_source_mapping.py @@ -8,14 +8,13 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" SRC_MAPPING_TEST_ROOT = Path(TEST_DATA_DIR, "src_mapping") -def test_source_mapping(): - solc_select.switch_global_version("0.6.12", always_install=True) +def test_source_mapping(use_solc_version): + solc_path = next(use_solc_version("0.6.12")) file = Path(SRC_MAPPING_TEST_ROOT, "inheritance.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) # Check if A.f() is at the offset 27 functions = slither.offset_to_objects(file, 27) - print(functions) assert len(functions) == 1 function = functions.pop() assert isinstance(function, Function) @@ -79,13 +78,13 @@ def _sort_references_lines(refs: list) -> list: return sorted([ref.lines[0] for ref in refs]) -def _test_references_user_defined_aliases(): +def test_references_user_defined_aliases(use_solc_version): """ Tests if references are filled correctly for user defined aliases (declared using "type [...] is [...]" statement). """ - solc_select.switch_global_version("0.8.16", always_install=True) + solc_path = next(use_solc_version("0.8.16")) file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedAliases.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) alias_top_level = slither.compilation_units[0].user_defined_value_types["aliasTopLevel"] assert len(alias_top_level.references) == 2 @@ -102,26 +101,16 @@ def _test_references_user_defined_aliases(): assert lines == [13, 16] -def _test_references_user_defined_types_when_casting(): +def test_references_user_defined_types_when_casting(use_solc_version): """ Tests if references are filled correctly for user defined types in case of casting. """ - solc_select.switch_global_version("0.8.16", always_install=True) + solc_path = next(use_solc_version("0.8.16")) file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedTypesCasting.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) contracts = slither.compilation_units[0].contracts a = contracts[0] if contracts[0].is_interface else contracts[1] assert len(a.references) == 2 lines = _sort_references_lines(a.references) assert lines == [12, 18] - - -def test_references(): - """ - Tests if references list is filled correctly in the following cases: - - user defined aliases (declared using "type [...] is [...]" statement) - - user defined types in case of casting (TypeConversion expressions) - """ - _test_references_user_defined_aliases() - _test_references_user_defined_types_when_casting() diff --git a/tests/unit/core/test_storage_layout.py b/tests/unit/core/test_storage_layout.py index 4cb439d77..fd21ce009 100644 --- a/tests/unit/core/test_storage_layout.py +++ b/tests/unit/core/test_storage_layout.py @@ -8,14 +8,14 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" STORAGE_TEST_ROOT = Path(TEST_DATA_DIR, "storage_layout") -def test_storage_layout(): +def test_storage_layout(use_solc_version): # the storage layout has not yet changed between solidity versions so we will test with one version of the compiler - solc_select.switch_global_version("0.8.10", always_install=True) + solc_path = next(use_solc_version("0.8.10")) test_item = Path(STORAGE_TEST_ROOT, "storage_layout-0.8.10.sol").as_posix() - sl = Slither(test_item, solc_force_legacy_json=False, disallow_partial=True) + sl = Slither(test_item, disallow_partial=True, solc=solc_path) - with Popen(["solc", test_item, "--storage-layout"], stdout=PIPE) as process: + with Popen([solc_path, test_item, "--storage-layout"], stdout=PIPE) as process: for line in process.stdout: # parse solc output if '{"storage":[{' in line.decode("utf-8"): # find the storage layout layout = iter(json.loads(line)["storage"]) @@ -34,3 +34,5 @@ def test_storage_layout(): break except KeyError as e: print(f"not found {e} ") + process.communicate() + assert process.returncode == 0 \ No newline at end of file diff --git a/tests/unit/core/test_using_for.py b/tests/unit/core/test_using_for.py index 88a7ea043..7b0e2d1d6 100644 --- a/tests/unit/core/test_using_for.py +++ b/tests/unit/core/test_using_for.py @@ -12,19 +12,19 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" USING_FOR_TEST_DATA_DIR = Path(TEST_DATA_DIR, "using_for") -def test_using_for_global_collision() -> None: - solc_select.switch_global_version("0.8.18", always_install=True) +def test_using_for_global_collision(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) standard_json = SolcStandardJson() for source_file in Path(USING_FOR_TEST_DATA_DIR, "using_for_global_collision").rglob("*.sol"): standard_json.add_source_file(Path(source_file).as_posix()) - compilation = CryticCompile(standard_json) + compilation = CryticCompile(standard_json, solc=solc_path) sl = Slither(compilation) _run_all_detectors(sl) -def test_using_for_top_level_same_name() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-3-0.8.0.sol").as_posix()) +def test_using_for_top_level_same_name(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-3-0.8.0.sol").as_posix(), solc=solc_path) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") for ir in libCall.all_slithir_operations(): @@ -33,9 +33,9 @@ def test_using_for_top_level_same_name() -> None: assert False -def test_using_for_top_level_implicit_conversion() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-4-0.8.0.sol").as_posix()) +def test_using_for_top_level_implicit_conversion(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-4-0.8.0.sol").as_posix(), solc=solc_path) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint16)") for ir in libCall.all_slithir_operations(): @@ -44,10 +44,10 @@ def test_using_for_top_level_implicit_conversion() -> None: assert False -def test_using_for_alias_top_level() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) +def test_using_for_alias_top_level(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) slither = Slither( - Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-top-level-0.8.0.sol").as_posix() + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-top-level-0.8.0.sol").as_posix(), solc=solc_path ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") @@ -64,10 +64,10 @@ def test_using_for_alias_top_level() -> None: assert False -def test_using_for_alias_contract() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) +def test_using_for_alias_contract(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) slither = Slither( - Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-contract-0.8.0.sol").as_posix() + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-contract-0.8.0.sol").as_posix(), solc=solc_path ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") @@ -84,9 +84,9 @@ def test_using_for_alias_contract() -> None: assert False -def test_using_for_in_library() -> None: - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-in-library-0.8.0.sol").as_posix()) +def test_using_for_in_library(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-in-library-0.8.0.sol").as_posix(), solc=solc_path) contract_c = slither.get_contract_from_name("A")[0] libCall = contract_c.get_function_from_full_name("a(uint256)") for ir in libCall.all_slithir_operations(): diff --git a/tests/unit/slithir/test_operation_reads.py b/tests/unit/slithir/test_operation_reads.py index 3b5565c9f..10ae47404 100644 --- a/tests/unit/slithir/test_operation_reads.py +++ b/tests/unit/slithir/test_operation_reads.py @@ -28,12 +28,12 @@ OperationTest = namedtuple("OperationTest", "contract_name slithir_op") OPERATION_TEST = [OperationTest("NewContract", NewContract)] -def test_operation_reads() -> None: +def test_operation_reads(use_solc_version) -> None: """ Every slithir operation has its own contract and reads all local and state variables in readAllLocalVariables and readAllStateVariables, respectively. """ - solc_select.switch_global_version("0.8.15", always_install=True) - slither = Slither(Path(TEST_DATA_DIR, "operation_reads.sol").as_posix()) + solc_path = next(use_solc_version("0.8.15")) + slither = Slither(Path(TEST_DATA_DIR, "operation_reads.sol").as_posix(), solc=solc_path) for op_test in OPERATION_TEST: print(op_test) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 2146a3126..34ad5e4fe 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1,1090 +1,1071 @@ -# pylint: disable=too-many-lines -import pathlib -from argparse import ArgumentTypeError -from collections import defaultdict -from contextlib import contextmanager -from inspect import getsourcefile -from tempfile import NamedTemporaryFile -from typing import Union, List, Optional, Dict, Callable - -import pytest -from solc_select import solc_select -from solc_select.solc_select import valid_version as solc_valid_version - -from slither import Slither -from slither.core.cfg.node import Node, NodeType -from slither.core.declarations import Function, Contract -from slither.core.variables.local_variable import LocalVariable -from slither.core.variables.state_variable import StateVariable -from slither.slithir.operations import ( - OperationWithLValue, - Phi, - Assignment, - HighLevelCall, - Return, - Operation, - Binary, - BinaryType, - InternalCall, - Index, - InitArray, -) -from slither.slithir.utils.ssa import is_used_later -from slither.slithir.variables import ( - Constant, - ReferenceVariable, - LocalIRVariable, - StateIRVariable, - TemporaryVariableSSA, -) - -# Directory of currently executing script. Will be used as basis for temporary file names. -SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore - - -def valid_version(ver: str) -> bool: - """Wrapper function to check if the solc-version is valid - - The solc_select function raises and exception but for checks below, - only a bool is needed. - """ - try: - solc_valid_version(ver) - return True - except ArgumentTypeError: - return False - - -def have_ssa_if_ir(function: Function) -> None: - """Verifies that all nodes in a function that have IR also have SSA IR""" - for n in function.nodes: - if n.irs: - assert n.irs_ssa - - -# pylint: disable=too-many-branches, too-many-locals -def ssa_basic_properties(function: Function) -> None: - """Verifies that basic properties of ssa holds - - 1. Every name is defined only once - 2. A l-value is never index zero - there is always a zero-value available for each var - 3. Every r-value is at least defined at some point - 4. The number of ssa defs is >= the number of assignments to var - 5. Function parameters SSA are stored in function.parameters_ssa - - if function parameter is_storage it refers to a fake variable - 6. Function returns SSA are stored in function.returns_ssa - - if function return is_storage it refers to a fake variable - """ - ssa_lvalues = set() - ssa_rvalues = set() - lvalue_assignments: Dict[str, int] = {} - - for n in function.nodes: - for ir in n.irs: - if isinstance(ir, OperationWithLValue) and ir.lvalue: - name = ir.lvalue.name - if name is None: - continue - if name in lvalue_assignments: - lvalue_assignments[name] += 1 - else: - lvalue_assignments[name] = 1 - - for ssa in n.irs_ssa: - if isinstance(ssa, OperationWithLValue): - # 1 - assert ssa.lvalue not in ssa_lvalues - ssa_lvalues.add(ssa.lvalue) - - # 2 (if Local/State Var) - ssa_lvalue = ssa.lvalue - if isinstance(ssa_lvalue, (StateIRVariable, LocalIRVariable)): - assert ssa_lvalue.index > 0 - - for rvalue in filter( - lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read - ): - ssa_rvalues.add(rvalue) - - # 3 - # Each var can have one non-defined value, the value initially held. Typically, - # var_0, i_0, state_0 or similar. - undef_vars = set() - for rvalue in ssa_rvalues: - if rvalue not in ssa_lvalues: - assert rvalue.non_ssa_version not in undef_vars - undef_vars.add(rvalue.non_ssa_version) - - # 4 - ssa_defs: Dict[str, int] = defaultdict(int) - for v in ssa_lvalues: - if v and v.name: - ssa_defs[v.name] += 1 - - for (k, count) in lvalue_assignments.items(): - assert ssa_defs[k] >= count - - # Helper 5/6 - def check_property_5_and_6( - variables: List[LocalVariable], ssavars: List[LocalIRVariable] - ) -> None: - for var in filter(lambda x: x.name, variables): - ssa_vars = [x for x in ssavars if x.non_ssa_version == var] - assert len(ssa_vars) == 1 - ssa_var = ssa_vars[0] - assert var.is_storage == ssa_var.is_storage - if ssa_var.is_storage: - assert len(ssa_var.refers_to) == 1 - assert ssa_var.refers_to[0].location == "reference_to_storage" - - # 5 - check_property_5_and_6(function.parameters, function.parameters_ssa) - - # 6 - check_property_5_and_6(function.returns, function.returns_ssa) - - -def ssa_phi_node_properties(f: Function) -> None: - """Every phi-function should have as many args as predecessors - - This does not apply if the phi-node refers to state variables, - they make use os special phi-nodes for tracking potential values - a state variable can have - """ - for node in f.nodes: - for ssa in node.irs_ssa: - if isinstance(ssa, Phi): - n = len(ssa.read) - if not isinstance(ssa.lvalue, StateIRVariable): - assert len(node.fathers) == n - - -# TODO (hbrodin): This should probably go into another file, not specific to SSA -def dominance_properties(f: Function) -> None: - """Verifies properties related to dominators holds - - 1. Every node have an immediate dominator except entry_node which have none - 2. From every node immediate dominator there is a path via its successors to the node - """ - - def find_path(from_node: Node, to: Node) -> bool: - visited = set() - worklist = list(from_node.sons) - while worklist: - first, *worklist = worklist - if first == to: - return True - visited.add(first) - for successor in first.sons: - if successor not in visited: - worklist.append(successor) - return False - - for node in f.nodes: - if node is f.entry_point: - assert node.immediate_dominator is None - else: - assert node.immediate_dominator is not None - assert find_path(node.immediate_dominator, node) - - -def phi_values_inserted(f: Function) -> None: - """Verifies that phi-values are inserted at the right places - - For every node that has a dominance frontier, any def (including - phi) should be a phi function in its dominance frontier - """ - - def have_phi_for_var( - node: Node, var: Union[StateIRVariable, LocalIRVariable, TemporaryVariableSSA] - ) -> bool: - """Checks if a node has a phi-instruction for var - - The ssa version would ideally be checked, but then - more data flow analysis would be needed, for cases - where a new def for var is introduced before reaching - DF - """ - non_ssa = var.non_ssa_version - for ssa in node.irs_ssa: - if isinstance(ssa, Phi): - if non_ssa in map( - lambda ssa_var: ssa_var.non_ssa_version, - [ - r - for r in ssa.read - if isinstance(r, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA)) - ], - ): - return True - return False - - for node in filter(lambda n: n.dominance_frontier, f.nodes): - for df in node.dominance_frontier: - for ssa in node.irs_ssa: - if isinstance(ssa, OperationWithLValue): - ssa_lvalue = ssa.lvalue - if isinstance( - ssa_lvalue, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA) - ) and is_used_later(node, ssa_lvalue): - assert have_phi_for_var(df, ssa_lvalue) - - -@contextmanager -def select_solc_version(version: Optional[str]) -> None: - """Selects solc version to use for running tests. - - If no version is provided, latest is used.""" - # If no solc_version selected just use the latest avail - if not version: - # This sorts the versions numerically - vers = sorted( - map( - lambda x: (int(x[0]), int(x[1]), int(x[2])), - map(lambda x: x.split(".", 3), solc_select.installed_versions()), - ) - ) - ver = list(vers)[-1] - version = ".".join(map(str, ver)) - solc_select.switch_global_version(version, always_install=True) - yield version - - -@contextmanager -def slither_from_source(source_code: str, solc_version: Optional[str] = None): - """Yields a Slither instance using source_code string and solc_version - - Creates a temporary file and changes the solc-version temporary to solc_version. - """ - - fname = "" - try: - with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: - fname = f.name - f.write(source_code) - with select_solc_version(solc_version): - yield Slither(fname) - finally: - pathlib.Path(fname).unlink() - - -def verify_properties_hold(source_code_or_slither: Union[str, Slither]) -> None: - """Ensures that basic properties of SSA hold true""" - - def verify_func(func: Function) -> None: - have_ssa_if_ir(func) - phi_values_inserted(func) - ssa_basic_properties(func) - ssa_phi_node_properties(func) - dominance_properties(func) - - def verify(slither: Slither) -> None: - for cu in slither.compilation_units: - for func in cu.functions_and_modifiers: - _dump_function(func) - verify_func(func) - for contract in cu.contracts: - for f in contract.functions: - if f.is_constructor or f.is_constructor_variables: - _dump_function(f) - verify_func(f) - - if isinstance(source_code_or_slither, Slither): - verify(source_code_or_slither) - else: - slither: Slither - with slither_from_source(source_code_or_slither) as slither: - verify(slither) - - -def _dump_function(f: Function) -> None: - """Helper function to print nodes/ssa ir for a function or modifier""" - print(f"---- {f.name} ----") - for n in f.nodes: - print(n) - for ir in n.irs_ssa: - print(f"\t{ir}") - print("") - - -def _dump_functions(c: Contract) -> None: - """Helper function to print functions and modifiers of a contract""" - for f in c.functions_and_modifiers: - _dump_function(f) - - -def get_filtered_ssa(f: Union[Function, Node], flt: Callable) -> List[Operation]: - """Returns a list of all ssanodes filtered by filter for all nodes in function f""" - if isinstance(f, Function): - return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] - - assert isinstance(f, Node) - return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] - - -def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: - """Returns a list of all ssanodes of a specific type for all nodes in function f""" - return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) - - -def test_multi_write() -> None: - contract = """ - pragma solidity ^0.8.11; - contract Test { - function multi_write(uint val) external pure returns(uint) { - val = 1; - val = 2; - val = 3; - } - }""" - verify_properties_hold(contract) - - -def test_single_branch_phi() -> None: - contract = """ - pragma solidity ^0.8.11; - contract Test { - function single_branch_phi(uint val) external pure returns(uint) { - if (val == 3) { - val = 9; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -def test_basic_phi() -> None: - contract = """ - pragma solidity ^0.8.11; - contract Test { - function basic_phi(uint val) external pure returns(uint) { - if (val == 3) { - val = 9; - } else { - val = 1; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -def test_basic_loop_phi() -> None: - contract = """ - pragma solidity ^0.8.11; - contract Test { - function basic_loop_phi(uint val) external pure returns(uint) { - for (uint i=0;i<128;i++) { - val = val + 1; - } - return val; - } - } - """ - verify_properties_hold(contract) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_phi_propagation_loop(): - contract = """ - pragma solidity ^0.8.11; - contract Test { - function looping(uint v) external pure returns(uint) { - uint val = 0; - for (uint i=0;i i) { - val = i; - } else { - val = 3; - } - } - return val; - } - } - """ - verify_properties_hold(contract) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_free_function_properties(): - contract = """ - pragma solidity ^0.8.11; - - function free_looping(uint v) returns(uint) { - uint val = 0; - for (uint i=0;i i) { - val = i; - } else { - val = 3; - } - } - return val; - } - - contract Test {} - """ - verify_properties_hold(contract) - - -def test_ssa_inter_transactional() -> None: - source = """ - pragma solidity ^0.8.11; - contract A { - uint my_var_A; - uint my_var_B; - - function direct_set(uint i) public { - my_var_A = i; - } - - function direct_set_plus_one(uint i) public { - my_var_A = i + 1; - } - - function indirect_set() public { - my_var_B = my_var_A; - } - } - """ - with slither_from_source(source) as slither: - c = slither.contracts[0] - variables = c.variables_as_dict - funcs = c.available_functions_as_dict() - direct_set = funcs["direct_set(uint256)"] - # Skip entry point and go straight to assignment ir - assign1 = direct_set.nodes[1].irs_ssa[0] - assert isinstance(assign1, Assignment) - - assign2 = direct_set.nodes[1].irs_ssa[0] - assert isinstance(assign2, Assignment) - - indirect_set = funcs["indirect_set()"] - phi = indirect_set.entry_point.irs_ssa[0] - assert isinstance(phi, Phi) - # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set - assert len(phi.rvalues) == 3 - assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) - assert assign1.lvalue in phi.rvalues - assert assign2.lvalue in phi.rvalues - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_ssa_phi_callbacks(): - source = """ - pragma solidity ^0.8.11; - contract A { - uint my_var_A; - uint my_var_B; - - function direct_set(uint i) public { - my_var_A = i; - } - - function use_a() public { - // Expect a phi-node here - my_var_B = my_var_A; - B b = new B(); - my_var_A = 3; - b.do_stuff(); - // Expect a phi-node here - my_var_B = my_var_A; - } - } - - contract B { - function do_stuff() public returns (uint) { - // This could be calling back into A - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("A")[0] - _dump_functions(c) - f = [x for x in c.functions if x.name == "use_a"][0] - var_a = [x for x in c.variables if x.name == "my_var_A"][0] - - entry_phi = [ - x - for x in f.entry_point.irs_ssa - if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a - ][0] - # The four potential sources are: - # 1. initial value - # 2. my_var_A = i; - # 3. my_var_A = 3; - # 4. phi-value after call to b.do_stuff(), which could be reentrant. - assert len(entry_phi.rvalues) == 4 - - # Locate the first high-level call (should be b.do_stuff()) - call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] - n = call_node.node - # Get phi-node after call - after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] - # The two sources for this phi node is - # 1. my_var_A = i; - # 2. my_var_A = 3; - assert isinstance(after_call_phi, Phi) - assert len(after_call_phi.rvalues) == 2 - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_storage_refers_to(): - """Test the storage aspects of the SSA IR - - When declaring a var as being storage, start tracking what storage it refers_to. - When a phi-node is created, ensure refers_to is propagated to the phi-node. - Assignments also propagate refers_to. - Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) - below, create additional versions of the variables it refers to record that a a - write was made. In the current implementation, this is referenced by phis. - """ - source = """ - contract A{ - - struct St{ - int v; - } - - St state0; - St state1; - - function f() public{ - St storage s = state0; - if(true){ - s = state1; - } - s.v = 10; - } -} - """ - with slither_from_source(source) as slither: - c = slither.contracts[0] - f = c.functions[0] - - phinodes = get_ssa_of_type(f, Phi) - # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the - # ReferenceVariable write s.v = 10. - assert len(phinodes) == 5 - - # Assign s to state0, s to state1, s.v to 10 - assigns = get_ssa_of_type(f, Assignment) - assert len(assigns) == 3 - - # The IR variables have is_storage - assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) - - # s.v ReferenceVariable points to one of the phi vars... - ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] - sphis = [x for x in phinodes if x.lvalue == ref0.points_to] - assert len(sphis) == 1 - sphi = sphis[0] - - # ...and that phi refers to the two entry phi-values - entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] - assert len(entryphi) == 2 - - # The remaining two phis are the ones recording that write through ReferenceVariable occured - for ephi in entryphi: - phinodes.remove(ephi) - phinodes.remove(sphi) - assert len(phinodes) == 2 - - # And they are recorded in one of the entry phis - assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues - assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues - - -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_initial_version_exists_for_locals(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for local variables. - """ - src = """ - contract C { - function func() internal { - uint a = a + 1; - } - } - """ - with slither_from_source(src, "0.4.0") as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f = c.functions[0] - - addition = get_ssa_of_type(f, Binary)[0] - assert addition.type == BinaryType.ADDITION - assert isinstance(addition.variable_right, Constant) - a_0 = addition.variable_left - assert a_0.index == 0 - assert a_0.name == "a" - - assignment = get_ssa_of_type(f, Assignment)[0] - a_1 = assignment.lvalue - assert a_1.index == 1 - assert a_1.name == "a" - assert assignment.rvalue == addition.lvalue - - assert a_0.non_ssa_version == a_1.non_ssa_version - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_initial_version_exists_for_state_variables(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for state variables. - """ - src = """ - contract C { - uint a = a + 1; - } - """ - with slither_from_source(src, "0.4.0") as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f = c.functions[0] # There will be one artificial ctor function for the state vars - - addition = get_ssa_of_type(f, Binary)[0] - assert addition.type == BinaryType.ADDITION - assert isinstance(addition.variable_right, Constant) - a_0 = addition.variable_left - assert isinstance(a_0, StateIRVariable) - assert a_0.name == "a" - - assignment = get_ssa_of_type(f, Assignment)[0] - a_1 = assignment.lvalue - assert isinstance(a_1, StateIRVariable) - assert a_1.index == a_0.index + 1 - assert a_1.name == "a" - assert assignment.rvalue == addition.lvalue - - assert a_0.non_ssa_version == a_1.non_ssa_version - assert isinstance(a_0.non_ssa_version, StateVariable) - - # No conditional/other function interaction so no phis - assert len(get_ssa_of_type(f, Phi)) == 0 - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_initial_version_exists_for_state_variables_function_assign(): - """ - In solidity you can write statements such as - uint a = a + 1, this test ensures that can be handled for local variables. - """ - # TODO (hbrodin): Could be a detector that a is not used in f - src = """ - contract C { - uint a = f(); - - function f() internal returns(uint) { - return a; - } - } - """ - with slither_from_source(src) as slither: - verify_properties_hold(slither) - c = slither.contracts[0] - f, ctor = c.functions - if f.is_constructor_variables: - f, ctor = ctor, f - - # ctor should have a single call to f that assigns to a - # temporary variable, that is then assigned to a - - call = get_ssa_of_type(ctor, InternalCall)[0] - assert call.node.function == f - assign = get_ssa_of_type(ctor, Assignment)[0] - assert assign.rvalue == call.lvalue - assert isinstance(assign.lvalue, StateIRVariable) - assert assign.lvalue.name == "a" - - # f should have a phi node on entry of a0, a1 and should return - # a2 - phi = get_ssa_of_type(f, Phi)[0] - assert len(phi.rvalues) == 2 - assert assign.lvalue in phi.rvalues - - -@pytest.mark.skipif( - not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -) -def test_return_local_before_assign(): - src = """ - // this require solidity < 0.5 - // a variable can be returned before declared. Ensure it can be - // handled by Slither. - contract A { - function local(bool my_bool) internal returns(uint){ - if(my_bool){ - return a_local; - } - - uint a_local = 10; - } - } - """ - with slither_from_source(src, "0.4.0") as slither: - f = slither.contracts[0].functions[0] - - ret = get_ssa_of_type(f, Return)[0] - assert len(ret.values) == 1 - assert ret.values[0].index == 0 - - assign = get_ssa_of_type(f, Assignment)[0] - assert assign.lvalue.index == 1 - assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version - - -@pytest.mark.skipif( - not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" -) -def test_shadow_local(): - src = """ - contract A { - // this require solidity 0.5 - function shadowing_local() internal{ - uint local = 0; - { - uint local = 1; - { - uint local = 2; - } - } - } - } - """ - with slither_from_source(src, "0.5.0") as slither: - _dump_functions(slither.contracts[0]) - f = slither.contracts[0].functions[0] - - # Ensure all assignments are to a variable of index 1 - # not using the same IR var. - assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_multiple_named_args_returns(): - """Verifies that named arguments and return values have correct versions - - Each arg/ret have an initial version, version 0, and is written once and should - then have version 1. - """ - src = """ - contract A { - function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { - arg1 = arg1 + 1; - arg2 = arg2 + 2; - ret1 = arg1 + 3; - ret2 = arg2 + 4; - } - }""" - with slither_from_source(src) as slither: - verify_properties_hold(slither) - f = slither.contracts[0].functions[0] - - # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 - assert all( - map( - lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), - get_ssa_of_type(f, OperationWithLValue), - ) - ) - - -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -def test_memory_array(): - src = """ - contract MemArray { - struct A { - uint val1; - uint val2; - } - - function test_array() internal { - A[] memory a= new A[](4); - // Create REF_0 -> a_1[2] - accept_array_entry(a[2]); - - // Create REF_1 -> a_1[3] - accept_array_entry(a[3]); - - A memory alocal; - accept_array_entry(alocal); - - } - - // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) - // val_0 is an unknown external value - function accept_array_entry(A memory val) public returns (uint) { - uint zero = 0; - b(zero); - // Create REF_2 -> val_1.val1 - return b(val.val1); - } - - function b(uint arg) public returns (uint){ - // arg_1 = ϕ(arg_0, zero_1, REF_2) - return arg + 1; - } - }""" - with slither_from_source(src) as slither: - c = slither.contracts[0] - - ftest_array, faccept, fb = c.functions - - # Locate REF_0/REF_1/alocal (they are all args to the call) - accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] - - # Check entrypoint of accept_array_entry, it should contain a phi-node - # of expected rvalues - [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) - for arg in accept_args: - assert arg in phi_entry_accept.rvalues - # NOTE(hbrodin): There should be an additional val_0 in the phi-node. - # That additional val_0 indicates an external caller of this function. - assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 - - # Args used to invoke b - b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] - - # Check entrypoint of B, it should contain a phi-node of expected - # rvalues - [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) - for arg in b_args: - assert arg in phi_entry_b.rvalues - - # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). - assert len(phi_entry_b.rvalues) == len(b_args) + 1 - - -@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -def test_storage_array(): - src = """ - contract StorageArray { - struct A { - uint val1; - uint val2; - } - - // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry - // should only add new versions of a state variable if it is actually written. - A[] a; - A astorage; - - function test_array() internal { - accept_array_entry(a[2]); - accept_array_entry(a[3]); - accept_array_entry(astorage); - } - - function accept_array_entry(A storage val) internal returns (uint) { - // val is either a[2], a[3] or astorage_0. Ideally this could be identified. - uint five = 5; - - // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes - // to either a or astorage. - //val.val2 = 4; - b(five); - return b(val.val1); - } - - function b(uint value) public returns (uint){ - // Expect a phi-node at the entrypoint - // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. - return value + 1; - } - }""" - with slither_from_source(src) as slither: - c = slither.contracts[0] - _dump_functions(c) - ftest, faccept, fb = c.functions - - # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. - assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 - - # Expect all references to start from index 0 (no writes) - assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) - - [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) - assert len(phi_entry_accept.rvalues) == 3 # See comment in b above - - [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) - assert len(phi_entry_b.rvalues) == 3 # See comment in b above - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_468(): - """ - Ensure issue 468 is corrected as per - https://github.com/crytic/slither/issues/468#issuecomment-620974151 - The one difference is that we allow the phi-function at entry of f to - hold exit state which contains init state and state from branch, which - is a bit redundant. This could be further simplified. - """ - source = """ - contract State { - int state = 0; - function f(int a) public returns (int) { - // phi-node here for state - if (a < 1) { - state += 1; - } - // phi-node here for state - return state; - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("State")[0] - f = [x for x in c.functions if x.name == "f"][0] - - # Check that there is an entry point phi values for each later value - # plus one additional which is the initial value - entry_ssa = f.entry_point.irs_ssa - assert len(entry_ssa) == 1 - phi_entry = entry_ssa[0] - assert isinstance(phi_entry, Phi) - - # Find the second phi function - endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] - assert len(endif_node.irs_ssa) == 1 - phi_endif = endif_node.irs_ssa[0] - assert isinstance(phi_endif, Phi) - - # Ensure second phi-function contains init-phi and one additional - assert len(phi_endif.rvalues) == 2 - assert phi_entry.lvalue in phi_endif.rvalues - - # Find return-statement and ensure it returns the phi_endif - return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] - assert len(return_node.irs_ssa) == 1 - ret = return_node.irs_ssa[0] - assert len(ret.values) == 1 - assert phi_endif.lvalue in ret.values - - # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi - assert phi_endif.lvalue in phi_entry.rvalues - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_434(): - source = """ - contract Contract { - int public a; - function f() public { - g(); - a += 1; - } - - function e() public { - a -= 1; - } - - function g() public { - e(); - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("Contract")[0] - - e = [x for x in c.functions if x.name == "e"][0] - f = [x for x in c.functions if x.name == "f"][0] - g = [x for x in c.functions if x.name == "g"][0] - - # Ensure there is a phi-node at the beginning of f and e - phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] - phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] - # But not at g - assert len(get_ssa_of_type(g, Phi)) == 0 - - # Ensure that the final states of f and e are in the entry-states - add_f = get_filtered_ssa( - f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION - )[0] - sub_e = get_filtered_ssa( - e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION - )[0] - assert add_f.lvalue in phi_entry_f.rvalues - assert add_f.lvalue in phi_entry_e.rvalues - assert sub_e.lvalue in phi_entry_f.rvalues - assert sub_e.lvalue in phi_entry_e.rvalues - - # Ensure there is a phi-node after call to g - call = get_ssa_of_type(f, InternalCall)[0] - idx = call.node.irs_ssa.index(call) - aftercall_phi = call.node.irs_ssa[idx + 1] - assert isinstance(aftercall_phi, Phi) - - # Ensure that phi node ^ is used in the addition afterwards - assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) - - -@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -def test_issue_473(): - source = """ - contract Contract { - function f() public returns (int) { - int a = 1; - if (a > 0) { - a = 2; - } - if (a == 3) { - a = 6; - } - return a; - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("Contract")[0] - f = c.functions[0] - - phis = get_ssa_of_type(f, Phi) - return_value = get_ssa_of_type(f, Return)[0] - - # There shall be two phi functions - assert len(phis) == 2 - first_phi = phis[0] - second_phi = phis[1] - - # The second phi is the one being returned, if it's the first swap them (iteration order) - if first_phi.lvalue in return_value.values: - first_phi, second_phi = second_phi, first_phi - - # First phi is for [a=1 or a=2] - assert len(first_phi.rvalues) == 2 - - # second is for [a=6 or first phi] - assert first_phi.lvalue in second_phi.rvalues - assert len(second_phi.rvalues) == 2 - - # return is for second phi - assert len(return_value.values) == 1 - assert second_phi.lvalue in return_value.values - - -def test_issue_1748(): - source = """ - contract Contract { - uint[] arr; - function foo(uint i) public { - arr = [1]; - } - } - """ - with slither_from_source(source) as slither: - c = slither.get_contract_from_name("Contract")[0] - f = c.functions[0] - operations = f.slithir_operations - assign_op = operations[0] - assert isinstance(assign_op, InitArray) +# # pylint: disable=too-many-lines +# import pathlib +# from argparse import ArgumentTypeError +# from collections import defaultdict +# from contextlib import contextmanager +# from inspect import getsourcefile +# from tempfile import NamedTemporaryFile +# from typing import Union, List, Optional, Dict, Callable + +# import pytest +# from solc_select import solc_select +# from solc_select.solc_select import valid_version as solc_valid_version + +# from slither import Slither +# from slither.core.cfg.node import Node, NodeType +# from slither.core.declarations import Function, Contract +# from slither.core.variables.local_variable import LocalVariable +# from slither.core.variables.state_variable import StateVariable +# from slither.slithir.operations import ( +# OperationWithLValue, +# Phi, +# Assignment, +# HighLevelCall, +# Return, +# Operation, +# Binary, +# BinaryType, +# InternalCall, +# Index, +# InitArray, +# ) +# from slither.slithir.utils.ssa import is_used_later +# from slither.slithir.variables import ( +# Constant, +# ReferenceVariable, +# LocalIRVariable, +# StateIRVariable, +# TemporaryVariableSSA, +# ) + +# # Directory of currently executing script. Will be used as basis for temporary file names. +# SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore + + +# def valid_version(ver: str) -> bool: +# """Wrapper function to check if the solc-version is valid + +# The solc_select function raises and exception but for checks below, +# only a bool is needed. +# """ +# try: +# solc_valid_version(ver) +# return True +# except ArgumentTypeError: +# return False + + +# def have_ssa_if_ir(function: Function) -> None: +# """Verifies that all nodes in a function that have IR also have SSA IR""" +# for n in function.nodes: +# if n.irs: +# assert n.irs_ssa + + +# # pylint: disable=too-many-branches, too-many-locals +# def ssa_basic_properties(function: Function) -> None: +# """Verifies that basic properties of ssa holds + +# 1. Every name is defined only once +# 2. A l-value is never index zero - there is always a zero-value available for each var +# 3. Every r-value is at least defined at some point +# 4. The number of ssa defs is >= the number of assignments to var +# 5. Function parameters SSA are stored in function.parameters_ssa +# - if function parameter is_storage it refers to a fake variable +# 6. Function returns SSA are stored in function.returns_ssa +# - if function return is_storage it refers to a fake variable +# """ +# ssa_lvalues = set() +# ssa_rvalues = set() +# lvalue_assignments: Dict[str, int] = {} + +# for n in function.nodes: +# for ir in n.irs: +# if isinstance(ir, OperationWithLValue) and ir.lvalue: +# name = ir.lvalue.name +# if name is None: +# continue +# if name in lvalue_assignments: +# lvalue_assignments[name] += 1 +# else: +# lvalue_assignments[name] = 1 + +# for ssa in n.irs_ssa: +# if isinstance(ssa, OperationWithLValue): +# # 1 +# assert ssa.lvalue not in ssa_lvalues +# ssa_lvalues.add(ssa.lvalue) + +# # 2 (if Local/State Var) +# ssa_lvalue = ssa.lvalue +# if isinstance(ssa_lvalue, (StateIRVariable, LocalIRVariable)): +# assert ssa_lvalue.index > 0 + +# for rvalue in filter( +# lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read +# ): +# ssa_rvalues.add(rvalue) + +# # 3 +# # Each var can have one non-defined value, the value initially held. Typically, +# # var_0, i_0, state_0 or similar. +# undef_vars = set() +# for rvalue in ssa_rvalues: +# if rvalue not in ssa_lvalues: +# assert rvalue.non_ssa_version not in undef_vars +# undef_vars.add(rvalue.non_ssa_version) + +# # 4 +# ssa_defs: Dict[str, int] = defaultdict(int) +# for v in ssa_lvalues: +# if v and v.name: +# ssa_defs[v.name] += 1 + +# for (k, count) in lvalue_assignments.items(): +# assert ssa_defs[k] >= count + +# # Helper 5/6 +# def check_property_5_and_6( +# variables: List[LocalVariable], ssavars: List[LocalIRVariable] +# ) -> None: +# for var in filter(lambda x: x.name, variables): +# ssa_vars = [x for x in ssavars if x.non_ssa_version == var] +# assert len(ssa_vars) == 1 +# ssa_var = ssa_vars[0] +# assert var.is_storage == ssa_var.is_storage +# if ssa_var.is_storage: +# assert len(ssa_var.refers_to) == 1 +# assert ssa_var.refers_to[0].location == "reference_to_storage" + +# # 5 +# check_property_5_and_6(function.parameters, function.parameters_ssa) + +# # 6 +# check_property_5_and_6(function.returns, function.returns_ssa) + + +# def ssa_phi_node_properties(f: Function) -> None: +# """Every phi-function should have as many args as predecessors + +# This does not apply if the phi-node refers to state variables, +# they make use os special phi-nodes for tracking potential values +# a state variable can have +# """ +# for node in f.nodes: +# for ssa in node.irs_ssa: +# if isinstance(ssa, Phi): +# n = len(ssa.read) +# if not isinstance(ssa.lvalue, StateIRVariable): +# assert len(node.fathers) == n + + +# # TODO (hbrodin): This should probably go into another file, not specific to SSA +# def dominance_properties(f: Function) -> None: +# """Verifies properties related to dominators holds + +# 1. Every node have an immediate dominator except entry_node which have none +# 2. From every node immediate dominator there is a path via its successors to the node +# """ + +# def find_path(from_node: Node, to: Node) -> bool: +# visited = set() +# worklist = list(from_node.sons) +# while worklist: +# first, *worklist = worklist +# if first == to: +# return True +# visited.add(first) +# for successor in first.sons: +# if successor not in visited: +# worklist.append(successor) +# return False + +# for node in f.nodes: +# if node is f.entry_point: +# assert node.immediate_dominator is None +# else: +# assert node.immediate_dominator is not None +# assert find_path(node.immediate_dominator, node) + + +# def phi_values_inserted(f: Function) -> None: +# """Verifies that phi-values are inserted at the right places + +# For every node that has a dominance frontier, any def (including +# phi) should be a phi function in its dominance frontier +# """ + +# def have_phi_for_var( +# node: Node, var: Union[StateIRVariable, LocalIRVariable, TemporaryVariableSSA] +# ) -> bool: +# """Checks if a node has a phi-instruction for var + +# The ssa version would ideally be checked, but then +# more data flow analysis would be needed, for cases +# where a new def for var is introduced before reaching +# DF +# """ +# non_ssa = var.non_ssa_version +# for ssa in node.irs_ssa: +# if isinstance(ssa, Phi): +# if non_ssa in map( +# lambda ssa_var: ssa_var.non_ssa_version, +# [ +# r +# for r in ssa.read +# if isinstance(r, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA)) +# ], +# ): +# return True +# return False + +# for node in filter(lambda n: n.dominance_frontier, f.nodes): +# for df in node.dominance_frontier: +# for ssa in node.irs_ssa: +# if isinstance(ssa, OperationWithLValue): +# ssa_lvalue = ssa.lvalue +# if isinstance( +# ssa_lvalue, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA) +# ) and is_used_later(node, ssa_lvalue): +# assert have_phi_for_var(df, ssa_lvalue) + + + +# @contextmanager +# def slither_from_source(source_code: str, use_solc_version, solc_version: str = "latest"): +# """Yields a Slither instance using source_code string and solc_version + +# Creates a temporary file and changes the solc-version temporary to solc_version. +# """ + +# fname = "" +# try: +# with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: +# fname = f.name +# f.write(source_code) +# solc_path = use_solc_version(solc_version) +# yield Slither(fname, solc=solc_path) +# finally: +# pathlib.Path(fname).unlink() + + +# def verify_properties_hold(source_code_or_slither: Union[str, Slither]) -> None: +# """Ensures that basic properties of SSA hold true""" + +# def verify_func(func: Function) -> None: +# have_ssa_if_ir(func) +# phi_values_inserted(func) +# ssa_basic_properties(func) +# ssa_phi_node_properties(func) +# dominance_properties(func) + +# def verify(slither: Slither) -> None: +# for cu in slither.compilation_units: +# for func in cu.functions_and_modifiers: +# _dump_function(func) +# verify_func(func) +# for contract in cu.contracts: +# for f in contract.functions: +# if f.is_constructor or f.is_constructor_variables: +# _dump_function(f) +# verify_func(f) + +# if isinstance(source_code_or_slither, Slither): +# verify(source_code_or_slither) +# else: +# slither: Slither +# with slither_from_source(source_code_or_slither) as slither: +# verify(slither) + + +# def _dump_function(f: Function) -> None: +# """Helper function to print nodes/ssa ir for a function or modifier""" +# print(f"---- {f.name} ----") +# for n in f.nodes: +# print(n) +# for ir in n.irs_ssa: +# print(f"\t{ir}") +# print("") + + +# def _dump_functions(c: Contract) -> None: +# """Helper function to print functions and modifiers of a contract""" +# for f in c.functions_and_modifiers: +# _dump_function(f) + + +# def get_filtered_ssa(f: Union[Function, Node], flt: Callable) -> List[Operation]: +# """Returns a list of all ssanodes filtered by filter for all nodes in function f""" +# if isinstance(f, Function): +# return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] + +# assert isinstance(f, Node) +# return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] + + +# def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: +# """Returns a list of all ssanodes of a specific type for all nodes in function f""" +# return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) + + +# def test_multi_write() -> None: +# contract = """ +# pragma solidity ^0.8.11; +# contract Test { +# function multi_write(uint val) external pure returns(uint) { +# val = 1; +# val = 2; +# val = 3; +# } +# }""" +# verify_properties_hold(contract) + + +# def test_single_branch_phi() -> None: +# contract = """ +# pragma solidity ^0.8.11; +# contract Test { +# function single_branch_phi(uint val) external pure returns(uint) { +# if (val == 3) { +# val = 9; +# } +# return val; +# } +# } +# """ +# verify_properties_hold(contract) + + +# def test_basic_phi() -> None: +# contract = """ +# pragma solidity ^0.8.11; +# contract Test { +# function basic_phi(uint val) external pure returns(uint) { +# if (val == 3) { +# val = 9; +# } else { +# val = 1; +# } +# return val; +# } +# } +# """ +# verify_properties_hold(contract) + + +# def test_basic_loop_phi() -> None: +# contract = """ +# pragma solidity ^0.8.11; +# contract Test { +# function basic_loop_phi(uint val) external pure returns(uint) { +# for (uint i=0;i<128;i++) { +# val = val + 1; +# } +# return val; +# } +# } +# """ +# verify_properties_hold(contract) + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_phi_propagation_loop(): +# contract = """ +# pragma solidity ^0.8.11; +# contract Test { +# function looping(uint v) external pure returns(uint) { +# uint val = 0; +# for (uint i=0;i i) { +# val = i; +# } else { +# val = 3; +# } +# } +# return val; +# } +# } +# """ +# verify_properties_hold(contract) + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_free_function_properties(): +# contract = """ +# pragma solidity ^0.8.11; + +# function free_looping(uint v) returns(uint) { +# uint val = 0; +# for (uint i=0;i i) { +# val = i; +# } else { +# val = 3; +# } +# } +# return val; +# } + +# contract Test {} +# """ +# verify_properties_hold(contract) + + +# def test_ssa_inter_transactional() -> None: +# source = """ +# pragma solidity ^0.8.11; +# contract A { +# uint my_var_A; +# uint my_var_B; + +# function direct_set(uint i) public { +# my_var_A = i; +# } + +# function direct_set_plus_one(uint i) public { +# my_var_A = i + 1; +# } + +# function indirect_set() public { +# my_var_B = my_var_A; +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.contracts[0] +# variables = c.variables_as_dict +# funcs = c.available_functions_as_dict() +# direct_set = funcs["direct_set(uint256)"] +# # Skip entry point and go straight to assignment ir +# assign1 = direct_set.nodes[1].irs_ssa[0] +# assert isinstance(assign1, Assignment) + +# assign2 = direct_set.nodes[1].irs_ssa[0] +# assert isinstance(assign2, Assignment) + +# indirect_set = funcs["indirect_set()"] +# phi = indirect_set.entry_point.irs_ssa[0] +# assert isinstance(phi, Phi) +# # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set +# assert len(phi.rvalues) == 3 +# assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) +# assert assign1.lvalue in phi.rvalues +# assert assign2.lvalue in phi.rvalues + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_ssa_phi_callbacks(): +# source = """ +# pragma solidity ^0.8.11; +# contract A { +# uint my_var_A; +# uint my_var_B; + +# function direct_set(uint i) public { +# my_var_A = i; +# } + +# function use_a() public { +# // Expect a phi-node here +# my_var_B = my_var_A; +# B b = new B(); +# my_var_A = 3; +# b.do_stuff(); +# // Expect a phi-node here +# my_var_B = my_var_A; +# } +# } + +# contract B { +# function do_stuff() public returns (uint) { +# // This could be calling back into A +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.get_contract_from_name("A")[0] +# _dump_functions(c) +# f = [x for x in c.functions if x.name == "use_a"][0] +# var_a = [x for x in c.variables if x.name == "my_var_A"][0] + +# entry_phi = [ +# x +# for x in f.entry_point.irs_ssa +# if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a +# ][0] +# # The four potential sources are: +# # 1. initial value +# # 2. my_var_A = i; +# # 3. my_var_A = 3; +# # 4. phi-value after call to b.do_stuff(), which could be reentrant. +# assert len(entry_phi.rvalues) == 4 + +# # Locate the first high-level call (should be b.do_stuff()) +# call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] +# n = call_node.node +# # Get phi-node after call +# after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] +# # The two sources for this phi node is +# # 1. my_var_A = i; +# # 2. my_var_A = 3; +# assert isinstance(after_call_phi, Phi) +# assert len(after_call_phi.rvalues) == 2 + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_storage_refers_to(): +# """Test the storage aspects of the SSA IR + +# When declaring a var as being storage, start tracking what storage it refers_to. +# When a phi-node is created, ensure refers_to is propagated to the phi-node. +# Assignments also propagate refers_to. +# Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) +# below, create additional versions of the variables it refers to record that a a +# write was made. In the current implementation, this is referenced by phis. +# """ +# source = """ +# contract A{ + +# struct St{ +# int v; +# } + +# St state0; +# St state1; + +# function f() public{ +# St storage s = state0; +# if(true){ +# s = state1; +# } +# s.v = 10; +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.contracts[0] +# f = c.functions[0] + +# phinodes = get_ssa_of_type(f, Phi) +# # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the +# # ReferenceVariable write s.v = 10. +# assert len(phinodes) == 5 + +# # Assign s to state0, s to state1, s.v to 10 +# assigns = get_ssa_of_type(f, Assignment) +# assert len(assigns) == 3 + +# # The IR variables have is_storage +# assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) + +# # s.v ReferenceVariable points to one of the phi vars... +# ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] +# sphis = [x for x in phinodes if x.lvalue == ref0.points_to] +# assert len(sphis) == 1 +# sphi = sphis[0] + +# # ...and that phi refers to the two entry phi-values +# entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] +# assert len(entryphi) == 2 + +# # The remaining two phis are the ones recording that write through ReferenceVariable occured +# for ephi in entryphi: +# phinodes.remove(ephi) +# phinodes.remove(sphi) +# assert len(phinodes) == 2 + +# # And they are recorded in one of the entry phis +# assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues +# assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues + + +# @pytest.mark.skipif( +# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +# ) +# def test_initial_version_exists_for_locals(): +# """ +# In solidity you can write statements such as +# uint a = a + 1, this test ensures that can be handled for local variables. +# """ +# src = """ +# contract C { +# function func() internal { +# uint a = a + 1; +# } +# } +# """ +# with slither_from_source(src, "0.4.0") as slither: +# verify_properties_hold(slither) +# c = slither.contracts[0] +# f = c.functions[0] + +# addition = get_ssa_of_type(f, Binary)[0] +# assert addition.type == BinaryType.ADDITION +# assert isinstance(addition.variable_right, Constant) +# a_0 = addition.variable_left +# assert a_0.index == 0 +# assert a_0.name == "a" + +# assignment = get_ssa_of_type(f, Assignment)[0] +# a_1 = assignment.lvalue +# assert a_1.index == 1 +# assert a_1.name == "a" +# assert assignment.rvalue == addition.lvalue + +# assert a_0.non_ssa_version == a_1.non_ssa_version + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# @pytest.mark.skipif( +# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +# ) +# def test_initial_version_exists_for_state_variables(): +# """ +# In solidity you can write statements such as +# uint a = a + 1, this test ensures that can be handled for state variables. +# """ +# src = """ +# contract C { +# uint a = a + 1; +# } +# """ +# with slither_from_source(src, "0.4.0") as slither: +# verify_properties_hold(slither) +# c = slither.contracts[0] +# f = c.functions[0] # There will be one artificial ctor function for the state vars + +# addition = get_ssa_of_type(f, Binary)[0] +# assert addition.type == BinaryType.ADDITION +# assert isinstance(addition.variable_right, Constant) +# a_0 = addition.variable_left +# assert isinstance(a_0, StateIRVariable) +# assert a_0.name == "a" + +# assignment = get_ssa_of_type(f, Assignment)[0] +# a_1 = assignment.lvalue +# assert isinstance(a_1, StateIRVariable) +# assert a_1.index == a_0.index + 1 +# assert a_1.name == "a" +# assert assignment.rvalue == addition.lvalue + +# assert a_0.non_ssa_version == a_1.non_ssa_version +# assert isinstance(a_0.non_ssa_version, StateVariable) + +# # No conditional/other function interaction so no phis +# assert len(get_ssa_of_type(f, Phi)) == 0 + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_initial_version_exists_for_state_variables_function_assign(): +# """ +# In solidity you can write statements such as +# uint a = a + 1, this test ensures that can be handled for local variables. +# """ +# # TODO (hbrodin): Could be a detector that a is not used in f +# src = """ +# contract C { +# uint a = f(); + +# function f() internal returns(uint) { +# return a; +# } +# } +# """ +# with slither_from_source(src) as slither: +# verify_properties_hold(slither) +# c = slither.contracts[0] +# f, ctor = c.functions +# if f.is_constructor_variables: +# f, ctor = ctor, f + +# # ctor should have a single call to f that assigns to a +# # temporary variable, that is then assigned to a + +# call = get_ssa_of_type(ctor, InternalCall)[0] +# assert call.node.function == f +# assign = get_ssa_of_type(ctor, Assignment)[0] +# assert assign.rvalue == call.lvalue +# assert isinstance(assign.lvalue, StateIRVariable) +# assert assign.lvalue.name == "a" + +# # f should have a phi node on entry of a0, a1 and should return +# # a2 +# phi = get_ssa_of_type(f, Phi)[0] +# assert len(phi.rvalues) == 2 +# assert assign.lvalue in phi.rvalues + + +# @pytest.mark.skipif( +# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +# ) +# def test_return_local_before_assign(): +# src = """ +# // this require solidity < 0.5 +# // a variable can be returned before declared. Ensure it can be +# // handled by Slither. +# contract A { +# function local(bool my_bool) internal returns(uint){ +# if(my_bool){ +# return a_local; +# } + +# uint a_local = 10; +# } +# } +# """ +# with slither_from_source(src, "0.4.0") as slither: +# f = slither.contracts[0].functions[0] + +# ret = get_ssa_of_type(f, Return)[0] +# assert len(ret.values) == 1 +# assert ret.values[0].index == 0 + +# assign = get_ssa_of_type(f, Assignment)[0] +# assert assign.lvalue.index == 1 +# assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version + + +# @pytest.mark.skipif( +# not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" +# ) +# def test_shadow_local(): +# src = """ +# contract A { +# // this require solidity 0.5 +# function shadowing_local() internal{ +# uint local = 0; +# { +# uint local = 1; +# { +# uint local = 2; +# } +# } +# } +# } +# """ +# with slither_from_source(src, "0.5.0") as slither: +# _dump_functions(slither.contracts[0]) +# f = slither.contracts[0].functions[0] + +# # Ensure all assignments are to a variable of index 1 +# # not using the same IR var. +# assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_multiple_named_args_returns(): +# """Verifies that named arguments and return values have correct versions + +# Each arg/ret have an initial version, version 0, and is written once and should +# then have version 1. +# """ +# src = """ +# contract A { +# function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { +# arg1 = arg1 + 1; +# arg2 = arg2 + 2; +# ret1 = arg1 + 3; +# ret2 = arg2 + 4; +# } +# }""" +# with slither_from_source(src) as slither: +# verify_properties_hold(slither) +# f = slither.contracts[0].functions[0] + +# # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 +# assert all( +# map( +# lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), +# get_ssa_of_type(f, OperationWithLValue), +# ) +# ) + + +# @pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +# def test_memory_array(): +# src = """ +# contract MemArray { +# struct A { +# uint val1; +# uint val2; +# } + +# function test_array() internal { +# A[] memory a= new A[](4); +# // Create REF_0 -> a_1[2] +# accept_array_entry(a[2]); + +# // Create REF_1 -> a_1[3] +# accept_array_entry(a[3]); + +# A memory alocal; +# accept_array_entry(alocal); + +# } + +# // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) +# // val_0 is an unknown external value +# function accept_array_entry(A memory val) public returns (uint) { +# uint zero = 0; +# b(zero); +# // Create REF_2 -> val_1.val1 +# return b(val.val1); +# } + +# function b(uint arg) public returns (uint){ +# // arg_1 = ϕ(arg_0, zero_1, REF_2) +# return arg + 1; +# } +# }""" +# with slither_from_source(src) as slither: +# c = slither.contracts[0] + +# ftest_array, faccept, fb = c.functions + +# # Locate REF_0/REF_1/alocal (they are all args to the call) +# accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] + +# # Check entrypoint of accept_array_entry, it should contain a phi-node +# # of expected rvalues +# [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) +# for arg in accept_args: +# assert arg in phi_entry_accept.rvalues +# # NOTE(hbrodin): There should be an additional val_0 in the phi-node. +# # That additional val_0 indicates an external caller of this function. +# assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 + +# # Args used to invoke b +# b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] + +# # Check entrypoint of B, it should contain a phi-node of expected +# # rvalues +# [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) +# for arg in b_args: +# assert arg in phi_entry_b.rvalues + +# # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). +# assert len(phi_entry_b.rvalues) == len(b_args) + 1 + + +# @pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +# def test_storage_array(): +# src = """ +# contract StorageArray { +# struct A { +# uint val1; +# uint val2; +# } + +# // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry +# // should only add new versions of a state variable if it is actually written. +# A[] a; +# A astorage; + +# function test_array() internal { +# accept_array_entry(a[2]); +# accept_array_entry(a[3]); +# accept_array_entry(astorage); +# } + +# function accept_array_entry(A storage val) internal returns (uint) { +# // val is either a[2], a[3] or astorage_0. Ideally this could be identified. +# uint five = 5; + +# // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes +# // to either a or astorage. +# //val.val2 = 4; +# b(five); +# return b(val.val1); +# } + +# function b(uint value) public returns (uint){ +# // Expect a phi-node at the entrypoint +# // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. +# return value + 1; +# } +# }""" +# with slither_from_source(src) as slither: +# c = slither.contracts[0] +# _dump_functions(c) +# ftest, faccept, fb = c.functions + +# # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. +# assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 + +# # Expect all references to start from index 0 (no writes) +# assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) + +# [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) +# assert len(phi_entry_accept.rvalues) == 3 # See comment in b above + +# [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) +# assert len(phi_entry_b.rvalues) == 3 # See comment in b above + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_issue_468(): +# """ +# Ensure issue 468 is corrected as per +# https://github.com/crytic/slither/issues/468#issuecomment-620974151 +# The one difference is that we allow the phi-function at entry of f to +# hold exit state which contains init state and state from branch, which +# is a bit redundant. This could be further simplified. +# """ +# source = """ +# contract State { +# int state = 0; +# function f(int a) public returns (int) { +# // phi-node here for state +# if (a < 1) { +# state += 1; +# } +# // phi-node here for state +# return state; +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.get_contract_from_name("State")[0] +# f = [x for x in c.functions if x.name == "f"][0] + +# # Check that there is an entry point phi values for each later value +# # plus one additional which is the initial value +# entry_ssa = f.entry_point.irs_ssa +# assert len(entry_ssa) == 1 +# phi_entry = entry_ssa[0] +# assert isinstance(phi_entry, Phi) + +# # Find the second phi function +# endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] +# assert len(endif_node.irs_ssa) == 1 +# phi_endif = endif_node.irs_ssa[0] +# assert isinstance(phi_endif, Phi) + +# # Ensure second phi-function contains init-phi and one additional +# assert len(phi_endif.rvalues) == 2 +# assert phi_entry.lvalue in phi_endif.rvalues + +# # Find return-statement and ensure it returns the phi_endif +# return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] +# assert len(return_node.irs_ssa) == 1 +# ret = return_node.irs_ssa[0] +# assert len(ret.values) == 1 +# assert phi_endif.lvalue in ret.values + +# # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi +# assert phi_endif.lvalue in phi_entry.rvalues + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_issue_434(): +# source = """ +# contract Contract { +# int public a; +# function f() public { +# g(); +# a += 1; +# } + +# function e() public { +# a -= 1; +# } + +# function g() public { +# e(); +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.get_contract_from_name("Contract")[0] + +# e = [x for x in c.functions if x.name == "e"][0] +# f = [x for x in c.functions if x.name == "f"][0] +# g = [x for x in c.functions if x.name == "g"][0] + +# # Ensure there is a phi-node at the beginning of f and e +# phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] +# phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] +# # But not at g +# assert len(get_ssa_of_type(g, Phi)) == 0 + +# # Ensure that the final states of f and e are in the entry-states +# add_f = get_filtered_ssa( +# f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION +# )[0] +# sub_e = get_filtered_ssa( +# e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION +# )[0] +# assert add_f.lvalue in phi_entry_f.rvalues +# assert add_f.lvalue in phi_entry_e.rvalues +# assert sub_e.lvalue in phi_entry_f.rvalues +# assert sub_e.lvalue in phi_entry_e.rvalues + +# # Ensure there is a phi-node after call to g +# call = get_ssa_of_type(f, InternalCall)[0] +# idx = call.node.irs_ssa.index(call) +# aftercall_phi = call.node.irs_ssa[idx + 1] +# assert isinstance(aftercall_phi, Phi) + +# # Ensure that phi node ^ is used in the addition afterwards +# assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) + + +# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +# def test_issue_473(): +# source = """ +# contract Contract { +# function f() public returns (int) { +# int a = 1; +# if (a > 0) { +# a = 2; +# } +# if (a == 3) { +# a = 6; +# } +# return a; +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.get_contract_from_name("Contract")[0] +# f = c.functions[0] + +# phis = get_ssa_of_type(f, Phi) +# return_value = get_ssa_of_type(f, Return)[0] + +# # There shall be two phi functions +# assert len(phis) == 2 +# first_phi = phis[0] +# second_phi = phis[1] + +# # The second phi is the one being returned, if it's the first swap them (iteration order) +# if first_phi.lvalue in return_value.values: +# first_phi, second_phi = second_phi, first_phi + +# # First phi is for [a=1 or a=2] +# assert len(first_phi.rvalues) == 2 + +# # second is for [a=6 or first phi] +# assert first_phi.lvalue in second_phi.rvalues +# assert len(second_phi.rvalues) == 2 + +# # return is for second phi +# assert len(return_value.values) == 1 +# assert second_phi.lvalue in return_value.values + + +# def test_issue_1748(): +# source = """ +# contract Contract { +# uint[] arr; +# function foo(uint i) public { +# arr = [1]; +# } +# } +# """ +# with slither_from_source(source) as slither: +# c = slither.get_contract_from_name("Contract")[0] +# f = c.functions[0] +# operations = f.slithir_operations +# assign_op = operations[0] +# assert isinstance(assign_op, InitArray) diff --git a/tests/unit/slithir/test_ternary_expressions.py b/tests/unit/slithir/test_ternary_expressions.py index 376048e1d..3fb5159f7 100644 --- a/tests/unit/slithir/test_ternary_expressions.py +++ b/tests/unit/slithir/test_ternary_expressions.py @@ -8,10 +8,10 @@ from slither.core.expressions import AssignmentOperation, TupleExpression TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" # pylint: disable=too-many-nested-blocks -def test_ternary_conversions() -> None: +def test_ternary_conversions(use_solc_version) -> None: """This tests that true and false sons define the same number of variables that the father node declares""" - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither(Path(TEST_DATA_DIR, "ternary_expressions.sol").as_posix()) + solc_path = next(use_solc_version("0.8.0")) + slither = Slither(Path(TEST_DATA_DIR, "ternary_expressions.sol").as_posix(), solc=solc_path) for contract in slither.contracts: for function in contract.functions: vars_declared = 0 diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index 679489634..d4c40f42f 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -9,10 +9,10 @@ from slither.utils.code_generation import ( TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "code_generation" -def test_interface_generation() -> None: - solc_select.switch_global_version("0.8.4", always_install=True) +def test_interface_generation(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.4")) - sl = Slither(Path(TEST_DATA_DIR, "CodeGeneration.sol").as_posix()) + sl = Slither(Path(TEST_DATA_DIR, "CodeGeneration.sol").as_posix(), solc=solc_path) actual = generate_interface(sl.get_contract_from_name("TestContract")[0]) expected_path = Path(TEST_DATA_DIR, "TEST_generated_code.sol").as_posix() diff --git a/tests/unit/utils/test_functions_ids.py b/tests/unit/utils/test_functions_ids.py index c944c5473..e6ca9f539 100644 --- a/tests/unit/utils/test_functions_ids.py +++ b/tests/unit/utils/test_functions_ids.py @@ -41,10 +41,10 @@ signatures = { TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" -def test_functions_ids() -> None: - solc_select.switch_global_version("0.7.0", always_install=True) +def test_functions_ids(use_solc_version) -> None: + solc_path = next(use_solc_version("0.7.0")) file = Path(TEST_DATA_DIR, "functions_ids.sol").as_posix() - sl = Slither(file) + sl = Slither(file, solc=solc_path) contracts_c = sl.get_contract_from_name("C") assert len(contracts_c) == 1 contract_c = contracts_c[0] diff --git a/tests/unit/utils/test_type_helpers.py b/tests/unit/utils/test_type_helpers.py index b6e913d33..6a71a0a19 100644 --- a/tests/unit/utils/test_type_helpers.py +++ b/tests/unit/utils/test_type_helpers.py @@ -5,9 +5,9 @@ from slither import Slither TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" -def test_function_id_rec_structure() -> None: - solc_select.switch_global_version("0.8.0", always_install=True) - slither = Slither(Path(TEST_DATA_DIR, "type_helpers.sol").as_posix()) +def test_function_id_rec_structure(use_solc_version) -> None: + solc_path = next(use_solc_version("0.8.0")) + slither = Slither(Path(TEST_DATA_DIR, "type_helpers.sol").as_posix(), solc=solc_path) for compilation_unit in slither.compilation_units: for function in compilation_unit.functions: assert function.solidity_signature From 40239751c264ea850335b9789e7fbe23b42e47b3 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Mar 2023 12:23:45 -0500 Subject: [PATCH 015/105] Fix handling of dynamic `string` and `bytes` --- slither/utils/code_generation.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 34c489b74..cd72e6c8f 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,7 @@ from slither.utils.type import ( export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType, ElementaryType +from slither.core.solidity_types import Type, UserDefinedType, MappingType, ArrayType, ElementaryType from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: @@ -73,6 +73,7 @@ def generate_interface_variable_signature( ] else: _, params, _ = var.signature + params = [p + " memory" if p in ["bytes", "string"] else p for p in params] returns = [] _type = var.type while isinstance(_type, MappingType): @@ -80,7 +81,7 @@ def generate_interface_variable_signature( while isinstance(_type, (ArrayType, UserDefinedType)): _type = _type.type ret = str(_type) - if isinstance(_type, Structure): + if isinstance(_type, Structure) or (isinstance(_type, Type) and _type.is_dynamic): ret += " memory" elif isinstance(_type, Contract): ret = "address" @@ -127,6 +128,8 @@ def generate_interface_function_signature( if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) + else f"{ret.type} {ret.location}" + if ret.type.is_dynamic else str(ret.type) for ret in func.returns ] @@ -144,6 +147,8 @@ def generate_interface_function_signature( and isinstance(param.type.type, (Structure, Enum)) else "address" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) + else f"{param.type} {param.location}" + if param.type.is_dynamic else str(param.type) for param in func.parameters ] @@ -182,7 +187,7 @@ def generate_struct_interface_str(struct: "Structure", indent: int = 0) -> str: definition += f"{spaces} address {elem.name};\n" else: definition += f"{spaces} {elem.type} {elem.name};\n" - definition += f"{spaces}\n" + definition += f"{spaces}}}\n" return definition From 07fcb5c1497a985b328beaf2d5a199fe8da92d0a Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 28 Mar 2023 14:18:26 -0500 Subject: [PATCH 016/105] simplify using reviewer suggestions --- Makefile | 9 ++-- tests/conftest.py | 31 +++++-------- tests/e2e/compilation/test_resolution.py | 9 ++-- tests/tools/read-storage/test_read_storage.py | 4 +- tests/unit/core/test_arithmetic.py | 5 +-- tests/unit/core/test_code_comments.py | 18 +++++--- tests/unit/core/test_constant_folding.py | 20 +++++---- tests/unit/core/test_contract_declaration.py | 21 +++++---- tests/unit/core/test_function_declaration.py | 17 ++++---- tests/unit/core/test_source_mapping.py | 12 +++--- tests/unit/core/test_storage_layout.py | 7 ++- tests/unit/core/test_using_for.py | 43 +++++++++++-------- tests/unit/slithir/test_operation_reads.py | 5 +-- tests/unit/slithir/test_ssa_generation.py | 5 +-- .../unit/slithir/test_ternary_expressions.py | 4 +- tests/unit/utils/test_code_generation.py | 5 +-- tests/unit/utils/test_functions_ids.py | 5 +-- tests/unit/utils/test_type_helpers.py | 5 +-- 18 files changed, 112 insertions(+), 113 deletions(-) diff --git a/Makefile b/Makefile index cc102c958..a94c3eeb8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ SHELL := /bin/bash PY_MODULE := slither +TEST_MODULE := tests ALL_PY_SRCS := $(shell find $(PY_MODULE) -name '*.py') \ $(shell find test -name '*.py') @@ -33,7 +34,7 @@ ifneq ($(TESTS),) COV_ARGS := else TEST_ARGS := -n auto - COV_ARGS := --cov-append # --fail-under 100 + COV_ARGS := # --fail-under 100 endif .PHONY: all @@ -56,15 +57,15 @@ $(VENV)/pyvenv.cfg: pyproject.toml .PHONY: lint lint: $(VENV)/pyvenv.cfg . $(VENV_BIN)/activate && \ - black --check $(ALL_PY_SRCS) && \ - pylint $(ALL_PY_SRCS) + black --check . && \ + pylint $(PY_MODULE) $(TEST_MODULE) # ruff $(ALL_PY_SRCS) && \ # mypy $(PY_MODULE) && .PHONY: reformat reformat: . $(VENV_BIN)/activate && \ - black $(PY_MODULE) + black . .PHONY: test tests test tests: $(VENV)/pyvenv.cfg diff --git a/tests/conftest.py b/tests/conftest.py index bf15b27d1..63f40b672 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,26 +2,15 @@ import pytest from filelock import FileLock from solc_select import solc_select -@pytest.fixture(scope="session") -def solc_versions_installed(): - """List of solc versions available in the test environment.""" - return [] - -@pytest.fixture(scope="session", autouse=True) -def register_solc_versions_installed(solc_versions_installed): - solc_versions_installed.extend(solc_select.installed_versions()) @pytest.fixture(scope="session") -def use_solc_version(request, solc_versions_installed): - def _use_solc_version(version): - print(version) - if version not in solc_versions_installed: - print("Installing solc version", version) - solc_select.install_artifacts([version]) - artifact_path = solc_select.artifact_path(version) - lock = FileLock(artifact_path) - try: - yield artifact_path - finally: - lock.release() - return _use_solc_version +def solc_binary_path(): + def inner(version): + lock = FileLock(f"{version}.lock", timeout=60) + with lock: + if not solc_select.artifact_path(version).exists(): + print("Installing solc version", version) + solc_select.install_artifacts([version]) + return solc_select.artifact_path(version) + + return inner diff --git a/tests/e2e/compilation/test_resolution.py b/tests/e2e/compilation/test_resolution.py index 3444af2e9..71edaa143 100644 --- a/tests/e2e/compilation/test_resolution.py +++ b/tests/e2e/compilation/test_resolution.py @@ -3,7 +3,6 @@ import pytest from crytic_compile import CryticCompile from crytic_compile.platform.solc_standard_json import SolcStandardJson -from solc_select import solc_select from slither import Slither @@ -24,8 +23,8 @@ def test_node_modules() -> None: _run_all_detectors(slither) -def test_contract_name_collision(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.0")) +def test_contract_name_collision(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") standard_json = SolcStandardJson() standard_json.add_source_file( Path(TEST_DATA_DIR, "test_contract_name_collisions", "a.sol").as_posix() @@ -40,7 +39,7 @@ def test_contract_name_collision(use_solc_version) -> None: _run_all_detectors(slither) -def test_cycle(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.0")) +def test_cycle(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") slither = Slither(Path(TEST_DATA_DIR, "test_cyclic_import", "a.sol").as_posix(), solc=solc_path) _run_all_detectors(slither) diff --git a/tests/tools/read-storage/test_read_storage.py b/tests/tools/read-storage/test_read_storage.py index 3b83df855..6d2ab007d 100644 --- a/tests/tools/read-storage/test_read_storage.py +++ b/tests/tools/read-storage/test_read_storage.py @@ -90,8 +90,8 @@ def deploy_contract(w3, ganache, contract_bin, contract_abi) -> Contract: # pylint: disable=too-many-locals @pytest.mark.usefixtures("web3", "ganache") -def test_read_storage(web3, ganache, use_solc_version) -> None: - solc_path = next(use_solc_version(version="0.8.10")) +def test_read_storage(web3, ganache, solc_binary_path) -> None: + solc_path = solc_binary_path(version="0.8.10") assert web3.is_connected() bin_path = Path(TEST_DATA_DIR, "StorageLayout.bin").as_posix() diff --git a/tests/unit/core/test_arithmetic.py b/tests/unit/core/test_arithmetic.py index 6e7843ea0..6de63d767 100644 --- a/tests/unit/core/test_arithmetic.py +++ b/tests/unit/core/test_arithmetic.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.utils.arithmetic import unchecked_arithemtic_usage @@ -8,8 +7,8 @@ from slither.utils.arithmetic import unchecked_arithemtic_usage TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "arithmetic_usage" -def test_arithmetic_usage(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) +def test_arithmetic_usage(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") slither = Slither(Path(TEST_DATA_DIR, "test.sol").as_posix(), solc=solc_path) assert { diff --git a/tests/unit/core/test_code_comments.py b/tests/unit/core/test_code_comments.py index 4fbbae658..2dd07caf0 100644 --- a/tests/unit/core/test_code_comments.py +++ b/tests/unit/core/test_code_comments.py @@ -8,8 +8,8 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CUSTOM_COMMENTS_TEST_DATA_DIR = Path(TEST_DATA_DIR, "custom_comments") -def test_upgradeable_comments(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.10")) +def test_upgradeable_comments(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.10") slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "upgrade.sol").as_posix(), solc=solc_path) compilation_unit = slither.compilation_units[0] proxy = compilation_unit.get_contract_from_name("Proxy")[0] @@ -27,11 +27,13 @@ def test_upgradeable_comments(use_solc_version) -> None: assert v1.upgradeable_version == "version_1" -def test_contract_comments(use_solc_version) -> None: +def test_contract_comments(solc_binary_path) -> None: comments = " @title Test Contract\n @dev Test comment" - solc_path = next(use_solc_version("0.8.10")) - slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path) + solc_path = solc_binary_path("0.8.10") + slither = Slither( + Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path + ) compilation_unit = slither.compilation_units[0] contract = compilation_unit.get_contract_from_name("A")[0] @@ -40,8 +42,10 @@ def test_contract_comments(use_solc_version) -> None: # Old solc versions have a different parsing of comments # the initial space (after *) is also not kept on every line comments = "@title Test Contract\n@dev Test comment" - solc_path = next(use_solc_version("0.5.16")) - slither = Slither(Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path) + solc_path = solc_binary_path("0.5.16") + slither = Slither( + Path(CUSTOM_COMMENTS_TEST_DATA_DIR, "contract_comment.sol").as_posix(), solc=solc_path + ) compilation_unit = slither.compilation_units[0] contract = compilation_unit.get_contract_from_name("A")[0] diff --git a/tests/unit/core/test_constant_folding.py b/tests/unit/core/test_constant_folding.py index d01b35dc0..a572987a4 100644 --- a/tests/unit/core/test_constant_folding.py +++ b/tests/unit/core/test_constant_folding.py @@ -6,15 +6,17 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CONSTANT_FOLDING_TEST_ROOT = Path(TEST_DATA_DIR, "constant_folding") -def test_constant_folding_unary(use_solc_version): - solc_path = next(use_solc_version("0.8.0")) +def test_constant_folding_unary(solc_binary_path): + solc_path = solc_binary_path("0.8.0") file = Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_unary.sol").as_posix() Slither(file, solc=solc_path) -def test_constant_folding_rational(use_solc_version): - solc_path = next(use_solc_version("0.8.0")) - s = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_rational.sol").as_posix(), solc=solc_path) +def test_constant_folding_rational(solc_binary_path): + solc_path = solc_binary_path("0.8.0") + s = Slither( + Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_rational.sol").as_posix(), solc=solc_path + ) contract = s.get_contract_from_name("C")[0] variable_a = contract.get_state_variable_from_name("a") @@ -52,9 +54,11 @@ def test_constant_folding_rational(use_solc_version): assert str(ConstantFolding(variable_g.expression, "int64").result()) == "-7" -def test_constant_folding_binary_expressions(use_solc_version): - solc_path = next(use_solc_version("0.8.0")) - sl = Slither(Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix(), solc=solc_path) +def test_constant_folding_binary_expressions(solc_binary_path): + solc_path = solc_binary_path("0.8.0") + sl = Slither( + Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix(), solc=solc_path + ) contract = sl.get_contract_from_name("BinOp")[0] variable_a = contract.get_state_variable_from_name("a") diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 3c1e7175e..776082935 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -1,6 +1,5 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.core.variables.state_variable import StateVariable @@ -9,26 +8,30 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" CONTRACT_DECL_TEST_ROOT = Path(TEST_DATA_DIR, "contract_declaration") -def test_abstract_contract(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.0")) +def test_abstract_contract(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) assert not slither.contracts[0].is_fully_implemented - solc_path = next(use_solc_version("0.5.0")) - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path) + solc_path = solc_binary_path("0.5.0") + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path + ) assert not slither.contracts[0].is_fully_implemented slither = Slither( Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc_force_legacy_json=True, - solc=solc_path + solc=solc_path, ) assert not slither.contracts[0].is_fully_implemented -def test_private_variable(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "private_variable.sol").as_posix(), solc=solc_path) +def test_private_variable(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "private_variable.sol").as_posix(), solc=solc_path + ) contract_c = slither.get_contract_from_name("C")[0] f = contract_c.functions[0] var_read = f.variables_read[0] diff --git a/tests/unit/core/test_function_declaration.py b/tests/unit/core/test_function_declaration.py index 4faa9d919..651f449de 100644 --- a/tests/unit/core/test_function_declaration.py +++ b/tests/unit/core/test_function_declaration.py @@ -5,7 +5,6 @@ tests that `tests/test_function.sol` gets translated into correct and that these objects behave correctly. """ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.core.declarations.function import FunctionType @@ -15,9 +14,9 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" FUNC_DELC_TEST_ROOT = Path(TEST_DATA_DIR, "function_declaration") -def test_functions(use_solc_version): +def test_functions(solc_binary_path): # pylint: disable=too-many-statements - solc_path = next(use_solc_version("0.6.12")) + solc_path = solc_binary_path("0.6.12") file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() slither = Slither(file, solc=solc_path) functions = slither.get_contract_from_name("TestFunction")[0].available_functions_as_dict() @@ -248,8 +247,8 @@ def test_functions(use_solc_version): assert f.return_type[0] == ElementaryType("bool") -def test_function_can_send_eth(use_solc_version): - solc_path = next(use_solc_version("0.6.12")) +def test_function_can_send_eth(solc_binary_path): + solc_path = solc_binary_path("0.6.12") file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() slither = Slither(file, solc=solc_path) compilation_unit = slither.compilation_units[0] @@ -273,8 +272,8 @@ def test_function_can_send_eth(use_solc_version): assert functions["highlevel_call_via_external()"].can_send_eth() is False -def test_reentrant(use_solc_version): - solc_path = next(use_solc_version("0.8.10")) +def test_reentrant(solc_binary_path): + solc_path = solc_binary_path("0.8.10") file = Path(FUNC_DELC_TEST_ROOT, "test_function_reentrant.sol").as_posix() slither = Slither(file, solc=solc_path) compilation_unit = slither.compilation_units[0] @@ -290,8 +289,8 @@ def test_reentrant(use_solc_version): assert functions["internal_and_reentrant()"].is_reentrant -def test_public_variable(use_solc_version) -> None: - solc_path = next(use_solc_version("0.6.12")) +def test_public_variable(solc_binary_path) -> None: + solc_path = solc_binary_path("0.6.12") file = Path(FUNC_DELC_TEST_ROOT, "test_function.sol").as_posix() slither = Slither(file, solc=solc_path) contracts = slither.get_contract_from_name("TestFunction") diff --git a/tests/unit/core/test_source_mapping.py b/tests/unit/core/test_source_mapping.py index 2dd8c2435..1eec9d32a 100644 --- a/tests/unit/core/test_source_mapping.py +++ b/tests/unit/core/test_source_mapping.py @@ -8,8 +8,8 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" SRC_MAPPING_TEST_ROOT = Path(TEST_DATA_DIR, "src_mapping") -def test_source_mapping(use_solc_version): - solc_path = next(use_solc_version("0.6.12")) +def test_source_mapping(solc_binary_path): + solc_path = solc_binary_path("0.6.12") file = Path(SRC_MAPPING_TEST_ROOT, "inheritance.sol").as_posix() slither = Slither(file, solc=solc_path) @@ -78,11 +78,11 @@ def _sort_references_lines(refs: list) -> list: return sorted([ref.lines[0] for ref in refs]) -def test_references_user_defined_aliases(use_solc_version): +def test_references_user_defined_aliases(solc_binary_path): """ Tests if references are filled correctly for user defined aliases (declared using "type [...] is [...]" statement). """ - solc_path = next(use_solc_version("0.8.16")) + solc_path = solc_binary_path("0.8.16") file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedAliases.sol").as_posix() slither = Slither(file, solc=solc_path) @@ -101,11 +101,11 @@ def test_references_user_defined_aliases(use_solc_version): assert lines == [13, 16] -def test_references_user_defined_types_when_casting(use_solc_version): +def test_references_user_defined_types_when_casting(solc_binary_path): """ Tests if references are filled correctly for user defined types in case of casting. """ - solc_path = next(use_solc_version("0.8.16")) + solc_path = solc_binary_path("0.8.16") file = Path(SRC_MAPPING_TEST_ROOT, "ReferencesUserDefinedTypesCasting.sol").as_posix() slither = Slither(file, solc=solc_path) diff --git a/tests/unit/core/test_storage_layout.py b/tests/unit/core/test_storage_layout.py index fd21ce009..3337eb0f7 100644 --- a/tests/unit/core/test_storage_layout.py +++ b/tests/unit/core/test_storage_layout.py @@ -1,16 +1,15 @@ import json from pathlib import Path from subprocess import PIPE, Popen -from solc_select import solc_select from slither import Slither TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" STORAGE_TEST_ROOT = Path(TEST_DATA_DIR, "storage_layout") -def test_storage_layout(use_solc_version): +def test_storage_layout(solc_binary_path): # the storage layout has not yet changed between solidity versions so we will test with one version of the compiler - solc_path = next(use_solc_version("0.8.10")) + solc_path = solc_binary_path("0.8.10") test_item = Path(STORAGE_TEST_ROOT, "storage_layout-0.8.10.sol").as_posix() sl = Slither(test_item, disallow_partial=True, solc=solc_path) @@ -35,4 +34,4 @@ def test_storage_layout(use_solc_version): except KeyError as e: print(f"not found {e} ") process.communicate() - assert process.returncode == 0 \ No newline at end of file + assert process.returncode == 0 diff --git a/tests/unit/core/test_using_for.py b/tests/unit/core/test_using_for.py index 7b0e2d1d6..ebba72eef 100644 --- a/tests/unit/core/test_using_for.py +++ b/tests/unit/core/test_using_for.py @@ -1,7 +1,6 @@ from pathlib import Path from crytic_compile import CryticCompile from crytic_compile.platform.solc_standard_json import SolcStandardJson -from solc_select import solc_select from slither import Slither from slither.slithir.operations import InternalCall, LibraryCall @@ -12,8 +11,8 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" USING_FOR_TEST_DATA_DIR = Path(TEST_DATA_DIR, "using_for") -def test_using_for_global_collision(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) +def test_using_for_global_collision(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") standard_json = SolcStandardJson() for source_file in Path(USING_FOR_TEST_DATA_DIR, "using_for_global_collision").rglob("*.sol"): standard_json.add_source_file(Path(source_file).as_posix()) @@ -22,9 +21,11 @@ def test_using_for_global_collision(use_solc_version) -> None: _run_all_detectors(sl) -def test_using_for_top_level_same_name(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-3-0.8.0.sol").as_posix(), solc=solc_path) +def test_using_for_top_level_same_name(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") + slither = Slither( + Path(USING_FOR_TEST_DATA_DIR, "using-for-3-0.8.0.sol").as_posix(), solc=solc_path + ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") for ir in libCall.all_slithir_operations(): @@ -33,9 +34,11 @@ def test_using_for_top_level_same_name(use_solc_version) -> None: assert False -def test_using_for_top_level_implicit_conversion(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-4-0.8.0.sol").as_posix(), solc=solc_path) +def test_using_for_top_level_implicit_conversion(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") + slither = Slither( + Path(USING_FOR_TEST_DATA_DIR, "using-for-4-0.8.0.sol").as_posix(), solc=solc_path + ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint16)") for ir in libCall.all_slithir_operations(): @@ -44,10 +47,11 @@ def test_using_for_top_level_implicit_conversion(use_solc_version) -> None: assert False -def test_using_for_alias_top_level(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) +def test_using_for_alias_top_level(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") slither = Slither( - Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-top-level-0.8.0.sol").as_posix(), solc=solc_path + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-top-level-0.8.0.sol").as_posix(), + solc=solc_path, ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") @@ -64,10 +68,11 @@ def test_using_for_alias_top_level(use_solc_version) -> None: assert False -def test_using_for_alias_contract(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) +def test_using_for_alias_contract(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") slither = Slither( - Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-contract-0.8.0.sol").as_posix(), solc=solc_path + Path(USING_FOR_TEST_DATA_DIR, "using-for-alias-contract-0.8.0.sol").as_posix(), + solc=solc_path, ) contract_c = slither.get_contract_from_name("C")[0] libCall = contract_c.get_function_from_full_name("libCall(uint256)") @@ -84,9 +89,11 @@ def test_using_for_alias_contract(use_solc_version) -> None: assert False -def test_using_for_in_library(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.15")) - slither = Slither(Path(USING_FOR_TEST_DATA_DIR, "using-for-in-library-0.8.0.sol").as_posix(), solc=solc_path) +def test_using_for_in_library(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.15") + slither = Slither( + Path(USING_FOR_TEST_DATA_DIR, "using-for-in-library-0.8.0.sol").as_posix(), solc=solc_path + ) contract_c = slither.get_contract_from_name("A")[0] libCall = contract_c.get_function_from_full_name("a(uint256)") for ir in libCall.all_slithir_operations(): diff --git a/tests/unit/slithir/test_operation_reads.py b/tests/unit/slithir/test_operation_reads.py index 10ae47404..fc3018cc8 100644 --- a/tests/unit/slithir/test_operation_reads.py +++ b/tests/unit/slithir/test_operation_reads.py @@ -1,6 +1,5 @@ from pathlib import Path from collections import namedtuple -from solc_select import solc_select from slither import Slither from slither.slithir.operations import Operation, NewContract @@ -28,11 +27,11 @@ OperationTest = namedtuple("OperationTest", "contract_name slithir_op") OPERATION_TEST = [OperationTest("NewContract", NewContract)] -def test_operation_reads(use_solc_version) -> None: +def test_operation_reads(solc_binary_path) -> None: """ Every slithir operation has its own contract and reads all local and state variables in readAllLocalVariables and readAllStateVariables, respectively. """ - solc_path = next(use_solc_version("0.8.15")) + solc_path = solc_binary_path("0.8.15") slither = Slither(Path(TEST_DATA_DIR, "operation_reads.sol").as_posix(), solc=solc_path) for op_test in OPERATION_TEST: diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 34ad5e4fe..865e3263d 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -230,9 +230,8 @@ # assert have_phi_for_var(df, ssa_lvalue) - # @contextmanager -# def slither_from_source(source_code: str, use_solc_version, solc_version: str = "latest"): +# def slither_from_source(source_code: str, solc_binary_path, solc_version: str = "latest"): # """Yields a Slither instance using source_code string and solc_version # Creates a temporary file and changes the solc-version temporary to solc_version. @@ -243,7 +242,7 @@ # with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: # fname = f.name # f.write(source_code) -# solc_path = use_solc_version(solc_version) +# solc_path = solc_binary_path(solc_version) # yield Slither(fname, solc=solc_path) # finally: # pathlib.Path(fname).unlink() diff --git a/tests/unit/slithir/test_ternary_expressions.py b/tests/unit/slithir/test_ternary_expressions.py index 3fb5159f7..68a6089cc 100644 --- a/tests/unit/slithir/test_ternary_expressions.py +++ b/tests/unit/slithir/test_ternary_expressions.py @@ -8,9 +8,9 @@ from slither.core.expressions import AssignmentOperation, TupleExpression TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" # pylint: disable=too-many-nested-blocks -def test_ternary_conversions(use_solc_version) -> None: +def test_ternary_conversions(solc_binary_path) -> None: """This tests that true and false sons define the same number of variables that the father node declares""" - solc_path = next(use_solc_version("0.8.0")) + solc_path = solc_binary_path("0.8.0") slither = Slither(Path(TEST_DATA_DIR, "ternary_expressions.sol").as_posix(), solc=solc_path) for contract in slither.contracts: for function in contract.functions: diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index d4c40f42f..35f6cea0e 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.utils.code_generation import ( @@ -9,8 +8,8 @@ from slither.utils.code_generation import ( TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "code_generation" -def test_interface_generation(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.4")) +def test_interface_generation(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.4") sl = Slither(Path(TEST_DATA_DIR, "CodeGeneration.sol").as_posix(), solc=solc_path) diff --git a/tests/unit/utils/test_functions_ids.py b/tests/unit/utils/test_functions_ids.py index e6ca9f539..23888774b 100644 --- a/tests/unit/utils/test_functions_ids.py +++ b/tests/unit/utils/test_functions_ids.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither # % solc functions_ids.sol --hashes @@ -41,8 +40,8 @@ signatures = { TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" -def test_functions_ids(use_solc_version) -> None: - solc_path = next(use_solc_version("0.7.0")) +def test_functions_ids(solc_binary_path) -> None: + solc_path = solc_binary_path("0.7.0") file = Path(TEST_DATA_DIR, "functions_ids.sol").as_posix() sl = Slither(file, solc=solc_path) contracts_c = sl.get_contract_from_name("C") diff --git a/tests/unit/utils/test_type_helpers.py b/tests/unit/utils/test_type_helpers.py index 6a71a0a19..420329ab2 100644 --- a/tests/unit/utils/test_type_helpers.py +++ b/tests/unit/utils/test_type_helpers.py @@ -1,12 +1,11 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" -def test_function_id_rec_structure(use_solc_version) -> None: - solc_path = next(use_solc_version("0.8.0")) +def test_function_id_rec_structure(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") slither = Slither(Path(TEST_DATA_DIR, "type_helpers.sol").as_posix(), solc=solc_path) for compilation_unit in slither.compilation_units: for function in compilation_unit.functions: From d8d95b5801da1c9880f688f7e35456eca7a15232 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 29 Mar 2023 10:15:15 -0500 Subject: [PATCH 017/105] add fixture slither_from_source --- tests/conftest.py | 29 +- tests/unit/core/test_code_comments.py | 1 - tests/unit/core/test_constant_folding.py | 4 +- tests/unit/core/test_source_mapping.py | 1 - tests/unit/slithir/test_operation_reads.py | 4 - tests/unit/slithir/test_ssa_generation.py | 2118 ++++++++--------- .../unit/slithir/test_ternary_expressions.py | 5 - tests/unit/utils/test_functions_ids.py | 4 - 8 files changed, 1079 insertions(+), 1087 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 63f40b672..c6feead55 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,9 +1,14 @@ +# pylint: disable=redefined-outer-name +from pathlib import Path +from contextlib import contextmanager +from tempfile import NamedTemporaryFile import pytest from filelock import FileLock from solc_select import solc_select +from slither import Slither -@pytest.fixture(scope="session") +@pytest.fixture() def solc_binary_path(): def inner(version): lock = FileLock(f"{version}.lock", timeout=60) @@ -14,3 +19,25 @@ def solc_binary_path(): return solc_select.artifact_path(version) return inner + + +@pytest.fixture() +def slither_from_source(solc_binary_path): + @contextmanager + def inner(source_code: str, solc_version: str = "0.8.19"): + """Yields a Slither instance using source_code string and solc_version + + Creates a temporary file and changes the solc-version temporary to solc_version. + """ + + fname = "" + try: + with NamedTemporaryFile(mode="w", suffix=".sol", delete=False) as f: + fname = f.name + f.write(source_code) + solc_path = solc_binary_path(solc_version) + yield Slither(fname, solc=solc_path) + finally: + Path(fname).unlink() + + return inner diff --git a/tests/unit/core/test_code_comments.py b/tests/unit/core/test_code_comments.py index 2dd07caf0..a943591dc 100644 --- a/tests/unit/core/test_code_comments.py +++ b/tests/unit/core/test_code_comments.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither diff --git a/tests/unit/core/test_constant_folding.py b/tests/unit/core/test_constant_folding.py index a572987a4..489b4e0ec 100644 --- a/tests/unit/core/test_constant_folding.py +++ b/tests/unit/core/test_constant_folding.py @@ -55,9 +55,9 @@ def test_constant_folding_rational(solc_binary_path): def test_constant_folding_binary_expressions(solc_binary_path): - solc_path = solc_binary_path("0.8.0") sl = Slither( - Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix(), solc=solc_path + Path(CONSTANT_FOLDING_TEST_ROOT, "constant_folding_binop.sol").as_posix(), + solc=solc_binary_path("0.8.0"), ) contract = sl.get_contract_from_name("BinOp")[0] diff --git a/tests/unit/core/test_source_mapping.py b/tests/unit/core/test_source_mapping.py index 1eec9d32a..fe5335977 100644 --- a/tests/unit/core/test_source_mapping.py +++ b/tests/unit/core/test_source_mapping.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.core.declarations import Function diff --git a/tests/unit/slithir/test_operation_reads.py b/tests/unit/slithir/test_operation_reads.py index fc3018cc8..b82ef9d48 100644 --- a/tests/unit/slithir/test_operation_reads.py +++ b/tests/unit/slithir/test_operation_reads.py @@ -47,7 +47,3 @@ def test_operation_reads(solc_binary_path) -> None: local_function = target.get_function_from_signature("readAllLocalVariables()") num_local_vars = len(local_function.local_variables) check_num_local_vars_read(local_function, op_test.slithir_op, num_local_vars) - - -if __name__ == "__main__": - test_operation_reads() diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 865e3263d..4e26aa54d 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1,1070 +1,1050 @@ # # pylint: disable=too-many-lines -# import pathlib -# from argparse import ArgumentTypeError -# from collections import defaultdict -# from contextlib import contextmanager -# from inspect import getsourcefile -# from tempfile import NamedTemporaryFile -# from typing import Union, List, Optional, Dict, Callable - -# import pytest -# from solc_select import solc_select -# from solc_select.solc_select import valid_version as solc_valid_version - -# from slither import Slither -# from slither.core.cfg.node import Node, NodeType -# from slither.core.declarations import Function, Contract -# from slither.core.variables.local_variable import LocalVariable -# from slither.core.variables.state_variable import StateVariable -# from slither.slithir.operations import ( -# OperationWithLValue, -# Phi, -# Assignment, -# HighLevelCall, -# Return, -# Operation, -# Binary, -# BinaryType, -# InternalCall, -# Index, -# InitArray, -# ) -# from slither.slithir.utils.ssa import is_used_later -# from slither.slithir.variables import ( -# Constant, -# ReferenceVariable, -# LocalIRVariable, -# StateIRVariable, -# TemporaryVariableSSA, -# ) - -# # Directory of currently executing script. Will be used as basis for temporary file names. -# SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore - - -# def valid_version(ver: str) -> bool: -# """Wrapper function to check if the solc-version is valid - -# The solc_select function raises and exception but for checks below, -# only a bool is needed. -# """ -# try: -# solc_valid_version(ver) -# return True -# except ArgumentTypeError: -# return False - - -# def have_ssa_if_ir(function: Function) -> None: -# """Verifies that all nodes in a function that have IR also have SSA IR""" -# for n in function.nodes: -# if n.irs: -# assert n.irs_ssa - - -# # pylint: disable=too-many-branches, too-many-locals -# def ssa_basic_properties(function: Function) -> None: -# """Verifies that basic properties of ssa holds - -# 1. Every name is defined only once -# 2. A l-value is never index zero - there is always a zero-value available for each var -# 3. Every r-value is at least defined at some point -# 4. The number of ssa defs is >= the number of assignments to var -# 5. Function parameters SSA are stored in function.parameters_ssa -# - if function parameter is_storage it refers to a fake variable -# 6. Function returns SSA are stored in function.returns_ssa -# - if function return is_storage it refers to a fake variable -# """ -# ssa_lvalues = set() -# ssa_rvalues = set() -# lvalue_assignments: Dict[str, int] = {} - -# for n in function.nodes: -# for ir in n.irs: -# if isinstance(ir, OperationWithLValue) and ir.lvalue: -# name = ir.lvalue.name -# if name is None: -# continue -# if name in lvalue_assignments: -# lvalue_assignments[name] += 1 -# else: -# lvalue_assignments[name] = 1 - -# for ssa in n.irs_ssa: -# if isinstance(ssa, OperationWithLValue): -# # 1 -# assert ssa.lvalue not in ssa_lvalues -# ssa_lvalues.add(ssa.lvalue) - -# # 2 (if Local/State Var) -# ssa_lvalue = ssa.lvalue -# if isinstance(ssa_lvalue, (StateIRVariable, LocalIRVariable)): -# assert ssa_lvalue.index > 0 - -# for rvalue in filter( -# lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read -# ): -# ssa_rvalues.add(rvalue) - -# # 3 -# # Each var can have one non-defined value, the value initially held. Typically, -# # var_0, i_0, state_0 or similar. -# undef_vars = set() -# for rvalue in ssa_rvalues: -# if rvalue not in ssa_lvalues: -# assert rvalue.non_ssa_version not in undef_vars -# undef_vars.add(rvalue.non_ssa_version) - -# # 4 -# ssa_defs: Dict[str, int] = defaultdict(int) -# for v in ssa_lvalues: -# if v and v.name: -# ssa_defs[v.name] += 1 - -# for (k, count) in lvalue_assignments.items(): -# assert ssa_defs[k] >= count - -# # Helper 5/6 -# def check_property_5_and_6( -# variables: List[LocalVariable], ssavars: List[LocalIRVariable] -# ) -> None: -# for var in filter(lambda x: x.name, variables): -# ssa_vars = [x for x in ssavars if x.non_ssa_version == var] -# assert len(ssa_vars) == 1 -# ssa_var = ssa_vars[0] -# assert var.is_storage == ssa_var.is_storage -# if ssa_var.is_storage: -# assert len(ssa_var.refers_to) == 1 -# assert ssa_var.refers_to[0].location == "reference_to_storage" - -# # 5 -# check_property_5_and_6(function.parameters, function.parameters_ssa) - -# # 6 -# check_property_5_and_6(function.returns, function.returns_ssa) - - -# def ssa_phi_node_properties(f: Function) -> None: -# """Every phi-function should have as many args as predecessors - -# This does not apply if the phi-node refers to state variables, -# they make use os special phi-nodes for tracking potential values -# a state variable can have -# """ -# for node in f.nodes: -# for ssa in node.irs_ssa: -# if isinstance(ssa, Phi): -# n = len(ssa.read) -# if not isinstance(ssa.lvalue, StateIRVariable): -# assert len(node.fathers) == n - - -# # TODO (hbrodin): This should probably go into another file, not specific to SSA -# def dominance_properties(f: Function) -> None: -# """Verifies properties related to dominators holds - -# 1. Every node have an immediate dominator except entry_node which have none -# 2. From every node immediate dominator there is a path via its successors to the node -# """ - -# def find_path(from_node: Node, to: Node) -> bool: -# visited = set() -# worklist = list(from_node.sons) -# while worklist: -# first, *worklist = worklist -# if first == to: -# return True -# visited.add(first) -# for successor in first.sons: -# if successor not in visited: -# worklist.append(successor) -# return False - -# for node in f.nodes: -# if node is f.entry_point: -# assert node.immediate_dominator is None -# else: -# assert node.immediate_dominator is not None -# assert find_path(node.immediate_dominator, node) - - -# def phi_values_inserted(f: Function) -> None: -# """Verifies that phi-values are inserted at the right places - -# For every node that has a dominance frontier, any def (including -# phi) should be a phi function in its dominance frontier -# """ - -# def have_phi_for_var( -# node: Node, var: Union[StateIRVariable, LocalIRVariable, TemporaryVariableSSA] -# ) -> bool: -# """Checks if a node has a phi-instruction for var - -# The ssa version would ideally be checked, but then -# more data flow analysis would be needed, for cases -# where a new def for var is introduced before reaching -# DF -# """ -# non_ssa = var.non_ssa_version -# for ssa in node.irs_ssa: -# if isinstance(ssa, Phi): -# if non_ssa in map( -# lambda ssa_var: ssa_var.non_ssa_version, -# [ -# r -# for r in ssa.read -# if isinstance(r, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA)) -# ], -# ): -# return True -# return False - -# for node in filter(lambda n: n.dominance_frontier, f.nodes): -# for df in node.dominance_frontier: -# for ssa in node.irs_ssa: -# if isinstance(ssa, OperationWithLValue): -# ssa_lvalue = ssa.lvalue -# if isinstance( -# ssa_lvalue, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA) -# ) and is_used_later(node, ssa_lvalue): -# assert have_phi_for_var(df, ssa_lvalue) - - -# @contextmanager -# def slither_from_source(source_code: str, solc_binary_path, solc_version: str = "latest"): -# """Yields a Slither instance using source_code string and solc_version - -# Creates a temporary file and changes the solc-version temporary to solc_version. -# """ - -# fname = "" -# try: -# with NamedTemporaryFile(dir=SCRIPT_DIR, mode="w", suffix=".sol", delete=False) as f: -# fname = f.name -# f.write(source_code) -# solc_path = solc_binary_path(solc_version) -# yield Slither(fname, solc=solc_path) -# finally: -# pathlib.Path(fname).unlink() - - -# def verify_properties_hold(source_code_or_slither: Union[str, Slither]) -> None: -# """Ensures that basic properties of SSA hold true""" - -# def verify_func(func: Function) -> None: -# have_ssa_if_ir(func) -# phi_values_inserted(func) -# ssa_basic_properties(func) -# ssa_phi_node_properties(func) -# dominance_properties(func) - -# def verify(slither: Slither) -> None: -# for cu in slither.compilation_units: -# for func in cu.functions_and_modifiers: -# _dump_function(func) -# verify_func(func) -# for contract in cu.contracts: -# for f in contract.functions: -# if f.is_constructor or f.is_constructor_variables: -# _dump_function(f) -# verify_func(f) - -# if isinstance(source_code_or_slither, Slither): -# verify(source_code_or_slither) -# else: -# slither: Slither -# with slither_from_source(source_code_or_slither) as slither: -# verify(slither) - - -# def _dump_function(f: Function) -> None: -# """Helper function to print nodes/ssa ir for a function or modifier""" -# print(f"---- {f.name} ----") -# for n in f.nodes: -# print(n) -# for ir in n.irs_ssa: -# print(f"\t{ir}") -# print("") - - -# def _dump_functions(c: Contract) -> None: -# """Helper function to print functions and modifiers of a contract""" -# for f in c.functions_and_modifiers: -# _dump_function(f) - - -# def get_filtered_ssa(f: Union[Function, Node], flt: Callable) -> List[Operation]: -# """Returns a list of all ssanodes filtered by filter for all nodes in function f""" -# if isinstance(f, Function): -# return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] - -# assert isinstance(f, Node) -# return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] - - -# def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: -# """Returns a list of all ssanodes of a specific type for all nodes in function f""" -# return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) - - -# def test_multi_write() -> None: -# contract = """ -# pragma solidity ^0.8.11; -# contract Test { -# function multi_write(uint val) external pure returns(uint) { -# val = 1; -# val = 2; -# val = 3; -# } -# }""" -# verify_properties_hold(contract) - - -# def test_single_branch_phi() -> None: -# contract = """ -# pragma solidity ^0.8.11; -# contract Test { -# function single_branch_phi(uint val) external pure returns(uint) { -# if (val == 3) { -# val = 9; -# } -# return val; -# } -# } -# """ -# verify_properties_hold(contract) - - -# def test_basic_phi() -> None: -# contract = """ -# pragma solidity ^0.8.11; -# contract Test { -# function basic_phi(uint val) external pure returns(uint) { -# if (val == 3) { -# val = 9; -# } else { -# val = 1; -# } -# return val; -# } -# } -# """ -# verify_properties_hold(contract) - - -# def test_basic_loop_phi() -> None: -# contract = """ -# pragma solidity ^0.8.11; -# contract Test { -# function basic_loop_phi(uint val) external pure returns(uint) { -# for (uint i=0;i<128;i++) { -# val = val + 1; -# } -# return val; -# } -# } -# """ -# verify_properties_hold(contract) - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_phi_propagation_loop(): -# contract = """ -# pragma solidity ^0.8.11; -# contract Test { -# function looping(uint v) external pure returns(uint) { -# uint val = 0; -# for (uint i=0;i i) { -# val = i; -# } else { -# val = 3; -# } -# } -# return val; -# } -# } -# """ -# verify_properties_hold(contract) - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_free_function_properties(): -# contract = """ -# pragma solidity ^0.8.11; - -# function free_looping(uint v) returns(uint) { -# uint val = 0; -# for (uint i=0;i i) { -# val = i; -# } else { -# val = 3; -# } -# } -# return val; -# } - -# contract Test {} -# """ -# verify_properties_hold(contract) - - -# def test_ssa_inter_transactional() -> None: -# source = """ -# pragma solidity ^0.8.11; -# contract A { -# uint my_var_A; -# uint my_var_B; - -# function direct_set(uint i) public { -# my_var_A = i; -# } - -# function direct_set_plus_one(uint i) public { -# my_var_A = i + 1; -# } - -# function indirect_set() public { -# my_var_B = my_var_A; -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.contracts[0] -# variables = c.variables_as_dict -# funcs = c.available_functions_as_dict() -# direct_set = funcs["direct_set(uint256)"] -# # Skip entry point and go straight to assignment ir -# assign1 = direct_set.nodes[1].irs_ssa[0] -# assert isinstance(assign1, Assignment) - -# assign2 = direct_set.nodes[1].irs_ssa[0] -# assert isinstance(assign2, Assignment) - -# indirect_set = funcs["indirect_set()"] -# phi = indirect_set.entry_point.irs_ssa[0] -# assert isinstance(phi, Phi) -# # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set -# assert len(phi.rvalues) == 3 -# assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) -# assert assign1.lvalue in phi.rvalues -# assert assign2.lvalue in phi.rvalues - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_ssa_phi_callbacks(): -# source = """ -# pragma solidity ^0.8.11; -# contract A { -# uint my_var_A; -# uint my_var_B; - -# function direct_set(uint i) public { -# my_var_A = i; -# } - -# function use_a() public { -# // Expect a phi-node here -# my_var_B = my_var_A; -# B b = new B(); -# my_var_A = 3; -# b.do_stuff(); -# // Expect a phi-node here -# my_var_B = my_var_A; -# } -# } - -# contract B { -# function do_stuff() public returns (uint) { -# // This could be calling back into A -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.get_contract_from_name("A")[0] -# _dump_functions(c) -# f = [x for x in c.functions if x.name == "use_a"][0] -# var_a = [x for x in c.variables if x.name == "my_var_A"][0] - -# entry_phi = [ -# x -# for x in f.entry_point.irs_ssa -# if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a -# ][0] -# # The four potential sources are: -# # 1. initial value -# # 2. my_var_A = i; -# # 3. my_var_A = 3; -# # 4. phi-value after call to b.do_stuff(), which could be reentrant. -# assert len(entry_phi.rvalues) == 4 - -# # Locate the first high-level call (should be b.do_stuff()) -# call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] -# n = call_node.node -# # Get phi-node after call -# after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] -# # The two sources for this phi node is -# # 1. my_var_A = i; -# # 2. my_var_A = 3; -# assert isinstance(after_call_phi, Phi) -# assert len(after_call_phi.rvalues) == 2 - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_storage_refers_to(): -# """Test the storage aspects of the SSA IR - -# When declaring a var as being storage, start tracking what storage it refers_to. -# When a phi-node is created, ensure refers_to is propagated to the phi-node. -# Assignments also propagate refers_to. -# Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) -# below, create additional versions of the variables it refers to record that a a -# write was made. In the current implementation, this is referenced by phis. -# """ -# source = """ -# contract A{ - -# struct St{ -# int v; -# } - -# St state0; -# St state1; - -# function f() public{ -# St storage s = state0; -# if(true){ -# s = state1; -# } -# s.v = 10; -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.contracts[0] -# f = c.functions[0] - -# phinodes = get_ssa_of_type(f, Phi) -# # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the -# # ReferenceVariable write s.v = 10. -# assert len(phinodes) == 5 - -# # Assign s to state0, s to state1, s.v to 10 -# assigns = get_ssa_of_type(f, Assignment) -# assert len(assigns) == 3 - -# # The IR variables have is_storage -# assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) - -# # s.v ReferenceVariable points to one of the phi vars... -# ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] -# sphis = [x for x in phinodes if x.lvalue == ref0.points_to] -# assert len(sphis) == 1 -# sphi = sphis[0] - -# # ...and that phi refers to the two entry phi-values -# entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] -# assert len(entryphi) == 2 - -# # The remaining two phis are the ones recording that write through ReferenceVariable occured -# for ephi in entryphi: -# phinodes.remove(ephi) -# phinodes.remove(sphi) -# assert len(phinodes) == 2 - -# # And they are recorded in one of the entry phis -# assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues -# assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues - - -# @pytest.mark.skipif( -# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -# ) -# def test_initial_version_exists_for_locals(): -# """ -# In solidity you can write statements such as -# uint a = a + 1, this test ensures that can be handled for local variables. -# """ -# src = """ -# contract C { -# function func() internal { -# uint a = a + 1; -# } -# } -# """ -# with slither_from_source(src, "0.4.0") as slither: -# verify_properties_hold(slither) -# c = slither.contracts[0] -# f = c.functions[0] - -# addition = get_ssa_of_type(f, Binary)[0] -# assert addition.type == BinaryType.ADDITION -# assert isinstance(addition.variable_right, Constant) -# a_0 = addition.variable_left -# assert a_0.index == 0 -# assert a_0.name == "a" - -# assignment = get_ssa_of_type(f, Assignment)[0] -# a_1 = assignment.lvalue -# assert a_1.index == 1 -# assert a_1.name == "a" -# assert assignment.rvalue == addition.lvalue - -# assert a_0.non_ssa_version == a_1.non_ssa_version - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# @pytest.mark.skipif( -# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -# ) -# def test_initial_version_exists_for_state_variables(): -# """ -# In solidity you can write statements such as -# uint a = a + 1, this test ensures that can be handled for state variables. -# """ -# src = """ -# contract C { -# uint a = a + 1; -# } -# """ -# with slither_from_source(src, "0.4.0") as slither: -# verify_properties_hold(slither) -# c = slither.contracts[0] -# f = c.functions[0] # There will be one artificial ctor function for the state vars - -# addition = get_ssa_of_type(f, Binary)[0] -# assert addition.type == BinaryType.ADDITION -# assert isinstance(addition.variable_right, Constant) -# a_0 = addition.variable_left -# assert isinstance(a_0, StateIRVariable) -# assert a_0.name == "a" - -# assignment = get_ssa_of_type(f, Assignment)[0] -# a_1 = assignment.lvalue -# assert isinstance(a_1, StateIRVariable) -# assert a_1.index == a_0.index + 1 -# assert a_1.name == "a" -# assert assignment.rvalue == addition.lvalue - -# assert a_0.non_ssa_version == a_1.non_ssa_version -# assert isinstance(a_0.non_ssa_version, StateVariable) - -# # No conditional/other function interaction so no phis -# assert len(get_ssa_of_type(f, Phi)) == 0 - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_initial_version_exists_for_state_variables_function_assign(): -# """ -# In solidity you can write statements such as -# uint a = a + 1, this test ensures that can be handled for local variables. -# """ -# # TODO (hbrodin): Could be a detector that a is not used in f -# src = """ -# contract C { -# uint a = f(); - -# function f() internal returns(uint) { -# return a; -# } -# } -# """ -# with slither_from_source(src) as slither: -# verify_properties_hold(slither) -# c = slither.contracts[0] -# f, ctor = c.functions -# if f.is_constructor_variables: -# f, ctor = ctor, f - -# # ctor should have a single call to f that assigns to a -# # temporary variable, that is then assigned to a - -# call = get_ssa_of_type(ctor, InternalCall)[0] -# assert call.node.function == f -# assign = get_ssa_of_type(ctor, Assignment)[0] -# assert assign.rvalue == call.lvalue -# assert isinstance(assign.lvalue, StateIRVariable) -# assert assign.lvalue.name == "a" - -# # f should have a phi node on entry of a0, a1 and should return -# # a2 -# phi = get_ssa_of_type(f, Phi)[0] -# assert len(phi.rvalues) == 2 -# assert assign.lvalue in phi.rvalues - - -# @pytest.mark.skipif( -# not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" -# ) -# def test_return_local_before_assign(): -# src = """ -# // this require solidity < 0.5 -# // a variable can be returned before declared. Ensure it can be -# // handled by Slither. -# contract A { -# function local(bool my_bool) internal returns(uint){ -# if(my_bool){ -# return a_local; -# } - -# uint a_local = 10; -# } -# } -# """ -# with slither_from_source(src, "0.4.0") as slither: -# f = slither.contracts[0].functions[0] - -# ret = get_ssa_of_type(f, Return)[0] -# assert len(ret.values) == 1 -# assert ret.values[0].index == 0 - -# assign = get_ssa_of_type(f, Assignment)[0] -# assert assign.lvalue.index == 1 -# assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version - - -# @pytest.mark.skipif( -# not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" -# ) -# def test_shadow_local(): -# src = """ -# contract A { -# // this require solidity 0.5 -# function shadowing_local() internal{ -# uint local = 0; -# { -# uint local = 1; -# { -# uint local = 2; -# } -# } -# } -# } -# """ -# with slither_from_source(src, "0.5.0") as slither: -# _dump_functions(slither.contracts[0]) -# f = slither.contracts[0].functions[0] - -# # Ensure all assignments are to a variable of index 1 -# # not using the same IR var. -# assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_multiple_named_args_returns(): -# """Verifies that named arguments and return values have correct versions - -# Each arg/ret have an initial version, version 0, and is written once and should -# then have version 1. -# """ -# src = """ -# contract A { -# function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { -# arg1 = arg1 + 1; -# arg2 = arg2 + 2; -# ret1 = arg1 + 3; -# ret2 = arg2 + 4; -# } -# }""" -# with slither_from_source(src) as slither: -# verify_properties_hold(slither) -# f = slither.contracts[0].functions[0] - -# # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 -# assert all( -# map( -# lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), -# get_ssa_of_type(f, OperationWithLValue), -# ) -# ) - - -# @pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -# def test_memory_array(): -# src = """ -# contract MemArray { -# struct A { -# uint val1; -# uint val2; -# } - -# function test_array() internal { -# A[] memory a= new A[](4); -# // Create REF_0 -> a_1[2] -# accept_array_entry(a[2]); - -# // Create REF_1 -> a_1[3] -# accept_array_entry(a[3]); - -# A memory alocal; -# accept_array_entry(alocal); - -# } - -# // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) -# // val_0 is an unknown external value -# function accept_array_entry(A memory val) public returns (uint) { -# uint zero = 0; -# b(zero); -# // Create REF_2 -> val_1.val1 -# return b(val.val1); -# } - -# function b(uint arg) public returns (uint){ -# // arg_1 = ϕ(arg_0, zero_1, REF_2) -# return arg + 1; -# } -# }""" -# with slither_from_source(src) as slither: -# c = slither.contracts[0] - -# ftest_array, faccept, fb = c.functions - -# # Locate REF_0/REF_1/alocal (they are all args to the call) -# accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] - -# # Check entrypoint of accept_array_entry, it should contain a phi-node -# # of expected rvalues -# [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) -# for arg in accept_args: -# assert arg in phi_entry_accept.rvalues -# # NOTE(hbrodin): There should be an additional val_0 in the phi-node. -# # That additional val_0 indicates an external caller of this function. -# assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 - -# # Args used to invoke b -# b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] - -# # Check entrypoint of B, it should contain a phi-node of expected -# # rvalues -# [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) -# for arg in b_args: -# assert arg in phi_entry_b.rvalues - -# # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). -# assert len(phi_entry_b.rvalues) == len(b_args) + 1 - - -# @pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) -# def test_storage_array(): -# src = """ -# contract StorageArray { -# struct A { -# uint val1; -# uint val2; -# } - -# // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry -# // should only add new versions of a state variable if it is actually written. -# A[] a; -# A astorage; - -# function test_array() internal { -# accept_array_entry(a[2]); -# accept_array_entry(a[3]); -# accept_array_entry(astorage); -# } - -# function accept_array_entry(A storage val) internal returns (uint) { -# // val is either a[2], a[3] or astorage_0. Ideally this could be identified. -# uint five = 5; - -# // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes -# // to either a or astorage. -# //val.val2 = 4; -# b(five); -# return b(val.val1); -# } - -# function b(uint value) public returns (uint){ -# // Expect a phi-node at the entrypoint -# // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. -# return value + 1; -# } -# }""" -# with slither_from_source(src) as slither: -# c = slither.contracts[0] -# _dump_functions(c) -# ftest, faccept, fb = c.functions - -# # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. -# assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 - -# # Expect all references to start from index 0 (no writes) -# assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) - -# [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) -# assert len(phi_entry_accept.rvalues) == 3 # See comment in b above - -# [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) -# assert len(phi_entry_b.rvalues) == 3 # See comment in b above - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_issue_468(): -# """ -# Ensure issue 468 is corrected as per -# https://github.com/crytic/slither/issues/468#issuecomment-620974151 -# The one difference is that we allow the phi-function at entry of f to -# hold exit state which contains init state and state from branch, which -# is a bit redundant. This could be further simplified. -# """ -# source = """ -# contract State { -# int state = 0; -# function f(int a) public returns (int) { -# // phi-node here for state -# if (a < 1) { -# state += 1; -# } -# // phi-node here for state -# return state; -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.get_contract_from_name("State")[0] -# f = [x for x in c.functions if x.name == "f"][0] - -# # Check that there is an entry point phi values for each later value -# # plus one additional which is the initial value -# entry_ssa = f.entry_point.irs_ssa -# assert len(entry_ssa) == 1 -# phi_entry = entry_ssa[0] -# assert isinstance(phi_entry, Phi) - -# # Find the second phi function -# endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] -# assert len(endif_node.irs_ssa) == 1 -# phi_endif = endif_node.irs_ssa[0] -# assert isinstance(phi_endif, Phi) - -# # Ensure second phi-function contains init-phi and one additional -# assert len(phi_endif.rvalues) == 2 -# assert phi_entry.lvalue in phi_endif.rvalues - -# # Find return-statement and ensure it returns the phi_endif -# return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] -# assert len(return_node.irs_ssa) == 1 -# ret = return_node.irs_ssa[0] -# assert len(ret.values) == 1 -# assert phi_endif.lvalue in ret.values - -# # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi -# assert phi_endif.lvalue in phi_entry.rvalues - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_issue_434(): -# source = """ -# contract Contract { -# int public a; -# function f() public { -# g(); -# a += 1; -# } - -# function e() public { -# a -= 1; -# } - -# function g() public { -# e(); -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.get_contract_from_name("Contract")[0] - -# e = [x for x in c.functions if x.name == "e"][0] -# f = [x for x in c.functions if x.name == "f"][0] -# g = [x for x in c.functions if x.name == "g"][0] - -# # Ensure there is a phi-node at the beginning of f and e -# phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] -# phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] -# # But not at g -# assert len(get_ssa_of_type(g, Phi)) == 0 - -# # Ensure that the final states of f and e are in the entry-states -# add_f = get_filtered_ssa( -# f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION -# )[0] -# sub_e = get_filtered_ssa( -# e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION -# )[0] -# assert add_f.lvalue in phi_entry_f.rvalues -# assert add_f.lvalue in phi_entry_e.rvalues -# assert sub_e.lvalue in phi_entry_f.rvalues -# assert sub_e.lvalue in phi_entry_e.rvalues - -# # Ensure there is a phi-node after call to g -# call = get_ssa_of_type(f, InternalCall)[0] -# idx = call.node.irs_ssa.index(call) -# aftercall_phi = call.node.irs_ssa[idx + 1] -# assert isinstance(aftercall_phi, Phi) - -# # Ensure that phi node ^ is used in the addition afterwards -# assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) - - -# @pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") -# def test_issue_473(): -# source = """ -# contract Contract { -# function f() public returns (int) { -# int a = 1; -# if (a > 0) { -# a = 2; -# } -# if (a == 3) { -# a = 6; -# } -# return a; -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.get_contract_from_name("Contract")[0] -# f = c.functions[0] - -# phis = get_ssa_of_type(f, Phi) -# return_value = get_ssa_of_type(f, Return)[0] - -# # There shall be two phi functions -# assert len(phis) == 2 -# first_phi = phis[0] -# second_phi = phis[1] - -# # The second phi is the one being returned, if it's the first swap them (iteration order) -# if first_phi.lvalue in return_value.values: -# first_phi, second_phi = second_phi, first_phi - -# # First phi is for [a=1 or a=2] -# assert len(first_phi.rvalues) == 2 - -# # second is for [a=6 or first phi] -# assert first_phi.lvalue in second_phi.rvalues -# assert len(second_phi.rvalues) == 2 - -# # return is for second phi -# assert len(return_value.values) == 1 -# assert second_phi.lvalue in return_value.values - - -# def test_issue_1748(): -# source = """ -# contract Contract { -# uint[] arr; -# function foo(uint i) public { -# arr = [1]; -# } -# } -# """ -# with slither_from_source(source) as slither: -# c = slither.get_contract_from_name("Contract")[0] -# f = c.functions[0] -# operations = f.slithir_operations -# assign_op = operations[0] -# assert isinstance(assign_op, InitArray) +import pathlib +from collections import defaultdict +from argparse import ArgumentTypeError +from inspect import getsourcefile +from typing import Union, List, Dict, Callable + +import pytest +from solc_select.solc_select import valid_version as solc_valid_version +from slither import Slither +from slither.core.cfg.node import Node, NodeType +from slither.core.declarations import Function, Contract +from slither.core.variables.local_variable import LocalVariable +from slither.core.variables.state_variable import StateVariable +from slither.slithir.operations import ( + OperationWithLValue, + Phi, + Assignment, + HighLevelCall, + Return, + Operation, + Binary, + BinaryType, + InternalCall, + Index, + InitArray, +) +from slither.slithir.utils.ssa import is_used_later +from slither.slithir.variables import ( + Constant, + ReferenceVariable, + LocalIRVariable, + StateIRVariable, + TemporaryVariableSSA, +) + +# Directory of currently executing script. Will be used as basis for temporary file names. +SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore + + +def valid_version(ver: str) -> bool: + """Wrapper function to check if the solc-version is valid + + The solc_select function raises and exception but for checks below, + only a bool is needed. + """ + try: + solc_valid_version(ver) + return True + except ArgumentTypeError: + return False + + +def have_ssa_if_ir(function: Function) -> None: + """Verifies that all nodes in a function that have IR also have SSA IR""" + for n in function.nodes: + if n.irs: + assert n.irs_ssa + + +# pylint: disable=too-many-branches, too-many-locals +def ssa_basic_properties(function: Function) -> None: + """Verifies that basic properties of ssa holds + + 1. Every name is defined only once + 2. A l-value is never index zero - there is always a zero-value available for each var + 3. Every r-value is at least defined at some point + 4. The number of ssa defs is >= the number of assignments to var + 5. Function parameters SSA are stored in function.parameters_ssa + - if function parameter is_storage it refers to a fake variable + 6. Function returns SSA are stored in function.returns_ssa + - if function return is_storage it refers to a fake variable + """ + ssa_lvalues = set() + ssa_rvalues = set() + lvalue_assignments: Dict[str, int] = {} + + for n in function.nodes: + for ir in n.irs: + if isinstance(ir, OperationWithLValue) and ir.lvalue: + name = ir.lvalue.name + if name is None: + continue + if name in lvalue_assignments: + lvalue_assignments[name] += 1 + else: + lvalue_assignments[name] = 1 + + for ssa in n.irs_ssa: + if isinstance(ssa, OperationWithLValue): + # 1 + assert ssa.lvalue not in ssa_lvalues + ssa_lvalues.add(ssa.lvalue) + + # 2 (if Local/State Var) + ssa_lvalue = ssa.lvalue + if isinstance(ssa_lvalue, (StateIRVariable, LocalIRVariable)): + assert ssa_lvalue.index > 0 + + for rvalue in filter( + lambda x: not isinstance(x, (StateIRVariable, Constant)), ssa.read + ): + ssa_rvalues.add(rvalue) + + # 3 + # Each var can have one non-defined value, the value initially held. Typically, + # var_0, i_0, state_0 or similar. + undef_vars = set() + for rvalue in ssa_rvalues: + if rvalue not in ssa_lvalues: + assert rvalue.non_ssa_version not in undef_vars + undef_vars.add(rvalue.non_ssa_version) + + # 4 + ssa_defs: Dict[str, int] = defaultdict(int) + for v in ssa_lvalues: + if v and v.name: + ssa_defs[v.name] += 1 + + for (k, count) in lvalue_assignments.items(): + assert ssa_defs[k] >= count + + # Helper 5/6 + def check_property_5_and_6( + variables: List[LocalVariable], ssavars: List[LocalIRVariable] + ) -> None: + for var in filter(lambda x: x.name, variables): + ssa_vars = [x for x in ssavars if x.non_ssa_version == var] + assert len(ssa_vars) == 1 + ssa_var = ssa_vars[0] + assert var.is_storage == ssa_var.is_storage + if ssa_var.is_storage: + assert len(ssa_var.refers_to) == 1 + assert ssa_var.refers_to[0].location == "reference_to_storage" + + # 5 + check_property_5_and_6(function.parameters, function.parameters_ssa) + + # 6 + check_property_5_and_6(function.returns, function.returns_ssa) + + +def ssa_phi_node_properties(f: Function) -> None: + """Every phi-function should have as many args as predecessors + + This does not apply if the phi-node refers to state variables, + they make use os special phi-nodes for tracking potential values + a state variable can have + """ + for node in f.nodes: + for ssa in node.irs_ssa: + if isinstance(ssa, Phi): + n = len(ssa.read) + if not isinstance(ssa.lvalue, StateIRVariable): + assert len(node.fathers) == n + + +# TODO (hbrodin): This should probably go into another file, not specific to SSA +def dominance_properties(f: Function) -> None: + """Verifies properties related to dominators holds + + 1. Every node have an immediate dominator except entry_node which have none + 2. From every node immediate dominator there is a path via its successors to the node + """ + + def find_path(from_node: Node, to: Node) -> bool: + visited = set() + worklist = list(from_node.sons) + while worklist: + first, *worklist = worklist + if first == to: + return True + visited.add(first) + for successor in first.sons: + if successor not in visited: + worklist.append(successor) + return False + + for node in f.nodes: + if node is f.entry_point: + assert node.immediate_dominator is None + else: + assert node.immediate_dominator is not None + assert find_path(node.immediate_dominator, node) + + +def phi_values_inserted(f: Function) -> None: + """Verifies that phi-values are inserted at the right places + + For every node that has a dominance frontier, any def (including + phi) should be a phi function in its dominance frontier + """ + + def have_phi_for_var( + node: Node, var: Union[StateIRVariable, LocalIRVariable, TemporaryVariableSSA] + ) -> bool: + """Checks if a node has a phi-instruction for var + + The ssa version would ideally be checked, but then + more data flow analysis would be needed, for cases + where a new def for var is introduced before reaching + DF + """ + non_ssa = var.non_ssa_version + for ssa in node.irs_ssa: + if isinstance(ssa, Phi): + if non_ssa in map( + lambda ssa_var: ssa_var.non_ssa_version, + [ + r + for r in ssa.read + if isinstance(r, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA)) + ], + ): + return True + return False + + for node in filter(lambda n: n.dominance_frontier, f.nodes): + for df in node.dominance_frontier: + for ssa in node.irs_ssa: + if isinstance(ssa, OperationWithLValue): + ssa_lvalue = ssa.lvalue + if isinstance( + ssa_lvalue, (StateIRVariable, LocalIRVariable, TemporaryVariableSSA) + ) and is_used_later(node, ssa_lvalue): + assert have_phi_for_var(df, ssa_lvalue) + + +def verify_properties_hold(slither: Slither) -> None: + """Ensures that basic properties of SSA hold true""" + + def verify_func(func: Function) -> None: + have_ssa_if_ir(func) + phi_values_inserted(func) + ssa_basic_properties(func) + ssa_phi_node_properties(func) + dominance_properties(func) + + def verify(slither: Slither) -> None: + for cu in slither.compilation_units: + for func in cu.functions_and_modifiers: + _dump_function(func) + verify_func(func) + for contract in cu.contracts: + for f in contract.functions: + if f.is_constructor or f.is_constructor_variables: + _dump_function(f) + verify_func(f) + + assert isinstance(slither, Slither) + verify(slither) + + +def _dump_function(f: Function) -> None: + """Helper function to print nodes/ssa ir for a function or modifier""" + print(f"---- {f.name} ----") + for n in f.nodes: + print(n) + for ir in n.irs_ssa: + print(f"\t{ir}") + print("") + + +def _dump_functions(c: Contract) -> None: + """Helper function to print functions and modifiers of a contract""" + for f in c.functions_and_modifiers: + _dump_function(f) + + +def get_filtered_ssa(f: Union[Function, Node], flt: Callable) -> List[Operation]: + """Returns a list of all ssanodes filtered by filter for all nodes in function f""" + if isinstance(f, Function): + return [ssanode for node in f.nodes for ssanode in node.irs_ssa if flt(ssanode)] + + assert isinstance(f, Node) + return [ssanode for ssanode in f.irs_ssa if flt(ssanode)] + + +def get_ssa_of_type(f: Union[Function, Node], ssatype) -> List[Operation]: + """Returns a list of all ssanodes of a specific type for all nodes in function f""" + return get_filtered_ssa(f, lambda ssanode: isinstance(ssanode, ssatype)) + + +def test_multi_write(slither_from_source) -> None: + source = """ + pragma solidity ^0.8.11; + contract Test { + function multi_write(uint val) external pure returns(uint) { + val = 1; + val = 2; + val = 3; + } + }""" + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +def test_single_branch_phi(slither_from_source) -> None: + source = """ + pragma solidity ^0.8.11; + contract Test { + function single_branch_phi(uint val) external pure returns(uint) { + if (val == 3) { + val = 9; + } + return val; + } + } + """ + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +def test_basic_phi(slither_from_source) -> None: + source = """ + pragma solidity ^0.8.11; + contract Test { + function basic_phi(uint val) external pure returns(uint) { + if (val == 3) { + val = 9; + } else { + val = 1; + } + return val; + } + } + """ + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +def test_basic_loop_phi(slither_from_source) -> None: + source = """ + pragma solidity ^0.8.11; + contract Test { + function basic_loop_phi(uint val) external pure returns(uint) { + for (uint i=0;i<128;i++) { + val = val + 1; + } + return val; + } + } + """ + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_phi_propagation_loop(slither_from_source): + source = """ + pragma solidity ^0.8.11; + contract Test { + function looping(uint v) external pure returns(uint) { + uint val = 0; + for (uint i=0;i i) { + val = i; + } else { + val = 3; + } + } + return val; + } + } + """ + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_free_function_properties(slither_from_source): + source = """ + pragma solidity ^0.8.11; + + function free_looping(uint v) returns(uint) { + uint val = 0; + for (uint i=0;i i) { + val = i; + } else { + val = 3; + } + } + return val; + } + + contract Test {} + """ + with slither_from_source(source) as slither: + verify_properties_hold(slither) + + +def test_ssa_inter_transactional(slither_from_source) -> None: + source = """ + pragma solidity ^0.8.11; + contract A { + uint my_var_A; + uint my_var_B; + + function direct_set(uint i) public { + my_var_A = i; + } + + function direct_set_plus_one(uint i) public { + my_var_A = i + 1; + } + + function indirect_set() public { + my_var_B = my_var_A; + } + } + """ + with slither_from_source(source) as slither: + c = slither.contracts[0] + variables = c.variables_as_dict + funcs = c.available_functions_as_dict() + direct_set = funcs["direct_set(uint256)"] + # Skip entry point and go straight to assignment ir + assign1 = direct_set.nodes[1].irs_ssa[0] + assert isinstance(assign1, Assignment) + + assign2 = direct_set.nodes[1].irs_ssa[0] + assert isinstance(assign2, Assignment) + + indirect_set = funcs["indirect_set()"] + phi = indirect_set.entry_point.irs_ssa[0] + assert isinstance(phi, Phi) + # phi rvalues come from 1, initial value of my_var_a and 2, assignment in direct_set + assert len(phi.rvalues) == 3 + assert all(x.non_ssa_version == variables["my_var_A"] for x in phi.rvalues) + assert assign1.lvalue in phi.rvalues + assert assign2.lvalue in phi.rvalues + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_ssa_phi_callbacks(slither_from_source): + source = """ + pragma solidity ^0.8.11; + contract A { + uint my_var_A; + uint my_var_B; + + function direct_set(uint i) public { + my_var_A = i; + } + + function use_a() public { + // Expect a phi-node here + my_var_B = my_var_A; + B b = new B(); + my_var_A = 3; + b.do_stuff(); + // Expect a phi-node here + my_var_B = my_var_A; + } + } + + contract B { + function do_stuff() public returns (uint) { + // This could be calling back into A + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("A")[0] + _dump_functions(c) + f = [x for x in c.functions if x.name == "use_a"][0] + var_a = [x for x in c.variables if x.name == "my_var_A"][0] + + entry_phi = [ + x + for x in f.entry_point.irs_ssa + if isinstance(x, Phi) and x.lvalue.non_ssa_version == var_a + ][0] + # The four potential sources are: + # 1. initial value + # 2. my_var_A = i; + # 3. my_var_A = 3; + # 4. phi-value after call to b.do_stuff(), which could be reentrant. + assert len(entry_phi.rvalues) == 4 + + # Locate the first high-level call (should be b.do_stuff()) + call_node = [x for y in f.nodes for x in y.irs_ssa if isinstance(x, HighLevelCall)][0] + n = call_node.node + # Get phi-node after call + after_call_phi = n.irs_ssa[n.irs_ssa.index(call_node) + 1] + # The two sources for this phi node is + # 1. my_var_A = i; + # 2. my_var_A = 3; + assert isinstance(after_call_phi, Phi) + assert len(after_call_phi.rvalues) == 2 + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_storage_refers_to(slither_from_source): + """Test the storage aspects of the SSA IR + + When declaring a var as being storage, start tracking what storage it refers_to. + When a phi-node is created, ensure refers_to is propagated to the phi-node. + Assignments also propagate refers_to. + Whenever a ReferenceVariable is the destination of an assignment (e.g. s.v = 10) + below, create additional versions of the variables it refers to record that a a + write was made. In the current implementation, this is referenced by phis. + """ + source = """ + contract A{ + + struct St{ + int v; + } + + St state0; + St state1; + + function f() public{ + St storage s = state0; + if(true){ + s = state1; + } + s.v = 10; + } +} + """ + with slither_from_source(source) as slither: + c = slither.contracts[0] + f = c.functions[0] + + phinodes = get_ssa_of_type(f, Phi) + # Expect 2 in entrypoint (state0/state1 initial values), 1 at 'ENDIF' and two related to the + # ReferenceVariable write s.v = 10. + assert len(phinodes) == 5 + + # Assign s to state0, s to state1, s.v to 10 + assigns = get_ssa_of_type(f, Assignment) + assert len(assigns) == 3 + + # The IR variables have is_storage + assert all(x.lvalue.is_storage for x in assigns if isinstance(x, LocalIRVariable)) + + # s.v ReferenceVariable points to one of the phi vars... + ref0 = [x.lvalue for x in assigns if isinstance(x.lvalue, ReferenceVariable)][0] + sphis = [x for x in phinodes if x.lvalue == ref0.points_to] + assert len(sphis) == 1 + sphi = sphis[0] + + # ...and that phi refers to the two entry phi-values + entryphi = [x for x in phinodes if x.lvalue in sphi.lvalue.refers_to] + assert len(entryphi) == 2 + + # The remaining two phis are the ones recording that write through ReferenceVariable occured + for ephi in entryphi: + phinodes.remove(ephi) + phinodes.remove(sphi) + assert len(phinodes) == 2 + + # And they are recorded in one of the entry phis + assert phinodes[0].lvalue in entryphi[0].rvalues or entryphi[1].rvalues + assert phinodes[1].lvalue in entryphi[0].rvalues or entryphi[1].rvalues + + +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_initial_version_exists_for_locals(slither_from_source): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for local variables. + """ + src = """ + contract C { + function func() internal { + uint a = a + 1; + } + } + """ + with slither_from_source(src, "0.4.0") as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f = c.functions[0] + + addition = get_ssa_of_type(f, Binary)[0] + assert addition.type == BinaryType.ADDITION + assert isinstance(addition.variable_right, Constant) + a_0 = addition.variable_left + assert a_0.index == 0 + assert a_0.name == "a" + + assignment = get_ssa_of_type(f, Assignment)[0] + a_1 = assignment.lvalue + assert a_1.index == 1 + assert a_1.name == "a" + assert assignment.rvalue == addition.lvalue + + assert a_0.non_ssa_version == a_1.non_ssa_version + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_initial_version_exists_for_state_variables(slither_from_source): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for state variables. + """ + src = """ + contract C { + uint a = a + 1; + } + """ + with slither_from_source(src, "0.4.0") as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f = c.functions[0] # There will be one artificial ctor function for the state vars + + addition = get_ssa_of_type(f, Binary)[0] + assert addition.type == BinaryType.ADDITION + assert isinstance(addition.variable_right, Constant) + a_0 = addition.variable_left + assert isinstance(a_0, StateIRVariable) + assert a_0.name == "a" + + assignment = get_ssa_of_type(f, Assignment)[0] + a_1 = assignment.lvalue + assert isinstance(a_1, StateIRVariable) + assert a_1.index == a_0.index + 1 + assert a_1.name == "a" + assert assignment.rvalue == addition.lvalue + + assert a_0.non_ssa_version == a_1.non_ssa_version + assert isinstance(a_0.non_ssa_version, StateVariable) + + # No conditional/other function interaction so no phis + assert len(get_ssa_of_type(f, Phi)) == 0 + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_initial_version_exists_for_state_variables_function_assign(slither_from_source): + """ + In solidity you can write statements such as + uint a = a + 1, this test ensures that can be handled for local variables. + """ + # TODO (hbrodin): Could be a detector that a is not used in f + src = """ + contract C { + uint a = f(); + + function f() internal returns(uint) { + return a; + } + } + """ + with slither_from_source(src) as slither: + verify_properties_hold(slither) + c = slither.contracts[0] + f, ctor = c.functions + if f.is_constructor_variables: + f, ctor = ctor, f + + # ctor should have a single call to f that assigns to a + # temporary variable, that is then assigned to a + + call = get_ssa_of_type(ctor, InternalCall)[0] + assert call.node.function == f + assign = get_ssa_of_type(ctor, Assignment)[0] + assert assign.rvalue == call.lvalue + assert isinstance(assign.lvalue, StateIRVariable) + assert assign.lvalue.name == "a" + + # f should have a phi node on entry of a0, a1 and should return + # a2 + phi = get_ssa_of_type(f, Phi)[0] + assert len(phi.rvalues) == 2 + assert assign.lvalue in phi.rvalues + + +@pytest.mark.skipif( + not valid_version("0.4.0"), reason="Solidity version 0.4.0 not available on this platform" +) +def test_return_local_before_assign(slither_from_source): + src = """ + // this require solidity < 0.5 + // a variable can be returned before declared. Ensure it can be + // handled by Slither. + contract A { + function local(bool my_bool) internal returns(uint){ + if(my_bool){ + return a_local; + } + + uint a_local = 10; + } + } + """ + with slither_from_source(src, "0.4.0") as slither: + f = slither.contracts[0].functions[0] + + ret = get_ssa_of_type(f, Return)[0] + assert len(ret.values) == 1 + assert ret.values[0].index == 0 + + assign = get_ssa_of_type(f, Assignment)[0] + assert assign.lvalue.index == 1 + assert assign.lvalue.non_ssa_version == ret.values[0].non_ssa_version + + +@pytest.mark.skipif( + not valid_version("0.5.0"), reason="Solidity version 0.5.0 not available on this platform" +) +def test_shadow_local(slither_from_source): + src = """ + contract A { + // this require solidity 0.5 + function shadowing_local() internal{ + uint local = 0; + { + uint local = 1; + { + uint local = 2; + } + } + } + } + """ + with slither_from_source(src, "0.5.0") as slither: + _dump_functions(slither.contracts[0]) + f = slither.contracts[0].functions[0] + + # Ensure all assignments are to a variable of index 1 + # not using the same IR var. + assert all(map(lambda x: x.lvalue.index == 1, get_ssa_of_type(f, Assignment))) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_multiple_named_args_returns(slither_from_source): + """Verifies that named arguments and return values have correct versions + + Each arg/ret have an initial version, version 0, and is written once and should + then have version 1. + """ + src = """ + contract A { + function multi(uint arg1, uint arg2) internal returns (uint ret1, uint ret2) { + arg1 = arg1 + 1; + arg2 = arg2 + 2; + ret1 = arg1 + 3; + ret2 = arg2 + 4; + } + }""" + with slither_from_source(src) as slither: + verify_properties_hold(slither) + f = slither.contracts[0].functions[0] + + # Ensure all LocalIRVariables (not TemporaryVariables) have index 1 + assert all( + map( + lambda x: x.lvalue.index == 1 or not isinstance(x.lvalue, LocalIRVariable), + get_ssa_of_type(f, OperationWithLValue), + ) + ) + + +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +def test_memory_array(slither_from_source): + src = """ + contract MemArray { + struct A { + uint val1; + uint val2; + } + + function test_array() internal { + A[] memory a= new A[](4); + // Create REF_0 -> a_1[2] + accept_array_entry(a[2]); + + // Create REF_1 -> a_1[3] + accept_array_entry(a[3]); + + A memory alocal; + accept_array_entry(alocal); + + } + + // val_1 = ϕ(val_0, REF_0, REF_1, alocal_1) + // val_0 is an unknown external value + function accept_array_entry(A memory val) public returns (uint) { + uint zero = 0; + b(zero); + // Create REF_2 -> val_1.val1 + return b(val.val1); + } + + function b(uint arg) public returns (uint){ + // arg_1 = ϕ(arg_0, zero_1, REF_2) + return arg + 1; + } + }""" + with slither_from_source(src) as slither: + c = slither.contracts[0] + + ftest_array, faccept, fb = c.functions + + # Locate REF_0/REF_1/alocal (they are all args to the call) + accept_args = [x.arguments[0] for x in get_ssa_of_type(ftest_array, InternalCall)] + + # Check entrypoint of accept_array_entry, it should contain a phi-node + # of expected rvalues + [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) + for arg in accept_args: + assert arg in phi_entry_accept.rvalues + # NOTE(hbrodin): There should be an additional val_0 in the phi-node. + # That additional val_0 indicates an external caller of this function. + assert len(phi_entry_accept.rvalues) == len(accept_args) + 1 + + # Args used to invoke b + b_args = [x.arguments[0] for x in get_ssa_of_type(faccept, InternalCall)] + + # Check entrypoint of B, it should contain a phi-node of expected + # rvalues + [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) + for arg in b_args: + assert arg in phi_entry_b.rvalues + + # NOTE(hbrodin): There should be an additional arg_0 (see comment about phi_entry_accept). + assert len(phi_entry_b.rvalues) == len(b_args) + 1 + + +@pytest.mark.xfail(reason="Tests for wanted state of SSA IR, not current.", strict=True) +def test_storage_array(slither_from_source): + src = """ + contract StorageArray { + struct A { + uint val1; + uint val2; + } + + // NOTE(hbrodin): a is never written, should only become a_0. Same for astorage (astorage_0). Phi-nodes at entry + // should only add new versions of a state variable if it is actually written. + A[] a; + A astorage; + + function test_array() internal { + accept_array_entry(a[2]); + accept_array_entry(a[3]); + accept_array_entry(astorage); + } + + function accept_array_entry(A storage val) internal returns (uint) { + // val is either a[2], a[3] or astorage_0. Ideally this could be identified. + uint five = 5; + + // NOTE(hbrodin): If the following line is enabled, there would ideally be a phi-node representing writes + // to either a or astorage. + //val.val2 = 4; + b(five); + return b(val.val1); + } + + function b(uint value) public returns (uint){ + // Expect a phi-node at the entrypoint + // value_1 = ϕ(value_0, five_0, REF_x), where REF_x is the reference to val.val1 in accept_array_entry. + return value + 1; + } + }""" + with slither_from_source(src) as slither: + c = slither.contracts[0] + _dump_functions(c) + ftest, faccept, fb = c.functions + + # None of a/astorage is written so expect that there are no phi-nodes at entrypoint. + assert len(get_ssa_of_type(ftest.entry_point, Phi)) == 0 + + # Expect all references to start from index 0 (no writes) + assert all(x.variable_left.index == 0 for x in get_ssa_of_type(ftest, Index)) + + [phi_entry_accept] = get_ssa_of_type(faccept.entry_point, Phi) + assert len(phi_entry_accept.rvalues) == 3 # See comment in b above + + [phi_entry_b] = get_ssa_of_type(fb.entry_point, Phi) + assert len(phi_entry_b.rvalues) == 3 # See comment in b above + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_468(slither_from_source): + """ + Ensure issue 468 is corrected as per + https://github.com/crytic/slither/issues/468#issuecomment-620974151 + The one difference is that we allow the phi-function at entry of f to + hold exit state which contains init state and state from branch, which + is a bit redundant. This could be further simplified. + """ + source = """ + contract State { + int state = 0; + function f(int a) public returns (int) { + // phi-node here for state + if (a < 1) { + state += 1; + } + // phi-node here for state + return state; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("State")[0] + f = [x for x in c.functions if x.name == "f"][0] + + # Check that there is an entry point phi values for each later value + # plus one additional which is the initial value + entry_ssa = f.entry_point.irs_ssa + assert len(entry_ssa) == 1 + phi_entry = entry_ssa[0] + assert isinstance(phi_entry, Phi) + + # Find the second phi function + endif_node = [x for x in f.nodes if x.type == NodeType.ENDIF][0] + assert len(endif_node.irs_ssa) == 1 + phi_endif = endif_node.irs_ssa[0] + assert isinstance(phi_endif, Phi) + + # Ensure second phi-function contains init-phi and one additional + assert len(phi_endif.rvalues) == 2 + assert phi_entry.lvalue in phi_endif.rvalues + + # Find return-statement and ensure it returns the phi_endif + return_node = [x for x in f.nodes if x.type == NodeType.RETURN][0] + assert len(return_node.irs_ssa) == 1 + ret = return_node.irs_ssa[0] + assert len(ret.values) == 1 + assert phi_endif.lvalue in ret.values + + # Ensure that the phi_endif (which is the end-state for function as well) is in the entry_phi + assert phi_endif.lvalue in phi_entry.rvalues + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_434(slither_from_source): + source = """ + contract Contract { + int public a; + function f() public { + g(); + a += 1; + } + + function e() public { + a -= 1; + } + + function g() public { + e(); + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + + e = [x for x in c.functions if x.name == "e"][0] + f = [x for x in c.functions if x.name == "f"][0] + g = [x for x in c.functions if x.name == "g"][0] + + # Ensure there is a phi-node at the beginning of f and e + phi_entry_e = get_ssa_of_type(e.entry_point, Phi)[0] + phi_entry_f = get_ssa_of_type(f.entry_point, Phi)[0] + # But not at g + assert len(get_ssa_of_type(g, Phi)) == 0 + + # Ensure that the final states of f and e are in the entry-states + add_f = get_filtered_ssa( + f, lambda x: isinstance(x, Binary) and x.type == BinaryType.ADDITION + )[0] + sub_e = get_filtered_ssa( + e, lambda x: isinstance(x, Binary) and x.type == BinaryType.SUBTRACTION + )[0] + assert add_f.lvalue in phi_entry_f.rvalues + assert add_f.lvalue in phi_entry_e.rvalues + assert sub_e.lvalue in phi_entry_f.rvalues + assert sub_e.lvalue in phi_entry_e.rvalues + + # Ensure there is a phi-node after call to g + call = get_ssa_of_type(f, InternalCall)[0] + idx = call.node.irs_ssa.index(call) + aftercall_phi = call.node.irs_ssa[idx + 1] + assert isinstance(aftercall_phi, Phi) + + # Ensure that phi node ^ is used in the addition afterwards + assert aftercall_phi.lvalue in (add_f.variable_left, add_f.variable_right) + + +@pytest.mark.xfail(strict=True, reason="Fails in current slither version. Fix in #1102.") +def test_issue_473(slither_from_source): + source = """ + contract Contract { + function f() public returns (int) { + int a = 1; + if (a > 0) { + a = 2; + } + if (a == 3) { + a = 6; + } + return a; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + + phis = get_ssa_of_type(f, Phi) + return_value = get_ssa_of_type(f, Return)[0] + + # There shall be two phi functions + assert len(phis) == 2 + first_phi = phis[0] + second_phi = phis[1] + + # The second phi is the one being returned, if it's the first swap them (iteration order) + if first_phi.lvalue in return_value.values: + first_phi, second_phi = second_phi, first_phi + + # First phi is for [a=1 or a=2] + assert len(first_phi.rvalues) == 2 + + # second is for [a=6 or first phi] + assert first_phi.lvalue in second_phi.rvalues + assert len(second_phi.rvalues) == 2 + + # return is for second phi + assert len(return_value.values) == 1 + assert second_phi.lvalue in return_value.values + + +def test_issue_1748(slither_from_source): + source = """ + contract Contract { + uint[] arr; + function foo(uint i) public { + arr = [1]; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + operations = f.slithir_operations + assign_op = operations[0] + assert isinstance(assign_op, InitArray) diff --git a/tests/unit/slithir/test_ternary_expressions.py b/tests/unit/slithir/test_ternary_expressions.py index 68a6089cc..0acd9345d 100644 --- a/tests/unit/slithir/test_ternary_expressions.py +++ b/tests/unit/slithir/test_ternary_expressions.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.core.cfg.node import NodeType from slither.slithir.operations import Assignment @@ -37,7 +36,3 @@ def test_ternary_conversions(solc_binary_path) -> None: vars_assigned += 1 assert vars_declared == vars_assigned - - -if __name__ == "__main__": - test_ternary_conversions() diff --git a/tests/unit/utils/test_functions_ids.py b/tests/unit/utils/test_functions_ids.py index 23888774b..9af42ad85 100644 --- a/tests/unit/utils/test_functions_ids.py +++ b/tests/unit/utils/test_functions_ids.py @@ -57,7 +57,3 @@ def test_functions_ids(solc_binary_path) -> None: assert get_function_id(var.solidity_signature) == int(hashes, 16) else: assert get_function_id(func.solidity_signature) == int(hashes, 16) - - -if __name__ == "__main__": - test_functions_ids() From ca6628ac7f6995e0e50b38dd656448b2e1f9c4a4 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 29 Mar 2023 10:55:00 -0500 Subject: [PATCH 018/105] use crytic-compile with fixed window's relpath --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4ec357ac0..10e0deb1f 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( "prettytable>=0.7.2", "pycryptodome>=3.4.6", # "crytic-compile>=0.3.0", - "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", + "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", "web3>=6.0.0", "solc-select@git+https://github.com/crytic/solc-select.git@query-artifact-path#egg=solc-select", ], From 42ed0db443ed443fc75afb44e38c4723ee81f937 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 29 Mar 2023 22:38:09 -0500 Subject: [PATCH 019/105] remove is_top_level dead code --- slither/core/compilation_unit.py | 2 +- slither/core/declarations/contract.py | 2 -- slither/printers/functions/authorization.py | 2 -- slither/printers/functions/cfg.py | 2 -- slither/printers/inheritance/inheritance.py | 4 ---- slither/printers/inheritance/inheritance_graph.py | 2 -- slither/printers/summary/contract.py | 3 --- slither/printers/summary/data_depenency.py | 2 -- slither/printers/summary/function.py | 2 -- slither/printers/summary/human_summary.py | 2 +- slither/printers/summary/slithir.py | 2 -- slither/printers/summary/slithir_ssa.py | 2 -- slither/solc_parsing/slither_compilation_unit_solc.py | 5 +---- 13 files changed, 3 insertions(+), 29 deletions(-) diff --git a/slither/core/compilation_unit.py b/slither/core/compilation_unit.py index 8d7167451..4550ea894 100644 --- a/slither/core/compilation_unit.py +++ b/slither/core/compilation_unit.py @@ -128,7 +128,7 @@ class SlitherCompilationUnit(Context): """list(Contract): List of contracts that are derived and not inherited.""" inheritances = [x.inheritance for x in self.contracts] inheritance = [item for sublist in inheritances for item in sublist] - return [c for c in self.contracts if c not in inheritance and not c.is_top_level] + return [c for c in self.contracts if c not in inheritance] def get_contract_from_name(self, contract_name: Union[str, Constant]) -> List[Contract]: """ diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index fd8f761c6..821ccda57 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -97,8 +97,6 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods self._is_upgradeable_proxy: Optional[bool] = None self._upgradeable_version: Optional[str] = None - self.is_top_level = False # heavily used, so no @property - self._initial_state_variables: List["StateVariable"] = [] # ssa self._is_incorrectly_parsed: bool = False diff --git a/slither/printers/functions/authorization.py b/slither/printers/functions/authorization.py index 48b94c297..32efeaabe 100644 --- a/slither/printers/functions/authorization.py +++ b/slither/printers/functions/authorization.py @@ -47,8 +47,6 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter): txt = "" all_tables = [] for contract in self.contracts: # type: ignore - if contract.is_top_level: - continue txt += f"\nContract {contract.name}\n" table = MyPrettyTable( ["Function", "State variables written", "Conditions on msg.sender"] diff --git a/slither/printers/functions/cfg.py b/slither/printers/functions/cfg.py index 3c75f723f..00804a34d 100644 --- a/slither/printers/functions/cfg.py +++ b/slither/printers/functions/cfg.py @@ -19,8 +19,6 @@ class CFG(AbstractPrinter): info = "" all_files = [] for contract in self.contracts: # type: ignore - if contract.is_top_level: - continue for function in contract.functions + list(contract.modifiers): if filename: new_filename = f"{filename}-{contract.name}-{function.full_name}.dot" diff --git a/slither/printers/inheritance/inheritance.py b/slither/printers/inheritance/inheritance.py index 08c05f95f..4ef961a5a 100644 --- a/slither/printers/inheritance/inheritance.py +++ b/slither/printers/inheritance/inheritance.py @@ -36,8 +36,6 @@ class PrinterInheritance(AbstractPrinter): result = {"child_to_base": {}} for child in self.contracts: - if child.is_top_level: - continue info += blue(f"\n+ {child.name}\n") result["child_to_base"][child.name] = {"immediate": [], "not_immediate": []} if child.inheritance: @@ -58,8 +56,6 @@ class PrinterInheritance(AbstractPrinter): result["base_to_child"] = {} for base in self.contracts: - if base.is_top_level: - continue info += green(f"\n+ {base.name}") + "\n" children = list(self._get_child_contracts(base)) diff --git a/slither/printers/inheritance/inheritance_graph.py b/slither/printers/inheritance/inheritance_graph.py index 2ec9dee1a..95022c067 100644 --- a/slither/printers/inheritance/inheritance_graph.py +++ b/slither/printers/inheritance/inheritance_graph.py @@ -194,8 +194,6 @@ class PrinterInheritanceGraph(AbstractPrinter): content = 'digraph "" {\n' for c in self.contracts: - if c.is_top_level: - continue content += self._summary(c) + "\n" content += "}" diff --git a/slither/printers/summary/contract.py b/slither/printers/summary/contract.py index 5fee94416..3980c63fc 100644 --- a/slither/printers/summary/contract.py +++ b/slither/printers/summary/contract.py @@ -28,9 +28,6 @@ class ContractSummary(AbstractPrinter): all_contracts = [] for c in self.contracts: - if c.is_top_level: - continue - is_upgradeable_proxy = c.is_upgradeable_proxy is_upgradeable = c.is_upgradeable diff --git a/slither/printers/summary/data_depenency.py b/slither/printers/summary/data_depenency.py index f1c0dc8d5..864652978 100644 --- a/slither/printers/summary/data_depenency.py +++ b/slither/printers/summary/data_depenency.py @@ -40,8 +40,6 @@ class DataDependency(AbstractPrinter): txt = "" for c in self.contracts: - if c.is_top_level: - continue txt += f"\nContract {c.name}\n" table = MyPrettyTable(["Variable", "Dependencies"]) for v in c.state_variables: diff --git a/slither/printers/summary/function.py b/slither/printers/summary/function.py index 7f1633865..232980425 100644 --- a/slither/printers/summary/function.py +++ b/slither/printers/summary/function.py @@ -33,8 +33,6 @@ class FunctionSummary(AbstractPrinter): all_txt = "" for c in self.contracts: - if c.is_top_level: - continue (name, inheritance, var, func_summaries, modif_summaries) = c.get_summary() txt = f"\nContract {name}" txt += "\nContract vars: " + str(var) diff --git a/slither/printers/summary/human_summary.py b/slither/printers/summary/human_summary.py index ec8663198..2fc72f922 100644 --- a/slither/printers/summary/human_summary.py +++ b/slither/printers/summary/human_summary.py @@ -205,7 +205,7 @@ class PrinterHumanSummary(AbstractPrinter): def _number_contracts(self): if self.slither.crytic_compile is None: return len(self.slither.contracts), 0, 0 - contracts = [c for c in self.slither.contracts if not c.is_top_level] + contracts = [c for c in self.slither.contracts] deps = [c for c in contracts if c.is_from_dependency()] tests = [c for c in contracts if c.is_test] return len(contracts) - len(deps) - len(tests), len(deps), len(tests) diff --git a/slither/printers/summary/slithir.py b/slither/printers/summary/slithir.py index be9ebc8f5..cbdb50dcc 100644 --- a/slither/printers/summary/slithir.py +++ b/slither/printers/summary/slithir.py @@ -36,8 +36,6 @@ class PrinterSlithIR(AbstractPrinter): txt = "" for compilation_unit in self.slither.compilation_units: for contract in compilation_unit.contracts: - if contract.is_top_level: - continue txt += f"Contract {contract.name}\n" for function in contract.functions: txt += f'\tFunction {function.canonical_name} {"" if function.is_shadowed else "(*)"}\n' diff --git a/slither/printers/summary/slithir_ssa.py b/slither/printers/summary/slithir_ssa.py index e7f2ca1e3..052597299 100644 --- a/slither/printers/summary/slithir_ssa.py +++ b/slither/printers/summary/slithir_ssa.py @@ -21,8 +21,6 @@ class PrinterSlithIRSSA(AbstractPrinter): txt = "" for contract in self.contracts: - if contract.is_top_level: - continue txt += f"Contract {contract.name}" + "\n" for function in contract.functions: txt += f"\tFunction {function.canonical_name}" + "\n" diff --git a/slither/solc_parsing/slither_compilation_unit_solc.py b/slither/solc_parsing/slither_compilation_unit_solc.py index b1c2387f0..cb94a7d9e 100644 --- a/slither/solc_parsing/slither_compilation_unit_solc.py +++ b/slither/solc_parsing/slither_compilation_unit_solc.py @@ -402,10 +402,7 @@ class SlitherCompilationUnitSolc(CallerContextExpression): # First we save all the contracts in a dict # the key is the contractid for contract in self._underlying_contract_to_parser: - if ( - contract.name.startswith("SlitherInternalTopLevelContract") - and not contract.is_top_level - ): + if contract.name.startswith("SlitherInternalTopLevelContract"): raise SlitherException( # region multi-line-string """Your codebase has a contract named 'SlitherInternalTopLevelContract'. From b077fe3e49b178addc8022a8f8c33e01215b91df Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 29 Mar 2023 22:43:01 -0500 Subject: [PATCH 020/105] lint --- slither/printers/summary/human_summary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/printers/summary/human_summary.py b/slither/printers/summary/human_summary.py index 2fc72f922..9eacb97c6 100644 --- a/slither/printers/summary/human_summary.py +++ b/slither/printers/summary/human_summary.py @@ -205,7 +205,7 @@ class PrinterHumanSummary(AbstractPrinter): def _number_contracts(self): if self.slither.crytic_compile is None: return len(self.slither.contracts), 0, 0 - contracts = [c for c in self.slither.contracts] + contracts = self.slither.contracts deps = [c for c in contracts if c.is_from_dependency()] tests = [c for c in contracts if c.is_test] return len(contracts) - len(deps) - len(tests), len(deps), len(tests) From 08f865766cc1faf87baadec5773a72a2219775a3 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 30 Mar 2023 09:06:09 -0500 Subject: [PATCH 021/105] fix versions reqs. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 430cac343..59fd81ab5 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ setup( "packaging", "prettytable>=0.7.2", "pycryptodome>=3.4.6", - "crytic-compile>=0.3.1,<0.4.0", + # "crytic-compile>=0.3.1,<0.4.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", "web3>=6.0.0", "solc-select@git+https://github.com/crytic/solc-select.git@query-artifact-path#egg=solc-select", From 0dd62b76cbd764dcaeae0da43417e4b5a27927a7 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 30 Mar 2023 09:43:43 -0500 Subject: [PATCH 022/105] update contributing --- CONTRIBUTING.md | 71 ++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8568ef709..c46bf5658 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ If you're unsure where to start, we recommend our [`good first issue`](https://g Bug reports and feature suggestions can be submitted to our issue tracker. For bug reports, attaching the contract that caused the bug will help us in debugging and resolving the issue quickly. If you find a security vulnerability, do not open an issue; email opensource@trailofbits.com instead. ## Questions -Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our [chat room](https://empireslacking.herokuapp.com/) (in the #ethereum channel). +Questions can be submitted to the "Discussions" page, and you may also join our [chat room](https://empireslacking.herokuapp.com/) (in the #ethereum channel). ## Code Slither uses the pull request contribution model. Please make an account on Github, fork this repo, and submit code contributions via pull request. For more documentation, look [here](https://guides.github.com/activities/forking/). @@ -41,7 +41,7 @@ A code walkthrough is available [here](https://www.youtube.com/watch?v=EUl3UlYSl ## Development Environment Instructions for installing a development version of Slither can be found in our [wiki](https://github.com/crytic/slither/wiki/Developer-installation). -To run the unit tests, you need to clone this repository and run `pip install ".[dev]"`. +To run the unit tests, you need to clone this repository and run `make test`. Run a specific test with `make test TESTS=$test_name`. ### Linters @@ -49,37 +49,54 @@ Several linters and security checkers are run on the PRs. To run them locally in the root dir of the repository: -- `pylint slither tests --rcfile pyproject.toml` -- `black . --config pyproject.toml` +- `make lint` + +> Note, this only validates but does not modify the code. + +To automatically reformat the code: + +- `make reformat` We use pylint `2.13.4`, black `22.3.0`. -### Detectors tests +### Testing + +Slither's test suite is divided into three categories end-to-end (`tests/e2e`), unit (`tests/unit`), and tools (`tests/tools/`). + +How do I know what kind of test(s) to write? + +- End-to-end: functionality that requires invoking `Slither` and inspecting some output such as printers and detectors. +- Unit: additions and modifications to objects should be accompanied by a unit test that defines the expected behavior. Aim to write functions in as pure a way as possible such that they are easier to test. +- Tools: tools built on top of Slither (`slither/tools) but not apart of its core functionality + +#### Adding detector tests For each new detector, at least one regression tests must be present. -- Create a test in `tests` -- Update `ALL_TEST` in `tests/test_detectors.py` -- Run `python ./tests/test_detectors.py --generate`. This will generate the json artifacts in `tests/expected_json`. Add the generated files to git. - - If updating an existing detector, identify the respective json artifacts and then delete them, or run `python ./tests/test_detectors.py --overwrite` instead. -- Run `pytest ./tests/test_detectors.py` and check that everything worked. - -To see the tests coverage, run `pytest tests/test_detectors.py --cov=slither/detectors --cov-branch --cov-report html`. -To run tests for a specific detector, run `pytest tests/test_detectors.py -k ReentrancyReadBeforeWritten` (the detector's class name is the argument). -To run tests for a specific version, run `pytest tests/test_detectors.py -k 0.7.6`. -The IDs of tests can be inspected using `pytest tests/test_detectors.py --collect-only`. - -### Parser tests -- Create a test in `tests/ast-parsing` -- Run `python ./tests/test_ast_parsing.py --compile`. This will compile the artifact in `tests/ast-parsing/compile`. Add the compiled artifact to git. -- Run `python ./tests/test_ast_parsing.py --generate`. This will generate the json artifacts in `tests/ast-parsing/expected_json`. Add the generated files to git. -- Run `pytest ./tests/test_ast_parsing.py` and check that everything worked. - -To see the tests coverage, run `pytest tests/test_ast_parsing.py --cov=slither/solc_parsing --cov-branch --cov-report html` -To run tests for a specific test case, run `pytest tests/test_ast_parsing.py -k user_defined_value_type` (the filename is the argument). -To run tests for a specific version, run `pytest tests/test_ast_parsing.py -k 0.8.12`. -To run tests for a specific compiler json format, run `pytest tests/test_ast_parsing.py -k legacy` (can be legacy or compact). -The IDs of tests can be inspected using ``pytest tests/test_ast_parsing.py --collect-only`. +1. Create a test in `tests/e2e/detectors` +2. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` +3. Run `python tests/e2e/detectors/test_detectors.py --generate`. This will generate the json artifacts in `tests/expected_json`. Add the generated files to git. If updating an existing detector, identify the respective json artifacts and then delete them, or run `python ./tests/test_detectors.py --overwrite` instead. +4. Run `pytest tests/e2e/detectors/test_detectors.py` and check that everything worked. + +> ##### Helpful commands +> - To see the tests coverage, run `pytest tests/e2e/detectors/test_detectors.py --cov=slither/detectors --cov-branch --cov-report html`. +> - To run tests for a specific detector, run `pytest tests/e2e/detectors/test_detectors.py -k ReentrancyReadBeforeWritten`(the detector's class name is the argument). +> - To run tests for a specific version, run `pytest tests/e2e/detectors/test_detectors.py -k 0.7.6`. +> - The IDs of tests can be inspected using `pytest tests/e2e/detectors/test_detectors.py --collect-only`. + +#### Adding parsing tests + +1. Create a test in `tests/e2e/solc_parsing/` +2. Run `python tests/e2e/solc_parsing/test_ast_parsing.py --compile`. This will compile the artifact in `tests/e2e/solc_parsing/compile`. Add the compiled artifact to git. +3. Run `python tests/e2e/solc_parsing/test_ast_parsing.py --generate`. This will generate the json artifacts in `tests/e2e/solc_parsing/expected_json`. Add the generated files to git. +4. Run `pytest tests/e2e/solc_parsing/test_ast_parsing.py` and check that everything worked. + +> ##### Helpful commands +> - To see the tests coverage, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py --cov=slither/solc_parsing --cov-branch --cov-report html` +> - To run tests for a specific test case, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k user_defined_value_type` (the filename is the argument). +> - To run tests for a specific version, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k 0.8.12`. +> - To run tests for a specific compiler json format, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k legacy` (can be legacy or compact). +> - The IDs of tests can be inspected using ``pytest tests/e2e/solc_parsing/test_ast_parsing.py --collect-only`. ### Synchronization with crytic-compile By default, `slither` follows either the latest version of crytic-compile in pip, or `crytic-compile@master` (look for dependencies in [`setup.py`](./setup.py). If crytic-compile development comes with breaking changes, the process to update `slither` is: From 16547c43ec1e9352661993ef6b8c628083a80d4d Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 30 Mar 2023 10:16:59 -0500 Subject: [PATCH 023/105] markdownlint --- CONTRIBUTING.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c46bf5658..d045ef412 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,19 @@ # Contributing to Slither + First, thanks for your interest in contributing to Slither! We welcome and appreciate all contributions, including bug reports, feature suggestions, tutorials/blog posts, and code improvements. If you're unsure where to start, we recommend our [`good first issue`](https://github.com/crytic/slither/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) and [`help wanted`](https://github.com/crytic/slither/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) issue labels. ## Bug reports and feature suggestions + Bug reports and feature suggestions can be submitted to our issue tracker. For bug reports, attaching the contract that caused the bug will help us in debugging and resolving the issue quickly. If you find a security vulnerability, do not open an issue; email opensource@trailofbits.com instead. ## Questions + Questions can be submitted to the "Discussions" page, and you may also join our [chat room](https://empireslacking.herokuapp.com/) (in the #ethereum channel). ## Code + Slither uses the pull request contribution model. Please make an account on Github, fork this repo, and submit code contributions via pull request. For more documentation, look [here](https://guides.github.com/activities/forking/). Some pull request guidelines: @@ -23,6 +27,7 @@ Some pull request guidelines: ## Directory Structure Below is a rough outline of slither's design: + ```text . ├── analyses # Provides additional info such as data dependency @@ -39,6 +44,7 @@ Below is a rough outline of slither's design: A code walkthrough is available [here](https://www.youtube.com/watch?v=EUl3UlYSluU). ## Development Environment + Instructions for installing a development version of Slither can be found in our [wiki](https://github.com/crytic/slither/wiki/Developer-installation). To run the unit tests, you need to clone this repository and run `make test`. Run a specific test with `make test TESTS=$test_name`. @@ -66,22 +72,23 @@ Slither's test suite is divided into three categories end-to-end (`tests/e2e`), How do I know what kind of test(s) to write? - End-to-end: functionality that requires invoking `Slither` and inspecting some output such as printers and detectors. -- Unit: additions and modifications to objects should be accompanied by a unit test that defines the expected behavior. Aim to write functions in as pure a way as possible such that they are easier to test. -- Tools: tools built on top of Slither (`slither/tools) but not apart of its core functionality +- Unit: additions and modifications to objects should be accompanied by a unit test that defines the expected behavior. Aim to write functions in as pure a way as possible such that they are easier to test. +- Tools: tools built on top of Slither (`slither/tools) but not apart of its core functionality #### Adding detector tests For each new detector, at least one regression tests must be present. 1. Create a test in `tests/e2e/detectors` -2. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` +2. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` 3. Run `python tests/e2e/detectors/test_detectors.py --generate`. This will generate the json artifacts in `tests/expected_json`. Add the generated files to git. If updating an existing detector, identify the respective json artifacts and then delete them, or run `python ./tests/test_detectors.py --overwrite` instead. 4. Run `pytest tests/e2e/detectors/test_detectors.py` and check that everything worked. > ##### Helpful commands -> - To see the tests coverage, run `pytest tests/e2e/detectors/test_detectors.py --cov=slither/detectors --cov-branch --cov-report html`. -> - To run tests for a specific detector, run `pytest tests/e2e/detectors/test_detectors.py -k ReentrancyReadBeforeWritten`(the detector's class name is the argument). -> - To run tests for a specific version, run `pytest tests/e2e/detectors/test_detectors.py -k 0.7.6`. +> +> - To see the tests coverage, run `pytest tests/e2e/detectors/test_detectors.py --cov=slither/detectors --cov-branch --cov-report html`. +> - To run tests for a specific detector, run `pytest tests/e2e/detectors/test_detectors.py -k ReentrancyReadBeforeWritten`(the detector's class name is the argument). +> - To run tests for a specific version, run `pytest tests/e2e/detectors/test_detectors.py -k 0.7.6`. > - The IDs of tests can be inspected using `pytest tests/e2e/detectors/test_detectors.py --collect-only`. #### Adding parsing tests @@ -92,6 +99,7 @@ For each new detector, at least one regression tests must be present. 4. Run `pytest tests/e2e/solc_parsing/test_ast_parsing.py` and check that everything worked. > ##### Helpful commands +> > - To see the tests coverage, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py --cov=slither/solc_parsing --cov-branch --cov-report html` > - To run tests for a specific test case, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k user_defined_value_type` (the filename is the argument). > - To run tests for a specific version, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k 0.8.12`. @@ -99,7 +107,9 @@ For each new detector, at least one regression tests must be present. > - The IDs of tests can be inspected using ``pytest tests/e2e/solc_parsing/test_ast_parsing.py --collect-only`. ### Synchronization with crytic-compile + By default, `slither` follows either the latest version of crytic-compile in pip, or `crytic-compile@master` (look for dependencies in [`setup.py`](./setup.py). If crytic-compile development comes with breaking changes, the process to update `slither` is: + - Update `slither/setup.py` to point to the related crytic-compile's branch - Create a PR in `slither` and ensure it passes the CI - Once the development branch is merged in `crytic-compile@master`, ensure `slither` follows the `master` branch From 289337c23618e3cf8f96f19df7fc15328a287ecf Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 30 Mar 2023 10:37:14 -0500 Subject: [PATCH 024/105] remove duplicate header --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d045ef412..686ded908 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,7 +84,7 @@ For each new detector, at least one regression tests must be present. 3. Run `python tests/e2e/detectors/test_detectors.py --generate`. This will generate the json artifacts in `tests/expected_json`. Add the generated files to git. If updating an existing detector, identify the respective json artifacts and then delete them, or run `python ./tests/test_detectors.py --overwrite` instead. 4. Run `pytest tests/e2e/detectors/test_detectors.py` and check that everything worked. -> ##### Helpful commands +> ##### Helpful commands for detector tests > > - To see the tests coverage, run `pytest tests/e2e/detectors/test_detectors.py --cov=slither/detectors --cov-branch --cov-report html`. > - To run tests for a specific detector, run `pytest tests/e2e/detectors/test_detectors.py -k ReentrancyReadBeforeWritten`(the detector's class name is the argument). @@ -98,7 +98,7 @@ For each new detector, at least one regression tests must be present. 3. Run `python tests/e2e/solc_parsing/test_ast_parsing.py --generate`. This will generate the json artifacts in `tests/e2e/solc_parsing/expected_json`. Add the generated files to git. 4. Run `pytest tests/e2e/solc_parsing/test_ast_parsing.py` and check that everything worked. -> ##### Helpful commands +> ##### Helpful commands for parsing tests > > - To see the tests coverage, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py --cov=slither/solc_parsing --cov-branch --cov-report html` > - To run tests for a specific test case, run `pytest tests/e2e/solc_parsing/test_ast_parsing.py -k user_defined_value_type` (the filename is the argument). From d9f5dbb6cd5085c571774e3a6132fc8387cd78a8 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 31 Mar 2023 09:57:03 -0500 Subject: [PATCH 025/105] support new bytes expr in ternary --- slither/utils/expression_manipulations.py | 11 +++++++++-- tests/unit/slithir/test_data/ternary_expressions.sol | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/slither/utils/expression_manipulations.py b/slither/utils/expression_manipulations.py index 753778be9..75d97042c 100644 --- a/slither/utils/expression_manipulations.py +++ b/slither/utils/expression_manipulations.py @@ -21,7 +21,7 @@ from slither.core.expressions.new_array import NewArray from slither.core.expressions.new_contract import NewContract from slither.core.expressions.tuple_expression import TupleExpression from slither.core.expressions.type_conversion import TypeConversion - +from slither.core.expressions.new_elementary_type import NewElementaryType # pylint: disable=protected-access def f_expressions( @@ -100,7 +100,14 @@ class SplitTernaryExpression: if isinstance( expression, - (Literal, Identifier, NewArray, NewContract, ElementaryTypeNameExpression), + ( + Literal, + Identifier, + NewArray, + NewContract, + ElementaryTypeNameExpression, + NewElementaryType, + ), ): return diff --git a/tests/unit/slithir/test_data/ternary_expressions.sol b/tests/unit/slithir/test_data/ternary_expressions.sol index c73a2b6b3..ebfb96e80 100644 --- a/tests/unit/slithir/test_data/ternary_expressions.sol +++ b/tests/unit/slithir/test_data/ternary_expressions.sol @@ -49,4 +49,8 @@ contract C { myIntegers[cond ? a : b] ); } + + function i(bool cond) public { + bytes memory a = new bytes(cond ? 1 : 2); + } } From 6451285f8f62d7fb24d79d52fa47e7039a2f2b0c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 3 Apr 2023 16:00:03 -0500 Subject: [PATCH 026/105] create tmpdir in master xdist worker and store lockfiles there --- .github/scripts/unit_test_runner.sh | 4 +-- tests/conftest.py | 54 ++++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/.github/scripts/unit_test_runner.sh b/.github/scripts/unit_test_runner.sh index ad338f342..92afd0a4e 100644 --- a/.github/scripts/unit_test_runner.sh +++ b/.github/scripts/unit_test_runner.sh @@ -2,11 +2,11 @@ # used to pass --cov=$path and --cov-append to pytest if [ "$1" != "" ]; then - pytest "$1" tests/unit/ + pytest "$1" tests/unit/ -n auto status_code=$? python -m coverage report else - pytest tests/unit/ + pytest tests/unit/ -n auto status_code=$? fi diff --git a/tests/conftest.py b/tests/conftest.py index c6feead55..930c92195 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,17 +1,54 @@ # pylint: disable=redefined-outer-name +import os from pathlib import Path +import tempfile +import shutil from contextlib import contextmanager -from tempfile import NamedTemporaryFile import pytest from filelock import FileLock from solc_select import solc_select from slither import Slither -@pytest.fixture() -def solc_binary_path(): +def pytest_configure(config): + """Create a temporary directory for the tests to use.""" + if is_master(): + config.stash["shared_directory"] = tempfile.mkdtemp() + + +def pytest_unconfigure(config): + """Remove the temporary directory after the tests are done.""" + if is_master(): + shutil.rmtree(config.stash["shared_directory"]) + + +def pytest_configure_node(node): + """Configure each worker node with the shared directory.""" + node.workerinput["shared_directory"] = node.config.stash["shared_directory"] + + +def is_master(): + """Returns True if the current process is the master process (which does not have a worker id).""" + return os.environ.get("PYTEST_XDIST_WORKER") is None + + +@pytest.fixture +def shared_directory(request): + """Returns the shared directory for the current process.""" + if is_master(): + return request.config.stash["shared_directory"] + return request.config.workerinput["shared_directory"] + + +@pytest.fixture +def solc_binary_path(shared_directory): + """ + Returns the path to the solc binary for the given version. + If the binary is not installed, it will be installed. + """ + def inner(version): - lock = FileLock(f"{version}.lock", timeout=60) + lock = FileLock(f"{shared_directory}/{version}.lock", timeout=60) with lock: if not solc_select.artifact_path(version).exists(): print("Installing solc version", version) @@ -21,18 +58,17 @@ def solc_binary_path(): return inner -@pytest.fixture() +@pytest.fixture def slither_from_source(solc_binary_path): @contextmanager def inner(source_code: str, solc_version: str = "0.8.19"): - """Yields a Slither instance using source_code string and solc_version - - Creates a temporary file and changes the solc-version temporary to solc_version. + """Yields a Slither instance using source_code string and solc_version. + Creates a temporary file and compiles with solc_version. """ fname = "" try: - with NamedTemporaryFile(mode="w", suffix=".sol", delete=False) as f: + with tempfile.NamedTemporaryFile(mode="w", suffix=".sol", delete=False) as f: fname = f.name f.write(source_code) solc_path = solc_binary_path(solc_version) From 90d3b740b3576ba2b1f4e50520d1324b7db3e4a6 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 3 Apr 2023 23:17:22 -0500 Subject: [PATCH 027/105] use as_posix for solc binary path --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 930c92195..5ea228fd3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -53,7 +53,7 @@ def solc_binary_path(shared_directory): if not solc_select.artifact_path(version).exists(): print("Installing solc version", version) solc_select.install_artifacts([version]) - return solc_select.artifact_path(version) + return solc_select.artifact_path(version).as_posix() return inner From 92d3e4ff210bcee97c96a0f77072270ca6840113 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 3 Apr 2023 23:41:16 -0500 Subject: [PATCH 028/105] replace new uses of switch_global_version with solc_binary_path --- tests/unit/core/test_fallback_receive.py | 6 +++--- tests/unit/utils/test_upgradeability_util.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/unit/core/test_fallback_receive.py b/tests/unit/core/test_fallback_receive.py index 505a9dd6f..f22e2bcef 100644 --- a/tests/unit/core/test_fallback_receive.py +++ b/tests/unit/core/test_fallback_receive.py @@ -7,10 +7,10 @@ from slither.core.declarations.function import FunctionType TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" -def test_fallback_receive(): - solc_select.switch_global_version("0.6.12", always_install=True) +def test_fallback_receive(solc_binary_path): + solc_path = solc_binary_path("0.6.12") file = Path(TEST_DATA_DIR, "fallback.sol").as_posix() - slither = Slither(file) + slither = Slither(file, solc=solc_path) fake_fallback = slither.get_contract_from_name("FakeFallback")[0] real_fallback = slither.get_contract_from_name("Fallback")[0] diff --git a/tests/unit/utils/test_upgradeability_util.py b/tests/unit/utils/test_upgradeability_util.py index 7d6fb82da..87db0a911 100644 --- a/tests/unit/utils/test_upgradeability_util.py +++ b/tests/unit/utils/test_upgradeability_util.py @@ -16,10 +16,10 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" / "upgradeability_ # pylint: disable=too-many-locals -def test_upgrades_compare() -> None: - solc_select.switch_global_version("0.8.2", always_install=True) +def test_upgrades_compare(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.2") - sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.8.2.sol")) + sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.8.2.sol"), solc=solc_path) v1 = sl.get_contract_from_name("ContractV1")[0] v2 = sl.get_contract_from_name("ContractV2")[0] missing_vars, new_vars, tainted_vars, new_funcs, modified_funcs, tainted_funcs = compare(v1, v2) @@ -37,9 +37,9 @@ def test_upgrades_compare() -> None: ] -def test_upgrades_implementation_var() -> None: - solc_select.switch_global_version("0.8.2", always_install=True) - sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.8.2.sol")) +def test_upgrades_implementation_var(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.2") + sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.8.2.sol"), solc=solc_path) erc_1967_proxy = sl.get_contract_from_name("ERC1967Proxy")[0] storage_proxy = sl.get_contract_from_name("InheritedStorageProxy")[0] @@ -53,8 +53,8 @@ def test_upgrades_implementation_var() -> None: assert target == storage_proxy.get_state_variable_from_name("implementation") assert slot.slot == 1 - solc_select.switch_global_version("0.5.0", always_install=True) - sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.5.0.sol")) + solc_path = solc_binary_path("0.5.0") + sl = Slither(os.path.join(TEST_DATA_DIR, "TestUpgrades-0.5.0.sol"), solc=solc_path) eip_1822_proxy = sl.get_contract_from_name("EIP1822Proxy")[0] # zos_proxy = sl.get_contract_from_name("ZosProxy")[0] From d1b9e8288900d6b7d75025b3f589adec0b68a045 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 3 Apr 2023 23:45:16 -0500 Subject: [PATCH 029/105] lint: unused imports --- tests/unit/core/test_fallback_receive.py | 1 - tests/unit/utils/test_upgradeability_util.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/tests/unit/core/test_fallback_receive.py b/tests/unit/core/test_fallback_receive.py index f22e2bcef..9b00c5948 100644 --- a/tests/unit/core/test_fallback_receive.py +++ b/tests/unit/core/test_fallback_receive.py @@ -1,5 +1,4 @@ from pathlib import Path -from solc_select import solc_select from slither import Slither from slither.core.declarations.function import FunctionType diff --git a/tests/unit/utils/test_upgradeability_util.py b/tests/unit/utils/test_upgradeability_util.py index 87db0a911..1563d3117 100644 --- a/tests/unit/utils/test_upgradeability_util.py +++ b/tests/unit/utils/test_upgradeability_util.py @@ -1,8 +1,6 @@ import os from pathlib import Path -from solc_select import solc_select - from slither import Slither from slither.core.expressions import Literal from slither.utils.upgradeability import ( From 05f50867dc95978b5717a1bddcd1d9a6ab378820 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 4 Apr 2023 10:55:49 -0500 Subject: [PATCH 030/105] use pytest-insta to do snapshot testing for detectors --- .gitignore | 1 + setup.py | 3 +- ...4_25_storage_ABIEncoderV2_array_sol__0.txt | 18 ++ ...5_10_storage_ABIEncoderV2_array_sol__0.txt | 0 ..._5_9_storage_ABIEncoderV2_array_sol__0.txt | 18 ++ ...mit_0_4_25_arbitrary_send_erc20_sol__0.txt | 6 + ...mit_0_5_16_arbitrary_send_erc20_sol__0.txt | 6 + ...mit_0_6_11_arbitrary_send_erc20_sol__0.txt | 6 + ...rmit_0_7_6_arbitrary_send_erc20_sol__0.txt | 6 + ...rbitrary_send_erc20_inheritance_sol__0.txt | 2 + ...rmit_0_8_0_arbitrary_send_erc20_sol__0.txt | 6 + ..._25_arbitrary_send_erc20_permit_sol__0.txt | 8 + ..._16_arbitrary_send_erc20_permit_sol__0.txt | 8 + ..._11_arbitrary_send_erc20_permit_sol__0.txt | 8 + ...7_6_arbitrary_send_erc20_permit_sol__0.txt | 8 + ...8_0_arbitrary_send_erc20_permit_sol__0.txt | 8 + ...ndEth_0_4_25_arbitrary_send_eth_sol__0.txt | 8 + ...ndEth_0_5_16_arbitrary_send_eth_sol__0.txt | 8 + ...ndEth_0_6_11_arbitrary_send_eth_sol__0.txt | 8 + ...endEth_0_7_6_arbitrary_send_eth_sol__0.txt | 8 + ...rence_0_4_25_array_by_reference_sol__0.txt | 12 ++ ...rence_0_5_16_array_by_reference_sol__0.txt | 12 ++ ...rence_0_6_11_array_by_reference_sol__0.txt | 12 ++ ...erence_0_7_6_array_by_reference_sol__0.txt | 12 ++ ..._0_4_25_array_length_assignment_sol__0.txt | 9 + ..._0_5_16_array_length_assignment_sol__0.txt | 9 + ...0_4_25_inline_assembly_contract_sol__0.txt | 3 + ..._0_4_25_inline_assembly_library_sol__0.txt | 6 + ...0_5_16_inline_assembly_contract_sol__0.txt | 3 + ..._0_5_16_inline_assembly_library_sol__0.txt | 6 + ...0_6_11_inline_assembly_contract_sol__0.txt | 3 + ..._0_6_11_inline_assembly_library_sol__0.txt | 6 + ..._0_7_6_inline_assembly_contract_sol__0.txt | 3 + ...y_0_7_6_inline_assembly_library_sol__0.txt | 6 + ...ange_0_4_25_assert_state_change_sol__0.txt | 12 ++ ...ange_0_5_16_assert_state_change_sol__0.txt | 12 ++ ...ange_0_6_11_assert_state_change_sol__0.txt | 12 ++ ...hange_0_7_6_assert_state_change_sol__0.txt | 12 ++ ...tector_Backdoor_0_4_25_backdoor_sol__0.txt | 2 + ...tector_Backdoor_0_5_16_backdoor_sol__0.txt | 2 + ...tector_Backdoor_0_6_11_backdoor_sol__0.txt | 2 + ...etector_Backdoor_0_7_6_backdoor_sol__0.txt | 2 + ...etector_BadPRNG_0_4_25_bad_prng_sol__0.txt | 8 + ...etector_BadPRNG_0_5_16_bad_prng_sol__0.txt | 8 + ...etector_BadPRNG_0_6_11_bad_prng_sol__0.txt | 8 + ...detector_BadPRNG_0_7_6_bad_prng_sol__0.txt | 8 + ..._0_4_25_boolean_constant_misuse_sol__0.txt | 3 + ..._0_5_16_boolean_constant_misuse_sol__0.txt | 3 + ..._0_6_11_boolean_constant_misuse_sol__0.txt | 3 + ...e_0_7_6_boolean_constant_misuse_sol__0.txt | 3 + ..._4_25_boolean_constant_equality_sol__0.txt | 3 + ..._5_16_boolean_constant_equality_sol__0.txt | 3 + ..._6_11_boolean_constant_equality_sol__0.txt | 3 + ...0_7_6_boolean_constant_equality_sol__0.txt | 3 + ..._4_25_shadowing_builtin_symbols_sol__0.txt | 26 +++ ..._5_16_shadowing_builtin_symbols_sol__0.txt | 24 +++ ...antFunctionsAsm_0_4_25_constant_sol__0.txt | 2 + ...antFunctionsAsm_0_5_16_constant_sol__0.txt | 0 ...antFunctionsAsm_0_6_11_constant_sol__0.txt | 0 ...tantFunctionsAsm_0_7_6_constant_sol__0.txt | 0 ...tFunctionsState_0_4_25_constant_sol__0.txt | 6 + ...tFunctionsState_0_5_16_constant_sol__0.txt | 0 ...tFunctionsState_0_6_11_constant_sol__0.txt | 0 ...ntFunctionsState_0_7_6_constant_sol__0.txt | 0 ...tantPragma_0_4_25_pragma_0_4_25_sol__0.txt | 5 + ...tantPragma_0_5_16_pragma_0_5_16_sol__0.txt | 5 + ...tantPragma_0_6_11_pragma_0_6_11_sol__0.txt | 5 + ...nstantPragma_0_7_6_pragma_0_7_6_sol__0.txt | 5 + ..._0_4_25_controlled_delegatecall_sol__0.txt | 6 + ..._0_5_16_controlled_delegatecall_sol__0.txt | 6 + ..._0_6_11_controlled_delegatecall_sol__0.txt | 6 + ...l_0_7_6_controlled_delegatecall_sol__0.txt | 6 + ...tiple_costly_operations_in_loop_sol__0.txt | 12 ++ ...tiple_costly_operations_in_loop_sol__0.txt | 12 ++ ...tiple_costly_operations_in_loop_sol__0.txt | 12 ++ ...tiple_costly_operations_in_loop_sol__0.txt | 12 ++ ...nt_0_4_25_const_state_variables_sol__0.txt | 12 ++ ...nt_0_5_16_const_state_variables_sol__0.txt | 14 ++ ...nt_0_6_11_const_state_variables_sol__0.txt | 14 ++ ...ant_0_7_6_const_state_variables_sol__0.txt | 14 ++ ...ant_0_8_0_const_state_variables_sol__0.txt | 14 ++ ...le_0_4_25_immut_state_variables_sol__0.txt | 0 ...le_0_5_16_immut_state_variables_sol__0.txt | 0 ...le_0_6_11_immut_state_variables_sol__0.txt | 10 + ...ble_0_7_6_immut_state_variables_sol__0.txt | 10 + ...ble_0_8_0_immut_state_variables_sol__0.txt | 8 + ...0_8_16_HighCyclomaticComplexity_sol__0.txt | 2 + ..._0_8_16_LowCyclomaticComplexity_sol__0.txt | 0 ...tector_DeadCode_0_8_0_dead_code_sol__0.txt | 6 + ...InLoop_0_4_25_delegatecall_loop_sol__0.txt | 6 + ...InLoop_0_5_16_delegatecall_loop_sol__0.txt | 6 + ...InLoop_0_6_11_delegatecall_loop_sol__0.txt | 6 + ...lInLoop_0_7_6_delegatecall_loop_sol__0.txt | 6 + ...lInLoop_0_8_0_delegatecall_loop_sol__0.txt | 6 + ...andards_0_4_25_deprecated_calls_sol__0.txt | 6 + ...y_0_4_25_divide_before_multiply_sol__0.txt | 3 + ...y_0_5_16_divide_before_multiply_sol__0.txt | 3 + ...y_0_6_11_divide_before_multiply_sol__0.txt | 3 + ...ly_0_7_6_divide_before_multiply_sol__0.txt | 3 + ..._0_4_25_permit_domain_collision_sol__0.txt | 2 + ...rmit_domain_state_var_collision_sol__0.txt | 2 + ...permit_domain_wrong_return_type_sol__0.txt | 2 + ..._0_5_16_permit_domain_collision_sol__0.txt | 2 + ...rmit_domain_state_var_collision_sol__0.txt | 2 + ...permit_domain_wrong_return_type_sol__0.txt | 2 + ..._0_6_11_permit_domain_collision_sol__0.txt | 2 + ...rmit_domain_state_var_collision_sol__0.txt | 2 + ...permit_domain_wrong_return_type_sol__0.txt | 2 + ...n_0_7_6_permit_domain_collision_sol__0.txt | 2 + ...rmit_domain_state_var_collision_sol__0.txt | 2 + ...permit_domain_wrong_return_type_sol__0.txt | 2 + ...n_0_8_0_permit_domain_collision_sol__0.txt | 2 + ...rmit_domain_state_var_collision_sol__0.txt | 2 + ...permit_domain_wrong_return_type_sol__0.txt | 2 + ...tion_0_4_25_external_function_2_sol__0.txt | 0 ...tion_0_4_25_external_function_3_sol__0.txt | 9 + ...nction_0_4_25_external_function_sol__0.txt | 0 ...tion_0_5_16_external_function_2_sol__0.txt | 0 ...tion_0_5_16_external_function_3_sol__0.txt | 20 ++ ...nction_0_5_16_external_function_sol__0.txt | 0 ...tion_0_6_11_external_function_2_sol__0.txt | 0 ...tion_0_6_11_external_function_3_sol__0.txt | 0 ...nction_0_6_11_external_function_sol__0.txt | 0 ...ction_0_7_6_external_function_2_sol__0.txt | 0 ...ction_0_7_6_external_function_3_sol__0.txt | 0 ...unction_0_7_6_external_function_sol__0.txt | 0 ...5_function_init_state_variables_sol__0.txt | 15 ++ ...6_function_init_state_variables_sol__0.txt | 15 ++ ...1_function_init_state_variables_sol__0.txt | 15 ++ ...6_function_init_state_variables_sol__0.txt | 15 ++ ..._4_25_incorrect_erc20_interface_sol__0.txt | 12 ++ ..._5_16_incorrect_erc20_interface_sol__0.txt | 12 ++ ..._6_11_incorrect_erc20_interface_sol__0.txt | 12 ++ ...0_7_6_incorrect_erc20_interface_sol__0.txt | 12 ++ ...4_25_incorrect_erc721_interface_sol__0.txt | 20 ++ ...5_16_incorrect_erc721_interface_sol__0.txt | 20 ++ ...6_11_incorrect_erc721_interface_sol__0.txt | 20 ++ ..._7_6_incorrect_erc721_interface_sol__0.txt | 20 ++ ...tor_IncorrectSolc_0_4_25_static_sol__0.txt | 4 + ...tor_IncorrectSolc_0_5_14_static_sol__0.txt | 3 + ..._IncorrectSolc_0_5_16_dynamic_1_sol__0.txt | 4 + ..._IncorrectSolc_0_5_16_dynamic_2_sol__0.txt | 4 + ...tor_IncorrectSolc_0_5_16_static_sol__0.txt | 4 + ...tor_IncorrectSolc_0_6_10_static_sol__0.txt | 4 + ..._IncorrectSolc_0_6_11_dynamic_1_sol__0.txt | 4 + ..._IncorrectSolc_0_6_11_dynamic_2_sol__0.txt | 4 + ...tor_IncorrectSolc_0_6_11_static_sol__0.txt | 4 + ...ctor_IncorrectSolc_0_7_4_static_sol__0.txt | 4 + ...r_IncorrectSolc_0_7_6_dynamic_1_sol__0.txt | 4 + ...r_IncorrectSolc_0_7_6_dynamic_2_sol__0.txt | 4 + ...ctor_IncorrectSolc_0_7_6_static_sol__0.txt | 4 + ...ality_0_4_25_incorrect_equality_sol__0.txt | 36 ++++ ...ality_0_5_16_incorrect_equality_sol__0.txt | 36 ++++ ...ality_0_6_11_incorrect_equality_sol__0.txt | 36 ++++ ...uality_0_7_6_incorrect_equality_sol__0.txt | 36 ++++ ...0_4_25_invalid_unary_expression_sol__0.txt | 8 + ...0_4_25_shadowing_local_variable_sol__0.txt | 20 ++ ...0_5_16_shadowing_local_variable_sol__0.txt | 23 +++ ...0_6_11_shadowing_local_variable_sol__0.txt | 21 +++ ..._0_7_6_shadowing_local_variable_sol__0.txt | 21 +++ ...LockedEther_0_4_25_locked_ether_sol__0.txt | 5 + ...LockedEther_0_5_16_locked_ether_sol__0.txt | 5 + ...LockedEther_0_6_11_locked_ether_sol__0.txt | 5 + ..._LockedEther_0_7_6_locked_ether_sol__0.txt | 5 + ...velCalls_0_4_25_low_level_calls_sol__0.txt | 3 + ...velCalls_0_5_16_low_level_calls_sol__0.txt | 3 + ...velCalls_0_6_11_low_level_calls_sol__0.txt | 3 + ...evelCalls_0_7_6_low_level_calls_sol__0.txt | 3 + ...etection_0_4_25_MappingDeletion_sol__0.txt | 6 + ...etection_0_5_16_MappingDeletion_sol__0.txt | 6 + ...etection_0_6_11_MappingDeletion_sol__0.txt | 6 + ...Detection_0_7_6_MappingDeletion_sol__0.txt | 6 + ...5_missing_events_access_control_sol__0.txt | 9 + ...6_missing_events_access_control_sol__0.txt | 9 + ...1_missing_events_access_control_sol__0.txt | 9 + ...6_missing_events_access_control_sol__0.txt | 9 + ..._4_25_missing_events_arithmetic_sol__0.txt | 6 + ..._5_16_missing_events_arithmetic_sol__0.txt | 6 + ..._6_11_missing_events_arithmetic_sol__0.txt | 6 + ...0_7_6_missing_events_arithmetic_sol__0.txt | 6 + ..._0_4_25_unimplemented_interface_sol__0.txt | 2 + ..._0_5_16_unimplemented_interface_sol__0.txt | 2 + ..._0_6_11_unimplemented_interface_sol__0.txt | 2 + ...e_0_7_6_unimplemented_interface_sol__0.txt | 2 + ...missing_zero_address_validation_sol__0.txt | 16 ++ ...missing_zero_address_validation_sol__0.txt | 16 ++ ...missing_zero_address_validation_sol__0.txt | 16 ++ ...missing_zero_address_validation_sol__0.txt | 16 ++ ...tection_0_4_25_modifier_default_sol__0.txt | 3 + ...tection_0_5_16_modifier_default_sol__0.txt | 3 + ...tection_0_6_11_modifier_default_sol__0.txt | 3 + ...etection_0_7_6_modifier_default_sol__0.txt | 3 + ...lueInLoop_0_4_25_msg_value_loop_sol__0.txt | 6 + ...lueInLoop_0_5_16_msg_value_loop_sol__0.txt | 6 + ...lueInLoop_0_6_11_msg_value_loop_sol__0.txt | 6 + ...alueInLoop_0_7_6_msg_value_loop_sol__0.txt | 6 + ...alueInLoop_0_8_0_msg_value_loop_sol__0.txt | 6 + ...p_0_4_25_multiple_calls_in_loop_sol__0.txt | 8 + ...p_0_5_16_multiple_calls_in_loop_sol__0.txt | 8 + ...p_0_6_11_multiple_calls_in_loop_sol__0.txt | 8 + ...op_0_7_6_multiple_calls_in_loop_sol__0.txt | 8 + ...22_multiple_constructor_schemes_sol__0.txt | 4 + ...ention_0_4_25_naming_convention_sol__0.txt | 32 ++++ ...no_warning_for_public_constants_sol__0.txt | 0 ...ention_0_5_16_naming_convention_sol__0.txt | 32 ++++ ...no_warning_for_public_constants_sol__0.txt | 0 ...ention_0_6_11_naming_convention_sol__0.txt | 32 ++++ ...no_warning_for_public_constants_sol__0.txt | 0 ...vention_0_7_6_naming_convention_sol__0.txt | 32 ++++ ...no_warning_for_public_constants_sol__0.txt | 0 ...4_25_predeclaration_usage_local_sol__0.txt | 10 + ...rotectedVariables_0_8_2_comment_sol__0.txt | 4 + ...d_0_4_25_public_mappings_nested_sol__0.txt | 2 + ...nts_0_4_25_redundant_statements_sol__0.txt | 12 ++ ...nts_0_5_16_redundant_statements_sol__0.txt | 12 ++ ...nts_0_6_11_redundant_statements_sol__0.txt | 12 ++ ...ents_0_7_6_redundant_statements_sol__0.txt | 12 ++ ...Benign_0_4_25_reentrancy_benign_sol__0.txt | 50 +++++ ...Benign_0_5_16_reentrancy_benign_sol__0.txt | 50 +++++ ...Benign_0_6_11_reentrancy_benign_sol__0.txt | 50 +++++ ...yBenign_0_7_6_reentrancy_benign_sol__0.txt | 50 +++++ ...tector_ReentrancyEth_0_4_25_DAO_sol__0.txt | 72 ++++++++ ...yEth_0_4_25_reentrancy_indirect_sol__0.txt | 15 ++ ...ReentrancyEth_0_4_25_reentrancy_sol__0.txt | 32 ++++ ...yEth_0_5_16_reentrancy_indirect_sol__0.txt | 15 ++ ...ReentrancyEth_0_5_16_reentrancy_sol__0.txt | 28 +++ ...yEth_0_6_11_reentrancy_indirect_sol__0.txt | 15 ++ ...ReentrancyEth_0_6_11_reentrancy_sol__0.txt | 28 +++ ...cyEth_0_7_6_reentrancy_indirect_sol__0.txt | 15 ++ ..._ReentrancyEth_0_7_6_reentrancy_sol__0.txt | 28 +++ ...10_reentrancy_filtered_comments_sol__0.txt | 9 + ...0_reentrancy_with_non_reentrant_sol__0.txt | 32 ++++ ...yEvent_0_5_16_reentrancy_events_sol__0.txt | 6 + ...yEvent_0_6_11_reentrancy_events_sol__0.txt | 6 + ...cyEvent_0_7_6_reentrancy_events_sol__0.txt | 6 + ...ncyReadBeforeWritten_0_4_25_DAO_sol__0.txt | 171 ++++++++++++++++++ ...Written_0_4_25_reentrancy_write_sol__0.txt | 25 +++ ...0_5_16_no_reentrancy_staticcall_sol__0.txt | 0 ...Written_0_5_16_reentrancy_write_sol__0.txt | 25 +++ ...0_6_11_no_reentrancy_staticcall_sol__0.txt | 0 ...Written_0_6_11_reentrancy_write_sol__0.txt | 25 +++ ..._0_7_6_no_reentrancy_staticcall_sol__0.txt | 0 ...eWritten_0_7_6_reentrancy_write_sol__0.txt | 25 +++ ...ReadBeforeWritten_0_8_2_comment_sol__0.txt | 0 ..._0_4_21_reused_base_constructor_sol__0.txt | 24 +++ ..._0_4_25_reused_base_constructor_sol__0.txt | 35 ++++ ...e_0_4_25_right_to_left_override_sol__0.txt | 3 + ...e_0_5_16_right_to_left_override_sol__0.txt | 3 + ...e_0_6_11_right_to_left_override_sol__0.txt | 3 + ..._8_0_unicode_direction_override_sol__0.txt | 9 + ...ction_0_4_25_shadowing_abstract_sol__0.txt | 3 + ...ction_0_5_16_shadowing_abstract_sol__0.txt | 3 + ...ction_0_7_5_public_gap_variable_sol__0.txt | 3 + ..._0_7_5_shadowing_state_variable_sol__0.txt | 0 ...up_0_4_25_shift_parameter_mixup_sol__0.txt | 0 ...up_0_5_16_shift_parameter_mixup_sol__0.txt | 0 ...up_0_6_11_shift_parameter_mixup_sol__0.txt | 2 + ...xup_0_7_6_shift_parameter_mixup_sol__0.txt | 2 + ...ection_0_4_25_similar_variables_sol__0.txt | 2 + ...ection_0_5_16_similar_variables_sol__0.txt | 2 + ...ection_0_6_11_similar_variables_sol__0.txt | 2 + ...tection_0_7_6_similar_variables_sol__0.txt | 2 + ...0_4_25_shadowing_state_variable_sol__0.txt | 3 + ...0_5_16_shadowing_state_variable_sol__0.txt | 3 + ...0_6_11_shadowing_state_variable_sol__0.txt | 0 ...owing_0_7_5_public_gap_variable_sol__0.txt | 3 + ..._0_7_5_shadowing_state_variable_sol__0.txt | 0 ..._0_7_6_shadowing_state_variable_sol__0.txt | 0 ...10_storage_signed_integer_array_sol__0.txt | 0 ...16_storage_signed_integer_array_sol__0.txt | 0 ...tector_Suicidal_0_4_25_suicidal_sol__0.txt | 2 + ...tector_Suicidal_0_5_16_suicidal_sol__0.txt | 2 + ...tector_Suicidal_0_6_11_suicidal_sol__0.txt | 2 + ...etector_Suicidal_0_7_6_suicidal_sol__0.txt | 2 + ...ctor_Timestamp_0_4_25_timestamp_sol__0.txt | 12 ++ ...ctor_Timestamp_0_5_16_timestamp_sol__0.txt | 12 ++ ...ctor_Timestamp_0_6_11_timestamp_sol__0.txt | 12 ++ ...ector_Timestamp_0_7_6_timestamp_sol__0.txt | 12 ++ ...nyDigits_0_4_25_too_many_digits_sol__0.txt | 15 ++ ...nyDigits_0_5_16_too_many_digits_sol__0.txt | 15 ++ ...nyDigits_0_6_11_too_many_digits_sol__0.txt | 15 ++ ...anyDigits_0_7_6_too_many_digits_sol__0.txt | 15 ++ ...ector_TxOrigin_0_4_25_tx_origin_sol__0.txt | 4 + ...ector_TxOrigin_0_5_16_tx_origin_sol__0.txt | 4 + ...ector_TxOrigin_0_6_11_tx_origin_sol__0.txt | 4 + ...tector_TxOrigin_0_7_6_tx_origin_sol__0.txt | 4 + ...ogy_0_4_25_type_based_tautology_sol__0.txt | 6 + ...ogy_0_5_16_type_based_tautology_sol__0.txt | 6 + ...ogy_0_6_11_type_based_tautology_sol__0.txt | 6 + ...logy_0_7_6_type_based_tautology_sol__0.txt | 6 + ...Level_0_4_25_unchecked_lowlevel_sol__0.txt | 2 + ...Level_0_5_16_unchecked_lowlevel_sol__0.txt | 2 + ...Level_0_6_11_unchecked_lowlevel_sol__0.txt | 2 + ...wLevel_0_7_6_unchecked_lowlevel_sol__0.txt | 2 + ...eckedSend_0_4_25_unchecked_send_sol__0.txt | 2 + ...eckedSend_0_5_16_unchecked_send_sol__0.txt | 2 + ...eckedSend_0_6_11_unchecked_send_sol__0.txt | 2 + ...heckedSend_0_7_6_unchecked_send_sol__0.txt | 2 + ...r_0_7_6_unused_return_transfers_sol__0.txt | 4 + ...nDetection_0_4_25_unimplemented_sol__0.txt | 13 ++ ...0_5_16_unimplemented_interfaces_sol__0.txt | 0 ...nDetection_0_5_16_unimplemented_sol__0.txt | 7 + ...0_6_11_unimplemented_interfaces_sol__0.txt | 0 ...nDetection_0_6_11_unimplemented_sol__0.txt | 10 + ..._0_7_6_unimplemented_interfaces_sol__0.txt | 0 ...onDetection_0_7_6_unimplemented_sol__0.txt | 10 + ...Parameters_0_4_25_erc20_indexed_sol__0.txt | 8 + ...Parameters_0_5_16_erc20_indexed_sol__0.txt | 8 + ...Parameters_0_6_11_erc20_indexed_sol__0.txt | 8 + ...tParameters_0_7_6_erc20_indexed_sol__0.txt | 8 + ...alized_function_ptr_constructor_sol__0.txt | 12 ++ ...alized_function_ptr_constructor_sol__0.txt | 0 ...alized_function_ptr_constructor_sol__0.txt | 12 ++ ...25_uninitialized_local_variable_sol__0.txt | 2 + ...16_uninitialized_local_variable_sol__0.txt | 2 + ...11_uninitialized_local_variable_sol__0.txt | 2 + ..._6_uninitialized_local_variable_sol__0.txt | 2 + ...sDetection_0_4_25_uninitialized_sol__0.txt | 12 ++ ...sDetection_0_5_16_uninitialized_sol__0.txt | 12 ++ ...sDetection_0_6_11_uninitialized_sol__0.txt | 12 ++ ...rsDetection_0_7_6_uninitialized_sol__0.txt | 12 ++ ...5_uninitialized_storage_pointer_sol__0.txt | 2 + ...9_uninitialized_storage_pointer_sol__0.txt | 2 + ...otectedUpgradeable_0_4_25_Buggy_sol__0.txt | 1 + ...otectedUpgradeable_0_4_25_Fixed_sol__0.txt | 0 ...dUpgradeable_0_4_25_whitelisted_sol__0.txt | 0 ...otectedUpgradeable_0_5_16_Buggy_sol__0.txt | 1 + ...otectedUpgradeable_0_5_16_Fixed_sol__0.txt | 0 ...dUpgradeable_0_5_16_whitelisted_sol__0.txt | 0 ...otectedUpgradeable_0_6_11_Buggy_sol__0.txt | 1 + ...otectedUpgradeable_0_6_11_Fixed_sol__0.txt | 0 ...dUpgradeable_0_6_11_whitelisted_sol__0.txt | 0 ...rotectedUpgradeable_0_7_6_Buggy_sol__0.txt | 1 + ...rotectedUpgradeable_0_7_6_Fixed_sol__0.txt | 0 ...edUpgradeable_0_7_6_whitelisted_sol__0.txt | 0 ...otectedUpgradeable_0_8_15_Buggy_sol__0.txt | 1 + ...otectedUpgradeable_0_8_15_Fixed_sol__0.txt | 0 ...dUpgradeable_0_8_15_whitelisted_sol__0.txt | 0 ...turnValues_0_4_25_unused_return_sol__0.txt | 4 + ...turnValues_0_5_16_unused_return_sol__0.txt | 4 + ...turnValues_0_6_11_unused_return_sol__0.txt | 4 + ...eturnValues_0_7_6_unused_return_sol__0.txt | 4 + ...edStateVars_0_4_25_unused_state_sol__0.txt | 8 + ...edStateVars_0_5_16_unused_state_sol__0.txt | 8 + ...edStateVars_0_6_11_unused_state_sol__0.txt | 8 + ...sedStateVars_0_7_6_unused_state_sol__0.txt | 8 + ...This_0_4_25_var_read_using_this_sol__0.txt | 0 ...This_0_5_16_var_read_using_this_sol__0.txt | 8 + ...This_0_6_11_var_read_using_this_sol__0.txt | 8 + ...gThis_0_7_6_var_read_using_this_sol__0.txt | 8 + ...This_0_8_15_var_read_using_this_sol__0.txt | 8 + ...VoidConstructor_0_4_25_void_cst_sol__0.txt | 3 + ...VoidConstructor_0_5_16_void_cst_sol__0.txt | 3 + ...VoidConstructor_0_6_11_void_cst_sol__0.txt | 3 + ..._VoidConstructor_0_7_6_void_cst_sol__0.txt | 3 + ...erWrite_0_8_0_write_after_write_sol__0.txt | 12 ++ tests/e2e/detectors/test_detectors.py | 9 +- 357 files changed, 2986 insertions(+), 2 deletions(-) create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_4_25_storage_ABIEncoderV2_array_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_10_storage_ABIEncoderV2_array_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_9_storage_ABIEncoderV2_array_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_4_25_arbitrary_send_erc20_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_5_16_arbitrary_send_erc20_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_6_11_arbitrary_send_erc20_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_7_6_arbitrary_send_erc20_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_inheritance_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_4_25_arbitrary_send_erc20_permit_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_5_16_arbitrary_send_erc20_permit_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_6_11_arbitrary_send_erc20_permit_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_7_6_arbitrary_send_erc20_permit_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_8_0_arbitrary_send_erc20_permit_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_4_25_arbitrary_send_eth_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_5_16_arbitrary_send_eth_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_6_11_arbitrary_send_eth_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_7_6_arbitrary_send_eth_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_4_25_array_by_reference_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_5_16_array_by_reference_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_6_11_array_by_reference_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_7_6_array_by_reference_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_4_25_array_length_assignment_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_5_16_array_length_assignment_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_contract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_library_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_contract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_library_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_contract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_library_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_contract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_library_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_4_25_assert_state_change_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_5_16_assert_state_change_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_6_11_assert_state_change_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_7_6_assert_state_change_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_4_25_backdoor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_5_16_backdoor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_6_11_backdoor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_7_6_backdoor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_4_25_bad_prng_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_5_16_bad_prng_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_6_11_bad_prng_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_7_6_bad_prng_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_4_25_boolean_constant_misuse_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_5_16_boolean_constant_misuse_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_6_11_boolean_constant_misuse_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_7_6_boolean_constant_misuse_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_4_25_boolean_constant_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_5_16_boolean_constant_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_6_11_boolean_constant_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_7_6_boolean_constant_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_4_25_shadowing_builtin_symbols_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_5_16_shadowing_builtin_symbols_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_4_25_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_5_16_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_6_11_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_7_6_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_4_25_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_5_16_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_6_11_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_7_6_constant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_4_25_pragma_0_4_25_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_5_16_pragma_0_5_16_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_6_11_pragma_0_6_11_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_7_6_pragma_0_7_6_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_4_25_controlled_delegatecall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_5_16_controlled_delegatecall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_6_11_controlled_delegatecall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_7_6_controlled_delegatecall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_4_25_multiple_costly_operations_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_5_16_multiple_costly_operations_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_6_11_multiple_costly_operations_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_7_6_multiple_costly_operations_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_4_25_const_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_5_16_const_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_6_11_const_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_7_6_const_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_8_0_const_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_4_25_immut_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_5_16_immut_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_6_11_immut_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_7_6_immut_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_8_0_immut_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_HighCyclomaticComplexity_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_LowCyclomaticComplexity_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DeadCode_0_8_0_dead_code_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_4_25_delegatecall_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_5_16_delegatecall_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_6_11_delegatecall_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_7_6_delegatecall_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_8_0_delegatecall_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DeprecatedStandards_0_4_25_deprecated_calls_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_4_25_divide_before_multiply_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_5_16_divide_before_multiply_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_6_11_divide_before_multiply_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_7_6_divide_before_multiply_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_state_var_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_wrong_return_type_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_state_var_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_wrong_return_type_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_state_var_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_wrong_return_type_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_state_var_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_wrong_return_type_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_state_var_collision_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_wrong_return_type_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_4_25_function_init_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_5_16_function_init_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_6_11_function_init_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_7_6_function_init_state_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_4_25_incorrect_erc20_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_5_16_incorrect_erc20_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_6_11_incorrect_erc20_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_7_6_incorrect_erc20_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_4_25_incorrect_erc721_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_5_16_incorrect_erc721_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_6_11_incorrect_erc721_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_7_6_incorrect_erc721_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_4_25_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_14_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_10_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_4_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_static_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_4_25_incorrect_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_5_16_incorrect_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_6_11_incorrect_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_7_6_incorrect_equality_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectUnaryExpressionDetection_0_4_25_invalid_unary_expression_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_4_25_shadowing_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_5_16_shadowing_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_6_11_shadowing_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_7_6_shadowing_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_4_25_locked_ether_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_5_16_locked_ether_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_6_11_locked_ether_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_7_6_locked_ether_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_4_25_low_level_calls_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_5_16_low_level_calls_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_6_11_low_level_calls_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_7_6_low_level_calls_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_4_25_MappingDeletion_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_5_16_MappingDeletion_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_6_11_MappingDeletion_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_7_6_MappingDeletion_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_4_25_missing_events_access_control_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_5_16_missing_events_access_control_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_6_11_missing_events_access_control_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_7_6_missing_events_access_control_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_4_25_missing_events_arithmetic_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_5_16_missing_events_arithmetic_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_6_11_missing_events_arithmetic_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_7_6_missing_events_arithmetic_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_4_25_unimplemented_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_5_16_unimplemented_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_6_11_unimplemented_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_7_6_unimplemented_interface_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_4_25_missing_zero_address_validation_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_5_16_missing_zero_address_validation_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_6_11_missing_zero_address_validation_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_7_6_missing_zero_address_validation_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_4_25_modifier_default_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_5_16_modifier_default_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_6_11_modifier_default_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_7_6_modifier_default_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_4_25_msg_value_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_5_16_msg_value_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_6_11_msg_value_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_7_6_msg_value_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_8_0_msg_value_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_4_25_multiple_calls_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_5_16_multiple_calls_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_6_11_multiple_calls_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_7_6_multiple_calls_in_loop_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_MultipleConstructorSchemes_0_4_22_multiple_constructor_schemes_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_naming_convention_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_no_warning_for_public_constants_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_naming_convention_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_no_warning_for_public_constants_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_naming_convention_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_no_warning_for_public_constants_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_naming_convention_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_no_warning_for_public_constants_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_PredeclarationUsageLocal_0_4_25_predeclaration_usage_local_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ProtectedVariables_0_8_2_comment_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_PublicMappingNested_0_4_25_public_mappings_nested_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_4_25_redundant_statements_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_5_16_redundant_statements_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_6_11_redundant_statements_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_7_6_redundant_statements_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_4_25_reentrancy_benign_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_5_16_reentrancy_benign_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_6_11_reentrancy_benign_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_7_6_reentrancy_benign_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_DAO_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_indirect_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_indirect_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_indirect_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_indirect_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_filtered_comments_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_with_non_reentrant_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_5_16_reentrancy_events_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_6_11_reentrancy_events_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_7_6_reentrancy_events_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_DAO_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_reentrancy_write_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_no_reentrancy_staticcall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_reentrancy_write_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_no_reentrancy_staticcall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_reentrancy_write_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_no_reentrancy_staticcall_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_reentrancy_write_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_8_2_comment_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_21_reused_base_constructor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_25_reused_base_constructor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_4_25_right_to_left_override_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_5_16_right_to_left_override_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_6_11_right_to_left_override_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_8_0_unicode_direction_override_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_4_25_shadowing_abstract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_5_16_shadowing_abstract_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_public_gap_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_4_25_shift_parameter_mixup_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_5_16_shift_parameter_mixup_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_6_11_shift_parameter_mixup_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_4_25_similar_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_5_16_similar_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_6_11_similar_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_7_6_similar_variables_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_4_25_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_5_16_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_6_11_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_public_gap_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_6_shadowing_state_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_10_storage_signed_integer_array_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_16_storage_signed_integer_array_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_4_25_suicidal_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_5_16_suicidal_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_6_11_suicidal_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_7_6_suicidal_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_4_25_timestamp_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_5_16_timestamp_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_6_11_timestamp_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_7_6_timestamp_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_4_25_too_many_digits_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_5_16_too_many_digits_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_6_11_too_many_digits_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_7_6_too_many_digits_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_4_25_tx_origin_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_5_16_tx_origin_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_6_11_tx_origin_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_7_6_tx_origin_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_4_25_type_based_tautology_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_5_16_type_based_tautology_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_6_11_type_based_tautology_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_7_6_type_based_tautology_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_4_25_unchecked_lowlevel_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_5_16_unchecked_lowlevel_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_6_11_unchecked_lowlevel_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_7_6_unchecked_lowlevel_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_4_25_unchecked_send_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_5_16_unchecked_send_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_6_11_unchecked_send_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_7_6_unchecked_send_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UncheckedTransfer_0_7_6_unused_return_transfers_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_4_25_unimplemented_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_interfaces_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_interfaces_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_interfaces_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_4_25_erc20_indexed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_5_16_erc20_indexed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_6_11_erc20_indexed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_7_6_erc20_indexed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_4_25_uninitialized_function_ptr_constructor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_16_uninitialized_function_ptr_constructor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_8_uninitialized_function_ptr_constructor_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_4_25_uninitialized_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_5_16_uninitialized_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_6_11_uninitialized_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_7_6_uninitialized_local_variable_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_4_25_uninitialized_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_5_16_uninitialized_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_6_11_uninitialized_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_7_6_uninitialized_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_4_25_uninitialized_storage_pointer_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_8_19_uninitialized_storage_pointer_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Buggy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Fixed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_whitelisted_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Buggy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Fixed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_whitelisted_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Buggy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Fixed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_whitelisted_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Buggy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Fixed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_whitelisted_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Buggy_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Fixed_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_whitelisted_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_4_25_unused_state_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_5_16_unused_state_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_6_11_unused_state_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_7_6_unused_state_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_4_25_var_read_using_this_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_5_16_var_read_using_this_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_6_11_var_read_using_this_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_7_6_var_read_using_this_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_8_15_var_read_using_this_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_4_25_void_cst_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_5_16_void_cst_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_6_11_void_cst_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_7_6_void_cst_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_WriteAfterWrite_0_8_0_write_after_write_sol__0.txt diff --git a/.gitignore b/.gitignore index 95fc5a7bf..4441c03d1 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ htmlcov/ .coverage .coverage.* .cache +.pytest_cache nosetests.xml coverage.xml *.cover diff --git a/setup.py b/setup.py index 59fd81ab5..27213481a 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,6 @@ setup( # "crytic-compile>=0.3.1,<0.4.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", "web3>=6.0.0", - "solc-select@git+https://github.com/crytic/solc-select.git@query-artifact-path#egg=solc-select", ], extras_require={ "lint": [ @@ -33,6 +32,8 @@ setup( "numpy", "coverage[toml]", "filelock", + "pytest-insta", + "solc-select@git+https://github.com/crytic/solc-select.git@query-artifact-path#egg=solc-select", ], "doc": [ "pdoc", diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_4_25_storage_ABIEncoderV2_array_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_4_25_storage_ABIEncoderV2_array_sol__0.txt new file mode 100644 index 000000000..35872cfcb --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_4_25_storage_ABIEncoderV2_array_sol__0.txt @@ -0,0 +1,18 @@ +Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug: + - b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#40) + +Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug: + - this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#22) + +Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug: + - event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#45) + +Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug: + - b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#35) + +Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug: + - this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#30) + +Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug: + - event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#50) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_10_storage_ABIEncoderV2_array_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_10_storage_ABIEncoderV2_array_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_9_storage_ABIEncoderV2_array_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_9_storage_ABIEncoderV2_array_sol__0.txt new file mode 100644 index 000000000..c63496458 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ABIEncoderV2Array_0_5_9_storage_ABIEncoderV2_array_sol__0.txt @@ -0,0 +1,18 @@ +Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug: + - event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#50) + +Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug: + - this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#22) + +Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug: + - event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#45) + +Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug: + - b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#35) + +Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug: + - this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#30) + +Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug: + - b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#40) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_4_25_arbitrary_send_erc20_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_4_25_arbitrary_send_erc20_sol__0.txt new file mode 100644 index 000000000..671bb5a8e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_4_25_arbitrary_send_erc20_sol__0.txt @@ -0,0 +1,6 @@ +C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#66) + +C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#36) + +C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#58) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_5_16_arbitrary_send_erc20_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_5_16_arbitrary_send_erc20_sol__0.txt new file mode 100644 index 000000000..3a51fec76 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_5_16_arbitrary_send_erc20_sol__0.txt @@ -0,0 +1,6 @@ +C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#66) + +C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#58) + +C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#36) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_6_11_arbitrary_send_erc20_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_6_11_arbitrary_send_erc20_sol__0.txt new file mode 100644 index 000000000..b6fcace17 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_6_11_arbitrary_send_erc20_sol__0.txt @@ -0,0 +1,6 @@ +C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#36) + +C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#58) + +C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#66) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_7_6_arbitrary_send_erc20_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_7_6_arbitrary_send_erc20_sol__0.txt new file mode 100644 index 000000000..20cab07cc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_7_6_arbitrary_send_erc20_sol__0.txt @@ -0,0 +1,6 @@ +C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#66) + +C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#58) + +C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#36) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_inheritance_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_inheritance_sol__0.txt new file mode 100644 index 000000000..d6cceff72 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_inheritance_sol__0.txt @@ -0,0 +1,2 @@ +T.bad(address) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#11-13) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,address(0x1),90) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#12) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_sol__0.txt new file mode 100644 index 000000000..33f681067 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20NoPermit_0_8_0_arbitrary_send_erc20_sol__0.txt @@ -0,0 +1,6 @@ +C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#36) + +C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#58) + +C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#66) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_4_25_arbitrary_send_erc20_permit_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_4_25_arbitrary_send_erc20_permit_sol__0.txt new file mode 100644 index 000000000..c009ae408 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_4_25_arbitrary_send_erc20_permit_sol__0.txt @@ -0,0 +1,8 @@ +C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#44) + +C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#49) + +C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#54) + +C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#34) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_5_16_arbitrary_send_erc20_permit_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_5_16_arbitrary_send_erc20_permit_sol__0.txt new file mode 100644 index 000000000..a5376e999 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_5_16_arbitrary_send_erc20_permit_sol__0.txt @@ -0,0 +1,8 @@ +C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#44) + +C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#54) + +C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#49) + +C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#34) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_6_11_arbitrary_send_erc20_permit_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_6_11_arbitrary_send_erc20_permit_sol__0.txt new file mode 100644 index 000000000..6c81a434b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_6_11_arbitrary_send_erc20_permit_sol__0.txt @@ -0,0 +1,8 @@ +C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#49) + +C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#54) + +C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#44) + +C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#34) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_7_6_arbitrary_send_erc20_permit_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_7_6_arbitrary_send_erc20_permit_sol__0.txt new file mode 100644 index 000000000..8cf69612d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_7_6_arbitrary_send_erc20_permit_sol__0.txt @@ -0,0 +1,8 @@ +C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#44) + +C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#34) + +C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#54) + +C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#49) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_8_0_arbitrary_send_erc20_permit_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_8_0_arbitrary_send_erc20_permit_sol__0.txt new file mode 100644 index 000000000..7921c41b0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendErc20Permit_0_8_0_arbitrary_send_erc20_permit_sol__0.txt @@ -0,0 +1,8 @@ +C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#49) + +C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#54) + +C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#44) + +C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#34) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_4_25_arbitrary_send_eth_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_4_25_arbitrary_send_eth_sol__0.txt new file mode 100644 index 000000000..1b16e0df6 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_4_25_arbitrary_send_eth_sol__0.txt @@ -0,0 +1,8 @@ +Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user + Dangerous calls: + - destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#20) + +Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user + Dangerous calls: + - msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#12) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_5_16_arbitrary_send_eth_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_5_16_arbitrary_send_eth_sol__0.txt new file mode 100644 index 000000000..61b5acab8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_5_16_arbitrary_send_eth_sol__0.txt @@ -0,0 +1,8 @@ +Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user + Dangerous calls: + - msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#12) + +Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user + Dangerous calls: + - destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#20) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_6_11_arbitrary_send_eth_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_6_11_arbitrary_send_eth_sol__0.txt new file mode 100644 index 000000000..56ccf3cd3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_6_11_arbitrary_send_eth_sol__0.txt @@ -0,0 +1,8 @@ +Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user + Dangerous calls: + - destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#20) + +Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user + Dangerous calls: + - msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#12) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_7_6_arbitrary_send_eth_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_7_6_arbitrary_send_eth_sol__0.txt new file mode 100644 index 000000000..3d4a4f037 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArbitrarySendEth_0_7_6_arbitrary_send_eth_sol__0.txt @@ -0,0 +1,8 @@ +Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user + Dangerous calls: + - msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#12) + +Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user + Dangerous calls: + - destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#20) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_4_25_array_by_reference_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_4_25_array_by_reference_sol__0.txt new file mode 100644 index 000000000..f056bea10 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_4_25_array_by_reference_sol__0.txt @@ -0,0 +1,12 @@ +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value + +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_5_16_array_by_reference_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_5_16_array_by_reference_sol__0.txt new file mode 100644 index 000000000..4264c809a --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_5_16_array_by_reference_sol__0.txt @@ -0,0 +1,12 @@ +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value + +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_6_11_array_by_reference_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_6_11_array_by_reference_sol__0.txt new file mode 100644 index 000000000..e71930b51 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_6_11_array_by_reference_sol__0.txt @@ -0,0 +1,12 @@ +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value + +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_7_6_array_by_reference_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_7_6_array_by_reference_sol__0.txt new file mode 100644 index 000000000..7c0f9ccd9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayByReference_0_7_6_array_by_reference_sol__0.txt @@ -0,0 +1,12 @@ +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value + +D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value + +C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value + +C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_4_25_array_length_assignment_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_4_25_array_length_assignment_sol__0.txt new file mode 100644 index 000000000..02c27c7b3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_4_25_array_length_assignment_sol__0.txt @@ -0,0 +1,9 @@ +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#41) + +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#36) + +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#26) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_5_16_array_length_assignment_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_5_16_array_length_assignment_sol__0.txt new file mode 100644 index 000000000..5ca8654b5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ArrayLengthAssignment_0_5_16_array_length_assignment_sol__0.txt @@ -0,0 +1,9 @@ +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#41) + +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#36) + +ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value: + - arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#26) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_contract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_contract_sol__0.txt new file mode 100644 index 000000000..c00244213 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_contract_sol__0.txt @@ -0,0 +1,3 @@ +GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#6-20) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#7-20) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_library_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_library_sol__0.txt new file mode 100644 index 000000000..afba3895f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_4_25_inline_assembly_library_sol__0.txt @@ -0,0 +1,6 @@ +VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#25-47) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#26-47) + +VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#16-22) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#18-21) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_contract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_contract_sol__0.txt new file mode 100644 index 000000000..37356c77e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_contract_sol__0.txt @@ -0,0 +1,3 @@ +GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#6-20) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#7-19) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_library_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_library_sol__0.txt new file mode 100644 index 000000000..8ddbcec93 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_5_16_inline_assembly_library_sol__0.txt @@ -0,0 +1,6 @@ +VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#16-22) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#18-20) + +VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#25-47) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#26-46) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_contract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_contract_sol__0.txt new file mode 100644 index 000000000..43d939dcf --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_contract_sol__0.txt @@ -0,0 +1,3 @@ +GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#4-18) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#5-17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_library_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_library_sol__0.txt new file mode 100644 index 000000000..c2a6d44a1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_6_11_inline_assembly_library_sol__0.txt @@ -0,0 +1,6 @@ +VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#14-20) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#16-18) + +VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#23-45) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#24-44) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_contract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_contract_sol__0.txt new file mode 100644 index 000000000..42e5f8eaf --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_contract_sol__0.txt @@ -0,0 +1,3 @@ +GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#4-18) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#5-17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_library_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_library_sol__0.txt new file mode 100644 index 000000000..0e20c94b8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Assembly_0_7_6_inline_assembly_library_sol__0.txt @@ -0,0 +1,6 @@ +VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#14-20) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#16-18) + +VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#23-45) uses assembly + - INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#24-44) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_4_25_assert_state_change_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_4_25_assert_state_change_sol__0.txt new file mode 100644 index 000000000..ba0febf9c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_4_25_assert_state_change_sol__0.txt @@ -0,0 +1,12 @@ +A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#19-21) has an assert() call which possibly changes state. + -assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#20) +Consider using require() or change the invariant to not modify the state. + +A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#6-8) has an assert() call which possibly changes state. + -assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#7) +Consider using require() or change the invariant to not modify the state. + +A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#11-13) has an assert() call which possibly changes state. + -assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#12) +Consider using require() or change the invariant to not modify the state. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_5_16_assert_state_change_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_5_16_assert_state_change_sol__0.txt new file mode 100644 index 000000000..dfc5260f9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_5_16_assert_state_change_sol__0.txt @@ -0,0 +1,12 @@ +A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#11-13) has an assert() call which possibly changes state. + -assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#12) +Consider using require() or change the invariant to not modify the state. + +A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#19-21) has an assert() call which possibly changes state. + -assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#20) +Consider using require() or change the invariant to not modify the state. + +A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#6-8) has an assert() call which possibly changes state. + -assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#7) +Consider using require() or change the invariant to not modify the state. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_6_11_assert_state_change_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_6_11_assert_state_change_sol__0.txt new file mode 100644 index 000000000..7dbb05343 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_6_11_assert_state_change_sol__0.txt @@ -0,0 +1,12 @@ +A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#6-8) has an assert() call which possibly changes state. + -assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#7) +Consider using require() or change the invariant to not modify the state. + +A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#11-13) has an assert() call which possibly changes state. + -assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#12) +Consider using require() or change the invariant to not modify the state. + +A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#19-21) has an assert() call which possibly changes state. + -assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#20) +Consider using require() or change the invariant to not modify the state. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_7_6_assert_state_change_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_7_6_assert_state_change_sol__0.txt new file mode 100644 index 000000000..30643f73e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_AssertStateChange_0_7_6_assert_state_change_sol__0.txt @@ -0,0 +1,12 @@ +A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#19-21) has an assert() call which possibly changes state. + -assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#20) +Consider using require() or change the invariant to not modify the state. + +A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#11-13) has an assert() call which possibly changes state. + -assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#12) +Consider using require() or change the invariant to not modify the state. + +A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#6-8) has an assert() call which possibly changes state. + -assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#7) +Consider using require() or change the invariant to not modify the state. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_4_25_backdoor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_4_25_backdoor_sol__0.txt new file mode 100644 index 000000000..863dbbf31 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_4_25_backdoor_sol__0.txt @@ -0,0 +1,2 @@ +Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#4-6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_5_16_backdoor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_5_16_backdoor_sol__0.txt new file mode 100644 index 000000000..8cacb70dd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_5_16_backdoor_sol__0.txt @@ -0,0 +1,2 @@ +Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#4-6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_6_11_backdoor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_6_11_backdoor_sol__0.txt new file mode 100644 index 000000000..6c026c056 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_6_11_backdoor_sol__0.txt @@ -0,0 +1,2 @@ +Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#4-6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_7_6_backdoor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_7_6_backdoor_sol__0.txt new file mode 100644 index 000000000..162f1afd2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Backdoor_0_7_6_backdoor_sol__0.txt @@ -0,0 +1,2 @@ +Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#4-6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_4_25_bad_prng_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_4_25_bad_prng_sol__0.txt new file mode 100644 index 000000000..18676563f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_4_25_bad_prng_sol__0.txt @@ -0,0 +1,8 @@ +BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#8-10) uses a weak PRNG: "i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#9)" + +BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#12-14) uses a weak PRNG: "i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#13)" + +BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#20-22) uses a weak PRNG: "i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#21)" + +BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#4-6) uses a weak PRNG: "i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#5)" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_5_16_bad_prng_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_5_16_bad_prng_sol__0.txt new file mode 100644 index 000000000..34db1a9a2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_5_16_bad_prng_sol__0.txt @@ -0,0 +1,8 @@ +BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#8-10) uses a weak PRNG: "i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#9)" + +BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#4-6) uses a weak PRNG: "i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#5)" + +BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#12-14) uses a weak PRNG: "i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#13)" + +BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#20-22) uses a weak PRNG: "i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#21)" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_6_11_bad_prng_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_6_11_bad_prng_sol__0.txt new file mode 100644 index 000000000..4c65f2cad --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_6_11_bad_prng_sol__0.txt @@ -0,0 +1,8 @@ +BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#8-10) uses a weak PRNG: "i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#9)" + +BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#4-6) uses a weak PRNG: "i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#5)" + +BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#12-14) uses a weak PRNG: "i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#13)" + +BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#20-22) uses a weak PRNG: "i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#21)" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_7_6_bad_prng_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_7_6_bad_prng_sol__0.txt new file mode 100644 index 000000000..dc2ca5bfb --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BadPRNG_0_7_6_bad_prng_sol__0.txt @@ -0,0 +1,8 @@ +BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#20-22) uses a weak PRNG: "i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#21)" + +BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#12-14) uses a weak PRNG: "i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#13)" + +BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#8-10) uses a weak PRNG: "i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#9)" + +BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#4-6) uses a weak PRNG: "i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#5)" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_4_25_boolean_constant_misuse_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_4_25_boolean_constant_misuse_sol__0.txt new file mode 100644 index 000000000..73aafb933 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_4_25_boolean_constant_misuse_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly: + -(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_5_16_boolean_constant_misuse_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_5_16_boolean_constant_misuse_sol__0.txt new file mode 100644 index 000000000..f73791b89 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_5_16_boolean_constant_misuse_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly: + -(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_6_11_boolean_constant_misuse_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_6_11_boolean_constant_misuse_sol__0.txt new file mode 100644 index 000000000..7e9969c00 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_6_11_boolean_constant_misuse_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly: + -(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_7_6_boolean_constant_misuse_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_7_6_boolean_constant_misuse_sol__0.txt new file mode 100644 index 000000000..a2ccfe269 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanConstantMisuse_0_7_6_boolean_constant_misuse_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly: + -(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_4_25_boolean_constant_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_4_25_boolean_constant_equality_sol__0.txt new file mode 100644 index 000000000..81b5ee2ae --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_4_25_boolean_constant_equality_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#7-9) compares to a boolean constant: + -(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#8) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_5_16_boolean_constant_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_5_16_boolean_constant_equality_sol__0.txt new file mode 100644 index 000000000..423335c2e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_5_16_boolean_constant_equality_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#7-9) compares to a boolean constant: + -(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#8) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_6_11_boolean_constant_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_6_11_boolean_constant_equality_sol__0.txt new file mode 100644 index 000000000..48f3f294c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_6_11_boolean_constant_equality_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#7-9) compares to a boolean constant: + -(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#8) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_7_6_boolean_constant_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_7_6_boolean_constant_equality_sol__0.txt new file mode 100644 index 000000000..24e475cc0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BooleanEquality_0_7_6_boolean_constant_equality_sol__0.txt @@ -0,0 +1,3 @@ +MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#7-9) compares to a boolean constant: + -(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#8) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_4_25_shadowing_builtin_symbols_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_4_25_shadowing_builtin_symbols_sol__0.txt new file mode 100644 index 000000000..7c94735da --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_4_25_shadowing_builtin_symbols_sol__0.txt @@ -0,0 +1,26 @@ +Reserved.mutable (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#32) (state variable) shadows built-in symbol" + +ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol" + +FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol" + +FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol" + +BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol" + +FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol" + +BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol" + +BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol" + +ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol" + +ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol" + +FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol" + +FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol" + +FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_5_16_shadowing_builtin_symbols_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_5_16_shadowing_builtin_symbols_sol__0.txt new file mode 100644 index 000000000..f576e19e0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_BuiltinSymbolShadowing_0_5_16_shadowing_builtin_symbols_sol__0.txt @@ -0,0 +1,24 @@ +ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol" + +FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol" + +FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol" + +BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol" + +FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol" + +BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol" + +BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol" + +ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol" + +ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol" + +FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol" + +FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol" + +FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_4_25_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_4_25_constant_sol__0.txt new file mode 100644 index 000000000..d99f65c7d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_4_25_constant_sol__0.txt @@ -0,0 +1,2 @@ +Constant.test_assembly_bug() (tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#22-24) is declared view but contains assembly code + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_5_16_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_5_16_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_6_11_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_6_11_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_7_6_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsAsm_0_7_6_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_4_25_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_4_25_constant_sol__0.txt new file mode 100644 index 000000000..67c19d0ab --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_4_25_constant_sol__0.txt @@ -0,0 +1,6 @@ +Constant.test_constant_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#9-11) is declared view but changes state variables: + - Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3) + +Constant.test_view_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#5-7) is declared view but changes state variables: + - Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_5_16_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_5_16_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_6_11_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_6_11_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_7_6_constant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantFunctionsState_0_7_6_constant_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_4_25_pragma_0_4_25_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_4_25_pragma_0_4_25_sol__0.txt new file mode 100644 index 000000000..0d0deaae0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_4_25_pragma_0_4_25_sol__0.txt @@ -0,0 +1,5 @@ +Different versions of Solidity are used: + - Version used: ['^0.4.24', '^0.4.25'] + - ^0.4.24 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#1) + - ^0.4.25 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol#1) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_5_16_pragma_0_5_16_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_5_16_pragma_0_5_16_sol__0.txt new file mode 100644 index 000000000..a619f1ed0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_5_16_pragma_0_5_16_sol__0.txt @@ -0,0 +1,5 @@ +Different versions of Solidity are used: + - Version used: ['^0.5.15', '^0.5.16'] + - ^0.5.15 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#1) + - ^0.5.16 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol#1) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_6_11_pragma_0_6_11_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_6_11_pragma_0_6_11_sol__0.txt new file mode 100644 index 000000000..af468f3ba --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_6_11_pragma_0_6_11_sol__0.txt @@ -0,0 +1,5 @@ +Different versions of Solidity are used: + - Version used: ['^0.6.10', '^0.6.11'] + - ^0.6.10 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#1) + - ^0.6.11 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol#1) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_7_6_pragma_0_7_6_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_7_6_pragma_0_7_6_sol__0.txt new file mode 100644 index 000000000..83b79b494 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ConstantPragma_0_7_6_pragma_0_7_6_sol__0.txt @@ -0,0 +1,5 @@ +Different versions of Solidity are used: + - Version used: ['^0.7.5', '^0.7.6'] + - ^0.7.5 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#1) + - ^0.7.6 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol#1) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_4_25_controlled_delegatecall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_4_25_controlled_delegatecall_sol__0.txt new file mode 100644 index 000000000..9a08cc149 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_4_25_controlled_delegatecall_sol__0.txt @@ -0,0 +1,6 @@ +C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#19) + +C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_5_16_controlled_delegatecall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_5_16_controlled_delegatecall_sol__0.txt new file mode 100644 index 000000000..461b4e1ad --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_5_16_controlled_delegatecall_sol__0.txt @@ -0,0 +1,6 @@ +C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#19) + +C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_6_11_controlled_delegatecall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_6_11_controlled_delegatecall_sol__0.txt new file mode 100644 index 000000000..7be83ec8c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_6_11_controlled_delegatecall_sol__0.txt @@ -0,0 +1,6 @@ +C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#19) + +C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_7_6_controlled_delegatecall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_7_6_controlled_delegatecall_sol__0.txt new file mode 100644 index 000000000..bc58c9d2e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ControlledDelegateCall_0_7_6_controlled_delegatecall_sol__0.txt @@ -0,0 +1,6 @@ +C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#19) + +C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id + - addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_4_25_multiple_costly_operations_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_4_25_multiple_costly_operations_in_loop_sol__0.txt new file mode 100644 index 000000000..7b114acb7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_4_25_multiple_costly_operations_in_loop_sol__0.txt @@ -0,0 +1,12 @@ +CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop: + - state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#7) + +CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#42) + +CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#31) + +CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#22) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_5_16_multiple_costly_operations_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_5_16_multiple_costly_operations_in_loop_sol__0.txt new file mode 100644 index 000000000..6d2fd27e1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_5_16_multiple_costly_operations_in_loop_sol__0.txt @@ -0,0 +1,12 @@ +CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop: + - state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#7) + +CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#31) + +CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#42) + +CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#22) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_6_11_multiple_costly_operations_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_6_11_multiple_costly_operations_in_loop_sol__0.txt new file mode 100644 index 000000000..d7ca011c8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_6_11_multiple_costly_operations_in_loop_sol__0.txt @@ -0,0 +1,12 @@ +CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#22) + +CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#31) + +CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#42) + +CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop: + - state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#7) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_7_6_multiple_costly_operations_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_7_6_multiple_costly_operations_in_loop_sol__0.txt new file mode 100644 index 000000000..da2804728 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CostlyOperationsInLoop_0_7_6_multiple_costly_operations_in_loop_sol__0.txt @@ -0,0 +1,12 @@ +CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#42) + +CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop: + - state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#7) + +CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#31) + +CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop: + - state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#22) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_4_25_const_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_4_25_const_state_variables_sol__0.txt new file mode 100644 index 000000000..0f5b8fb98 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_4_25_const_state_variables_sol__0.txt @@ -0,0 +1,12 @@ +A.text2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#14) should be constant + +B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#26) should be constant + +A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#7) should be constant + +MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#42) should be constant + +MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#43) should be constant + +A.test (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#10) should be constant + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_5_16_const_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_5_16_const_state_variables_sol__0.txt new file mode 100644 index 000000000..89560ac47 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_5_16_const_state_variables_sol__0.txt @@ -0,0 +1,14 @@ +MyConc.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#44) should be constant + +A.text2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#14) should be constant + +B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#26) should be constant + +A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#7) should be constant + +MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#42) should be constant + +MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#43) should be constant + +A.test (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#10) should be constant + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_6_11_const_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_6_11_const_state_variables_sol__0.txt new file mode 100644 index 000000000..68bfc2ddc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_6_11_const_state_variables_sol__0.txt @@ -0,0 +1,14 @@ +A.text2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#12) should be constant + +Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#41) should be constant + +B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#24) should be constant + +A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#5) should be constant + +Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#40) should be constant + +Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#42) should be constant + +A.test (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#8) should be constant + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_7_6_const_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_7_6_const_state_variables_sol__0.txt new file mode 100644 index 000000000..581ee43f7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_7_6_const_state_variables_sol__0.txt @@ -0,0 +1,14 @@ +A.text2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#12) should be constant + +Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#41) should be constant + +B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#24) should be constant + +A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#5) should be constant + +Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#40) should be constant + +Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#42) should be constant + +A.test (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#8) should be constant + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_8_0_const_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_8_0_const_state_variables_sol__0.txt new file mode 100644 index 000000000..c18aa2fe8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeConstant_0_8_0_const_state_variables_sol__0.txt @@ -0,0 +1,14 @@ +A.text2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#12) should be constant + +Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#41) should be constant + +B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#24) should be constant + +A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#5) should be constant + +Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#40) should be constant + +Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#42) should be constant + +A.test (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#8) should be constant + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_4_25_immut_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_4_25_immut_state_variables_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_5_16_immut_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_5_16_immut_state_variables_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_6_11_immut_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_6_11_immut_state_variables_sol__0.txt new file mode 100644 index 000000000..4c46222f9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_6_11_immut_state_variables_sol__0.txt @@ -0,0 +1,10 @@ +Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#47) should be immutable + +Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#44) should be immutable + +Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#46) should be immutable + +Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#43) should be immutable + +Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#45) should be immutable + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_7_6_immut_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_7_6_immut_state_variables_sol__0.txt new file mode 100644 index 000000000..36409f9b9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_7_6_immut_state_variables_sol__0.txt @@ -0,0 +1,10 @@ +Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#47) should be immutable + +Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#44) should be immutable + +Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#46) should be immutable + +Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#43) should be immutable + +Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#45) should be immutable + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_8_0_immut_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_8_0_immut_state_variables_sol__0.txt new file mode 100644 index 000000000..9c8fc9f63 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CouldBeImmutable_0_8_0_immut_state_variables_sol__0.txt @@ -0,0 +1,8 @@ +Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#46) should be immutable + +Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#44) should be immutable + +Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#43) should be immutable + +Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#45) should be immutable + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_HighCyclomaticComplexity_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_HighCyclomaticComplexity_sol__0.txt new file mode 100644 index 000000000..f013da4cd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_HighCyclomaticComplexity_sol__0.txt @@ -0,0 +1,2 @@ +HighCyclomaticComplexity.highCC() (tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#17-31) has a high cyclomatic complexity (12). + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_LowCyclomaticComplexity_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_CyclomaticComplexity_0_8_16_LowCyclomaticComplexity_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DeadCode_0_8_0_dead_code_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DeadCode_0_8_0_dead_code_sol__0.txt new file mode 100644 index 000000000..c893114cf --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DeadCode_0_8_0_dead_code_sol__0.txt @@ -0,0 +1,6 @@ +Test4.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#26-28) is never used and should be removed + +Test.unused() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#2-4) is never used and should be removed + +Test2.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#10-12) is never used and should be removed + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_4_25_delegatecall_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_4_25_delegatecall_loop_sol__0.txt new file mode 100644 index 000000000..a64167702 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_4_25_delegatecall_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#7) + +C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#28) + +C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#21) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_5_16_delegatecall_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_5_16_delegatecall_loop_sol__0.txt new file mode 100644 index 000000000..e6ea14e79 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_5_16_delegatecall_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#28) + +C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#21) + +C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#7) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_6_11_delegatecall_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_6_11_delegatecall_loop_sol__0.txt new file mode 100644 index 000000000..ce50766fe --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_6_11_delegatecall_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#21) + +C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#7) + +C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#28) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_7_6_delegatecall_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_7_6_delegatecall_loop_sol__0.txt new file mode 100644 index 000000000..9d4decf4d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_7_6_delegatecall_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#28) + +C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#7) + +C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#21) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_8_0_delegatecall_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_8_0_delegatecall_loop_sol__0.txt new file mode 100644 index 000000000..d3d9f047c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DelegatecallInLoop_0_8_0_delegatecall_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#21) + +C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#7) + +C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#28) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DeprecatedStandards_0_4_25_deprecated_calls_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DeprecatedStandards_0_4_25_deprecated_calls_sol__0.txt new file mode 100644 index 000000000..9a10c2971 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DeprecatedStandards_0_4_25_deprecated_calls_sol__0.txt @@ -0,0 +1,6 @@ +Deprecated standard detected THROW (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#7): + - Usage of "throw" should be replaced with "revert()" + +Deprecated standard detected msg.gas == msg.value (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#5): + - Usage of "msg.gas" should be replaced with "gasleft()" + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_4_25_divide_before_multiply_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_4_25_divide_before_multiply_sol__0.txt new file mode 100644 index 000000000..95537a3a5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_4_25_divide_before_multiply_sol__0.txt @@ -0,0 +1,3 @@ +A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division: + - (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_5_16_divide_before_multiply_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_5_16_divide_before_multiply_sol__0.txt new file mode 100644 index 000000000..0ae4d354a --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_5_16_divide_before_multiply_sol__0.txt @@ -0,0 +1,3 @@ +A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division: + - (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_6_11_divide_before_multiply_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_6_11_divide_before_multiply_sol__0.txt new file mode 100644 index 000000000..54b35708c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_6_11_divide_before_multiply_sol__0.txt @@ -0,0 +1,3 @@ +A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division: + - (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_7_6_divide_before_multiply_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_7_6_divide_before_multiply_sol__0.txt new file mode 100644 index 000000000..37dc22862 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DivideBeforeMultiply_0_7_6_divide_before_multiply_sol__0.txt @@ -0,0 +1,3 @@ +A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division: + - (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_collision_sol__0.txt new file mode 100644 index 000000000..e800ed951 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_state_var_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_state_var_collision_sol__0.txt new file mode 100644 index 000000000..aa20b6983 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_state_var_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_wrong_return_type_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_wrong_return_type_sol__0.txt new file mode 100644 index 000000000..8443c4fb7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_4_25_permit_domain_wrong_return_type_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_collision_sol__0.txt new file mode 100644 index 000000000..deab568b6 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_state_var_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_state_var_collision_sol__0.txt new file mode 100644 index 000000000..df4ea295c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_state_var_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_wrong_return_type_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_wrong_return_type_sol__0.txt new file mode 100644 index 000000000..0471fd697 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_5_16_permit_domain_wrong_return_type_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_collision_sol__0.txt new file mode 100644 index 000000000..d5d492fe7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_state_var_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_state_var_collision_sol__0.txt new file mode 100644 index 000000000..ad02ccd6f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_state_var_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_wrong_return_type_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_wrong_return_type_sol__0.txt new file mode 100644 index 000000000..74ad8a93d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_6_11_permit_domain_wrong_return_type_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_collision_sol__0.txt new file mode 100644 index 000000000..6eab54252 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_state_var_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_state_var_collision_sol__0.txt new file mode 100644 index 000000000..842252b1b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_state_var_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_wrong_return_type_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_wrong_return_type_sol__0.txt new file mode 100644 index 000000000..2b8cac108 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_7_6_permit_domain_wrong_return_type_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_collision_sol__0.txt new file mode 100644 index 000000000..665130448 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_state_var_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_state_var_collision_sol__0.txt new file mode 100644 index 000000000..4ff75df8e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_state_var_collision_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_wrong_return_type_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_wrong_return_type_sol__0.txt new file mode 100644 index 000000000..6f03f9d19 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_DomainSeparatorCollision_0_8_0_permit_domain_wrong_return_type_sol__0.txt @@ -0,0 +1,2 @@ +The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_3_sol__0.txt new file mode 100644 index 000000000..71bdafede --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_3_sol__0.txt @@ -0,0 +1,9 @@ +bad2(uint256[]) should be declared external: + - Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#8) + +bad(bytes) should be declared external: + - Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#7) + +bad3(string) should be declared external: + - Test.bad3(string) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_4_25_external_function_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_3_sol__0.txt new file mode 100644 index 000000000..a0144a084 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_3_sol__0.txt @@ -0,0 +1,20 @@ +bad4(string) should be declared external: + - Test.bad4(string) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#18) +Moreover, the following function parameters should change its data location: +x location should be calldata + +bad3(Test.testStruct) should be declared external: + - Test.bad3(Test.testStruct) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#17) +Moreover, the following function parameters should change its data location: +x location should be calldata + +bad2(uint256[]) should be declared external: + - Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#16) +Moreover, the following function parameters should change its data location: +x location should be calldata + +bad(bytes) should be declared external: + - Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#15) +Moreover, the following function parameters should change its data location: +x location should be calldata + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_5_16_external_function_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_3_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_6_11_external_function_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_3_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ExternalFunction_0_7_6_external_function_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_4_25_function_init_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_4_25_function_init_state_variables_sol__0.txt new file mode 100644 index 000000000..d289faead --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_4_25_function_init_state_variables_sol__0.txt @@ -0,0 +1,15 @@ +StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable: + - z3 + 5 + +StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable: + - 5 + get() + +StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable: + - (10 + (5 + get())) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_5_16_function_init_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_5_16_function_init_state_variables_sol__0.txt new file mode 100644 index 000000000..b28972700 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_5_16_function_init_state_variables_sol__0.txt @@ -0,0 +1,15 @@ +StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable: + - z3 + 5 + +StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable: + - 5 + get() + +StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable: + - (10 + (5 + get())) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_6_11_function_init_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_6_11_function_init_state_variables_sol__0.txt new file mode 100644 index 000000000..234059c8d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_6_11_function_init_state_variables_sol__0.txt @@ -0,0 +1,15 @@ +StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable: + - z3 + 5 + +StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable: + - 5 + get() + +StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable: + - (10 + (5 + get())) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_7_6_function_init_state_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_7_6_function_init_state_variables_sol__0.txt new file mode 100644 index 000000000..81a654d43 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_FunctionInitializedState_0_7_6_function_init_state_variables_sol__0.txt @@ -0,0 +1,15 @@ +StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable: + - z3 + 5 + +StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable: + - set() + +StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable: + - 5 + get() + +StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable: + - (10 + (5 + get())) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_4_25_incorrect_erc20_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_4_25_incorrect_erc20_interface_sol__0.txt new file mode 100644 index 000000000..305758478 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_4_25_incorrect_erc20_interface_sol__0.txt @@ -0,0 +1,12 @@ +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#5) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#6) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_5_16_incorrect_erc20_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_5_16_incorrect_erc20_interface_sol__0.txt new file mode 100644 index 000000000..19f532fd7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_5_16_incorrect_erc20_interface_sol__0.txt @@ -0,0 +1,12 @@ +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#5) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#6) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_6_11_incorrect_erc20_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_6_11_incorrect_erc20_interface_sol__0.txt new file mode 100644 index 000000000..cfd549baa --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_6_11_incorrect_erc20_interface_sol__0.txt @@ -0,0 +1,12 @@ +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#5) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#6) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_7_6_incorrect_erc20_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_7_6_incorrect_erc20_interface_sol__0.txt new file mode 100644 index 000000000..f1d77d1bd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC20InterfaceDetection_0_7_6_incorrect_erc20_interface_sol__0.txt @@ -0,0 +1,12 @@ +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#5) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#6) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_4_25_incorrect_erc721_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_4_25_incorrect_erc721_interface_sol__0.txt new file mode 100644 index 000000000..b3de59687 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_4_25_incorrect_erc721_interface_sol__0.txt @@ -0,0 +1,20 @@ +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#14) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#12) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#10) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#11) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#4) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#13) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#15) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_5_16_incorrect_erc721_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_5_16_incorrect_erc721_interface_sol__0.txt new file mode 100644 index 000000000..584c40378 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_5_16_incorrect_erc721_interface_sol__0.txt @@ -0,0 +1,20 @@ +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#14) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#12) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#10) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#11) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#4) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#13) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#15) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_6_11_incorrect_erc721_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_6_11_incorrect_erc721_interface_sol__0.txt new file mode 100644 index 000000000..5373d72cc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_6_11_incorrect_erc721_interface_sol__0.txt @@ -0,0 +1,20 @@ +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#14) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#12) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#10) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#11) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#4) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#13) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#15) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_7_6_incorrect_erc721_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_7_6_incorrect_erc721_interface_sol__0.txt new file mode 100644 index 000000000..415adcb7c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectERC721InterfaceDetection_0_7_6_incorrect_erc721_interface_sol__0.txt @@ -0,0 +1,20 @@ +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#14) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#12) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#10) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#7) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#8) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#11) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#4) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#13) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#9) + +Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#15) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_4_25_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_4_25_static_sol__0.txt new file mode 100644 index 000000000..a1a384559 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_4_25_static_sol__0.txt @@ -0,0 +1,4 @@ +solc-0.4.25 is not recommended for deployment + +Pragma version0.4.25 (tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#1) allows old versions + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_14_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_14_static_sol__0.txt new file mode 100644 index 000000000..c9f67a00d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_14_static_sol__0.txt @@ -0,0 +1,3 @@ +Pragma version0.5.14 (tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) + +solc-0.5.14 is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_1_sol__0.txt new file mode 100644 index 000000000..eaf6d3bef --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_1_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version^0.5.15 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#1) allows old versions + +solc-0.5.16 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_2_sol__0.txt new file mode 100644 index 000000000..4fbde7008 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_dynamic_2_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version>=0.5.0<0.6.0 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#1) allows old versions + +solc-0.5.16 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_static_sol__0.txt new file mode 100644 index 000000000..3348b38bf --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_5_16_static_sol__0.txt @@ -0,0 +1,4 @@ +solc-0.5.16 is not recommended for deployment + +Pragma version0.5.16 (tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#1) allows old versions + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_10_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_10_static_sol__0.txt new file mode 100644 index 000000000..b019ea235 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_10_static_sol__0.txt @@ -0,0 +1,4 @@ +solc-0.6.10 is not recommended for deployment + +Pragma version0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#1) allows old versions + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_1_sol__0.txt new file mode 100644 index 000000000..d9882ee92 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_1_sol__0.txt @@ -0,0 +1,4 @@ +solc-0.6.11 is not recommended for deployment + +Pragma version^0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#1) allows old versions + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_2_sol__0.txt new file mode 100644 index 000000000..9e0b51f1c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_dynamic_2_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version>=0.6.0<0.7.0 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#1) allows old versions + +solc-0.6.11 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_static_sol__0.txt new file mode 100644 index 000000000..5dfddac9e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_6_11_static_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version0.6.11 (tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#1) allows old versions + +solc-0.6.11 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_4_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_4_static_sol__0.txt new file mode 100644 index 000000000..954505f8c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_4_static_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#1) allows old versions + +solc-0.7.4 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_1_sol__0.txt new file mode 100644 index 000000000..157db71ce --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_1_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version^0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#1) allows old versions + +solc-0.7.6 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_2_sol__0.txt new file mode 100644 index 000000000..53628ace1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_dynamic_2_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version>=0.7.0<=0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#1) is too complex + +solc-0.7.6 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_static_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_static_sol__0.txt new file mode 100644 index 000000000..6d4297f2b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectSolc_0_7_6_static_sol__0.txt @@ -0,0 +1,4 @@ +Pragma version0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#1) allows old versions + +solc-0.7.6 is not recommended for deployment + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_4_25_incorrect_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_4_25_incorrect_equality_sol__0.txt new file mode 100644 index 000000000..49a70d163 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_4_25_incorrect_equality_sol__0.txt @@ -0,0 +1,36 @@ +TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#47-50) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#48) + +TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#37-40) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#38) + +ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#25-27) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#26) + +TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#123-125) uses a dangerous strict equality: + - require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#124) + +TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#52-57) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#54) + +ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#21-23) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#22) + +TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#127-129) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#128) + +TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#32-35) uses a dangerous strict equality: + - require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#33) + +TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#59-64) uses a dangerous strict equality: + - 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#61) + +TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#66-71) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#68) + +TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#131-133) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#132) + +TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#42-45) uses a dangerous strict equality: + - require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#43) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_5_16_incorrect_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_5_16_incorrect_equality_sol__0.txt new file mode 100644 index 000000000..56f7c2ef9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_5_16_incorrect_equality_sol__0.txt @@ -0,0 +1,36 @@ +TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#47-50) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#48) + +TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#32-35) uses a dangerous strict equality: + - require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#33) + +TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#37-40) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#38) + +TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#66-71) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#68) + +ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#25-27) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#26) + +TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#59-64) uses a dangerous strict equality: + - 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#61) + +TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#52-57) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#54) + +TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#127-129) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#128) + +TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#42-45) uses a dangerous strict equality: + - require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#43) + +ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#21-23) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#22) + +TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#123-125) uses a dangerous strict equality: + - require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#124) + +TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#131-133) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#132) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_6_11_incorrect_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_6_11_incorrect_equality_sol__0.txt new file mode 100644 index 000000000..11bb0e3fc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_6_11_incorrect_equality_sol__0.txt @@ -0,0 +1,36 @@ +TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#59-64) uses a dangerous strict equality: + - 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#61) + +ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#21-23) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#22) + +TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#47-50) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#48) + +TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#66-71) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#68) + +TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#123-125) uses a dangerous strict equality: + - require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#124) + +TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#42-45) uses a dangerous strict equality: + - require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#43) + +ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#25-27) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#26) + +TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#127-129) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#128) + +TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#52-57) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#54) + +TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#37-40) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#38) + +TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#131-133) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#132) + +TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#32-35) uses a dangerous strict equality: + - require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#33) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_7_6_incorrect_equality_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_7_6_incorrect_equality_sol__0.txt new file mode 100644 index 000000000..506857199 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectStrictEquality_0_7_6_incorrect_equality_sol__0.txt @@ -0,0 +1,36 @@ +ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#25-27) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#26) + +TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#66-71) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#68) + +ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#21-23) uses a dangerous strict equality: + - require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#22) + +TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#37-40) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#38) + +TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#123-125) uses a dangerous strict equality: + - require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#124) + +TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#47-50) uses a dangerous strict equality: + - require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#48) + +TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#52-57) uses a dangerous strict equality: + - balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#54) + +TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#32-35) uses a dangerous strict equality: + - require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#33) + +TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#131-133) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#132) + +TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#59-64) uses a dangerous strict equality: + - 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#61) + +TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#42-45) uses a dangerous strict equality: + - require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#43) + +TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#127-129) uses a dangerous strict equality: + - require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#128) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUnaryExpressionDetection_0_4_25_invalid_unary_expression_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUnaryExpressionDetection_0_4_25_invalid_unary_expression_sol__0.txt new file mode 100644 index 000000000..bd44c2fa3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUnaryExpressionDetection_0_4_25_invalid_unary_expression_sol__0.txt @@ -0,0 +1,8 @@ +C.slitherConstructorVariables() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#1-15) uses an dangerous unary operator: c = (b = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4) + +C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = + 144444 (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#8) + +C.c (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4) uses an dangerous unary operator: (b = + 1) + +C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = (x = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_4_25_shadowing_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_4_25_shadowing_local_variable_sol__0.txt new file mode 100644 index 000000000..913acf4ea --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_4_25_shadowing_local_variable_sol__0.txt @@ -0,0 +1,20 @@ +FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#17) (state variable) + - ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#9) (state variable) + - BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#4) (state variable) + +LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#30) shadows: + - LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#29) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows: + - BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#5) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows: + - ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#13) (event) + +FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#20-23) (modifier) + +FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows: + - ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#11) (function) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_5_16_shadowing_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_5_16_shadowing_local_variable_sol__0.txt new file mode 100644 index 000000000..7fcbe83d2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_5_16_shadowing_local_variable_sol__0.txt @@ -0,0 +1,23 @@ +FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#17) (state variable) + - ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#9) (state variable) + - BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#4) (state variable) + +LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#30) shadows: + - LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#29) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows: + - BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#5) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows: + - ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#13) (event) + +FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#20-23) (modifier) + +LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#34) shadows: + - LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#33) (return variable) + +FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows: + - ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#11) (function) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_6_11_shadowing_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_6_11_shadowing_local_variable_sol__0.txt new file mode 100644 index 000000000..b4de3265f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_6_11_shadowing_local_variable_sol__0.txt @@ -0,0 +1,21 @@ +LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#30) shadows: + - LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#29) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows: + - BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#5) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows: + - ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#13) (event) + +FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#20-23) (modifier) + +FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#17) (state variable) + +LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#34) shadows: + - LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#33) (return variable) + +FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows: + - ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#11) (function) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_7_6_shadowing_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_7_6_shadowing_local_variable_sol__0.txt new file mode 100644 index 000000000..43ecfab68 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LocalShadowing_0_7_6_shadowing_local_variable_sol__0.txt @@ -0,0 +1,21 @@ +LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#30) shadows: + - LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#29) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows: + - BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#5) (state variable) + +FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows: + - ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#13) (event) + +FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#20-23) (modifier) + +FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows: + - FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#17) (state variable) + +LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#34) shadows: + - LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#33) (return variable) + +FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows: + - ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#11) (function) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_4_25_locked_ether_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_4_25_locked_ether_sol__0.txt new file mode 100644 index 000000000..edca6eb2e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_4_25_locked_ether_sol__0.txt @@ -0,0 +1,5 @@ +Contract locking ether found: + Contract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#26) has payable functions: + - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#4-6) + But does not have a function to withdraw the ether + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_5_16_locked_ether_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_5_16_locked_ether_sol__0.txt new file mode 100644 index 000000000..d1ff3314b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_5_16_locked_ether_sol__0.txt @@ -0,0 +1,5 @@ +Contract locking ether found: + Contract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#26) has payable functions: + - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#4-6) + But does not have a function to withdraw the ether + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_6_11_locked_ether_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_6_11_locked_ether_sol__0.txt new file mode 100644 index 000000000..212015c29 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_6_11_locked_ether_sol__0.txt @@ -0,0 +1,5 @@ +Contract locking ether found: + Contract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#26) has payable functions: + - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#4-6) + But does not have a function to withdraw the ether + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_7_6_locked_ether_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_7_6_locked_ether_sol__0.txt new file mode 100644 index 000000000..8b6ddfa59 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LockedEther_0_7_6_locked_ether_sol__0.txt @@ -0,0 +1,5 @@ +Contract locking ether found: + Contract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#26) has payable functions: + - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#4-6) + But does not have a function to withdraw the ether + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_4_25_low_level_calls_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_4_25_low_level_calls_sol__0.txt new file mode 100644 index 000000000..e5e424bb3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_4_25_low_level_calls_sol__0.txt @@ -0,0 +1,3 @@ +Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#5-7): + - _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_5_16_low_level_calls_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_5_16_low_level_calls_sol__0.txt new file mode 100644 index 000000000..87ad6230d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_5_16_low_level_calls_sol__0.txt @@ -0,0 +1,3 @@ +Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#5-7): + - _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_6_11_low_level_calls_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_6_11_low_level_calls_sol__0.txt new file mode 100644 index 000000000..0e0aa3a06 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_6_11_low_level_calls_sol__0.txt @@ -0,0 +1,3 @@ +Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#5-7): + - _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_7_6_low_level_calls_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_7_6_low_level_calls_sol__0.txt new file mode 100644 index 000000000..e0894ae32 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_LowLevelCalls_0_7_6_low_level_calls_sol__0.txt @@ -0,0 +1,3 @@ +Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#5-7): + - _receiver.call{gas: 7777,value: msg.value}() (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#6) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_4_25_MappingDeletion_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_4_25_MappingDeletion_sol__0.txt new file mode 100644 index 000000000..902f96668 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_4_25_MappingDeletion_sol__0.txt @@ -0,0 +1,6 @@ +Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#5-7) which contains a mapping: + -delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#10) + +Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#28-31) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#17-20) which contains a mapping: + -delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#30) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_5_16_MappingDeletion_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_5_16_MappingDeletion_sol__0.txt new file mode 100644 index 000000000..fec236e1c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_5_16_MappingDeletion_sol__0.txt @@ -0,0 +1,6 @@ +Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#5-7) which contains a mapping: + -delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#10) + +Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#17-20) which contains a mapping: + -delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#31) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_6_11_MappingDeletion_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_6_11_MappingDeletion_sol__0.txt new file mode 100644 index 000000000..7f0372c36 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_6_11_MappingDeletion_sol__0.txt @@ -0,0 +1,6 @@ +Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#17-20) which contains a mapping: + -delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#31) + +Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#5-7) which contains a mapping: + -delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_7_6_MappingDeletion_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_7_6_MappingDeletion_sol__0.txt new file mode 100644 index 000000000..f519a046f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MappingDeletionDetection_0_7_6_MappingDeletion_sol__0.txt @@ -0,0 +1,6 @@ +Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#17-20) which contains a mapping: + -delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#31) + +Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#5-7) which contains a mapping: + -delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_4_25_missing_events_access_control_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_4_25_missing_events_access_control_sol__0.txt new file mode 100644 index 000000000..ddefb04a7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_4_25_missing_events_access_control_sol__0.txt @@ -0,0 +1,9 @@ +Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#23-26) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#25) + +Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#15-17) should emit an event for: + - owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#16) + +Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#19-21) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#20) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_5_16_missing_events_access_control_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_5_16_missing_events_access_control_sol__0.txt new file mode 100644 index 000000000..db98d2ad7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_5_16_missing_events_access_control_sol__0.txt @@ -0,0 +1,9 @@ +Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#19-21) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#20) + +Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#15-17) should emit an event for: + - owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#16) + +Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#23-26) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#25) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_6_11_missing_events_access_control_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_6_11_missing_events_access_control_sol__0.txt new file mode 100644 index 000000000..afd318d25 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_6_11_missing_events_access_control_sol__0.txt @@ -0,0 +1,9 @@ +Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#23-26) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#25) + +Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#19-21) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#20) + +Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#15-17) should emit an event for: + - owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_7_6_missing_events_access_control_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_7_6_missing_events_access_control_sol__0.txt new file mode 100644 index 000000000..d77f25818 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsAccessControl_0_7_6_missing_events_access_control_sol__0.txt @@ -0,0 +1,9 @@ +Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#19-21) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#20) + +Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#15-17) should emit an event for: + - owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#16) + +Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#23-26) should emit an event for: + - owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#25) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_4_25_missing_events_arithmetic_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_4_25_missing_events_arithmetic_sol__0.txt new file mode 100644 index 000000000..8963a7674 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_4_25_missing_events_arithmetic_sol__0.txt @@ -0,0 +1,6 @@ +Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#30-32) should emit an event for: + - iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#31) + +Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#22-24) should emit an event for: + - uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#23) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_5_16_missing_events_arithmetic_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_5_16_missing_events_arithmetic_sol__0.txt new file mode 100644 index 000000000..2e87b44e1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_5_16_missing_events_arithmetic_sol__0.txt @@ -0,0 +1,6 @@ +Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#30-32) should emit an event for: + - iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#31) + +Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#22-24) should emit an event for: + - uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#23) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_6_11_missing_events_arithmetic_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_6_11_missing_events_arithmetic_sol__0.txt new file mode 100644 index 000000000..5bb5c5f32 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_6_11_missing_events_arithmetic_sol__0.txt @@ -0,0 +1,6 @@ +Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#22-24) should emit an event for: + - uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#23) + +Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#30-32) should emit an event for: + - iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#31) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_7_6_missing_events_arithmetic_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_7_6_missing_events_arithmetic_sol__0.txt new file mode 100644 index 000000000..1fb9f8a4b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingEventsArithmetic_0_7_6_missing_events_arithmetic_sol__0.txt @@ -0,0 +1,6 @@ +Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#30-32) should emit an event for: + - iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#31) + +Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#22-24) should emit an event for: + - uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#23) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_4_25_unimplemented_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_4_25_unimplemented_interface_sol__0.txt new file mode 100644 index 000000000..d57ab2986 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_4_25_unimplemented_interface_sol__0.txt @@ -0,0 +1,2 @@ +Something (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#1-3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_5_16_unimplemented_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_5_16_unimplemented_interface_sol__0.txt new file mode 100644 index 000000000..60f1bc78b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_5_16_unimplemented_interface_sol__0.txt @@ -0,0 +1,2 @@ +Something (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#1-3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_6_11_unimplemented_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_6_11_unimplemented_interface_sol__0.txt new file mode 100644 index 000000000..8a05975fd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_6_11_unimplemented_interface_sol__0.txt @@ -0,0 +1,2 @@ +Something (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#1-3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_7_6_unimplemented_interface_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_7_6_unimplemented_interface_sol__0.txt new file mode 100644 index 000000000..81f48f4dc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingInheritance_0_7_6_unimplemented_interface_sol__0.txt @@ -0,0 +1,2 @@ +Something (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#1-3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_4_25_missing_zero_address_validation_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_4_25_missing_zero_address_validation_sol__0.txt new file mode 100644 index 000000000..2ecb471e9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_4_25_missing_zero_address_validation_sol__0.txt @@ -0,0 +1,16 @@ +C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#28) lacks a zero-check on : + - addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#29) + +C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#23) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#24) + +C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#19) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#20) + +C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#10) lacks a zero-check on : + - owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#11) + +C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#14) lacks a zero-check on : + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#15) + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_5_16_missing_zero_address_validation_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_5_16_missing_zero_address_validation_sol__0.txt new file mode 100644 index 000000000..0f6616b71 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_5_16_missing_zero_address_validation_sol__0.txt @@ -0,0 +1,16 @@ +C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#19) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#20) + +C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#28) lacks a zero-check on : + - addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#29) + +C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#10) lacks a zero-check on : + - owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#11) + +C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#23) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#24) + +C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#14) lacks a zero-check on : + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#15) + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_6_11_missing_zero_address_validation_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_6_11_missing_zero_address_validation_sol__0.txt new file mode 100644 index 000000000..719ff30c3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_6_11_missing_zero_address_validation_sol__0.txt @@ -0,0 +1,16 @@ +C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#19) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#20) + +C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#10) lacks a zero-check on : + - owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#11) + +C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#14) lacks a zero-check on : + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#15) + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#16) + +C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#28) lacks a zero-check on : + - addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#29) + +C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#23) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#24) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_7_6_missing_zero_address_validation_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_7_6_missing_zero_address_validation_sol__0.txt new file mode 100644 index 000000000..225c1be4d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MissingZeroAddressValidation_0_7_6_missing_zero_address_validation_sol__0.txt @@ -0,0 +1,16 @@ +C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#14) lacks a zero-check on : + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#15) + - addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#16) + +C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#23) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#24) + +C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#28) lacks a zero-check on : + - addr.call{value: msg.value}() (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#29) + +C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#19) lacks a zero-check on : + - addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#20) + +C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#10) lacks a zero-check on : + - owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#11) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_4_25_modifier_default_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_4_25_modifier_default_sol__0.txt new file mode 100644 index 000000000..365f1f397 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_4_25_modifier_default_sol__0.txt @@ -0,0 +1,3 @@ +Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#30-41) does not always execute _; or revert +Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#18-22) does not always execute _; or revert +Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#2-6) does not always execute _; or revert diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_5_16_modifier_default_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_5_16_modifier_default_sol__0.txt new file mode 100644 index 000000000..5f5a1b5f8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_5_16_modifier_default_sol__0.txt @@ -0,0 +1,3 @@ +Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#30-41) does not always execute _; or revert +Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#18-22) does not always execute _; or revert +Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#2-6) does not always execute _; or revert diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_6_11_modifier_default_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_6_11_modifier_default_sol__0.txt new file mode 100644 index 000000000..b4d5bf3e4 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_6_11_modifier_default_sol__0.txt @@ -0,0 +1,3 @@ +Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#30-41) does not always execute _; or revert +Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#18-22) does not always execute _; or revert +Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#2-6) does not always execute _; or revert diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_7_6_modifier_default_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_7_6_modifier_default_sol__0.txt new file mode 100644 index 000000000..bba830c3b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ModifierDefaultDetection_0_7_6_modifier_default_sol__0.txt @@ -0,0 +1,3 @@ +Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#30-41) does not always execute _; or revert +Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#18-22) does not always execute _; or revert +Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#2-6) does not always execute _; or revert diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_4_25_msg_value_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_4_25_msg_value_loop_sol__0.txt new file mode 100644 index 000000000..b694677bd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_4_25_msg_value_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#7) + +C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#24) + +C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_5_16_msg_value_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_5_16_msg_value_loop_sol__0.txt new file mode 100644 index 000000000..66cd57b2b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_5_16_msg_value_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#24) + +C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#18) + +C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#7) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_6_11_msg_value_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_6_11_msg_value_loop_sol__0.txt new file mode 100644 index 000000000..4ae4ca2a8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_6_11_msg_value_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#18) + +C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#7) + +C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#24) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_7_6_msg_value_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_7_6_msg_value_loop_sol__0.txt new file mode 100644 index 000000000..0ec9098f7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_7_6_msg_value_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#18) + +C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#24) + +C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#7) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_8_0_msg_value_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_8_0_msg_value_loop_sol__0.txt new file mode 100644 index 000000000..6f36e2a63 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MsgValueInLoop_0_8_0_msg_value_loop_sol__0.txt @@ -0,0 +1,6 @@ +C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#18) + +C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#24) + +C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#7) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_4_25_multiple_calls_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_4_25_multiple_calls_in_loop_sol__0.txt new file mode 100644 index 000000000..534098851 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_4_25_multiple_calls_in_loop_sol__0.txt @@ -0,0 +1,8 @@ +CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#26) + +CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#35) + +CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: a.transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#46) + +CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: destinations_base[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#11) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_5_16_multiple_calls_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_5_16_multiple_calls_in_loop_sol__0.txt new file mode 100644 index 000000000..ffa813d87 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_5_16_multiple_calls_in_loop_sol__0.txt @@ -0,0 +1,8 @@ +CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#46) + +CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#26) + +CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#35) + +CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#11) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_6_11_multiple_calls_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_6_11_multiple_calls_in_loop_sol__0.txt new file mode 100644 index 000000000..4601b6909 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_6_11_multiple_calls_in_loop_sol__0.txt @@ -0,0 +1,8 @@ +CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#46) + +CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#11) + +CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#26) + +CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#35) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_7_6_multiple_calls_in_loop_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_7_6_multiple_calls_in_loop_sol__0.txt new file mode 100644 index 000000000..7d67fde52 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MultipleCallsInLoop_0_7_6_multiple_calls_in_loop_sol__0.txt @@ -0,0 +1,8 @@ +CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#26) + +CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#46) + +CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#11) + +CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#35) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_MultipleConstructorSchemes_0_4_22_multiple_constructor_schemes_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_MultipleConstructorSchemes_0_4_22_multiple_constructor_schemes_sol__0.txt new file mode 100644 index 000000000..7d84e8e24 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_MultipleConstructorSchemes_0_4_22_multiple_constructor_schemes_sol__0.txt @@ -0,0 +1,4 @@ +A (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#1-14) contains multiple constructors in the same contract: + - A.constructor() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#3-5) + - A.A() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#6-8) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_naming_convention_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_naming_convention_sol__0.txt new file mode 100644 index 000000000..0419c1b9a --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_naming_convention_sol__0.txt @@ -0,0 +1,32 @@ +Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#14-16) is not in CapWords + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is not in mixedCase + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is single letter l, O, or I, which should not be used + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is not in mixedCase + +Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#11) is not in mixedCase + +Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES + +Contract naming (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#3-48) is not in CapWords + +Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#6) is not in CapWords + +Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#59) is not in mixedCase + +Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#56) is not in mixedCase + +Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#23) is not in CapWords + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is single letter l, O, or I, which should not be used + +Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#41-43) is not in mixedCase + +Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#30-33) is not in mixedCase + +Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#67) is single letter l, O, or I, which should not be used + +Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#35) is not in mixedCase + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_no_warning_for_public_constants_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_4_25_no_warning_for_public_constants_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_naming_convention_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_naming_convention_sol__0.txt new file mode 100644 index 000000000..c5fd1f30f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_naming_convention_sol__0.txt @@ -0,0 +1,32 @@ +Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#14-16) is not in CapWords + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is not in mixedCase + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is single letter l, O, or I, which should not be used + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is not in mixedCase + +Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#11) is not in mixedCase + +Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES + +Contract naming (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#3-48) is not in CapWords + +Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#6) is not in CapWords + +Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#59) is not in mixedCase + +Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#56) is not in mixedCase + +Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#23) is not in CapWords + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is single letter l, O, or I, which should not be used + +Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#41-43) is not in mixedCase + +Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#30-33) is not in mixedCase + +Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#67) is single letter l, O, or I, which should not be used + +Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#35) is not in mixedCase + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_no_warning_for_public_constants_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_5_16_no_warning_for_public_constants_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_naming_convention_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_naming_convention_sol__0.txt new file mode 100644 index 000000000..1bbe28843 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_naming_convention_sol__0.txt @@ -0,0 +1,32 @@ +Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#14-16) is not in CapWords + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is not in mixedCase + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is single letter l, O, or I, which should not be used + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is not in mixedCase + +Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#11) is not in mixedCase + +Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES + +Contract naming (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#3-48) is not in CapWords + +Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#6) is not in CapWords + +Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#59) is not in mixedCase + +Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#56) is not in mixedCase + +Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#23) is not in CapWords + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is single letter l, O, or I, which should not be used + +Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#41-43) is not in mixedCase + +Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#30-33) is not in mixedCase + +Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#67) is single letter l, O, or I, which should not be used + +Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#35) is not in mixedCase + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_no_warning_for_public_constants_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_6_11_no_warning_for_public_constants_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_naming_convention_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_naming_convention_sol__0.txt new file mode 100644 index 000000000..5f560ba51 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_naming_convention_sol__0.txt @@ -0,0 +1,32 @@ +Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#14-16) is not in CapWords + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is not in mixedCase + +Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is single letter l, O, or I, which should not be used + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is not in mixedCase + +Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#11) is not in mixedCase + +Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES + +Contract naming (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#3-48) is not in CapWords + +Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#6) is not in CapWords + +Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#59) is not in mixedCase + +Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#56) is not in mixedCase + +Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#23) is not in CapWords + +Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is single letter l, O, or I, which should not be used + +Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#41-43) is not in mixedCase + +Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#30-33) is not in mixedCase + +Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#67) is single letter l, O, or I, which should not be used + +Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#35) is not in mixedCase + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_no_warning_for_public_constants_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_NamingConvention_0_7_6_no_warning_for_public_constants_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_PredeclarationUsageLocal_0_4_25_predeclaration_usage_local_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_PredeclarationUsageLocal_0_4_25_predeclaration_usage_local_sol__0.txt new file mode 100644 index 000000000..264e41f14 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_PredeclarationUsageLocal_0_4_25_predeclaration_usage_local_sol__0.txt @@ -0,0 +1,10 @@ +Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i -- (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14) + +Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: x += i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#15) + +Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i > 0 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14) + +Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i = 10 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14) + +Variable 'C.f(uint256).x (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#5)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: y = x + 9 + z (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ProtectedVariables_0_8_2_comment_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ProtectedVariables_0_8_2_comment_sol__0.txt new file mode 100644 index 000000000..2086c6e7f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ProtectedVariables_0_8_2_comment_sol__0.txt @@ -0,0 +1,4 @@ +Internal.buggy() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#47-49) should have Internal.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#42-45) to protect Internal.owner (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#38) + +ReentrancyAndWrite.set_not_protected() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#31-33) should have ReentrancyAndWrite.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#11-14) to protect ReentrancyAndWrite.external_contract (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_PublicMappingNested_0_4_25_public_mappings_nested_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_PublicMappingNested_0_4_25_public_mappings_nested_sol__0.txt new file mode 100644 index 000000000..74e376f8f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_PublicMappingNested_0_4_25_public_mappings_nested_sol__0.txt @@ -0,0 +1,2 @@ +Bug.testMapping (tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#14) is a public mapping with nested variables + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_4_25_redundant_statements_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_4_25_redundant_statements_sol__0.txt new file mode 100644 index 000000000..f204ff512 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_4_25_redundant_statements_sol__0.txt @@ -0,0 +1,12 @@ +Redundant expression "bool (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#7)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#12)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + +Redundant expression "test (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#14)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + +Redundant expression "RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#8)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#6)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + +Redundant expression "assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#13)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_5_16_redundant_statements_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_5_16_redundant_statements_sol__0.txt new file mode 100644 index 000000000..f70402cb9 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_5_16_redundant_statements_sol__0.txt @@ -0,0 +1,12 @@ +Redundant expression "assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#13)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + +Redundant expression "bool (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#7)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#12)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#6)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + +Redundant expression "RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#8)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + +Redundant expression "test (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#14)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_6_11_redundant_statements_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_6_11_redundant_statements_sol__0.txt new file mode 100644 index 000000000..2264d01e5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_6_11_redundant_statements_sol__0.txt @@ -0,0 +1,12 @@ +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#12)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + +Redundant expression "bool (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#7)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + +Redundant expression "RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#8)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#6)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + +Redundant expression "test (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#14)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + +Redundant expression "assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#13)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_7_6_redundant_statements_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_7_6_redundant_statements_sol__0.txt new file mode 100644 index 000000000..915421b3f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RedundantStatements_0_7_6_redundant_statements_sol__0.txt @@ -0,0 +1,12 @@ +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#12)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + +Redundant expression "test (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#14)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + +Redundant expression "assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#13)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + +Redundant expression "RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#8)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + +Redundant expression "bool (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#7)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + +Redundant expression "uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#6)" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_4_25_reentrancy_benign_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_4_25_reentrancy_benign_sol__0.txt new file mode 100644 index 000000000..fdc46f6af --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_4_25_reentrancy_benign_sol__0.txt @@ -0,0 +1,50 @@ +Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#23-27): + External calls: + - success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#24) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#26) + +Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#16-21): + External calls: + - ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#17) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#20) + +Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#46-51): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#47) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60) + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64) + External calls sending eth: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#49) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68) + +Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#40-44): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#41) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#42) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68) + +Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#29-38): + External calls: + - success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#30) + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32) + External calls sending eth: + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#33) + +Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#53-57): + External calls: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#54) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#55) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_5_16_reentrancy_benign_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_5_16_reentrancy_benign_sol__0.txt new file mode 100644 index 000000000..744eccc92 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_5_16_reentrancy_benign_sol__0.txt @@ -0,0 +1,50 @@ +Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#41-45): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#42) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#43) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#17) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#21) + +Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#54-58): + External calls: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#55) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#56) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#48) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61) + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65) + External calls sending eth: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#50) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#25) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#27) + +Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#31) + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33) + External calls sending eth: + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#34) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_6_11_reentrancy_benign_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_6_11_reentrancy_benign_sol__0.txt new file mode 100644 index 000000000..400c1c00d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_6_11_reentrancy_benign_sol__0.txt @@ -0,0 +1,50 @@ +Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#48) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61) + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65) + External calls sending eth: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#50) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#42) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#43) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#31) + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33) + External calls sending eth: + - address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#34) + +Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#25) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#27) + +Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58): + External calls: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#55) + - address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#56) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#17) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#21) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_7_6_reentrancy_benign_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_7_6_reentrancy_benign_sol__0.txt new file mode 100644 index 000000000..5339f8c4a --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyBenign_0_7_6_reentrancy_benign_sol__0.txt @@ -0,0 +1,50 @@ +Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#42) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#43) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#31) + - address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33) + External calls sending eth: + - address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#34) + +Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58): + External calls: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#55) + - address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#56) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52): + External calls: + - externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#48) + - address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61) + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49) + - address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65) + External calls sending eth: + - ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49) + - address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65) + State variables written after the call(s): + - varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#50) + - anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69) + +Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28): + External calls: + - (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#25) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#27) + +Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#17) + State variables written after the call(s): + - counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#21) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_DAO_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_DAO_sol__0.txt new file mode 100644 index 000000000..2d6c2b820 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_DAO_sol__0.txt @@ -0,0 +1,72 @@ +Reentrancy in TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332): + External calls: + - extraBalance.balance >= extraBalance.accumulatedInput() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#321) + - extraBalance.payOut(address(this),extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#322) + - msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325) + External calls sending eth: + - msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325) + State variables written after the call(s): + - weiGiven[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#329) + TokenCreationInterface.weiGiven (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#251) can be used in cross function reentrancies: + - TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#299-316) + - TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332) + +Reentrancy in DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937): + External calls: + - ! isRecipientAllowed(p.recipient) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#881) + - allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1159-1163) + - ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915) + External calls sending eth: + - ! p.creator.send(p.proposalDeposit) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#904) + - ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915) + State variables written after the call(s): + - p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#918) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850) + - closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933) + - p.open = false (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#944) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850) + - rewardToken[address(this)] += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#928) + DAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410) can be used in cross function reentrancies: + - DAO.changeProposalDeposit(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1139-1146) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937) + - DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1174-1178) + - DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1022-1034) + - DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057) + - DAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020) + - closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933) + - sumOfProposalDeposits -= p.proposalDeposit (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#943) + DAOInterface.sumOfProposalDeposits (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#436) can be used in cross function reentrancies: + - DAO.actualBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1169-1171) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020) + - totalRewardToken += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#929) + DAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412) can be used in cross function reentrancies: + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937) + - DAO.isRecipientAllowed(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1158-1167) + - DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057) + - DAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_indirect_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_indirect_sol__0.txt new file mode 100644 index 000000000..4562e1bd7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_indirect_sol__0.txt @@ -0,0 +1,15 @@ +Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29): + External calls: + - require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#24) + External calls sending eth: + - msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#23) + State variables written after the call(s): + - eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#26) + Reentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#10) can be used in cross function reentrancies: + - Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#13-15) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29) + - token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#27) + Reentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#11) can be used in cross function reentrancies: + - Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#17-20) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_sol__0.txt new file mode 100644 index 000000000..81143018c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_4_25_reentrancy_sol__0.txt @@ -0,0 +1,32 @@ +Reentrancy in Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80): + External calls: + - msg.sender.call.value(amount / 2)() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#77) + State variables written after the call(s): + - userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#78) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60) + - Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72) + - Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80) + +Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31): + External calls: + - ! (msg.sender.call.value(userBalance[msg.sender])()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#27) + State variables written after the call(s): + - userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#30) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60) + - Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72) + - Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_indirect_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_indirect_sol__0.txt new file mode 100644 index 000000000..eea2c4711 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_indirect_sol__0.txt @@ -0,0 +1,15 @@ +Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29): + External calls: + - require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#24) + External calls sending eth: + - msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#23) + State variables written after the call(s): + - eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#26) + Reentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#10) can be used in cross function reentrancies: + - Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#13-15) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29) + - token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#27) + Reentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#11) can be used in cross function reentrancies: + - Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#17-20) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_sol__0.txt new file mode 100644 index 000000000..d77726404 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_5_16_reentrancy_sol__0.txt @@ -0,0 +1,28 @@ +Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33): + External calls: + - (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#28) + State variables written after the call(s): + - userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#32) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64) + +Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64): + External calls: + - (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#60) + State variables written after the call(s): + - userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#62) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_indirect_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_indirect_sol__0.txt new file mode 100644 index 000000000..c4cda5f34 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_indirect_sol__0.txt @@ -0,0 +1,15 @@ +Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29): + External calls: + - require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#24) + External calls sending eth: + - msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#23) + State variables written after the call(s): + - eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#26) + Reentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#10) can be used in cross function reentrancies: + - Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#13-15) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29) + - token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#27) + Reentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#11) can be used in cross function reentrancies: + - Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#17-20) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_sol__0.txt new file mode 100644 index 000000000..a3e4ec83d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_6_11_reentrancy_sol__0.txt @@ -0,0 +1,28 @@ +Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64): + External calls: + - (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#60) + State variables written after the call(s): + - userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#62) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64) + +Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33): + External calls: + - (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#28) + State variables written after the call(s): + - userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#32) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_indirect_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_indirect_sol__0.txt new file mode 100644 index 000000000..2be2ab3bb --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_indirect_sol__0.txt @@ -0,0 +1,15 @@ +Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29): + External calls: + - require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#24) + External calls sending eth: + - msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#23) + State variables written after the call(s): + - eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#26) + Reentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#10) can be used in cross function reentrancies: + - Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#13-15) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29) + - token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#27) + Reentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#11) can be used in cross function reentrancies: + - Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#17-20) + - Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_sol__0.txt new file mode 100644 index 000000000..04098bd3f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_7_6_reentrancy_sol__0.txt @@ -0,0 +1,28 @@ +Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64): + External calls: + - (ret,mem) = msg.sender.call{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#60) + State variables written after the call(s): + - userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#62) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64) + +Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33): + External calls: + - (ret,mem) = msg.sender.call{value: userBalance[msg.sender]}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#28) + State variables written after the call(s): + - userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#32) + Reentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies: + - Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12) + - Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23) + - Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8) + - Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33) + - Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44) + - Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53) + - Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_filtered_comments_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_filtered_comments_sol__0.txt new file mode 100644 index 000000000..4485754d3 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_filtered_comments_sol__0.txt @@ -0,0 +1,9 @@ +Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12): + External calls: + - Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#10) + State variables written after the call(s): + - balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#11) + TestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#6) can be used in cross function reentrancies: + - TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12) + - TestWithBug.withdrawFiltered(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#15-19) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_with_non_reentrant_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_with_non_reentrant_sol__0.txt new file mode 100644 index 000000000..ab510d0e5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEth_0_8_10_reentrancy_with_non_reentrant_sol__0.txt @@ -0,0 +1,32 @@ +Reentrancy in TestWithBugInternal.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#62-66): + External calls: + - Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#64) + State variables written after the call(s): + - balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#65) + TestWithBugInternal.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#52) can be used in cross function reentrancies: + - TestWithBugInternal.withdraw_all_internal() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#72-76) + +Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#13-17): + External calls: + - Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#15) + State variables written after the call(s): + - balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#16) + TestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#7) can be used in cross function reentrancies: + - TestWithBug.withdraw_all() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#19-23) + +Reentrancy in TestBugWithPublicVariable.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#122-126): + External calls: + - Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#124) + State variables written after the call(s): + - balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#125) + TestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112) can be used in cross function reentrancies: + - TestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112) + +Reentrancy in TestWithBugNonReentrantRead.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#138-142): + External calls: + - Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#140) + State variables written after the call(s): + - balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#141) + TestWithBugNonReentrantRead.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#132) can be used in cross function reentrancies: + - TestWithBugNonReentrantRead.read() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#146-149) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_5_16_reentrancy_events_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_5_16_reentrancy_events_sol__0.txt new file mode 100644 index 000000000..ffee9b383 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_5_16_reentrancy_events_sol__0.txt @@ -0,0 +1,6 @@ +Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#14-17): + External calls: + - c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#15) + Event emitted after the call(s): + - E() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_6_11_reentrancy_events_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_6_11_reentrancy_events_sol__0.txt new file mode 100644 index 000000000..430371f7d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_6_11_reentrancy_events_sol__0.txt @@ -0,0 +1,6 @@ +Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#14-17): + External calls: + - c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#15) + Event emitted after the call(s): + - E() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_7_6_reentrancy_events_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_7_6_reentrancy_events_sol__0.txt new file mode 100644 index 000000000..ad082c3a5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyEvent_0_7_6_reentrancy_events_sol__0.txt @@ -0,0 +1,6 @@ +Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#14-17): + External calls: + - c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#15) + Event emitted after the call(s): + - E() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_DAO_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_DAO_sol__0.txt new file mode 100644 index 000000000..1babf5659 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_DAO_sol__0.txt @@ -0,0 +1,171 @@ +Reentrancy in DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057): + External calls: + - reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1044-1046) + - ! DAOrewardAccount.payOut(dao.rewardAccount(),reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1048) + - ! DAOrewardAccount.payOut(dao,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1052) + State variables written after the call(s): + - DAOpaidOut[msg.sender] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1055) + DAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423) can be used in cross function reentrancies: + - DAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423) + - DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1022-1034) + - DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + +Reentrancy in DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074): + External calls: + - reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069) + - ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070) + State variables written after the call(s): + - paidOut[_account] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1072) + DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies: + - DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136) + - DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074) + +Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020): + External calls: + - p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974) + - daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196) + - withdrawRewardFor(msg.sender) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1015) + - (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065) + - reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069) + - ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070) + State variables written after the call(s): + - balances[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1017) + TokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies: + - Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97) + - TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316) + - TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108) + - Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - paidOut[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1018) + DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies: + - DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136) + - DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074) + - totalSupply -= balances[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1016) + TokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45) can be used in cross function reentrancies: + - TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937) + - DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1174-1178) + - TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - TokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45) + - DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074) + +Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020): + External calls: + - p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974) + - daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196) + State variables written after the call(s): + - p.splitData[0].splitBalance = actualBalance() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#981) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - p.splitData[0].rewardToken = rewardToken[address(this)] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#982) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - p.splitData[0].totalSupply = totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#983) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#984) + DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies: + - DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726) + - DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817) + - DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945) + - DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937) + - DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206) + - DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218) + - DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806) + - DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202) + - DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + +Reentrancy in DAO.transferFromWithoutReward(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1112-1121): + External calls: + - ! withdrawRewardFor(_from) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1118) + - (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065) + - reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069) + - ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070) + State variables written after the call(s): + - transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120) + - balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#120) + - balances[_from] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#121) + TokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies: + - Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97) + - TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316) + - TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108) + - Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120) + - paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133) + - paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134) + DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies: + - DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136) + - DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074) + +Reentrancy in DAO.transferWithoutReward(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1091-1095): + External calls: + - ! getMyReward() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1092) + - (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065) + - reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069) + - ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070) + State variables written after the call(s): + - transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094) + - balances[msg.sender] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#101) + - balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#102) + TokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies: + - Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97) + - TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316) + - TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108) + - Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128) + - DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850) + - transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094) + - paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133) + - paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134) + DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies: + - DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) + - DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020) + - DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136) + - DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_reentrancy_write_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_reentrancy_write_sol__0.txt new file mode 100644 index 000000000..fb9615c09 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_4_25_reentrancy_write_sol__0.txt @@ -0,0 +1,25 @@ +Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22): + External calls: + - ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18) + State variables written after the call(s): + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37) + +Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29): + External calls: + - success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#26) + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28) + - ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18) + State variables written after the call(s): + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28) + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_no_reentrancy_staticcall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_no_reentrancy_staticcall_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_reentrancy_write_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_reentrancy_write_sol__0.txt new file mode 100644 index 000000000..d1532be91 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_5_16_reentrancy_write_sol__0.txt @@ -0,0 +1,25 @@ +Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18) + State variables written after the call(s): + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39) + +Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#27) + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29) + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18) + State variables written after the call(s): + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29) + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_no_reentrancy_staticcall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_no_reentrancy_staticcall_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_reentrancy_write_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_reentrancy_write_sol__0.txt new file mode 100644 index 000000000..e4edf64f8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_6_11_reentrancy_write_sol__0.txt @@ -0,0 +1,25 @@ +Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18) + State variables written after the call(s): + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39) + +Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#27) + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29) + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18) + State variables written after the call(s): + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29) + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_no_reentrancy_staticcall_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_no_reentrancy_staticcall_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_reentrancy_write_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_reentrancy_write_sol__0.txt new file mode 100644 index 000000000..ad043d2f8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_7_6_reentrancy_write_sol__0.txt @@ -0,0 +1,25 @@ +Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22) + State variables written after the call(s): + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43) + +Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34): + External calls: + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#31) + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33) + - (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22) + State variables written after the call(s): + - bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33) + - notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26) + ReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies: + - ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27) + - ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34) + - ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18) + - ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_8_2_comment_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReentrancyReadBeforeWritten_0_8_2_comment_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_21_reused_base_constructor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_21_reused_base_constructor_sol__0.txt new file mode 100644 index 000000000..d3e7d064c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_21_reused_base_constructor_sol__0.txt @@ -0,0 +1,24 @@ +E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor C.C(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy: + - From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition + +E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition + +F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition + +D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition + +C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition + +E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor B.B(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy: + - From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_25_reused_base_constructor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_25_reused_base_constructor_sol__0.txt new file mode 100644 index 000000000..66c80dbbb --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ReusedBaseConstructor_0_4_25_reused_base_constructor_sol__0.txt @@ -0,0 +1,35 @@ +D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition + +C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition + +E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy: + - From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition + +D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy: + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition + +D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy: + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition + +F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition + +E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy: + - From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) contract definition + - From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition + - From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition + +E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy: + - From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition + - From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_4_25_right_to_left_override_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_4_25_right_to_left_override_sol__0.txt new file mode 100644 index 000000000..ac0099d48 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_4_25_right_to_left_override_sol__0.txt @@ -0,0 +1,3 @@ +tests/e2e/detectors/test_data/rtlo/0.4.25/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' + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_5_16_right_to_left_override_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_5_16_right_to_left_override_sol__0.txt new file mode 100644 index 000000000..3c5060b6c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_5_16_right_to_left_override_sol__0.txt @@ -0,0 +1,3 @@ +tests/e2e/detectors/test_data/rtlo/0.5.16/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' + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_6_11_right_to_left_override_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_6_11_right_to_left_override_sol__0.txt new file mode 100644 index 000000000..7e181d79d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_6_11_right_to_left_override_sol__0.txt @@ -0,0 +1,3 @@ +tests/e2e/detectors/test_data/rtlo/0.6.11/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' + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_8_0_unicode_direction_override_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_8_0_unicode_direction_override_sol__0.txt new file mode 100644 index 000000000..6b4a48b5b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_RightToLeftOverride_0_8_0_unicode_direction_override_sol__0.txt @@ -0,0 +1,9 @@ +tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336: + - b' /*ok \xe2\x80\xaeaaa\xe2\x80\xaebbb\xe2\x80\xaeccc\xe2\x80\xacddd\xe2\x80\xaceee\xe2\x80\xac*/' + +tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348: + - b'\x80\xaebbb\xe2\x80\xaeccc\xe2\x80\xacddd\xe2\x80\xaceee\xe2\x80\xac*/' + +tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342: + - b'\x80\xaeaaa\xe2\x80\xaebbb\xe2\x80\xaeccc\xe2\x80\xacddd\xe2\x80\xaceee\xe2\x80\xac*/' + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_4_25_shadowing_abstract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_4_25_shadowing_abstract_sol__0.txt new file mode 100644 index 000000000..3e14058b0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_4_25_shadowing_abstract_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#7) shadows: + - BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#2) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_5_16_shadowing_abstract_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_5_16_shadowing_abstract_sol__0.txt new file mode 100644 index 000000000..f3f6523ac --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_5_16_shadowing_abstract_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#7) shadows: + - BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#2) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_public_gap_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_public_gap_variable_sol__0.txt new file mode 100644 index 000000000..de8db2897 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_public_gap_variable_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#7) shadows: + - BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShadowingAbstractDetection_0_7_5_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_4_25_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_4_25_shift_parameter_mixup_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_5_16_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_5_16_shift_parameter_mixup_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_6_11_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_6_11_shift_parameter_mixup_sol__0.txt new file mode 100644 index 000000000..354d90a13 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_6_11_shift_parameter_mixup_sol__0.txt @@ -0,0 +1,2 @@ +C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#5) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt new file mode 100644 index 000000000..08fdbe1c6 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt @@ -0,0 +1,2 @@ +C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_4_25_similar_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_4_25_similar_variables_sol__0.txt new file mode 100644 index 000000000..7f6fa4da1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_4_25_similar_variables_sol__0.txt @@ -0,0 +1,2 @@ +Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_5_16_similar_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_5_16_similar_variables_sol__0.txt new file mode 100644 index 000000000..70b5c329b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_5_16_similar_variables_sol__0.txt @@ -0,0 +1,2 @@ +Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_6_11_similar_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_6_11_similar_variables_sol__0.txt new file mode 100644 index 000000000..efb92b5aa --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_6_11_similar_variables_sol__0.txt @@ -0,0 +1,2 @@ +Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_7_6_similar_variables_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_7_6_similar_variables_sol__0.txt new file mode 100644 index 000000000..67d482328 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_SimilarVarsDetection_0_7_6_similar_variables_sol__0.txt @@ -0,0 +1,2 @@ +Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_4_25_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_4_25_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..45b420ffe --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_4_25_shadowing_state_variable_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#12) shadows: + - BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#2) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_5_16_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_5_16_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..380a9d7bc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_5_16_shadowing_state_variable_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#12) shadows: + - BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#2) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_6_11_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_6_11_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_public_gap_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_public_gap_variable_sol__0.txt new file mode 100644 index 000000000..3c007c160 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_public_gap_variable_sol__0.txt @@ -0,0 +1,3 @@ +DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#8) shadows: + - BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_5_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_6_shadowing_state_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StateShadowing_0_7_6_shadowing_state_variable_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_10_storage_signed_integer_array_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_10_storage_signed_integer_array_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_16_storage_signed_integer_array_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_StorageSignedIntegerArray_0_5_16_storage_signed_integer_array_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_4_25_suicidal_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_4_25_suicidal_sol__0.txt new file mode 100644 index 000000000..c66c69533 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_4_25_suicidal_sol__0.txt @@ -0,0 +1,2 @@ +C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#4-6) allows anyone to destruct the contract + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_5_16_suicidal_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_5_16_suicidal_sol__0.txt new file mode 100644 index 000000000..85f559ea2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_5_16_suicidal_sol__0.txt @@ -0,0 +1,2 @@ +C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#4-6) allows anyone to destruct the contract + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_6_11_suicidal_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_6_11_suicidal_sol__0.txt new file mode 100644 index 000000000..81e1bd10f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_6_11_suicidal_sol__0.txt @@ -0,0 +1,2 @@ +C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#4-6) allows anyone to destruct the contract + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_7_6_suicidal_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_7_6_suicidal_sol__0.txt new file mode 100644 index 000000000..4a784217d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Suicidal_0_7_6_suicidal_sol__0.txt @@ -0,0 +1,2 @@ +C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#4-6) allows anyone to destruct the contract + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_4_25_timestamp_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_4_25_timestamp_sol__0.txt new file mode 100644 index 000000000..af0a71a09 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_4_25_timestamp_sol__0.txt @@ -0,0 +1,12 @@ +Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#4-6) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#5) + +Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#8-11) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#10) + +Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#13-15) uses timestamp for comparisons + Dangerous comparisons: + - block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_5_16_timestamp_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_5_16_timestamp_sol__0.txt new file mode 100644 index 000000000..0b69aaf67 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_5_16_timestamp_sol__0.txt @@ -0,0 +1,12 @@ +Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#8-11) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#10) + +Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#4-6) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#5) + +Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#13-15) uses timestamp for comparisons + Dangerous comparisons: + - block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_6_11_timestamp_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_6_11_timestamp_sol__0.txt new file mode 100644 index 000000000..0ac45cfcd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_6_11_timestamp_sol__0.txt @@ -0,0 +1,12 @@ +Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#4-6) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#5) + +Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#8-11) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#10) + +Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#13-15) uses timestamp for comparisons + Dangerous comparisons: + - block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_7_6_timestamp_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_7_6_timestamp_sol__0.txt new file mode 100644 index 000000000..b2a7df3bc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_Timestamp_0_7_6_timestamp_sol__0.txt @@ -0,0 +1,12 @@ +Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#13-15) uses timestamp for comparisons + Dangerous comparisons: + - block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#14) + +Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#4-6) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#5) + +Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#8-11) uses timestamp for comparisons + Dangerous comparisons: + - require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_4_25_too_many_digits_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_4_25_too_many_digits_sol__0.txt new file mode 100644 index 000000000..8208f1f83 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_4_25_too_many_digits_sol__0.txt @@ -0,0 +1,15 @@ +C.h() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#20-24) uses literals with too many digits: + - x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#22) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits: + - x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#13) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits: + - x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#10) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits: + - x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#12) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits: + - x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#11) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_5_16_too_many_digits_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_5_16_too_many_digits_sol__0.txt new file mode 100644 index 000000000..a1b31e430 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_5_16_too_many_digits_sol__0.txt @@ -0,0 +1,15 @@ +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits: + - x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#11) + +C.h() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#20-24) uses literals with too many digits: + - x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#22) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits: + - x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#12) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits: + - x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#10) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits: + - x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#13) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_6_11_too_many_digits_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_6_11_too_many_digits_sol__0.txt new file mode 100644 index 000000000..99b094b70 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_6_11_too_many_digits_sol__0.txt @@ -0,0 +1,15 @@ +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits: + - x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#12) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits: + - x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#11) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits: + - x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#13) + +C.h() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#20-24) uses literals with too many digits: + - x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#22) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits: + - x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_7_6_too_many_digits_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_7_6_too_many_digits_sol__0.txt new file mode 100644 index 000000000..7131d5a36 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TooManyDigits_0_7_6_too_many_digits_sol__0.txt @@ -0,0 +1,15 @@ +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits: + - x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#12) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits: + - x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#11) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits: + - x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#10) + +C.h() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#20-24) uses literals with too many digits: + - x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#22) + +C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits: + - x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#13) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_4_25_tx_origin_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_4_25_tx_origin_sol__0.txt new file mode 100644 index 000000000..aa6d40e48 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_4_25_tx_origin_sol__0.txt @@ -0,0 +1,4 @@ +TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#10) + +TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_5_16_tx_origin_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_5_16_tx_origin_sol__0.txt new file mode 100644 index 000000000..eb49cde78 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_5_16_tx_origin_sol__0.txt @@ -0,0 +1,4 @@ +TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#10) + +TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_6_11_tx_origin_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_6_11_tx_origin_sol__0.txt new file mode 100644 index 000000000..cc0ce1271 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_6_11_tx_origin_sol__0.txt @@ -0,0 +1,4 @@ +TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#10) + +TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#14) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_7_6_tx_origin_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_7_6_tx_origin_sol__0.txt new file mode 100644 index 000000000..ea23b4075 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TxOrigin_0_7_6_tx_origin_sol__0.txt @@ -0,0 +1,4 @@ +TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#14) + +TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_4_25_type_based_tautology_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_4_25_type_based_tautology_sol__0.txt new file mode 100644 index 000000000..c9e83e76c --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_4_25_type_based_tautology_sol__0.txt @@ -0,0 +1,6 @@ +A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#9-11) contains a tautology or contradiction: + - (y < 512) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#10) + +A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#2-7) contains a tautology or contradiction: + - x >= 0 (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_5_16_type_based_tautology_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_5_16_type_based_tautology_sol__0.txt new file mode 100644 index 000000000..3fbaa967d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_5_16_type_based_tautology_sol__0.txt @@ -0,0 +1,6 @@ +A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#9-11) contains a tautology or contradiction: + - (y < 512) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#10) + +A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#2-7) contains a tautology or contradiction: + - x >= 0 (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_6_11_type_based_tautology_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_6_11_type_based_tautology_sol__0.txt new file mode 100644 index 000000000..ea4f90e52 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_6_11_type_based_tautology_sol__0.txt @@ -0,0 +1,6 @@ +A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#9-11) contains a tautology or contradiction: + - (y < 512) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#10) + +A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#2-7) contains a tautology or contradiction: + - x >= 0 (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_7_6_type_based_tautology_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_7_6_type_based_tautology_sol__0.txt new file mode 100644 index 000000000..8fc370f03 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_TypeBasedTautology_0_7_6_type_based_tautology_sol__0.txt @@ -0,0 +1,6 @@ +A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#9-11) contains a tautology or contradiction: + - (y < 512) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#10) + +A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#2-7) contains a tautology or contradiction: + - x >= 0 (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_4_25_unchecked_lowlevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_4_25_unchecked_lowlevel_sol__0.txt new file mode 100644 index 000000000..a5f99697d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_4_25_unchecked_lowlevel_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_5_16_unchecked_lowlevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_5_16_unchecked_lowlevel_sol__0.txt new file mode 100644 index 000000000..7754728fa --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_5_16_unchecked_lowlevel_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_6_11_unchecked_lowlevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_6_11_unchecked_lowlevel_sol__0.txt new file mode 100644 index 000000000..940ba0675 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_6_11_unchecked_lowlevel_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_7_6_unchecked_lowlevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_7_6_unchecked_lowlevel_sol__0.txt new file mode 100644 index 000000000..d0b8e63c7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedLowLevel_0_7_6_unchecked_lowlevel_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#2-4) ignores return value by dst.call{value: msg.value}() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_4_25_unchecked_send_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_4_25_unchecked_send_sol__0.txt new file mode 100644 index 000000000..a295ad637 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_4_25_unchecked_send_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_5_16_unchecked_send_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_5_16_unchecked_send_sol__0.txt new file mode 100644 index 000000000..73f8f1a39 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_5_16_unchecked_send_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_6_11_unchecked_send_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_6_11_unchecked_send_sol__0.txt new file mode 100644 index 000000000..babda5b66 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_6_11_unchecked_send_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_7_6_unchecked_send_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_7_6_unchecked_send_sol__0.txt new file mode 100644 index 000000000..c06eae1e4 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedSend_0_7_6_unchecked_send_sol__0.txt @@ -0,0 +1,2 @@ +MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#3) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UncheckedTransfer_0_7_6_unused_return_transfers_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedTransfer_0_7_6_unused_return_transfers_sol__0.txt new file mode 100644 index 000000000..2594e8eab --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UncheckedTransfer_0_7_6_unused_return_transfers_sol__0.txt @@ -0,0 +1,4 @@ +C.bad0() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#20-22) ignores return value by t.transfer(address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#21) + +C.bad1() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#40-42) ignores return value by t.transferFrom(address(this),address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#41) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_4_25_unimplemented_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_4_25_unimplemented_sol__0.txt new file mode 100644 index 000000000..201026ec4 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_4_25_unimplemented_sol__0.txt @@ -0,0 +1,13 @@ +DerivedContract_good (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#35-41) does not implement functions: + - BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24) + +DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#27-33) does not implement functions: + - BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24) + +DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#10-14) does not implement functions: + - BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#3) + - BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#7) + +AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#16-21) does not implement functions: + - AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_interfaces_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_interfaces_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_sol__0.txt new file mode 100644 index 000000000..3ddb52a8f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_5_16_unimplemented_sol__0.txt @@ -0,0 +1,7 @@ +DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#10-14) does not implement functions: + - BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#3) + - BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#7) + +AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#16-21) does not implement functions: + - AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_interfaces_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_interfaces_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_sol__0.txt new file mode 100644 index 000000000..5c1837773 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_6_11_unimplemented_sol__0.txt @@ -0,0 +1,10 @@ +DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#27-33) does not implement functions: + - BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#24) + +DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#10-14) does not implement functions: + - BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#3) + - BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#7) + +AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#16-21) does not implement functions: + - AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_interfaces_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_interfaces_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_sol__0.txt new file mode 100644 index 000000000..716ddd54e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnimplementedFunctionDetection_0_7_6_unimplemented_sol__0.txt @@ -0,0 +1,10 @@ +DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#27-33) does not implement functions: + - BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#24) + +DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#10-14) does not implement functions: + - BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#3) + - BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#7) + +AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#16-21) does not implement functions: + - AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#17) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_4_25_erc20_indexed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_4_25_erc20_indexed_sol__0.txt new file mode 100644 index 000000000..a571ef77a --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_4_25_erc20_indexed_sol__0.txt @@ -0,0 +1,8 @@ +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter to + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter owner + +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter from + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter spender + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_5_16_erc20_indexed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_5_16_erc20_indexed_sol__0.txt new file mode 100644 index 000000000..09171d188 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_5_16_erc20_indexed_sol__0.txt @@ -0,0 +1,8 @@ +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter to + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter owner + +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter from + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter spender + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_6_11_erc20_indexed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_6_11_erc20_indexed_sol__0.txt new file mode 100644 index 000000000..c0cbe9270 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_6_11_erc20_indexed_sol__0.txt @@ -0,0 +1,8 @@ +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter to + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter owner + +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter from + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter spender + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_7_6_erc20_indexed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_7_6_erc20_indexed_sol__0.txt new file mode 100644 index 000000000..532a8b6cd --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnindexedERC20EventParameters_0_7_6_erc20_indexed_sol__0.txt @@ -0,0 +1,8 @@ +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter to + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter owner + +ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter from + +ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter spender + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_4_25_uninitialized_function_ptr_constructor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_4_25_uninitialized_function_ptr_constructor_sol__0.txt new file mode 100644 index 000000000..3b51472a6 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_4_25_uninitialized_function_ptr_constructor_sol__0.txt @@ -0,0 +1,12 @@ +Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#20-29) + s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor + +Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#3-9) + a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor + +Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#31-42) + a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor + +Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#11-18) + b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_16_uninitialized_function_ptr_constructor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_16_uninitialized_function_ptr_constructor_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_8_uninitialized_function_ptr_constructor_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_8_uninitialized_function_ptr_constructor_sol__0.txt new file mode 100644 index 000000000..db218266d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedFunctionPtrsConstructor_0_5_8_uninitialized_function_ptr_constructor_sol__0.txt @@ -0,0 +1,12 @@ +Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#31-42) + a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor + +Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#11-18) + b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor + +Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#3-9) + a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor + +Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#20-29) + s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_4_25_uninitialized_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_4_25_uninitialized_local_variable_sol__0.txt new file mode 100644 index 000000000..1aac68703 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_4_25_uninitialized_local_variable_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#4) is a local variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_5_16_uninitialized_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_5_16_uninitialized_local_variable_sol__0.txt new file mode 100644 index 000000000..53195cb87 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_5_16_uninitialized_local_variable_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#4) is a local variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_6_11_uninitialized_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_6_11_uninitialized_local_variable_sol__0.txt new file mode 100644 index 000000000..8e5dc65e8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_6_11_uninitialized_local_variable_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#4) is a local variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_7_6_uninitialized_local_variable_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_7_6_uninitialized_local_variable_sol__0.txt new file mode 100644 index 000000000..495859ec1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedLocalVars_0_7_6_uninitialized_local_variable_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#4) is a local variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_4_25_uninitialized_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_4_25_uninitialized_sol__0.txt new file mode 100644 index 000000000..f1af6d3a5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_4_25_uninitialized_sol__0.txt @@ -0,0 +1,12 @@ +Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#45) is never initialized. It is used in: + - Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#53-56) + +Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#15) is never initialized. It is used in: + - Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#23-26) + +Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#47) is never initialized. It is used in: + - Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#49-51) + +Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#5) is never initialized. It is used in: + - Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#7-9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_5_16_uninitialized_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_5_16_uninitialized_sol__0.txt new file mode 100644 index 000000000..fc3352132 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_5_16_uninitialized_sol__0.txt @@ -0,0 +1,12 @@ +Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#45) is never initialized. It is used in: + - Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#53-56) + +Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#15) is never initialized. It is used in: + - Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#23-26) + +Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#47) is never initialized. It is used in: + - Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#49-51) + +Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#5) is never initialized. It is used in: + - Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#7-9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_6_11_uninitialized_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_6_11_uninitialized_sol__0.txt new file mode 100644 index 000000000..486c71220 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_6_11_uninitialized_sol__0.txt @@ -0,0 +1,12 @@ +Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#45) is never initialized. It is used in: + - Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#53-56) + +Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#15) is never initialized. It is used in: + - Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#23-26) + +Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#47) is never initialized. It is used in: + - Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#49-51) + +Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#5) is never initialized. It is used in: + - Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#7-9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_7_6_uninitialized_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_7_6_uninitialized_sol__0.txt new file mode 100644 index 000000000..55501d5a2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStateVarsDetection_0_7_6_uninitialized_sol__0.txt @@ -0,0 +1,12 @@ +Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#45) is never initialized. It is used in: + - Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#53-56) + +Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#15) is never initialized. It is used in: + - Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#23-26) + +Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#47) is never initialized. It is used in: + - Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#49-51) + +Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#5) is never initialized. It is used in: + - Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#7-9) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_4_25_uninitialized_storage_pointer_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_4_25_uninitialized_storage_pointer_sol__0.txt new file mode 100644 index 000000000..c6bbddd46 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_4_25_uninitialized_storage_pointer_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.func().st_bug (tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#10) is a storage variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_8_19_uninitialized_storage_pointer_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_8_19_uninitialized_storage_pointer_sol__0.txt new file mode 100644 index 000000000..23cce5fc5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UninitializedStorageVars_0_8_19_uninitialized_storage_pointer_sol__0.txt @@ -0,0 +1,2 @@ +Uninitialized.bad().ret (tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#7) is a storage variable never initialized + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Buggy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Buggy_sol__0.txt new file mode 100644 index 000000000..996998ae8 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Buggy_sol__0.txt @@ -0,0 +1 @@ +Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#10-13) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Fixed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_Fixed_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_whitelisted_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_4_25_whitelisted_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Buggy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Buggy_sol__0.txt new file mode 100644 index 000000000..ca6d57d00 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Buggy_sol__0.txt @@ -0,0 +1 @@ +Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#10-13) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Fixed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_Fixed_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_whitelisted_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_5_16_whitelisted_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Buggy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Buggy_sol__0.txt new file mode 100644 index 000000000..5620196b0 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Buggy_sol__0.txt @@ -0,0 +1 @@ +Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#10-13) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Fixed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_Fixed_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_whitelisted_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_6_11_whitelisted_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Buggy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Buggy_sol__0.txt new file mode 100644 index 000000000..59b0795ad --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Buggy_sol__0.txt @@ -0,0 +1 @@ +Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#10-13) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Fixed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_Fixed_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_whitelisted_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_7_6_whitelisted_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Buggy_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Buggy_sol__0.txt new file mode 100644 index 000000000..7255d7d0d --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Buggy_sol__0.txt @@ -0,0 +1 @@ +Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#3-14) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#10-13) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Fixed_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_Fixed_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_whitelisted_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnprotectedUpgradeable_0_8_15_whitelisted_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt new file mode 100644 index 000000000..ec28fa9e5 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt @@ -0,0 +1,4 @@ +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#22) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt new file mode 100644 index 000000000..0cf04d283 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt @@ -0,0 +1,4 @@ +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#22) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt new file mode 100644 index 000000000..be0a8c687 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt @@ -0,0 +1,4 @@ +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#22) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt new file mode 100644 index 000000000..ec74a9458 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt @@ -0,0 +1,4 @@ +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#22) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_4_25_unused_state_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_4_25_unused_state_sol__0.txt new file mode 100644 index 000000000..64308a427 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_4_25_unused_state_sol__0.txt @@ -0,0 +1,8 @@ +A.unused (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16) + +A.unused4 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16) + +A.unused2 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16) + +A.unused3 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_5_16_unused_state_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_5_16_unused_state_sol__0.txt new file mode 100644 index 000000000..ad3721512 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_5_16_unused_state_sol__0.txt @@ -0,0 +1,8 @@ +A.unused (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16) + +A.unused4 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16) + +A.unused2 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16) + +A.unused3 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_6_11_unused_state_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_6_11_unused_state_sol__0.txt new file mode 100644 index 000000000..3c9a9a7ff --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_6_11_unused_state_sol__0.txt @@ -0,0 +1,8 @@ +A.unused (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16) + +A.unused4 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16) + +A.unused2 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16) + +A.unused3 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_7_6_unused_state_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_7_6_unused_state_sol__0.txt new file mode 100644 index 000000000..39c7ed13e --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedStateVars_0_7_6_unused_state_sol__0.txt @@ -0,0 +1,8 @@ +A.unused (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16) + +A.unused4 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16) + +A.unused2 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16) + +A.unused3 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_4_25_var_read_using_this_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_4_25_var_read_using_this_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_5_16_var_read_using_this_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_5_16_var_read_using_this_sol__0.txt new file mode 100644 index 000000000..bd4950ea2 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_5_16_var_read_using_this_sol__0.txt @@ -0,0 +1,8 @@ +The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_6_11_var_read_using_this_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_6_11_var_read_using_this_sol__0.txt new file mode 100644 index 000000000..b6f3c92a7 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_6_11_var_read_using_this_sol__0.txt @@ -0,0 +1,8 @@ +The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_7_6_var_read_using_this_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_7_6_var_read_using_this_sol__0.txt new file mode 100644 index 000000000..d92862289 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_7_6_var_read_using_this_sol__0.txt @@ -0,0 +1,8 @@ +The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_8_15_var_read_using_this_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_8_15_var_read_using_this_sol__0.txt new file mode 100644 index 000000000..1e2e0ca57 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VarReadUsingThis_0_8_15_var_read_using_this_sol__0.txt @@ -0,0 +1,8 @@ +The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL. + +The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL. + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_4_25_void_cst_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_4_25_void_cst_sol__0.txt new file mode 100644 index 000000000..8dddd403f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_4_25_void_cst_sol__0.txt @@ -0,0 +1,3 @@ +Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10-12): + - C() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_5_16_void_cst_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_5_16_void_cst_sol__0.txt new file mode 100644 index 000000000..b55d45867 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_5_16_void_cst_sol__0.txt @@ -0,0 +1,3 @@ +Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10-12): + - C() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_6_11_void_cst_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_6_11_void_cst_sol__0.txt new file mode 100644 index 000000000..48b9a8f2f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_6_11_void_cst_sol__0.txt @@ -0,0 +1,3 @@ +Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10-12): + - C() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_7_6_void_cst_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_7_6_void_cst_sol__0.txt new file mode 100644 index 000000000..d585b4465 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_VoidConstructor_0_7_6_void_cst_sol__0.txt @@ -0,0 +1,3 @@ +Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10-12): + - C() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_WriteAfterWrite_0_8_0_write_after_write_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_WriteAfterWrite_0_8_0_write_after_write_sol__0.txt new file mode 100644 index 000000000..847ab5c14 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_WriteAfterWrite_0_8_0_write_after_write_sol__0.txt @@ -0,0 +1,12 @@ +Test.state (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#3) is written in both + state = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#10) + state = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#11) + +Test.bugy_external_local().local (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#52) is written in both + local = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#53) + local = 11 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#56) + +Test.buggy_local().a (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#21) is written in both + a = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#22) + a = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#23) + diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index fe5b302d6..0e3185eef 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -1660,7 +1660,7 @@ TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" # pylint: disable=too-many-locals @pytest.mark.parametrize("test_item", ALL_TESTS, ids=id_test) -def test_detector(test_item: Test): +def test_detector(test_item: Test, snapshot): test_dir_path = Path( TEST_DATA_DIR, test_item.detector.ARGUMENT, @@ -1678,6 +1678,13 @@ def test_detector(test_item: Test): sl.register_detector(test_item.detector) results = sl.run_detectors() + actual_output = "" + for detector_result in results: + for result in detector_result: + actual_output += result["description"] + actual_output += "\n" + assert snapshot() == actual_output + with open(expected_result_path, encoding="utf8") as f: expected_result = json.load(f) From 0f5fcce65d709978d8d79287bec7564ef3a06660 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 4 Apr 2023 11:01:22 -0500 Subject: [PATCH 031/105] remove deepdiff and no longer used artifacts --- ...V2_array.sol.0.4.25.ABIEncoderV2Array.json | 1804 - ...V2_array.sol.0.5.10.ABIEncoderV2Array.json | 3 - ...V2_array.sol.0.5.11.ABIEncoderV2Array.json | 3 - ...rV2_array.sol.0.5.9.ABIEncoderV2Array.json | 1804 - ...t.sol.0.4.25.ArbitrarySendErc20Permit.json | 748 - ...t.sol.0.5.16.ArbitrarySendErc20Permit.json | 748 - ...t.sol.0.6.11.ArbitrarySendErc20Permit.json | 748 - ...it.sol.0.7.6.ArbitrarySendErc20Permit.json | 748 - ...it.sol.0.8.0.ArbitrarySendErc20Permit.json | 748 - ...sol.0.4.25.ArbitrarySendErc20NoPermit.json | 688 - ...sol.0.5.16.ArbitrarySendErc20NoPermit.json | 688 - ...sol.0.6.11.ArbitrarySendErc20NoPermit.json | 688 - ....sol.0.7.6.ArbitrarySendErc20NoPermit.json | 688 - ....sol.0.8.0.ArbitrarySendErc20NoPermit.json | 688 - ....sol.0.8.0.ArbitrarySendErc20NoPermit.json | 126 - ..._send_eth.sol.0.4.25.ArbitrarySendEth.json | 380 - ..._send_eth.sol.0.5.16.ArbitrarySendEth.json | 380 - ..._send_eth.sol.0.6.11.ArbitrarySendEth.json | 380 - ...y_send_eth.sol.0.7.6.ArbitrarySendEth.json | 380 - ...reference.sol.0.4.25.ArrayByReference.json | 1301 - ...reference.sol.0.5.16.ArrayByReference.json | 1301 - ...reference.sol.0.6.11.ArrayByReference.json | 1301 - ..._reference.sol.0.7.6.ArrayByReference.json | 1301 - ...assembly_contract.sol.0.4.25.Assembly.json | 181 - ..._assembly_library.sol.0.4.25.Assembly.json | 464 - ...assembly_contract.sol.0.5.16.Assembly.json | 180 - ..._assembly_library.sol.0.5.16.Assembly.json | 462 - ...assembly_contract.sol.0.6.11.Assembly.json | 180 - ..._assembly_library.sol.0.6.11.Assembly.json | 462 - ..._assembly_contract.sol.0.7.6.Assembly.json | 180 - ...e_assembly_library.sol.0.7.6.Assembly.json | 462 - ...e_change.sol.0.4.25.AssertStateChange.json | 556 - ...e_change.sol.0.5.16.AssertStateChange.json | 556 - ...e_change.sol.0.6.11.AssertStateChange.json | 556 - ...te_change.sol.0.7.6.AssertStateChange.json | 556 - .../0.4.25/backdoor.sol.0.4.25.Backdoor.json | 60 - .../0.5.16/backdoor.sol.0.5.16.Backdoor.json | 60 - .../0.6.11/backdoor.sol.0.6.11.Backdoor.json | 60 - .../0.7.6/backdoor.sol.0.7.6.Backdoor.json | 60 - ...suse.sol.0.4.25.BooleanConstantMisuse.json | 204 - ...suse.sol.0.5.16.BooleanConstantMisuse.json | 204 - ...suse.sol.0.6.11.BooleanConstantMisuse.json | 204 - ...isuse.sol.0.7.6.BooleanConstantMisuse.json | 204 - ...t-equality.sol.0.4.25.BooleanEquality.json | 166 - ...t-equality.sol.0.5.16.BooleanEquality.json | 166 - ...t-equality.sol.0.6.11.BooleanEquality.json | 166 - ...nt-equality.sol.0.7.6.BooleanEquality.json | 166 - ...n_loop.sol.0.4.25.MultipleCallsInLoop.json | 678 - ...n_loop.sol.0.5.16.MultipleCallsInLoop.json | 678 - ...n_loop.sol.0.6.11.MultipleCallsInLoop.json | 678 - ...in_loop.sol.0.7.6.MultipleCallsInLoop.json | 678 - ..._variables.sol.0.4.25.CouldBeConstant.json | 386 - ..._variables.sol.0.5.16.CouldBeConstant.json | 454 - ..._variables.sol.0.6.11.CouldBeConstant.json | 457 - ...e_variables.sol.0.7.6.CouldBeConstant.json | 454 - ...e_variables.sol.0.8.0.CouldBeConstant.json | 454 - ...stant.sol.0.4.25.ConstantFunctionsAsm.json | 81 - ...stant.sol.0.5.16.ConstantFunctionsAsm.json | 3 - ...stant.sol.0.6.11.ConstantFunctionsAsm.json | 3 - ...nstant.sol.0.7.6.ConstantFunctionsAsm.json | 3 - ...ant.sol.0.4.25.ConstantFunctionsState.json | 278 - ...ant.sol.0.5.16.ConstantFunctionsState.json | 3 - ...ant.sol.0.6.11.ConstantFunctionsState.json | 3 - ...tant.sol.0.7.6.ConstantFunctionsState.json | 3 - ...ment.sol.0.4.25.ArrayLengthAssignment.json | 595 - ...ment.sol.0.5.16.ArrayLengthAssignment.json | 595 - ...all.sol.0.4.25.ControlledDelegateCall.json | 318 - ...all.sol.0.5.16.ControlledDelegateCall.json | 318 - ...all.sol.0.6.11.ControlledDelegateCall.json | 318 - ...call.sol.0.7.6.ControlledDelegateCall.json | 318 - ...oop.sol.0.4.25.CostlyOperationsInLoop.json | 780 - ...oop.sol.0.5.16.CostlyOperationsInLoop.json | 780 - ...oop.sol.0.6.11.CostlyOperationsInLoop.json | 780 - ...loop.sol.0.7.6.CostlyOperationsInLoop.json | 780 - ...exity.sol.0.8.16.CyclomaticComplexity.json | 96 - ...exity.sol.0.8.16.CyclomaticComplexity.json | 3 - .../0.8.0/dead-code.sol.0.8.0.DeadCode.json | 167 - ...ll_loop.sol.0.4.25.DelegatecallInLoop.json | 542 - ...ll_loop.sol.0.5.16.DelegatecallInLoop.json | 542 - ...ll_loop.sol.0.6.11.DelegatecallInLoop.json | 542 - ...all_loop.sol.0.7.6.DelegatecallInLoop.json | 542 - ...all_loop.sol.0.8.0.DelegatecallInLoop.json | 542 - ..._calls.sol.0.4.25.DeprecatedStandards.json | 170 - ...tiply.sol.0.4.25.DivideBeforeMultiply.json | 122 - ...tiply.sol.0.5.16.DivideBeforeMultiply.json | 122 - ...tiply.sol.0.6.11.DivideBeforeMultiply.json | 122 - ...ltiply.sol.0.7.6.DivideBeforeMultiply.json | 122 - ...n.sol.0.4.25.DomainSeparatorCollision.json | 252 - ...n.sol.0.4.25.DomainSeparatorCollision.json | 247 - ...e.sol.0.4.25.DomainSeparatorCollision.json | 252 - ...n.sol.0.5.16.DomainSeparatorCollision.json | 252 - ...n.sol.0.5.16.DomainSeparatorCollision.json | 247 - ...e.sol.0.5.16.DomainSeparatorCollision.json | 252 - ...n.sol.0.6.11.DomainSeparatorCollision.json | 252 - ...n.sol.0.6.11.DomainSeparatorCollision.json | 247 - ...e.sol.0.6.11.DomainSeparatorCollision.json | 252 - ...on.sol.0.7.6.DomainSeparatorCollision.json | 252 - ...on.sol.0.7.6.DomainSeparatorCollision.json | 247 - ...pe.sol.0.7.6.DomainSeparatorCollision.json | 252 - ...on.sol.0.8.0.DomainSeparatorCollision.json | 252 - ...on.sol.0.8.0.DomainSeparatorCollision.json | 247 - ...pe.sol.0.8.0.DomainSeparatorCollision.json | 252 - ...m_conversion.sol.0.4.2.EnumConversion.json | 222 - ....0.4.25.UnindexedERC20EventParameters.json | 244 - ....0.5.16.UnindexedERC20EventParameters.json | 244 - ....0.6.11.UnindexedERC20EventParameters.json | 244 - ...l.0.7.6.UnindexedERC20EventParameters.json | 244 - ...4.25.IncorrectERC20InterfaceDetection.json | 478 - ...5.16.IncorrectERC20InterfaceDetection.json | 478 - ...6.11.IncorrectERC20InterfaceDetection.json | 478 - ....7.6.IncorrectERC20InterfaceDetection.json | 478 - ....25.IncorrectERC721InterfaceDetection.json | 846 - ....16.IncorrectERC721InterfaceDetection.json | 846 - ....11.IncorrectERC721InterfaceDetection.json | 846 - ...7.6.IncorrectERC721InterfaceDetection.json | 846 - ...sol.0.4.25.MissingEventsAccessControl.json | 636 - ...sol.0.5.16.MissingEventsAccessControl.json | 636 - ...sol.0.6.11.MissingEventsAccessControl.json | 636 - ....sol.0.7.6.MissingEventsAccessControl.json | 636 - ...ic.sol.0.4.25.MissingEventsArithmetic.json | 504 - ...ic.sol.0.5.16.MissingEventsArithmetic.json | 504 - ...ic.sol.0.6.11.MissingEventsArithmetic.json | 504 - ...tic.sol.0.7.6.MissingEventsArithmetic.json | 504 - ..._function.sol.0.4.25.ExternalFunction.json | 3 - ...unction_2.sol.0.4.25.ExternalFunction.json | 3 - ...unction_3.sol.0.4.25.ExternalFunction.json | 181 - ..._function.sol.0.5.16.ExternalFunction.json | 3 - ...unction_2.sol.0.5.16.ExternalFunction.json | 3 - ...unction_3.sol.0.5.16.ExternalFunction.json | 268 - ..._function.sol.0.6.11.ExternalFunction.json | 3 - ...unction_2.sol.0.6.11.ExternalFunction.json | 3 - ...unction_3.sol.0.6.11.ExternalFunction.json | 3 - ...l_function.sol.0.7.6.ExternalFunction.json | 3 - ...function_2.sol.0.7.6.ExternalFunction.json | 3 - ...function_3.sol.0.7.6.ExternalFunction.json | 3 - ...s.sol.0.4.25.FunctionInitializedState.json | 459 - ...s.sol.0.5.16.FunctionInitializedState.json | 459 - ...s.sol.0.6.11.FunctionInitializedState.json | 459 - ...es.sol.0.7.6.FunctionInitializedState.json | 459 - ...variables.sol.0.4.25.CouldBeImmutable.json | 3 - ...variables.sol.0.5.16.CouldBeImmutable.json | 3 - ...variables.sol.0.6.11.CouldBeImmutable.json | 339 - ..._variables.sol.0.7.6.CouldBeImmutable.json | 334 - ..._variables.sol.0.8.0.CouldBeImmutable.json | 276 - ...ty.sol.0.4.25.IncorrectStrictEquality.json | 2552 -- ...ty.sol.0.5.16.IncorrectStrictEquality.json | 2552 -- ...ty.sol.0.6.11.IncorrectStrictEquality.json | 2552 -- ...ity.sol.0.7.6.IncorrectStrictEquality.json | 2552 -- ...t.sol.0.4.25.ModifierDefaultDetection.json | 320 - ...t.sol.0.5.16.ModifierDefaultDetection.json | 320 - ...t.sol.0.6.11.ModifierDefaultDetection.json | 320 - ...lt.sol.0.7.6.ModifierDefaultDetection.json | 320 - ..._mixup.sol.0.4.25.ShiftParameterMixup.json | 3 - ..._mixup.sol.0.5.16.ShiftParameterMixup.json | 3 - ..._mixup.sol.0.6.11.ShiftParameterMixup.json | 130 - ...r_mixup.sol.0.7.6.ShiftParameterMixup.json | 130 - ....25.IncorrectUnaryExpressionDetection.json | 521 - .../locked_ether.sol.0.4.25.LockedEther.json | 77 - .../locked_ether.sol.0.5.16.LockedEther.json | 77 - .../locked_ether.sol.0.6.11.LockedEther.json | 77 - .../locked_ether.sol.0.7.6.LockedEther.json | 77 - ..._level_calls.sol.0.4.25.LowLevelCalls.json | 120 - ..._level_calls.sol.0.5.16.LowLevelCalls.json | 120 - ..._level_calls.sol.0.6.11.LowLevelCalls.json | 120 - ...w_level_calls.sol.0.7.6.LowLevelCalls.json | 120 - ...n.sol.0.4.25.MappingDeletionDetection.json | 413 - ...n.sol.0.5.16.MappingDeletionDetection.json | 416 - ...n.sol.0.6.11.MappingDeletionDetection.json | 416 - ...on.sol.0.7.6.MappingDeletionDetection.json | 416 - ...terface.sol.0.4.25.MissingInheritance.json | 56 - ...terface.sol.0.5.16.MissingInheritance.json | 56 - ...terface.sol.0.6.11.MissingInheritance.json | 56 - ...nterface.sol.0.7.6.MissingInheritance.json | 56 - ...l.0.4.25.MissingZeroAddressValidation.json | 1472 - ...l.0.5.16.MissingZeroAddressValidation.json | 1472 - ...l.0.6.11.MissingZeroAddressValidation.json | 1472 - ...ol.0.7.6.MissingZeroAddressValidation.json | 1472 - ..._value_loop.sol.0.4.25.MsgValueInLoop.json | 514 - ..._value_loop.sol.0.5.16.MsgValueInLoop.json | 514 - ..._value_loop.sol.0.6.11.MsgValueInLoop.json | 514 - ...g_value_loop.sol.0.7.6.MsgValueInLoop.json | 514 - ...g_value_loop.sol.0.8.0.MsgValueInLoop.json | 514 - ...sol.0.4.22.MultipleConstructorSchemes.json | 149 - ...onvention.sol.0.4.25.NamingConvention.json | 1372 - ...constants.sol.0.4.25.NamingConvention.json | 3 - ...onvention.sol.0.5.16.NamingConvention.json | 1372 - ...constants.sol.0.5.16.NamingConvention.json | 3 - ...onvention.sol.0.6.11.NamingConvention.json | 1372 - ...constants.sol.0.6.11.NamingConvention.json | 3 - ...convention.sol.0.7.6.NamingConvention.json | 1372 - ..._constants.sol.0.7.6.NamingConvention.json | 3 - ...agma.0.4.25.sol.0.4.25.ConstantPragma.json | 65 - ...agma.0.5.16.sol.0.5.16.ConstantPragma.json | 65 - ...agma.0.6.11.sol.0.6.11.ConstantPragma.json | 65 - ...pragma.0.7.6.sol.0.7.6.ConstantPragma.json | 65 - .../comment.sol.0.8.2.ProtectedVariables.json | 400 - ...nested.sol.0.4.25.PublicMappingNested.json | 68 - ...ements.sol.0.4.25.RedundantStatements.json | 715 - ...ements.sol.0.5.16.RedundantStatements.json | 715 - ...ements.sol.0.6.11.RedundantStatements.json | 715 - ...tements.sol.0.7.6.RedundantStatements.json | 715 - ...cy-benign.sol.0.4.25.ReentrancyBenign.json | 4814 --- ...cy-benign.sol.0.5.16.ReentrancyBenign.json | 4855 --- ...cy-benign.sol.0.6.11.ReentrancyBenign.json | 4855 --- ...ncy-benign.sol.0.7.6.ReentrancyBenign.json | 4855 --- .../0.4.25/DAO.sol.0.4.25.ReentrancyEth.json | 9301 ------ .../reentrancy.sol.0.4.25.ReentrancyEth.json | 851 - ...ncy_indirect.sol.0.4.25.ReentrancyEth.json | 440 - .../reentrancy.sol.0.5.16.ReentrancyEth.json | 761 - ...ncy_indirect.sol.0.5.16.ReentrancyEth.json | 440 - .../reentrancy.sol.0.6.11.ReentrancyEth.json | 761 - ...ncy_indirect.sol.0.6.11.ReentrancyEth.json | 440 - .../reentrancy.sol.0.7.6.ReentrancyEth.json | 761 - ...ancy_indirect.sol.0.7.6.ReentrancyEth.json | 440 - ...red_comments.sol.0.8.10.ReentrancyEth.json | 231 - ...on_reentrant.sol.0.8.10.ReentrancyEth.json | 981 - ...ncy-events.sol.0.5.16.ReentrancyEvent.json | 218 - ...ncy-events.sol.0.6.11.ReentrancyEvent.json | 218 - ...ancy-events.sol.0.7.6.ReentrancyEvent.json | 218 - ...ol.0.4.25.ReentrancyReadBeforeWritten.json | 27535 ---------------- ...ol.0.4.25.ReentrancyReadBeforeWritten.json | 890 - ...ol.0.5.16.ReentrancyReadBeforeWritten.json | 3 - ...ol.0.5.16.ReentrancyReadBeforeWritten.json | 913 - ...ol.0.6.11.ReentrancyReadBeforeWritten.json | 3 - ...ol.0.6.11.ReentrancyReadBeforeWritten.json | 913 - ...sol.0.7.6.ReentrancyReadBeforeWritten.json | 3 - ...sol.0.7.6.ReentrancyReadBeforeWritten.json | 913 - ...sol.0.8.2.ReentrancyReadBeforeWritten.json | 3 - ...ctor.sol.0.4.21.ReusedBaseConstructor.json | 712 - ...ctor.sol.0.4.25.ReusedBaseConstructor.json | 1009 - ...erride.sol.0.4.25.RightToLeftOverride.json | 32 - ...erride.sol.0.5.16.RightToLeftOverride.json | 32 - ...erride.sol.0.6.11.RightToLeftOverride.json | 32 - ...verride.sol.0.8.0.RightToLeftOverride.json | 88 - ...sol.0.4.25.ShadowingAbstractDetection.json | 93 - ...sol.0.5.16.ShadowingAbstractDetection.json | 93 - ....sol.0.7.5.ShadowingAbstractDetection.json | 91 - ....sol.0.7.5.ShadowingAbstractDetection.json | 3 - ...ols.sol.0.4.25.BuiltinSymbolShadowing.json | 799 - ...ols.sol.0.5.16.BuiltinSymbolShadowing.json | 749 - ...al_variable.sol.0.4.25.LocalShadowing.json | 814 - ...al_variable.sol.0.5.16.LocalShadowing.json | 977 - ...al_variable.sol.0.6.11.LocalShadowing.json | 896 - ...cal_variable.sol.0.7.6.LocalShadowing.json | 892 - ...te_variable.sol.0.4.25.StateShadowing.json | 105 - ...te_variable.sol.0.5.16.StateShadowing.json | 105 - ...te_variable.sol.0.6.11.StateShadowing.json | 3 - ...gap_variable.sol.0.7.5.StateShadowing.json | 93 - ...ate_variable.sol.0.7.5.StateShadowing.json | 3 - ...ate_variable.sol.0.7.6.StateShadowing.json | 3 - ...ables.sol.0.4.25.SimilarVarsDetection.json | 149 - ...ables.sol.0.5.16.SimilarVarsDetection.json | 149 - ...ables.sol.0.6.11.SimilarVarsDetection.json | 149 - ...iables.sol.0.7.6.SimilarVarsDetection.json | 149 - .../static.sol.0.4.25.IncorrectSolc.json | 49 - .../static.sol.0.5.14.IncorrectSolc.json | 49 - .../dynamic_1.sol.0.5.16.IncorrectSolc.json | 50 - .../dynamic_2.sol.0.5.16.IncorrectSolc.json | 53 - .../static.sol.0.5.16.IncorrectSolc.json | 49 - .../static.sol.0.6.10.IncorrectSolc.json | 49 - .../dynamic_1.sol.0.6.11.IncorrectSolc.json | 50 - .../dynamic_2.sol.0.6.11.IncorrectSolc.json | 53 - .../static.sol.0.6.11.IncorrectSolc.json | 49 - .../0.7.4/static.sol.0.7.4.IncorrectSolc.json | 49 - .../dynamic_1.sol.0.7.6.IncorrectSolc.json | 50 - .../dynamic_2.sol.0.7.6.IncorrectSolc.json | 53 - .../0.7.6/static.sol.0.7.6.IncorrectSolc.json | 49 - ....sol.0.5.10.StorageSignedIntegerArray.json | 3 - ....sol.0.5.16.StorageSignedIntegerArray.json | 3 - .../0.4.25/suicidal.sol.0.4.25.Suicidal.json | 60 - .../0.5.16/suicidal.sol.0.5.16.Suicidal.json | 60 - .../0.6.11/suicidal.sol.0.6.11.Suicidal.json | 60 - .../0.7.6/suicidal.sol.0.7.6.Suicidal.json | 60 - ...utology.sol.0.4.25.TypeBasedTautology.json | 274 - ...utology.sol.0.5.16.TypeBasedTautology.json | 274 - ...utology.sol.0.6.11.TypeBasedTautology.json | 274 - ...autology.sol.0.7.6.TypeBasedTautology.json | 274 - .../timestamp.sol.0.4.25.Timestamp.json | 444 - .../timestamp.sol.0.5.16.Timestamp.json | 444 - .../timestamp.sol.0.6.11.Timestamp.json | 444 - .../0.7.6/timestamp.sol.0.7.6.Timestamp.json | 444 - ..._many_digits.sol.0.4.25.TooManyDigits.json | 980 - ..._many_digits.sol.0.5.16.TooManyDigits.json | 980 - ..._many_digits.sol.0.6.11.TooManyDigits.json | 990 - ...o_many_digits.sol.0.7.6.TooManyDigits.json | 970 - .../0.4.25/tx_origin.sol.0.4.25.TxOrigin.json | 316 - .../0.5.16/tx_origin.sol.0.5.16.TxOrigin.json | 316 - .../0.6.11/tx_origin.sol.0.6.11.TxOrigin.json | 316 - .../0.7.6/tx_origin.sol.0.7.6.TxOrigin.json | 316 - ...lowlevel.sol.0.4.25.UncheckedLowLevel.json | 130 - ...lowlevel.sol.0.5.16.UncheckedLowLevel.json | 132 - ...lowlevel.sol.0.6.11.UncheckedLowLevel.json | 132 - ..._lowlevel.sol.0.7.6.UncheckedLowLevel.json | 132 - ...checked_send.sol.0.4.25.UncheckedSend.json | 146 - ...checked_send.sol.0.5.16.UncheckedSend.json | 146 - ...checked_send.sol.0.6.11.UncheckedSend.json | 146 - ...nchecked_send.sol.0.7.6.UncheckedSend.json | 146 - ...transfers.sol.0.7.6.UncheckedTransfer.json | 428 - ...0.4.25.UnimplementedFunctionDetection.json | 336 - ...0.5.16.UnimplementedFunctionDetection.json | 190 - ...0.5.16.UnimplementedFunctionDetection.json | 3 - ...0.6.11.UnimplementedFunctionDetection.json | 263 - ...0.6.11.UnimplementedFunctionDetection.json | 3 - ....0.7.6.UnimplementedFunctionDetection.json | 263 - ....0.7.6.UnimplementedFunctionDetection.json | 3 - ....UninitializedFunctionPtrsConstructor.json | 421 - ....UninitializedFunctionPtrsConstructor.json | 3 - ....UninitializedFunctionPtrsConstructor.json | 421 - ...ble.sol.0.4.25.UninitializedLocalVars.json | 83 - ...ble.sol.0.5.16.UninitializedLocalVars.json | 83 - ...ble.sol.0.6.11.UninitializedLocalVars.json | 83 - ...able.sol.0.7.6.UninitializedLocalVars.json | 83 - ....4.25.UninitializedStateVarsDetection.json | 456 - ....5.16.UninitializedStateVarsDetection.json | 456 - ....6.11.UninitializedStateVarsDetection.json | 456 - ...0.7.6.UninitializedStateVarsDetection.json | 456 - ...r.sol.0.4.25.UninitializedStorageVars.json | 89 - ...r.sol.0.8.19.UninitializedStorageVars.json | 90 - ...ggy.sol.0.4.25.UnprotectedUpgradeable.json | 148 - ...xed.sol.0.4.25.UnprotectedUpgradeable.json | 3 - ...ted.sol.0.4.25.UnprotectedUpgradeable.json | 3 - ...ggy.sol.0.5.16.UnprotectedUpgradeable.json | 148 - ...xed.sol.0.5.16.UnprotectedUpgradeable.json | 3 - ...ted.sol.0.5.16.UnprotectedUpgradeable.json | 3 - ...ggy.sol.0.6.11.UnprotectedUpgradeable.json | 148 - ...xed.sol.0.6.11.UnprotectedUpgradeable.json | 3 - ...ted.sol.0.6.11.UnprotectedUpgradeable.json | 3 - ...uggy.sol.0.7.6.UnprotectedUpgradeable.json | 148 - ...ixed.sol.0.7.6.UnprotectedUpgradeable.json | 3 - ...sted.sol.0.7.6.UnprotectedUpgradeable.json | 3 - ...ggy.sol.0.8.15.UnprotectedUpgradeable.json | 145 - ...xed.sol.0.8.15.UnprotectedUpgradeable.json | 3 - ...ted.sol.0.8.15.UnprotectedUpgradeable.json | 3 - ..._return.sol.0.4.25.UnusedReturnValues.json | 328 - ..._return.sol.0.5.16.UnusedReturnValues.json | 328 - ..._return.sol.0.6.11.UnusedReturnValues.json | 328 - ...d_return.sol.0.7.6.UnusedReturnValues.json | 328 - ...used_state.sol.0.4.25.UnusedStateVars.json | 304 - ...used_state.sol.0.5.16.UnusedStateVars.json | 304 - ...used_state.sol.0.6.11.UnusedStateVars.json | 304 - ...nused_state.sol.0.7.6.UnusedStateVars.json | 304 - ...sing_this.sol.0.4.25.VarReadUsingThis.json | 3 - ...sing_this.sol.0.5.16.VarReadUsingThis.json | 736 - ...sing_this.sol.0.6.11.VarReadUsingThis.json | 736 - ...using_this.sol.0.7.6.VarReadUsingThis.json | 736 - ...sing_this.sol.0.8.15.VarReadUsingThis.json | 736 - ...l.sol.0.4.25.PredeclarationUsageLocal.json | 1299 - .../void-cst.sol.0.4.25.VoidConstructor.json | 124 - .../void-cst.sol.0.5.16.VoidConstructor.json | 124 - .../void-cst.sol.0.6.11.VoidConstructor.json | 124 - .../void-cst.sol.0.7.6.VoidConstructor.json | 124 - .../0.4.25/bad_prng.sol.0.4.25.BadPRNG.json | 644 - .../0.5.16/bad_prng.sol.0.5.16.BadPRNG.json | 644 - .../0.6.11/bad_prng.sol.0.6.11.BadPRNG.json | 644 - .../0.7.6/bad_prng.sol.0.7.6.BadPRNG.json | 644 - ...after-write.sol.0.8.0.WriteAfterWrite.json | 1070 - tests/e2e/detectors/test_detectors.py | 36 - 357 files changed, 190679 deletions(-) delete mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json delete mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json delete mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json delete mode 100644 tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json delete mode 100644 tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json delete mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json delete mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json delete mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json delete mode 100644 tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json delete mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json delete mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json delete mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json delete mode 100644 tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json delete mode 100644 tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json delete mode 100644 tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json delete mode 100644 tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json delete mode 100644 tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json delete mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json delete mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json delete mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json delete mode 100644 tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json delete mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json delete mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json delete mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json delete mode 100644 tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json delete mode 100644 tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json delete mode 100644 tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json delete mode 100644 tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json delete mode 100644 tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json delete mode 100644 tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json delete mode 100644 tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json delete mode 100644 tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json delete mode 100644 tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json delete mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json delete mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json delete mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json delete mode 100644 tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json delete mode 100644 tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json delete mode 100644 tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json delete mode 100644 tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json delete mode 100644 tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json delete mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json delete mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json delete mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json delete mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json delete mode 100644 tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json delete mode 100644 tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json delete mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json delete mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json delete mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json delete mode 100644 tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json delete mode 100644 tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json delete mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json delete mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json delete mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json delete mode 100644 tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json delete mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json delete mode 100644 tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json delete mode 100644 tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json delete mode 100644 tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json delete mode 100644 tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json delete mode 100644 tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json delete mode 100644 tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json delete mode 100644 tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json delete mode 100644 tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json delete mode 100644 tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json delete mode 100644 tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json delete mode 100644 tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json delete mode 100644 tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json delete mode 100644 tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json delete mode 100644 tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json delete mode 100644 tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json delete mode 100644 tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json delete mode 100644 tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json delete mode 100644 tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json delete mode 100644 tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json delete mode 100644 tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json delete mode 100644 tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json delete mode 100644 tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json delete mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json delete mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json delete mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json delete mode 100644 tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json delete mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json delete mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json delete mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json delete mode 100644 tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json delete mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json delete mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json delete mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json delete mode 100644 tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json delete mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json delete mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json delete mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json delete mode 100644 tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json delete mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json delete mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json delete mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json delete mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json delete mode 100644 tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json delete mode 100644 tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json delete mode 100644 tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json delete mode 100644 tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json delete mode 100644 tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json delete mode 100644 tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json delete mode 100644 tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json delete mode 100644 tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json delete mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json delete mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json delete mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json delete mode 100644 tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json delete mode 100644 tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json delete mode 100644 tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json delete mode 100644 tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json delete mode 100644 tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json delete mode 100644 tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json delete mode 100644 tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json delete mode 100644 tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json delete mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json delete mode 100644 tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json delete mode 100644 tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json delete mode 100644 tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json delete mode 100644 tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json delete mode 100644 tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json delete mode 100644 tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json delete mode 100644 tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json delete mode 100644 tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json delete mode 100644 tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json delete mode 100644 tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json delete mode 100644 tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json delete mode 100644 tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json delete mode 100644 tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json delete mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json delete mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json delete mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json delete mode 100644 tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json delete mode 100644 tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json delete mode 100644 tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json delete mode 100644 tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json delete mode 100644 tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json delete mode 100644 tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json delete mode 100644 tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json delete mode 100644 tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json delete mode 100644 tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json delete mode 100644 tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json delete mode 100644 tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json delete mode 100644 tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json delete mode 100644 tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json delete mode 100644 tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json delete mode 100644 tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json delete mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json delete mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json delete mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json delete mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json delete mode 100644 tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json delete mode 100644 tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json delete mode 100644 tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json delete mode 100644 tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json delete mode 100644 tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json delete mode 100644 tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json delete mode 100644 tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json delete mode 100644 tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json delete mode 100644 tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json delete mode 100644 tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json delete mode 100644 tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json deleted file mode 100644 index ee268cdaa..000000000 --- a/tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json +++ /dev/null @@ -1,1804 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1076, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "b = abi.encode(s)", - "source_mapping": { - "start": 1195, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1076, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#40)\n", - "markdown": "Function [A.bad3()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L40)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L39-L41", - "id": "263bbb90844d3204496ff3dbf6cefcde2cd43fb91414e0c31340a3307bb1e61e", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 540, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "this.bad0_external(bad_arr)", - "source_mapping": { - "start": 569, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 540, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#22)\n", - "markdown": "Function [A.bad0()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L21-L23", - "id": "2bbe072d30eb95e463ffdaaf3b5578622f10c36e6c65322a5c3a56ede8ace5f1", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1296, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 44, - 45, - 46 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "event1_bad(bad_arr)", - "source_mapping": { - "start": 1415, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1296, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 44, - 45, - 46 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#45)\n", - "markdown": "Function [A.bad4()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L45)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L44-L46", - "id": "35ffb290cd1c192cf8cb6d07a80648a5d31785a6c7864bf07ebfb455b9334d19", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 852, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 34, - 35, - 36 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "b = abi.encode(bad_arr)", - "source_mapping": { - "start": 971, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 5, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 852, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 34, - 35, - 36 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#35)\n", - "markdown": "Function [A.bad2()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L34-L36", - "id": "57a54f648776db8c80377afd961a3a141378dd19f6b32e13c215cc7539492b1b", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 726, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(A.S[3])" - } - }, - { - "type": "node", - "name": "this.bad1_external(s)", - "source_mapping": { - "start": 763, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 726, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(A.S[3])" - } - } - } - } - ], - "description": "Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#30)\n", - "markdown": "Function [A.bad1(A.S[3])](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L30)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L29-L31", - "id": "86c66f3b307767eebada0cab8bf3a0a839ca10996314da44d69b6c9ed507a38a", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1511, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "event2_bad(s)", - "source_mapping": { - "start": 1630, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1511, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 2982, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#50)\n", - "markdown": "Function [A.bad5()](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L50)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.4.25/storage_ABIEncoderV2_array.sol#L49-L51", - "id": "ae66161ced7aeecdd34531dd955380a0c0d8b8eb2a968a36de943b394d9ddaa7", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.10/storage_ABIEncoderV2_array.sol.0.5.10.ABIEncoderV2Array.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.11/storage_ABIEncoderV2_array.sol.0.5.11.ABIEncoderV2Array.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json b/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json deleted file mode 100644 index a91595864..000000000 --- a/tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol.0.5.9.ABIEncoderV2Array.json +++ /dev/null @@ -1,1804 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1536, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "event2_bad(s)", - "source_mapping": { - "start": 1655, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1536, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "Function A.bad5() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#50)\n", - "markdown": "Function [A.bad5()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L50)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L49-L51", - "id": "0bff4fdfffcfca62d7e949088e4f93613d96721addf90e93f6873969654792fb", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 549, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "this.bad0_external(bad_arr)", - "source_mapping": { - "start": 578, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 549, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Function A.bad0() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#22)\n", - "markdown": "Function [A.bad0()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L21-L23", - "id": "2b87f0298c47e810103ba2f06c6b042c1b3faef47996231ec0d884afd82cb99c", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1321, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 44, - 45, - 46 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "event1_bad(bad_arr)", - "source_mapping": { - "start": 1440, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1321, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 44, - 45, - 46 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "Function A.bad4() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#45)\n", - "markdown": "Function [A.bad4()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L45)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L44-L46", - "id": "3f05ebbaa8f7def9cf1d5619665846ab87d44ebc682887934c3906413cc05455", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 877, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 34, - 35, - 36 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "b = abi.encode(bad_arr)", - "source_mapping": { - "start": 996, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 5, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 877, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 34, - 35, - 36 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Function A.bad2() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#35)\n", - "markdown": "Function [A.bad2()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L34-L36", - "id": "4a39131a0c51a364367a9c41ded3d7fa8fd529985bc27ce975fd1fdacabc6f5f", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 744, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(A.S[3])" - } - }, - { - "type": "node", - "name": "this.bad1_external(s)", - "source_mapping": { - "start": 788, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 744, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(A.S[3])" - } - } - } - } - ], - "description": "Function A.bad1(A.S[3]) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#30)\n", - "markdown": "Function [A.bad1(A.S[3])](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L30)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L29-L31", - "id": "d7bba349f36a4dd00be0005454b0e7bfa536958075ca7575ef3d95b2d2666f40", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1101, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "b = abi.encode(s)", - "source_mapping": { - "start": 1220, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1101, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 35, - "length": 3044, - "filename_relative": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "Function A.bad3() (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#40)\n", - "markdown": "Function [A.bad3()](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L40)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/abiencoderv2-array/0.5.9/storage_ABIEncoderV2_array.sol#L39-L41", - "id": "e6edc83d2902d4acb3d71593f26211658f88d3266d483632eab9380566ccee9d", - "check": "abiencoderv2-array", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json deleted file mode 100644 index d04fd7781..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol.0.4.25.ArbitrarySendErc20Permit.json +++ /dev/null @@ -1,748 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1498, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "1ba817d0291e4f5d7fafb55c6278c82bcc093ececc435866bb7c9fec4df70948", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", - "source_mapping": { - "start": 1738, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "54c86f8d5446e55e63466d1752a36ca614c0912786158f0d4d190c3fefb8b56f", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", - "source_mapping": { - "start": 1986, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "5d4e5fdce01109b3256e917c8586a8559ad4dde6b6b007c3cb85d99242ce18a6", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1033, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.4.25/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "fbbbc2ddd5f43443a8377441ac0ff5b1175fb3bed023f63576e053a59d4ba863", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json deleted file mode 100644 index 13cabeb3e..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol.0.5.16.ArbitrarySendErc20Permit.json +++ /dev/null @@ -1,748 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1498, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1294, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "34abef96609043142b210115d49159561a631b0df81ee31f8d310267293a70d7", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", - "source_mapping": { - "start": 1986, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1794, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "5352ac253454c7ac5139d18b3068024bfd1adb2a3ba50e91846e685b87bebcab", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", - "source_mapping": { - "start": 1738, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1546, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "97f68819cc099478a29e275378f30c57fc2bf8154cb8cb86c9b58788909e2486", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1033, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 843, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 613, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.5.16/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "eb616b56a991c8b3a6cb8f800394d615932a404f56814163c989dbf4f9307f9a", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json deleted file mode 100644 index 0a59ae426..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol.0.6.11.ArbitrarySendErc20Permit.json +++ /dev/null @@ -1,748 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1564, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", - "source_mapping": { - "start": 1756, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1564, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "3b940dbd72bf4a925e83d4f699604f18cef6703b0febc33fd0c0d0e3ac5ca328", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1812, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", - "source_mapping": { - "start": 2004, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1812, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "7a0eb93cb62ee8dc1b21e0ac12f91f44457b306216d02b04c020adadd622a0ac", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1312, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1516, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1312, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "7ee86024ca60eb5d5ad3be15c21fc9d7c301fa2a3a2700520459180a919c511f", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 861, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1051, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 861, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 631, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.6.11/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "fd1b8e822c71a24134a578815d9c495b60348cdf5eb2037d875bec85113d1278", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json deleted file mode 100644 index b02284556..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol.0.7.6.ArbitrarySendErc20Permit.json +++ /dev/null @@ -1,748 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1515, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "05d766e5d9c761b562f761e6ee1e97c7b826967943e2d3b2a286a87bd7f34b3e", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1050, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "2c296d80100d63f511472381b87d4d0b6b0f97344ba63542faf7f5ec09138bd3", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", - "source_mapping": { - "start": 2003, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "820447a866858955ff2d6be25ff0a2e0acbd0586d9ee18a28cddc3d863b113a6", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", - "source_mapping": { - "start": 1755, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.7.6/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "fe60744fd1115f5cab695c8a4cef91187c6594b8b9133d9c8c42871a69bc44b1", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json deleted file mode 100644 index d744eeec7..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol.0.8.0.ArbitrarySendErc20Permit.json +++ /dev/null @@ -1,748 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,value)", - "source_mapping": { - "start": 1755, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1563, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#47-50) uses arbitrary from in transferFrom in combination with permit: erc20.safeTransferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#49)\n", - "markdown": "[C.bad3(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50) uses arbitrary from in transferFrom in combination with permit: [erc20.safeTransferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L49)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L47-L50", - "id": "42f3ef187f63f7af5b0d861ce439907349e82c4feee026975dac0919e31e6ccb", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,value)", - "source_mapping": { - "start": 2003, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1811, - "length": 249, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#52-55) uses arbitrary from in transferFrom in combination with permit: SafeERC20.safeTransferFrom(erc20,from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#54)\n", - "markdown": "[C.bad4(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55) uses arbitrary from in transferFrom in combination with permit: [SafeERC20.safeTransferFrom(erc20,from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L52-L55", - "id": "e32264ced59dae2e3c1b6628c7e6877c4a29fd69e9f798b897b3d6bda04dc70d", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1515, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "int_transferFrom", - "source_mapping": { - "start": 1311, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#42-45) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#44)\n", - "markdown": "[C.int_transferFrom(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L42-L45", - "id": "e9b4e54b9329b9564418eb9152c19271a5cfe4f8f6785f213dd324b219ba9dbb", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(from,to,value)", - "source_mapping": { - "start": 1050, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 860, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 630, - "length": 1433, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)" - } - } - } - } - ], - "description": "C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#32-35) uses arbitrary from in transferFrom in combination with permit: erc20.transferFrom(from,to,value) (tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#34)\n", - "markdown": "[C.bad1(address,uint256,uint256,uint8,bytes32,bytes32,address)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35) uses arbitrary from in transferFrom in combination with permit: [erc20.transferFrom(from,to,value)](tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20-permit/0.8.0/arbitrary_send_erc20_permit.sol#L32-L35", - "id": "efbc4aede4068fb46033ea04969b6584f373d9fa8d1047834b951aaa1207b7a2", - "check": "arbitrary-send-erc20-permit", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index b1a43d405..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol.0.4.25.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,688 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", - "source_mapping": { - "start": 1777, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 66 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L65-L67", - "id": "782ac6309a674c4c454f4addc1aa90d361333653e69ef1ae8931414391e8d29f", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", - "source_mapping": { - "start": 835, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - } - } - } - ], - "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L35-L37", - "id": "d8d440df76ab0715158f642a7390c91f0ab28ca9f0a1df990a8115f489a62e55", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", - "source_mapping": { - "start": 1509, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 58 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol#L57-L59", - "id": "f6dc295bfacef59e39a209c62d7a9c4a4470255c0098e7cc23d084ed666e29f0", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index b58297d0d..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol.0.5.16.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,688 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", - "source_mapping": { - "start": 1777, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 66 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1702, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L65-L67", - "id": "032453562de7f764a4207b76aa3ec875a21980644c4d3418fc186ec0a19a74f7", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", - "source_mapping": { - "start": 1509, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 58 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1434, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L57-L59", - "id": "24af03aa72fded3faedf8cd9a6078c8d34d43e50b001678c983d7e85ff28a70f", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", - "source_mapping": { - "start": 835, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 780, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 394, - "length": 1717, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - } - } - } - ], - "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.5.16/arbitrary_send_erc20.sol#L35-L37", - "id": "fdb4385a68f2d66f61e29e141233b969c36b21bcc2c57da25bd49f77a0c22c14", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index 1f87d7e93..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol.0.6.11.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,688 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 789, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", - "source_mapping": { - "start": 844, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 789, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - } - } - } - ], - "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L35-L37", - "id": "3ee4e04cb082e655c1efd1510b30cdf4eb6a482b260ea7201c9169fba4ab9b85", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1443, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", - "source_mapping": { - "start": 1518, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 58 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1443, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L57-L59", - "id": "de8b51ae7497fbc596bd29f45432f5e9894574af684b3b65dae7ddd45cb8c71a", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1711, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", - "source_mapping": { - "start": 1786, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 66 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1711, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 403, - "length": 1721, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.6.11/arbitrary_send_erc20.sol#L65-L67", - "id": "f8361d02867f34ef252d248d5c7c1d0d4570210ce04b6a4f07f921950d80233b", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index 4ce050420..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol.0.7.6.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,688 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", - "source_mapping": { - "start": 1778, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 66 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L65-L67", - "id": "a6cc1c7767af60c53ded524a69ea19d45f030de39ca0d5838f9b9790c40d52fc", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", - "source_mapping": { - "start": 1510, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 58 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L57-L59", - "id": "d08a69b25eee59446b955d7dc80198afec5c7c05562f489dac38ad172f318e87", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", - "source_mapping": { - "start": 836, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - } - } - } - ], - "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.7.6/arbitrary_send_erc20.sol#L35-L37", - "id": "e2456673798cea3df117f0bf62c3394f4361a4f0ff4e924ae9dfbd9908f19a20", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index 530c866dc..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol.0.8.0.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,688 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.transferFrom(notsend,to,am)", - "source_mapping": { - "start": 836, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 781, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address,uint256)" - } - } - } - } - ], - "description": "C.bad1(address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#35-37) uses arbitrary from in transferFrom: erc20.transferFrom(notsend,to,am) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#36)\n", - "markdown": "[C.bad1(address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37) uses arbitrary from in transferFrom: [erc20.transferFrom(notsend,to,am)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L35-L37", - "id": "27d7e29cffdefedcd7bda099409891a2046976d0b7a2f64eaa28877112df7b7e", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,to,amount)", - "source_mapping": { - "start": 1510, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 58 - ], - "starting_column": 9, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1435, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 57, - 58, - 59 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad3(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#57-59) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#58)\n", - "markdown": "[C.bad3(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L58)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L57-L59", - "id": "42ab0e5179e6f2a124a6cb4812054d724422d55c2032dd0708bc72c05a66e98d", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - }, - { - "type": "node", - "name": "SafeERC20.safeTransferFrom(erc20,from,to,amount)", - "source_mapping": { - "start": 1778, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 66 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1703, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 65, - 66, - 67 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 402, - "length": 1710, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4(address,address,uint256)" - } - } - } - } - ], - "description": "C.bad4(address,address,uint256) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#65-67) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom(erc20,from,to,amount) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#66)\n", - "markdown": "[C.bad4(address,address,uint256)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67) uses arbitrary from in transferFrom: [SafeERC20.safeTransferFrom(erc20,from,to,amount)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L66)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20.sol#L65-L67", - "id": "5b4614fc9fd5c01b1ca3f3713366e33d7b87b516646cc349aa3b383a2d4cef6b", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json b/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json deleted file mode 100644 index c4d181524..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol.0.8.0.ArbitrarySendErc20NoPermit.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 196, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 138, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "erc20.safeTransferFrom(from,address(0x1),90)", - "source_mapping": { - "start": 234, - "length": 46, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 3, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 196, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 138, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "T.bad(address) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#11-13) uses arbitrary from in transferFrom: erc20.safeTransferFrom(from,address(0x1),90) (tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#12)\n", - "markdown": "[T.bad(address)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13) uses arbitrary from in transferFrom: [erc20.safeTransferFrom(from,address(0x1),90)](tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-erc20/0.8.0/arbitrary_send_erc20_inheritance.sol#L11-L13", - "id": "60e953d6175f0ac988d7896f836c2963387efc3064ea8dc46e7f5a88b1792d0a", - "check": "arbitrary-send-erc20", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json deleted file mode 100644 index c65a497fd..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol.0.4.25.ArbitrarySendEth.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 301, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 869, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - }, - { - "type": "node", - "name": "destination.send(address(this).balance)", - "source_mapping": { - "start": 337, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 301, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 869, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - } - } - } - ], - "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L19-L21", - "id": "a117e017d88dcf44b5a68050b9cc79263760734b6e9fa1c5627484395035afab", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 147, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 869, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - }, - { - "type": "node", - "name": "msg.sender.send(address(this).balance)", - "source_mapping": { - "start": 181, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 147, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 869, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - } - } - } - ], - "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.4.25/arbitrary_send_eth.sol#L11-L13", - "id": "a3f691d79400cfbc468d13a348697863660c3460ceebfea85a6f5c07c9f93a1f", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json deleted file mode 100644 index 0e85e427f..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol.0.5.16.ArbitrarySendEth.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - }, - { - "type": "node", - "name": "msg.sender.send(address(this).balance)", - "source_mapping": { - "start": 196, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - } - } - } - ], - "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L11-L13", - "id": "4ccd608ef16f83d45efea33bbe26da98fa322c8551e1ce4dfcc718511a328f94", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - }, - { - "type": "node", - "name": "destination.send(address(this).balance)", - "source_mapping": { - "start": 352, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - } - } - } - ], - "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.5.16/arbitrary_send_eth.sol#L19-L21", - "id": "8e28e46dabfb6c22ddc3d768097fd8c1a9c5331cba0480e540df2173a35db644", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json deleted file mode 100644 index de345d832..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol.0.6.11.ArbitrarySendEth.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - }, - { - "type": "node", - "name": "destination.send(address(this).balance)", - "source_mapping": { - "start": 352, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - } - } - } - ], - "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L19-L21", - "id": "5ba8311b7d5a57cdfdf3009f594b708dcee0e532b6789fa2602b1e497cab78ff", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - }, - { - "type": "node", - "name": "msg.sender.send(address(this).balance)", - "source_mapping": { - "start": 196, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - } - } - } - ], - "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.6.11/arbitrary_send_eth.sol#L11-L13", - "id": "f0e0b1ffc69d83ae26e2036986f8e50b1fd7b6b38bcd00becc5505cc83ea59f7", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json b/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json deleted file mode 100644 index cc93e1ec2..000000000 --- a/tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol.0.7.6.ArbitrarySendEth.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - }, - { - "type": "node", - "name": "msg.sender.send(address(this).balance)", - "source_mapping": { - "start": 196, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "direct", - "source_mapping": { - "start": 162, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "direct()" - } - } - } - } - ], - "description": "Test.direct() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#12)\n", - "markdown": "[Test.direct()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L11-L13", - "id": "21e5bba25b77457329b8b6b5257f9977083960c2c9b693579477999f9aceacdd", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - }, - { - "type": "node", - "name": "destination.send(address(this).balance)", - "source_mapping": { - "start": 352, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "indirect", - "source_mapping": { - "start": 316, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 884, - "filename_relative": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "indirect()" - } - } - } - } - ], - "description": "Test.indirect() (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#20)\n", - "markdown": "[Test.indirect()](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/arbitrary-send-eth/0.7.6/arbitrary_send_eth.sol#L19-L21", - "id": "6094c4914d5770617670fa1fb7e3debc390308148f7957380c6675d4d20ba328", - "check": "arbitrary-send-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json deleted file mode 100644 index 525bdd272..000000000 --- a/tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol.0.4.25.ArrayByReference.json +++ /dev/null @@ -1,1301 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 855, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 688, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 822, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 688, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 571, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", - "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 855, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 688, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 822, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 688, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L42-L48", - "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", - "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 571, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L4-L8", - "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 571, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", - "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 686, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.4.25/array_by_reference.sol#L10-L15", - "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json deleted file mode 100644 index 3b56351ab..000000000 --- a/tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol.0.5.16.ArrayByReference.json +++ /dev/null @@ -1,1301 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", - "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L42-L48", - "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", - "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L4-L8", - "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", - "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.5.16/array_by_reference.sol#L10-L15", - "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json deleted file mode 100644 index c004a12aa..000000000 --- a/tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol.0.6.11.ArrayByReference.json +++ /dev/null @@ -1,1301 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", - "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L42-L48", - "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", - "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L4-L8", - "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", - "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.6.11/array_by_reference.sol#L10-L15", - "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json b/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json deleted file mode 100644 index 9ed9b8ac8..000000000 --- a/tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol.0.7.6.ArrayByReference.json +++ /dev/null @@ -1,1301 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", - "id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 869, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 836, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 39 - ], - "starting_column": 5, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 702, - "length": 440, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "D.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#42-48) passes array D.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[D.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48) passes array [D.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L42-L48", - "id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", - "id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 40, - "length": 167, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 17, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#4-8) passes array C.x (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8) passes array [C.x](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L4-L8", - "id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValueAndReturn", - "source_mapping": { - "start": 578, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValueAndReturn(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#25-28)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L25-L28)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", - "id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 243, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 213, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "g()" - } - } - } - }, - { - "type": "function", - "name": "setByValue", - "source_mapping": { - "start": 498, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setByValue(uint256[1])" - } - } - ], - "description": "C.g() (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#10-15) passes array C.g().y (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#21-23)which only takes arrays by value\n", - "markdown": "[C.g()](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L21-L23)which only takes arrays by value\n", - "first_markdown_element": "tests/e2e/detectors/test_data/array-by-reference/0.7.6/array_by_reference.sol#L10-L15", - "id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996", - "check": "array-by-reference", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json deleted file mode 100644 index 586412476..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol.0.4.25.Assembly.json +++ /dev/null @@ -1,181 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "at", - "source_mapping": { - "start": 119, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 97, - "length": 724, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 191, - "length": 628, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 9, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "at", - "source_mapping": { - "start": 119, - "length": 700, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 97, - "length": 724, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - } - } - } - ], - "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#7-20)\n", - "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L7-L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_contract.sol#L6-L20", - "id": "a5eefe2a5488a11d79ceabd14aa54ce8edc1de512b733d39c25a38909a64bcf6", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json deleted file mode 100644 index 1e398fdb9..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol.0.4.25.Assembly.json +++ /dev/null @@ -1,464 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 923, - "length": 754, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 98, - "length": 1581, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 1000, - "length": 677, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 9, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 923, - "length": 754, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 98, - "length": 1581, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#26-47)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L26-L47)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L25-L47", - "id": "31db8c5aa923499030eeaff5c0eb368570cb2e9e497a982b5325ded49b9ed6b9", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 593, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 98, - "length": 1581, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 720, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21 - ], - "starting_column": 13, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 593, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 98, - "length": 1581, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#18-21)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L18-L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.4.25/inline_assembly_library.sol#L16-L22", - "id": "a5b0d4efa6e09d7f5c00cc759efb20a0f423ad31277f4362952371e2e7f03b78", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json deleted file mode 100644 index 3a129af92..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol.0.5.16.Assembly.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "at", - "source_mapping": { - "start": 119, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 97, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 198, - "length": 622, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "at", - "source_mapping": { - "start": 119, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 97, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - } - } - } - ], - "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#7-19)\n", - "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L7-L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_contract.sol#L6-L20", - "id": "7e730dca96d8dd17fdd704eb383af584599385cf12fd7a6d70c64fca8a0c49d5", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json deleted file mode 100644 index 4c2c748f6..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol.0.5.16.Assembly.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 599, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 97, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 733, - "length": 104, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 599, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 97, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#18-20)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L18-L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L16-L22", - "id": "aad9895206cb105eedd9a8327006b68c94866521e678fe76a905398370db9c6c", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 936, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 97, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 1020, - "length": 671, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 936, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 97, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#26-46)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L26-L46)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.5.16/inline_assembly_library.sol#L25-L47", - "id": "d7f5f72e9eb7d7421e9b2dee649d13448ca39c59a5c1150e158e6101e14a4c7d", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json deleted file mode 100644 index fde8557cc..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol.0.6.11.Assembly.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "at", - "source_mapping": { - "start": 94, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 72, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 173, - "length": 622, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "at", - "source_mapping": { - "start": 94, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 72, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - } - } - } - ], - "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#5-17)\n", - "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L5-L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_contract.sol#L4-L18", - "id": "9ac1d15ba6758a010743a284c8db880d40b6a09a41e814ec89808c20ae33bd53", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json deleted file mode 100644 index 8844c8efa..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol.0.6.11.Assembly.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 708, - "length": 104, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#16-18)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L16-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L14-L20", - "id": "3a556efa86f5a82c92e78104a1aeba089a5af8401b31e183c798c3db5f8a35c1", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 995, - "length": 671, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#24-44)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L24-L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.6.11/inline_assembly_library.sol#L23-L45", - "id": "8bb9c27f9e5cc1884401e4b4157b915e950ab4d2b7610b0e946ab4dd0bb5ef0b", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json deleted file mode 100644 index 60cf11f34..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol.0.7.6.Assembly.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "at", - "source_mapping": { - "start": 94, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 72, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 173, - "length": 622, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "at", - "source_mapping": { - "start": 94, - "length": 707, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "GetCode", - "source_mapping": { - "start": 72, - "length": 731, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "at(address)" - } - } - } - } - ], - "description": "GetCode.at(address) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#4-18) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#5-17)\n", - "markdown": "[GetCode.at(address)](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L4-L18) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L5-L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_contract.sol#L4-L18", - "id": "8572a4fe623eebe88b13623bb1b58a261447fbf761f30bca58f0401703257883", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json b/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json deleted file mode 100644 index 361640626..000000000 --- a/tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol.0.7.6.Assembly.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 708, - "length": 104, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18 - ], - "starting_column": 13, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumAsm", - "source_mapping": { - "start": 574, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#14-20) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#16-18)\n", - "markdown": "[VectorSum.sumAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L14-L20) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L16-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L14-L20", - "id": "01781f60fc7e3b09baa45df51cea8cb01176741056315ec6b32be610b0e4f27f", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - }, - { - "type": "node", - "name": "", - "source_mapping": { - "start": 995, - "length": 671, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 9, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "sumPureAsm", - "source_mapping": { - "start": 911, - "length": 761, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VectorSum", - "source_mapping": { - "start": 72, - "length": 1602, - "filename_relative": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "sumPureAsm(uint256[])" - } - } - } - } - ], - "description": "VectorSum.sumPureAsm(uint256[]) (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#23-45) uses assembly\n\t- INLINE ASM (tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#24-44)\n", - "markdown": "[VectorSum.sumPureAsm(uint256[])](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L23-L45) uses assembly\n\t- [INLINE ASM](tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L24-L44)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assembly/0.7.6/inline_assembly_library.sol#L23-L45", - "id": "85808e86367fa259711d41c48f23ea18a68773f92124e3aad598acb6d45ac69e", - "check": "assembly", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json deleted file mode 100644 index 6ae5f7d92..000000000 --- a/tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol.0.4.25.AssertStateChange.json +++ /dev/null @@ -1,556 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "assert(bool)(bad2_callee())", - "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L19-L21", - "id": "85979ffbc3cf8c2e71c54ee1cd498165a330c7e02389732170dee1c14008a72b", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", - "source_mapping": { - "start": 106, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L6-L8", - "id": "88a3e2b76097a01a39053337640c9105227317e018b08c603bf154883d054d5c", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += a) > 10)", - "source_mapping": { - "start": 224, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.4.25/assert_state_change.sol#L11-L13", - "id": "8c2bfb124ed74f4b532b06c3a88b5d014cf2d19a81ad22b0ca561545965c0e2b", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json deleted file mode 100644 index 9abeed7f2..000000000 --- a/tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol.0.5.16.AssertStateChange.json +++ /dev/null @@ -1,556 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += a) > 10)", - "source_mapping": { - "start": 224, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L11-L13", - "id": "06b536c1f6f37d0b7ef3459055c7757375e371d3dfbd6c17012bcc2c7991bfc7", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "assert(bool)(bad2_callee())", - "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L19-L21", - "id": "58c5e6106ba6566aacedc2e05143de4a6b8befba4ef5de931581f5cf09ccbcaf", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", - "source_mapping": { - "start": 106, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.5.16/assert_state_change.sol#L6-L8", - "id": "6b042fd4a2a0d41b27bc01260a09db3c4387ec65ca23d9d9df1230f54f53681a", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json deleted file mode 100644 index 35fb8b687..000000000 --- a/tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol.0.6.11.AssertStateChange.json +++ /dev/null @@ -1,556 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", - "source_mapping": { - "start": 106, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L6-L8", - "id": "0855817bbb19b59c76156f29f217db4196244311d133ee0f88b4fe586abc7488", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += a) > 10)", - "source_mapping": { - "start": 224, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L11-L13", - "id": "579536e4b54c9a38337b1b974bfe04be3e63cd7e749f68fb9b7fa4a97c2b35a7", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "assert(bool)(bad2_callee())", - "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.6.11/assert_state_change.sol#L19-L21", - "id": "a1813bb52d5a82887885c8c90d8fa10c4e80612143752aeaad86a261855ef2e7", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json b/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json deleted file mode 100644 index f42a95cfa..000000000 --- a/tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol.0.7.6.AssertStateChange.json +++ /dev/null @@ -1,556 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "assert(bool)(bad2_callee())", - "source_mapping": { - "start": 427, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 398, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "A.bad2() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad2()](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L19-L21", - "id": "007f2bdbef5004ed854ea288a36b2bbcf31c2ecfdc41896a7f978d274bff6fc1", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += a) > 10)", - "source_mapping": { - "start": 224, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 186, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "A.bad1(uint256) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad1(uint256)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L11-L13", - "id": "139e739308fb37177087443177ea3ca24788c9ad0391de3d8d331046daf8988a", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "assert(bool)((s_a += 1) > 10)", - "source_mapping": { - "start": 106, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 77, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 759, - "filename_relative": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "A.bad0() (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n", - "markdown": "[A.bad0()](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/assert-state-change/0.7.6/assert_state_change.sol#L6-L8", - "id": "5ce92f244b7d1f6be8a6098e0abd5c69b15ea8353a42e21be1837a68915ead44", - "check": "assert-state-change", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json deleted file mode 100644 index 2cff131a2..000000000 --- a/tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol.0.4.25.Backdoor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.4.25/backdoor.sol#L4-L6", - "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", - "check": "backdoor", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json deleted file mode 100644 index cb901fd31..000000000 --- a/tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol.0.5.16.Backdoor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.5.16/backdoor.sol#L4-L6", - "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", - "check": "backdoor", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json deleted file mode 100644 index 1b2ed3305..000000000 --- a/tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol.0.6.11.Backdoor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.6.11/backdoor.sol#L4-L6", - "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", - "check": "backdoor", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json b/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json deleted file mode 100644 index 83a7eaa78..000000000 --- a/tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol.0.7.6.Backdoor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "Backdoor function found in C.i_am_a_backdoor() (tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#4-6)\n", - "markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#L4-L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/backdoor/0.7.6/backdoor.sol#L4-L6", - "id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a", - "check": "backdoor", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json deleted file mode 100644 index 0eb9f8d92..000000000 --- a/tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol.0.4.25.BooleanConstantMisuse.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b || true)", - "source_mapping": { - "start": 221, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.4.25/boolean-constant-misuse.sol#L9-L11", - "id": "09a51b67337dcc1a44f1b71413dc86887509771b9f6d854a5a5aaef94b590da0", - "check": "boolean-cst", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json deleted file mode 100644 index 686621446..000000000 --- a/tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol.0.5.16.BooleanConstantMisuse.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b || true)", - "source_mapping": { - "start": 221, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.5.16/boolean-constant-misuse.sol#L9-L11", - "id": "c460c0b8dd321a4461e2dcea9085607d80b3a205325797025a5429d0c75cb79b", - "check": "boolean-cst", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json deleted file mode 100644 index 9dc762660..000000000 --- a/tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol.0.6.11.BooleanConstantMisuse.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b || true)", - "source_mapping": { - "start": 221, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.6.11/boolean-constant-misuse.sol#L9-L11", - "id": "fc02b6246c48038bd59be2cbf3717e8445d6ce6b1a9981696bce11e23589f63c", - "check": "boolean-cst", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json b/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json deleted file mode 100644 index 347b13f6e..000000000 --- a/tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol.0.7.6.BooleanConstantMisuse.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b || true)", - "source_mapping": { - "start": 221, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 162, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 923, - "filename_relative": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#10)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-cst/0.7.6/boolean-constant-misuse.sol#L9-L11", - "id": "9e4c23f1bdd358acadcd6b0460f26e62cfae9d0f4570df2c540a65f55e47ada0", - "check": "boolean-cst", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json deleted file mode 100644 index 300e85634..000000000 --- a/tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol.0.4.25.BooleanEquality.json +++ /dev/null @@ -1,166 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b == true)", - "source_mapping": { - "start": 198, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.4.25/boolean-constant-equality.sol#L7-L9", - "id": "a5db2afbaf09297a0a2f82a2b331ad7897fb9d351c751370fdb21b75432a1e61", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json deleted file mode 100644 index 6d479dedd..000000000 --- a/tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol.0.5.16.BooleanEquality.json +++ /dev/null @@ -1,166 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b == true)", - "source_mapping": { - "start": 198, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.5.16/boolean-constant-equality.sol#L7-L9", - "id": "deeaa11969ba009e66a9ad06eb8ee15a359b785673d245669f54cbe397b7d1b6", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json deleted file mode 100644 index c9a808c64..000000000 --- a/tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol.0.6.11.BooleanEquality.json +++ /dev/null @@ -1,166 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b == true)", - "source_mapping": { - "start": 198, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.6.11/boolean-constant-equality.sol#L7-L9", - "id": "71051c6206bde91cead25076a2ea429b95f552f468ca348b481d0af1ac178b34", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json b/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json deleted file mode 100644 index 43ba5ff8b..000000000 --- a/tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol.0.7.6.BooleanEquality.json +++ /dev/null @@ -1,166 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - }, - { - "type": "node", - "name": "(b == true)", - "source_mapping": { - "start": 198, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 139, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 578, - "filename_relative": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(bool)" - } - } - } - } - ], - "description": "MyConc.bad1(bool) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#8)\n", - "markdown": "[MyConc.bad1(bool)](tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/boolean-equal/0.7.6/boolean-constant-equality.sol#L7-L9", - "id": "a5ef55035c29649a345f5fce2b02fd6b0a1e5bf69ef05b6c725247da59487715", - "check": "boolean-equal", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json deleted file mode 100644 index d25176dee..000000000 --- a/tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json +++ /dev/null @@ -1,678 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 530, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "destinations[i].transfer(i)", - "source_mapping": { - "start": 621, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 530, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [destinations[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L24-L28", - "id": "1197eb6c89b4a380337811e1230958b352d5ad960cc4aca0d2be23ec1ad1d25b", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 671, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "destinations[i].transfer(i)", - "source_mapping": { - "start": 872, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 13, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 671, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: destinations[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [destinations[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L30-L37", - "id": "6d5acd9c0dade132f780c57e2c61ea603daf15bb0ef1615b903c760d14abe073", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1074, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - }, - { - "type": "node", - "name": "a.transfer(i)", - "source_mapping": { - "start": 1135, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 9, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1074, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 327, - "length": 831, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - } - } - } - ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: a.transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [a.transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L45-L47", - "id": "a922522f13366eaeef7e9ae009527e6436193ee6c1cea040f3dc3021ece8c103", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 173, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 325, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "destinations_base[i].transfer(i)", - "source_mapping": { - "start": 274, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 173, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 325, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: destinations_base[i].transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [destinations_base[i].transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.4.25/multiple_calls_in_loop.sol#L9-L13", - "id": "b24075894bde55b95eadde9cb759a84d2378e5191ca36b49daf3efd570906af5", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json deleted file mode 100644 index cba104d4c..000000000 --- a/tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol.0.5.16.MultipleCallsInLoop.json +++ /dev/null @@ -1,678 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - }, - { - "type": "node", - "name": "address(uint160(a)).transfer(i)", - "source_mapping": { - "start": 1203, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - } - } - } - ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L45-L47", - "id": "59ef861c065e12f93ab520961e7f5806731ee2d9d4601a784d96e9c629bfd451", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 653, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L24-L28", - "id": "6be8c6293c3db4b794b589ec91a9fd957f589bd30464dadc4f7dcd95db2e8ba4", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 922, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L30-L37", - "id": "95493082ccca79b3a3a5d15594928f164b1e2f66813d69c44dcaf264679fce5e", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations_base[i])).transfer(i)", - "source_mapping": { - "start": 281, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.5.16/multiple_calls_in_loop.sol#L9-L13", - "id": "ae7775e429b863310f0e884b47c7b03cbf94e5db6b9dbb7c24d5b49b6748b24b", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json deleted file mode 100644 index f4c58469b..000000000 --- a/tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol.0.6.11.MultipleCallsInLoop.json +++ /dev/null @@ -1,678 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - }, - { - "type": "node", - "name": "address(uint160(a)).transfer(i)", - "source_mapping": { - "start": 1203, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - } - } - } - ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L45-L47", - "id": "1275fac0d6d8334883dd78ed0b1b2e65781ea34bf7febaf226e85d3e5181ee2a", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations_base[i])).transfer(i)", - "source_mapping": { - "start": 281, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L9-L13", - "id": "1c841cf5332b7dc52c8ff653431ef284e000bcc14523dd09cbbf3f74dc715cc6", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 653, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L24-L28", - "id": "d9a385d84b697d514f78bac230816bfd8f859bbdc1a46cfec44bc2b9f96772c6", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 922, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.6.11/multiple_calls_in_loop.sol#L30-L37", - "id": "ea1a84f07ae33b86a4de95eea2c87a684edaa037e4391a948acab36fc08169f4", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json b/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json deleted file mode 100644 index de318ce9f..000000000 --- a/tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol.0.7.6.MultipleCallsInLoop.json +++ /dev/null @@ -1,678 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 653, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 562, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CallInLoop.bad() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#24-28) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#26)\n", - "markdown": "[CallInLoop.bad()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L24-L28", - "id": "05e47489f317ba821a515f42e75e88afd06d13e4a4e28df3de13e9b08c5c82e6", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - }, - { - "type": "node", - "name": "address(uint160(a)).transfer(i)", - "source_mapping": { - "start": 1203, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1142, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 45, - 46, - 47 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal(address,uint256)" - } - } - } - } - ], - "description": "CallInLoop.bad3_internal(address,uint256) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#45-47) has external calls inside a loop: address(uint160(a)).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#46)\n", - "markdown": "[CallInLoop.bad3_internal(address,uint256)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47) has external calls inside a loop: [address(uint160(a)).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L46)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L45-L47", - "id": "25f60430b97bcd867b254ba08df9477befadb17e5ba8451fbe8223132246a2f1", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations_base[i])).transfer(i)", - "source_mapping": { - "start": 281, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 13, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 180, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoopBase", - "source_mapping": { - "start": 0, - "length": 350, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CallInLoopBase.bad_base() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: address(uint160(destinations_base[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#11)\n", - "markdown": "[CallInLoopBase.bad_base()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [address(uint160(destinations_base[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L9-L13", - "id": "c605d70888ef228103bd47badf6f2df4426d02a6389045289a750996776c6e32", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "address(uint160(destinations[i])).transfer(i)", - "source_mapping": { - "start": 922, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 721, - "length": 263, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CallInLoop", - "source_mapping": { - "start": 352, - "length": 892, - "filename_relative": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CallInLoop.bad2() (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#30-37) has external calls inside a loop: address(uint160(destinations[i])).transfer(i) (tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#35)\n", - "markdown": "[CallInLoop.bad2()](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37) has external calls inside a loop: [address(uint160(destinations[i])).transfer(i)](tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L35)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/calls-loop/0.7.6/multiple_calls_in_loop.sol#L30-L37", - "id": "d44cd63abfefcfac88d0bdde0429428c81cde6706d9e890cbe3b6f2dcdd7cb96", - "check": "calls-loop", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json deleted file mode 100644 index fed1ecaf8..000000000 --- a/tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol.0.4.25.CouldBeConstant.json +++ /dev/null @@ -1,386 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "text2", - "source_mapping": { - "start": 333, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#14) should be constant \n", - "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L14) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L14", - "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "mySistersAddress", - "source_mapping": { - "start": 496, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 473, - "length": 271, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#26) should be constant \n", - "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L26) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L26", - "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "myFriendsAddress", - "source_mapping": { - "start": 132, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#7) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L7) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L7", - "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant", - "source_mapping": { - "start": 793, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 746, - "length": 423, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#42) should be constant \n", - "markdown": "[MyConc.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L42", - "id": "8d08797efc8230b480ec669c7e2bf53c3b3d16bc59bf7770934b34fd892934f8", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_2", - "source_mapping": { - "start": 841, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 746, - "length": 423, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#43) should be constant \n", - "markdown": "[MyConc.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L43) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L43", - "id": "d08c6d1e331083b42c45c222691dd1e6d880814c66d114971875337ca61ba9c9", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "test", - "source_mapping": { - "start": 237, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#10) should be constant \n", - "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L10) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.4.25/const_state_variables.sol#L10", - "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json deleted file mode 100644 index f760111fc..000000000 --- a/tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol.0.5.16.CouldBeConstant.json +++ /dev/null @@ -1,454 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_3", - "source_mapping": { - "start": 880, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 746, - "length": 467, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "MyConc.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#44) should be constant \n", - "markdown": "[MyConc.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L44) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L44", - "id": "29247b0a9939e854ad51bf3b2f58705156aa8b7e446e646b1832467d362b5b3e", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "text2", - "source_mapping": { - "start": 333, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#14) should be constant \n", - "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L14) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L14", - "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "mySistersAddress", - "source_mapping": { - "start": 496, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 473, - "length": 271, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#26) should be constant \n", - "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L26) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L26", - "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "myFriendsAddress", - "source_mapping": { - "start": 132, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#7) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L7) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L7", - "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant", - "source_mapping": { - "start": 793, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 746, - "length": 467, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "MyConc.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#42) should be constant \n", - "markdown": "[MyConc.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L42", - "id": "8d08797efc8230b480ec669c7e2bf53c3b3d16bc59bf7770934b34fd892934f8", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_2", - "source_mapping": { - "start": 841, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 746, - "length": 467, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "MyConc.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#43) should be constant \n", - "markdown": "[MyConc.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L43) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L43", - "id": "d08c6d1e331083b42c45c222691dd1e6d880814c66d114971875337ca61ba9c9", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "test", - "source_mapping": { - "start": 237, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 29, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#10) should be constant \n", - "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L10) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.5.16/const_state_variables.sol#L10", - "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json deleted file mode 100644 index 702bda7b9..000000000 --- a/tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol.0.6.11.CouldBeConstant.json +++ /dev/null @@ -1,457 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "text2", - "source_mapping": { - "start": 305, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L12", - "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_2", - "source_mapping": { - "start": 811, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L41", - "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "mySistersAddress", - "source_mapping": { - "start": 468, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 445, - "length": 271, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L24", - "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "myFriendsAddress", - "source_mapping": { - "start": 104, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L5", - "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant", - "source_mapping": { - "start": 763, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L40", - "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_3", - "source_mapping": { - "start": 850, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L42", - "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "test", - "source_mapping": { - "start": 209, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.6.11/const_state_variables.sol#L8", - "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json deleted file mode 100644 index 4b8e88864..000000000 --- a/tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol.0.7.6.CouldBeConstant.json +++ /dev/null @@ -1,454 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "text2", - "source_mapping": { - "start": 305, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L12", - "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_2", - "source_mapping": { - "start": 811, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L41", - "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "mySistersAddress", - "source_mapping": { - "start": 468, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 445, - "length": 271, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L24", - "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "myFriendsAddress", - "source_mapping": { - "start": 104, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L5", - "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant", - "source_mapping": { - "start": 763, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L40", - "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_3", - "source_mapping": { - "start": 850, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L42", - "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "test", - "source_mapping": { - "start": 209, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.7.6/const_state_variables.sol#L8", - "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json b/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json deleted file mode 100644 index 6cc26123a..000000000 --- a/tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol.0.8.0.CouldBeConstant.json +++ /dev/null @@ -1,454 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "text2", - "source_mapping": { - "start": 305, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.text2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#12) should be constant \n", - "markdown": "[A.text2](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L12) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L12", - "id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_2", - "source_mapping": { - "start": 811, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 493, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_2 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#41) should be constant \n", - "markdown": "[Bad.should_be_constant_2](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L41) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L41", - "id": "3a8b682f7960750cd8228d6cd3d0bb5d7d6f9faaf1a044de2fa7069d8e475af2", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "mySistersAddress", - "source_mapping": { - "start": 468, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 445, - "length": 271, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "B.mySistersAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#24) should be constant \n", - "markdown": "[B.mySistersAddress](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L24) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L24", - "id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "myFriendsAddress", - "source_mapping": { - "start": 104, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.myFriendsAddress (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#5) should be constant \n", - "markdown": "[A.myFriendsAddress](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L5) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L5", - "id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant", - "source_mapping": { - "start": 763, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 40 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 493, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#40) should be constant \n", - "markdown": "[Bad.should_be_constant](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L40) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L40", - "id": "87097c03d57b72ad7c15336eb44e5a30054c50f8daff32e08bc4fbd97852961c", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_constant_3", - "source_mapping": { - "start": 850, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 493, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_constant_3 (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#42) should be constant \n", - "markdown": "[Bad.should_be_constant_3](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L42) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L42", - "id": "8e991c1370b1adb10f01f2d7e48f341dee92a98b91b56ccb291d9149d2da97d0", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "test", - "source_mapping": { - "start": 209, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 1, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "A.test (tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#8) should be constant \n", - "markdown": "[A.test](tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L8) should be constant \n", - "first_markdown_element": "tests/e2e/detectors/test_data/constable-states/0.8.0/const_state_variables.sol#L8", - "id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", - "check": "constable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json deleted file mode 100644 index 92f3c6d28..000000000 --- a/tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol.0.4.25.ConstantFunctionsAsm.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test_assembly_bug", - "source_mapping": { - "start": 324, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Constant", - "source_mapping": { - "start": 0, - "length": 392, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test_assembly_bug()" - } - } - ], - "description": "Constant.test_assembly_bug() (tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#22-24) is declared view but contains assembly code\n", - "markdown": "[Constant.test_assembly_bug()](tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#L22-L24) is declared view but contains assembly code\n", - "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-asm/0.4.25/constant.sol#L22-L24", - "id": "1f892cae08b89096bdc4d6ecdf55a3adc4b4314390e054fe2547d9c8e9f76e23", - "additional_fields": { - "contains_assembly": true - }, - "check": "constant-function-asm", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-asm/0.5.16/constant.sol.0.5.16.ConstantFunctionsAsm.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-asm/0.6.11/constant.sol.0.6.11.ConstantFunctionsAsm.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json b/tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-asm/0.7.6/constant.sol.0.7.6.ConstantFunctionsAsm.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json deleted file mode 100644 index 60d55ca83..000000000 --- a/tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol.0.4.25.ConstantFunctionsState.json +++ /dev/null @@ -1,278 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test_constant_bug", - "source_mapping": { - "start": 113, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Constant", - "source_mapping": { - "start": 0, - "length": 392, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test_constant_bug()" - } - }, - { - "type": "variable", - "name": "a", - "source_mapping": { - "start": 28, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Constant", - "source_mapping": { - "start": 0, - "length": 392, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Constant.test_constant_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#9-11) is declared view but changes state variables:\n\t- Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3)\n", - "markdown": "[Constant.test_constant_bug()](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L9-L11) is declared view but changes state variables:\n\t- [Constant.a](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L9-L11", - "id": "145e2d34dfc5b932c8d67d480c0eaec9baa8c728e2a310529572c0c4a5c6046a", - "additional_fields": { - "contains_assembly": false - }, - "check": "constant-function-state", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "test_view_bug", - "source_mapping": { - "start": 45, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Constant", - "source_mapping": { - "start": 0, - "length": 392, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test_view_bug()" - } - }, - { - "type": "variable", - "name": "a", - "source_mapping": { - "start": 28, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Constant", - "source_mapping": { - "start": 0, - "length": 392, - "filename_relative": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Constant.test_view_bug() (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#5-7) is declared view but changes state variables:\n\t- Constant.a (tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#3)\n", - "markdown": "[Constant.test_view_bug()](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L5-L7) is declared view but changes state variables:\n\t- [Constant.a](tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/constant-function-state/0.4.25/constant.sol#L5-L7", - "id": "4dee61d8835d20c6f1f7c195d8bd1e9de5dbcc096396a5b8db391136f9f5fdf1", - "additional_fields": { - "contains_assembly": false - }, - "check": "constant-function-state", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-state/0.5.16/constant.sol.0.5.16.ConstantFunctionsState.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-state/0.6.11/constant.sol.0.6.11.ConstantFunctionsState.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json b/tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/constant-function-state/0.7.6/constant.sol.0.7.6.ConstantFunctionsState.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json b/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json deleted file mode 100644 index 1937a8561..000000000 --- a/tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json +++ /dev/null @@ -1,595 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b.subStruct.x.length = param + 1", - "source_mapping": { - "start": 964, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#41)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L41)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "44bb04e6400492458571a12394273c37a5c0083181ea31f644d895c0ce7eca83", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a.x.length = param", - "source_mapping": { - "start": 818, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#36)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "88eeaf5d76f62d05e6350ef5e6623c947f7225d240fbf6fb77e73e6d0fcfbfe4", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "arr.length = param", - "source_mapping": { - "start": 527, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#26)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.4.25/array_length_assignment.sol#L1-L46", - "id": "9c110476c2adc3d4357e5d5b4c072caf4d32b84e7dfa1649a111c4a16980a10a", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json b/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json deleted file mode 100644 index e038f3ee0..000000000 --- a/tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol.0.5.16.ArrayLengthAssignment.json +++ /dev/null @@ -1,595 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b.subStruct.x.length = param + 1", - "source_mapping": { - "start": 964, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#41)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L41)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "2ea862d7feccb7b474adb7b90db7f3f80358ea2633da296801c126fff1494499", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a.x.length = param", - "source_mapping": { - "start": 818, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#36)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L36)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "3ec83c3dd1c28c95b196590b7366b8c41d39691efa57d6e6353722625790ca2a", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "arr.length = param", - "source_mapping": { - "start": 527, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 406, - "length": 647, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ArrayLengthAssignment", - "source_mapping": { - "start": 0, - "length": 1055, - "filename_relative": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f(uint256,uint256)" - } - } - } - } - ], - "description": "ArrayLengthAssignment (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#26)\n", - "markdown": "[ArrayLengthAssignment](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-array-length/0.5.16/array_length_assignment.sol#L1-L46", - "id": "d47bf9358fd65537009e786d169e7d955c5ac5a0af6fa98a712e450aec9519c2", - "check": "controlled-array-length", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json deleted file mode 100644 index 362afc13b..000000000 --- a/tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json +++ /dev/null @@ -1,318 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(abi.encode(func_id,data))", - "source_mapping": { - "start": 400, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L18-L20", - "id": "3697b4818f32b2f323e0193ab5d1395358842f1acd9aa6d9a7115adc432d2218", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(data)", - "source_mapping": { - "start": 201, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.4.25/controlled_delegatecall.sol#L8-L11", - "id": "b617d62fff5914c10899af7ded0495ef5029a952eaf0fd28694a639c556c6532", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json deleted file mode 100644 index 7d31e4a32..000000000 --- a/tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol.0.5.16.ControlledDelegateCall.json +++ /dev/null @@ -1,318 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(abi.encode(func_id,data))", - "source_mapping": { - "start": 400, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L18-L20", - "id": "71847bef70b5fc4fbfb7cf94bdbaf96464d6ca55a2e9ac618ee8af77902eb7f6", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(data)", - "source_mapping": { - "start": 201, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.5.16/controlled_delegatecall.sol#L8-L11", - "id": "d1e5184cc93dcb07350d84ed12a87623ac434ddcaf33404d7cfb6e0a5347877f", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json deleted file mode 100644 index 7325d9e53..000000000 --- a/tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol.0.6.11.ControlledDelegateCall.json +++ /dev/null @@ -1,318 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(abi.encode(func_id,data))", - "source_mapping": { - "start": 400, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L18-L20", - "id": "df6abc237722d57d7f972379f03f529a1f16bc8fb448c18e72cd5a7a5566ace8", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(data)", - "source_mapping": { - "start": 201, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.6.11/controlled_delegatecall.sol#L8-L11", - "id": "f995ba96b9af5b9dc54b0fd20a5f09de00b4eafcf39004df3c017c147e659d69", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json b/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json deleted file mode 100644 index 5ed46e0f8..000000000 --- a/tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol.0.7.6.ControlledDelegateCall.json +++ /dev/null @@ -1,318 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(abi.encode(func_id,data))", - "source_mapping": { - "start": 400, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 9, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call2", - "source_mapping": { - "start": 337, - "length": 118, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call2(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call2(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#19)\n", - "markdown": "[C.bad_delegate_call2(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L18-L20", - "id": "c8768eb975167e98d2def963b7ccc58753b5636e215fcd3628f922e9862e92be", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - }, - { - "type": "node", - "name": "addr_bad.delegatecall(data)", - "source_mapping": { - "start": 201, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_delegate_call", - "source_mapping": { - "start": 101, - "length": 134, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 585, - "filename_relative": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_delegate_call(bytes)" - } - } - } - } - ], - "description": "C.bad_delegate_call(bytes) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#10)\n", - "markdown": "[C.bad_delegate_call(bytes)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/controlled-delegatecall/0.7.6/controlled_delegatecall.sol#L8-L11", - "id": "e53105cd8d6d703dfe261317fa5e1d94a7cc5cb513b57a258420dc1adde928c4", - "check": "controlled-delegatecall", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json deleted file mode 100644 index 31ce64c79..000000000 --- a/tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json +++ /dev/null @@ -1,780 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "682092df85849634793ee896cd88d83ac2564469f298c20f7f0c6da45d4d49f9", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1894, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "68476a702cb89df131f596097e8c896fd99d83f88916077e6992866632e33ae8", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1363, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "c2062080a3b845bae3725cc508857ae8f6f0bf8053081dda37ec642613692d5f", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 912, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.4.25/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "e99bef3af22b3031c130f4f4e4ef4c669971ca94c7cbe7bfe001c34ed7fdae32", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json deleted file mode 100644 index d3aa09a68..000000000 --- a/tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol.0.5.16.CostlyOperationsInLoop.json +++ /dev/null @@ -1,780 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "66117c82ffb5c56591c676ef6f04a88358f99e307fddd1c6a6a427458ac3086e", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1363, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "aae62985e3789b65bf370fb554018244b5b2e724b243f83447ed214fff715b3d", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1894, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "ead6abba24ab0c905968b6355e45b67e7af9aafcca9b8bf35db39caaff27cd20", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 912, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.5.16/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "fe584345def19a4dd4b80f3733e1b512baff0db924c65966422c3abdeb08fe78", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json deleted file mode 100644 index a86e7f879..000000000 --- a/tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol.0.6.11.CostlyOperationsInLoop.json +++ /dev/null @@ -1,780 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 912, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "27325f48eb30596a899c7c4d2d597cc8632225de694afb44f1a04c21fb556e6b", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1363, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "396d71671ee31a8296212d18098a3a49185f5c6304b7210c6c1710d373867bc9", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1894, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "47695c707cb0a40551bc13d81e7d29fe4f28b22601772d6c0171ae55d7b3ff04", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.6.11/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "5ec78c14e179002e40fd9511c749aa5ca38809c7b64160f88b11f70a7ef4f61f", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json b/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json deleted file mode 100644 index 7bb08cbb8..000000000 --- a/tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol.0.7.6.CostlyOperationsInLoop.json +++ /dev/null @@ -1,780 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1894, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_internal", - "source_mapping": { - "start": 1855, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_internal()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad3_internal() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#41-43) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#42)\n", - "markdown": "[CostlyOperationsInLoop.bad3_internal()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L42)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L41-L43", - "id": "0a74da2f3ac1efea52b795c82e6c5cc0cda69591fce40359b61dc9eba6b1be84", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - }, - { - "type": "node", - "name": "state_variable_base ++", - "source_mapping": { - "start": 271, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 7, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad_base", - "source_mapping": { - "start": 102, - "length": 389, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoopBase", - "source_mapping": { - "start": 0, - "length": 494, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad_base()" - } - } - } - } - ], - "description": "CostlyOperationsInLoopBase.bad_base() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#5-9) has costly operations inside a loop:\n\t- state_variable_base ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#7)\n", - "markdown": "[CostlyOperationsInLoopBase.bad_base()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9) has costly operations inside a loop:\n\t- [state_variable_base ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L5-L9", - "id": "0bdf1f5aac98091f9f48992b477699d9f08b770bd2598c66a0f4ded1154078f0", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 1363, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 1131, - "length": 343, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad2() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#26-33) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#31)\n", - "markdown": "[CostlyOperationsInLoop.bad2()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L26-L33", - "id": "63e17db491a0aee4534c9a79a79cde901cab73d7f99b432bf235f6824d2062f9", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - }, - { - "type": "node", - "name": "state_variable ++", - "source_mapping": { - "start": 912, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 7, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 754, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "CostlyOperationsInLoop", - "source_mapping": { - "start": 496, - "length": 1899, - "filename_relative": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "CostlyOperationsInLoop.bad() (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#20-24) has costly operations inside a loop:\n\t- state_variable ++ (tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#22)\n", - "markdown": "[CostlyOperationsInLoop.bad()](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24) has costly operations inside a loop:\n\t- [state_variable ++](tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/costly-loop/0.7.6/multiple_costly_operations_in_loop.sol#L20-L24", - "id": "c360d08ee1ae166d2088f069079fbb267ff31dcc5a2b3502193dee7cb27ad75a", - "check": "costly-loop", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json deleted file mode 100644 index 472f9a0ba..000000000 --- a/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "highCC", - "source_mapping": { - "start": 244, - "length": 536, - "filename_relative": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "HighCyclomaticComplexity", - "source_mapping": { - "start": 25, - "length": 757, - "filename_relative": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "highCC()" - } - } - ], - "description": "HighCyclomaticComplexity.highCC() (tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#17-31) has a high cyclomatic complexity (12).\n", - "markdown": "[HighCyclomaticComplexity.highCC()](tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31) has a high cyclomatic complexity (12).\n", - "first_markdown_element": "tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/HighCyclomaticComplexity.sol#L17-L31", - "id": "405b9e7f5697539c75171d728f0a10b6ebb7fe08441c445b0e63c33982c98e2d", - "check": "cyclomatic-complexity", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json b/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/cyclomatic-complexity/0.8.16/LowCyclomaticComplexity.sol.0.8.16.CyclomaticComplexity.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json b/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json deleted file mode 100644 index 32481128a..000000000 --- a/tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol.0.8.0.DeadCode.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "unused_but_shadowed", - "source_mapping": { - "start": 319, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test4", - "source_mapping": { - "start": 290, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "unused_but_shadowed()" - } - } - ], - "description": "Test4.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#26-28) is never used and should be removed\n", - "markdown": "[Test4.unused_but_shadowed()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L26-L28) is never used and should be removed\n", - "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L26-L28", - "id": "74ea8421cf7fa9e04d243014b61f3eee7a9c7648df98316c3881dd4f1f2ab3f7", - "check": "dead-code", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "unused", - "source_mapping": { - "start": 19, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "unused()" - } - } - ], - "description": "Test.unused() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#2-4) is never used and should be removed\n", - "markdown": "[Test.unused()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L2-L4) is never used and should be removed\n", - "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L2-L4", - "id": "a7c13823116566bbbbb68e8a7efa78fe64785fcb8582069373eda7f27c523cb3", - "check": "dead-code", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "unused_but_shadowed", - "source_mapping": { - "start": 79, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 58, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "unused_but_shadowed()" - } - } - ], - "description": "Test2.unused_but_shadowed() (tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#10-12) is never used and should be removed\n", - "markdown": "[Test2.unused_but_shadowed()](tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L10-L12) is never used and should be removed\n", - "first_markdown_element": "tests/e2e/detectors/test_data/dead-code/0.8.0/dead-code.sol#L10-L12", - "id": "aaba496684b73955e90b555de174e1cd03f0fee337849c4d58c10ef76ff93582", - "check": "dead-code", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json deleted file mode 100644 index 4fae8a432..000000000 --- a/tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol.0.4.25.DelegatecallInLoop.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 188, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L5-L9", - "id": "6d9bc0a5e7904d4ff88cea0a8f899ad4952da844175aa76970d40189e6c0ecb5", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 931, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 17, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L25-L31", - "id": "ac822467d10c9cfad0d6e339fb53c91b1dccd27df5697b83904751090c8c3386", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 627, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - } - } - } - ], - "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.4.25/delegatecall_loop.sol#L19-L23", - "id": "f648fec7fba6e2f8a7e8d9d1e5d7106c6f433c64a7c95b236571a032eae5c6cd", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json deleted file mode 100644 index d94587fcb..000000000 --- a/tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol.0.5.16.DelegatecallInLoop.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 931, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 17, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L25-L31", - "id": "2bb1d5246bbd1909dd6a155843116289ce711f41ad69b8f4449272edb2c5884f", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 627, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - } - } - } - ], - "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L19-L23", - "id": "5fe4854bde1eae7f4e80865a5244c15203ddf7274177ae4d592ec807358ae8d4", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 188, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.5.16/delegatecall_loop.sol#L5-L9", - "id": "71f8693b47930de0717a75f8e0eb8f13f3e33d92a9307d69e8f10063af25c2c1", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json deleted file mode 100644 index 0cc3b55b1..000000000 --- a/tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol.0.6.11.DelegatecallInLoop.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 627, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - } - } - } - ], - "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L19-L23", - "id": "97dc1b51f8421dc1aacb9e61148276a0847bdeeef9c26728ab817f4c3ce8fd8d", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 188, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L5-L9", - "id": "dc8778c51053755c51632930034da0c873adbf6645d4f94786948a0d05cf6dd9", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 931, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 17, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.6.11/delegatecall_loop.sol#L25-L31", - "id": "de66bd5e8cc1629598220beba34d036a8d5ffe2fb46d58203b83dc388371c44f", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json deleted file mode 100644 index 87c8bb520..000000000 --- a/tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol.0.7.6.DelegatecallInLoop.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 931, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 17, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L25-L31", - "id": "22297edc513f30360b22344a1a3a22592bd6bb7ff59c001682e38e45497cf3d5", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 188, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L5-L9", - "id": "cc5994221aa31f9739264e5be5c60cc2762bc652cb75d6de3c27a2ae5b354925", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 627, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - } - } - } - ], - "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.7.6/delegatecall_loop.sol#L19-L23", - "id": "ff0a3a52fabc95be0e7bba07f943922d2a167f235da04acebc196b31794db9a8", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json b/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json deleted file mode 100644 index 5b9c798a8..000000000 --- a/tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol.0.8.0.DelegatecallInLoop.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 627, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 496, - "length": 236, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address[])" - } - } - } - } - ], - "description": "C.bad2_internal(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#19-23) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#21)\n", - "markdown": "[C.bad2_internal(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L19-L23", - "id": "70eb4ee10daaff19bd10786cf08e02a9054a483051bce2745b451aa3a9e37e34", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 188, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#5-9) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L5-L9", - "id": "a7688352c79b5cc2fbe653e77c2e848245885b7e0a1706efc2d6856c54ff9e13", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))", - "source_mapping": { - "start": 931, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 17, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 738, - "length": 312, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1053, - "filename_relative": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#25-31) has delegatecall inside a loop in a payable function: address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i])) (tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#28)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31) has delegatecall inside a loop in a payable function: [address(this).delegatecall(abi.encodeWithSignature(addBalance(address),receivers[i]))](tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L28)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/delegatecall-loop/0.8.0/delegatecall_loop.sol#L25-L31", - "id": "dcea54e7b19718e877e0b79c5ac7e66b6b70a2bc354a6580bdfbbf1de30abce2", - "check": "delegatecall-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json b/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json deleted file mode 100644 index c52e23769..000000000 --- a/tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol.0.4.25.DeprecatedStandards.json +++ /dev/null @@ -1,170 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "", - "source_mapping": { - "start": 228, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "functionWithDeprecatedThrow", - "source_mapping": { - "start": 21, - "length": 229, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 252, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "functionWithDeprecatedThrow()" - } - } - } - } - ], - "description": "Deprecated standard detected THROW (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", - "markdown": "Deprecated standard detected [THROW](tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L7):\n\t- Usage of \"throw\" should be replaced with \"revert()\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L7", - "id": "26dcbbdf287ff1629f847bf78caee220ca0830267d2665347f845c310a22286c", - "check": "deprecated-standards", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "msg.gas == msg.value", - "source_mapping": { - "start": 140, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 12, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "functionWithDeprecatedThrow", - "source_mapping": { - "start": 21, - "length": 229, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 252, - "filename_relative": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "functionWithDeprecatedThrow()" - } - } - } - } - ], - "description": "Deprecated standard detected msg.gas == msg.value (tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", - "markdown": "Deprecated standard detected [msg.gas == msg.value](tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L5):\n\t- Usage of \"msg.gas\" should be replaced with \"gasleft()\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/deprecated-standards/0.4.25/deprecated_calls.sol#L5", - "id": "f3f66795b4505e6ce51ac20392919e6ea6dc57a05dc750d001fb6c35383ecbc8", - "check": "deprecated-standards", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json deleted file mode 100644 index 152635d83..000000000 --- a/tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol.0.4.25.DivideBeforeMultiply.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - }, - { - "type": "node", - "name": "(a / b) * c", - "source_mapping": { - "start": 81, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - } - } - } - ], - "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.4.25/divide_before_multiply.sol#L2-L4", - "id": "9eef59cec9988c02e41363b250508d23dbe0d7a0536a3f482e41cb15f3a051fe", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json deleted file mode 100644 index 30936c73c..000000000 --- a/tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol.0.5.16.DivideBeforeMultiply.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - }, - { - "type": "node", - "name": "(a / b) * c", - "source_mapping": { - "start": 81, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - } - } - } - ], - "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.5.16/divide_before_multiply.sol#L2-L4", - "id": "22bda82bb0916d099f66a9324a25a33d583986a0b0b7c606f19f5ca21c0f9e8d", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json deleted file mode 100644 index e6fc7d050..000000000 --- a/tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol.0.6.11.DivideBeforeMultiply.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - }, - { - "type": "node", - "name": "(a / b) * c", - "source_mapping": { - "start": 81, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - } - } - } - ], - "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.6.11/divide_before_multiply.sol#L2-L4", - "id": "f01862ecf960e9296449030a63cfe0d195b79ca26d7cf81fbb947ea581a6a568", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json b/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json deleted file mode 100644 index 00a4d1842..000000000 --- a/tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol.0.7.6.DivideBeforeMultiply.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - }, - { - "type": "node", - "name": "(a / b) * c", - "source_mapping": { - "start": 81, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 2, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256,uint256,uint256)" - } - } - } - } - ], - "description": "A.f(uint256,uint256,uint256) (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#2-4) performs a multiplication on the result of a division:\n\t- (a / b) * c (tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#3)\n", - "markdown": "[A.f(uint256,uint256,uint256)](tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4) performs a multiplication on the result of a division:\n\t- [(a / b) * c](tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/divide-before-multiply/0.7.6/divide_before_multiply.sol#L2-L4", - "id": "5405e11c3feed3a757b92b455de6a3f32ad21ca65783d8e23cb70d54597eb1cd", - "check": "divide-before-multiply", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json deleted file mode 100644 index 88a1c3192..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol.0.4.25.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "fopwCDKKK", - "source_mapping": { - "start": 5241, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6181, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "fopwCDKKK()" - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_collision.sol#L161-L163", - "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json deleted file mode 100644 index b528a2236..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol.0.4.25.DomainSeparatorCollision.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "fopwCDKKK", - "source_mapping": { - "start": 1735, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6054, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_state_var_collision.sol#L46", - "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json deleted file mode 100644 index ff446517f..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol.0.4.25.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "DOMAIN_SEPARATOR", - "source_mapping": { - "start": 5248, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6128, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "DOMAIN_SEPARATOR()" - } - } - ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.4.25/permit_domain_wrong_return_type.sol#L161-L163", - "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json deleted file mode 100644 index 4fc8f3b48..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol.0.5.16.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "fopwCDKKK", - "source_mapping": { - "start": 5248, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6188, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "fopwCDKKK()" - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_collision.sol#L161-L163", - "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json deleted file mode 100644 index d69104adb..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol.0.5.16.DomainSeparatorCollision.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "fopwCDKKK", - "source_mapping": { - "start": 1735, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6061, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_state_var_collision.sol#L46", - "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json deleted file mode 100644 index 36077b76f..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol.0.5.16.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "DOMAIN_SEPARATOR", - "source_mapping": { - "start": 5255, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6135, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "DOMAIN_SEPARATOR()" - } - } - ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.5.16/permit_domain_wrong_return_type.sol#L161-L163", - "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json deleted file mode 100644 index 2442f6191..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol.0.6.11.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "fopwCDKKK", - "source_mapping": { - "start": 5248, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6188, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "fopwCDKKK()" - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_collision.sol#L161-L163", - "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json deleted file mode 100644 index c875e2aea..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol.0.6.11.DomainSeparatorCollision.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "fopwCDKKK", - "source_mapping": { - "start": 1735, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6061, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_state_var_collision.sol#L46", - "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json deleted file mode 100644 index 691c07d65..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol.0.6.11.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "DOMAIN_SEPARATOR", - "source_mapping": { - "start": 5255, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6135, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "DOMAIN_SEPARATOR()" - } - } - ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.6.11/permit_domain_wrong_return_type.sol#L161-L163", - "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json deleted file mode 100644 index 5d594c2a4..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol.0.7.6.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "fopwCDKKK", - "source_mapping": { - "start": 5248, - "length": 150, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6188, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "fopwCDKKK()" - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_collision.sol#L161-L163", - "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json deleted file mode 100644 index 8574e4619..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol.0.7.6.DomainSeparatorCollision.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "fopwCDKKK", - "source_mapping": { - "start": 1735, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6061, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_state_var_collision.sol#L46", - "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json deleted file mode 100644 index 5d9a120c9..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol.0.7.6.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "DOMAIN_SEPARATOR", - "source_mapping": { - "start": 5248, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6128, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "DOMAIN_SEPARATOR()" - } - } - ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.7.6/permit_domain_wrong_return_type.sol#L161-L163", - "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json deleted file mode 100644 index 14fe7a3fc..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol.0.8.0.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "fopwCDKKK", - "source_mapping": { - "start": 5295, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6323, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "fopwCDKKK()" - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK()](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_collision.sol#L161-L163", - "id": "cb8ae27add92ad3163cbe9c0fb29a2a0032ba46384bbd5541d1d750251f5c83e", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json deleted file mode 100644 index 8842da5b0..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol.0.8.0.DomainSeparatorCollision.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "fopwCDKKK", - "source_mapping": { - "start": 1735, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6061, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "The function signature of ERC20.fopwCDKKK (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.fopwCDKKK](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_state_var_collision.sol#L46", - "id": "8d18da367a9cfe0bee2ee48ee8a76072af23567d852cc81ed75dd90531cbe3d5", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json b/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json deleted file mode 100644 index 6a6f7623c..000000000 --- a/tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol.0.8.0.DomainSeparatorCollision.json +++ /dev/null @@ -1,252 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "DOMAIN_SEPARATOR", - "source_mapping": { - "start": 5248, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 161, - 162, - 163 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20", - "source_mapping": { - "start": 449, - "length": 6128, - "filename_relative": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "DOMAIN_SEPARATOR()" - } - } - ], - "description": "The function signature of ERC20.DOMAIN_SEPARATOR() (tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#161-163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "markdown": "The function signature of [ERC20.DOMAIN_SEPARATOR()](tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163) collides with DOMAIN_SEPARATOR and should be renamed or removed.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/domain-separator-collision/0.8.0/permit_domain_wrong_return_type.sol#L161-L163", - "id": "17ee24b60ef7d108871021639c374d6711feb1c8e3aad52ab266a680c03831cb", - "check": "domain-separator-collision", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json b/tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json deleted file mode 100644 index 8eab7b7df..000000000 --- a/tests/e2e/detectors/test_data/enum-conversion/0.4.2/enum_conversion.sol.0.4.2.EnumConversion.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "Test.E(a)", - "source_mapping": { - "start": 118, - "length": 11, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 70, - "length": 69, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 27, - "length": 114, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 0 - } - }, - "signature": "bug(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "a", - "source_mapping": { - "start": 83, - "length": 6, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 18, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 70, - "length": 69, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 27, - "length": 114, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 0 - } - }, - "signature": "bug(uint256)" - } - } - } - }, - { - "type": "node", - "name": "Test.E(a)", - "source_mapping": { - "start": 118, - "length": 11, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 70, - "length": 69, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 27, - "length": 114, - "filename_used": "/GENERIC_PATH", - "filename_relative": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 0 - } - }, - "signature": "bug(uint256)" - } - } - } - } - ], - "description": "Test.E(a) (tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#7) has a dangerous enum conversion\n\t- Variable: Test.bug(uint256).a (tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#6) of type: uint256\n\t- Enum conversion: Test.E(a) (tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#7)\n", - "markdown": "[Test.E(a)](tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#L7) has a dangerous enum conversion\n\t- Variable: [Test.bug(uint256).a](tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#L6) of type: uint256\n\t- Enum conversion: [Test.E(a)](tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#L7)\n", - "first_markdown_element": "tests/detectors/enum-conversion/0.4.2/enum_conversion.sol#L7", - "id": "f16bcdd6943fe3ff7ed6cc9b729ed5f95f61375509c7cce6646efa44c69860b7", - "check": "enum-conversion", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json deleted file mode 100644 index d53fd0cb2..000000000 --- a/tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json +++ /dev/null @@ -1,244 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1090, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "to" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19", - "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1148, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "owner" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20", - "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1090, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "from" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L19", - "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1148, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "spender" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.4.25/erc20_indexed.sol#L20", - "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json deleted file mode 100644 index 00426cbf4..000000000 --- a/tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol.0.5.16.UnindexedERC20EventParameters.json +++ /dev/null @@ -1,244 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1090, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "to" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19", - "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1148, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "owner" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20", - "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1090, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "from" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L19", - "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1148, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 622, - "length": 587, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "spender" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.5.16/erc20_indexed.sol#L20", - "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json deleted file mode 100644 index c1a9800af..000000000 --- a/tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol.0.6.11.UnindexedERC20EventParameters.json +++ /dev/null @@ -1,244 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1204, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "to" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19", - "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1262, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "owner" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20", - "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1204, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "from" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L19", - "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1262, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "spender" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.6.11/erc20_indexed.sol#L20", - "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json b/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json deleted file mode 100644 index 8b9bcb4a4..000000000 --- a/tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol.0.7.6.UnindexedERC20EventParameters.json +++ /dev/null @@ -1,244 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1204, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "to" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter to\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter to\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19", - "id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1262, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "owner" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter owner\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter owner\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20", - "id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Transfer", - "source_mapping": { - "start": 1204, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Transfer(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "from" - } - } - ], - "description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#19)does not index parameter from\n", - "markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19)does not index parameter from\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L19", - "id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "Approval", - "source_mapping": { - "start": 1262, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC20Bad", - "source_mapping": { - "start": 679, - "length": 644, - "filename_relative": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "Approval(address,address,uint256)" - }, - "additional_fields": { - "parameter_name": "spender" - } - } - ], - "description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#20)does not index parameter spender\n", - "markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20)does not index parameter spender\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-indexed/0.7.6/erc20_indexed.sol#L20", - "id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6", - "check": "erc20-indexed", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json deleted file mode 100644 index 273a00557..000000000 --- a/tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json +++ /dev/null @@ -1,478 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 102, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "allowance", - "source_mapping": { - "start": 319, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "allowance(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 273, - "length": 41, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 162, - "length": 69, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "totalSupply", - "source_mapping": { - "start": 236, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "totalSupply()" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 46, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 26, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.4.25/incorrect_erc20_interface.sol#L3-L10", - "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json deleted file mode 100644 index 5a0d705e1..000000000 --- a/tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol.0.5.16.IncorrectERC20InterfaceDetection.json +++ /dev/null @@ -1,478 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 105, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "allowance", - "source_mapping": { - "start": 322, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "allowance(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 276, - "length": 41, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 165, - "length": 69, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 74 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "totalSupply", - "source_mapping": { - "start": 239, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "totalSupply()" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 49, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 56 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 355, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.5.16/incorrect_erc20_interface.sol#L3-L10", - "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json deleted file mode 100644 index d72d67240..000000000 --- a/tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol.0.6.11.IncorrectERC20InterfaceDetection.json +++ /dev/null @@ -1,478 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 122, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "allowance", - "source_mapping": { - "start": 371, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "allowance(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 317, - "length": 49, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 190, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 82 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "totalSupply", - "source_mapping": { - "start": 272, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "totalSupply()" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 58, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.6.11/incorrect_erc20_interface.sol#L3-L10", - "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json b/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json deleted file mode 100644 index 667be6e4d..000000000 --- a/tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol.0.7.6.IncorrectERC20InterfaceDetection.json +++ /dev/null @@ -1,478 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 122, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#5)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "allowance", - "source_mapping": { - "start": 371, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "allowance(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 317, - "length": 49, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 190, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 82 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#6)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "totalSupply", - "source_mapping": { - "start": 272, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "totalSupply()" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 58, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 64 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 29, - "length": 412, - "filename_relative": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc20-interface/0.7.6/incorrect_erc20_interface.sol#L3-L10", - "id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e", - "check": "erc20-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json deleted file mode 100644 index 46f8c4e16..000000000 --- a/tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json +++ /dev/null @@ -1,846 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "getApproved", - "source_mapping": { - "start": 723, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "getApproved(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 549, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 351, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 140, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "ownerOf", - "source_mapping": { - "start": 189, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "ownerOf(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 452, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 97 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "supportsInterface", - "source_mapping": { - "start": 50, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC165", - "source_mapping": { - "start": 26, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "supportsInterface(bytes4)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "setApprovalForAll", - "source_mapping": { - "start": 632, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setApprovalForAll(address,bool)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 238, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 113 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256,bytes)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "isApprovedForAll", - "source_mapping": { - "start": 776, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 75 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 109, - "length": 739, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isApprovedForAll(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.4.25/incorrect_erc721_interface.sol#L6-L16", - "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json deleted file mode 100644 index d8c39db5b..000000000 --- a/tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol.0.5.16.IncorrectERC721InterfaceDetection.json +++ /dev/null @@ -1,846 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "getApproved", - "source_mapping": { - "start": 735, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "getApproved(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 561, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 363, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 101 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 143, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "ownerOf", - "source_mapping": { - "start": 192, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "ownerOf(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 464, - "length": 92, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 97 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "supportsInterface", - "source_mapping": { - "start": 53, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC165", - "source_mapping": { - "start": 29, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "supportsInterface(bytes4)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "setApprovalForAll", - "source_mapping": { - "start": 644, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setApprovalForAll(address,bool)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 241, - "length": 117, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 122 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256,bytes)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "isApprovedForAll", - "source_mapping": { - "start": 788, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 75 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 748, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isApprovedForAll(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.5.16/incorrect_erc721_interface.sol#L6-L16", - "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json deleted file mode 100644 index d4c53c821..000000000 --- a/tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol.0.6.11.IncorrectERC721InterfaceDetection.json +++ /dev/null @@ -1,846 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "getApproved", - "source_mapping": { - "start": 800, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "getApproved(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 610, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 396, - "length": 104, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 109 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 152, - "length": 52, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "ownerOf", - "source_mapping": { - "start": 209, - "length": 52, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "ownerOf(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 505, - "length": 100, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "supportsInterface", - "source_mapping": { - "start": 53, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC165", - "source_mapping": { - "start": 29, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "supportsInterface(bytes4)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "setApprovalForAll", - "source_mapping": { - "start": 701, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setApprovalForAll(address,bool)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 266, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 130 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256,bytes)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "isApprovedForAll", - "source_mapping": { - "start": 861, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isApprovedForAll(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.6.11/incorrect_erc721_interface.sol#L6-L16", - "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json b/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json deleted file mode 100644 index 4e4e562ab..000000000 --- a/tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol.0.7.6.IncorrectERC721InterfaceDetection.json +++ /dev/null @@ -1,846 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "getApproved", - "source_mapping": { - "start": 800, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "getApproved(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#14)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "approve", - "source_mapping": { - "start": 610, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 91 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "approve(address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#12)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 396, - "length": 104, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 109 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#10)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "balanceOf", - "source_mapping": { - "start": 152, - "length": 52, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "balanceOf(address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#7)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "ownerOf", - "source_mapping": { - "start": 209, - "length": 52, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "ownerOf(uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#8)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 505, - "length": 100, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 105 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#11)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "supportsInterface", - "source_mapping": { - "start": 53, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 61 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "IERC165", - "source_mapping": { - "start": 29, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "supportsInterface(bytes4)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#4)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "setApprovalForAll", - "source_mapping": { - "start": 701, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 99 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setApprovalForAll(address,bool)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#13)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "safeTransferFrom", - "source_mapping": { - "start": 266, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 130 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "safeTransferFrom(address,address,uint256,bytes)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#9)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "isApprovedForAll", - "source_mapping": { - "start": 861, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 112, - "length": 829, - "filename_relative": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isApprovedForAll(address,address)" - } - } - ], - "description": "Token (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#15)\n", - "markdown": "[Token](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L15)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/erc721-interface/0.7.6/incorrect_erc721_interface.sol#L6-L16", - "id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb", - "check": "erc721-interface", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json deleted file mode 100644 index 7e2926648..000000000 --- a/tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol.0.4.25.MissingEventsAccessControl.json +++ /dev/null @@ -1,636 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - } - } - } - ], - "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L23-L26", - "id": "a9ba964c9c3b9d0185a7a83e1b08344a3436840fa876a62a91faef642a933bd0", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "owner = msg.sender", - "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L15-L17", - "id": "eb44ec9bf0c6724f7950c6dcd8af84ce3d66025526c55a3691445259f59bfc24", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 421, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - } - } - ], - "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.4.25/missing_events_access_control.sol#L19-L21", - "id": "ff8f7c2d6001e5900dded86071a174d8a71c0078a961951a0694c50460d5bd2f", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json deleted file mode 100644 index 3341d0ab9..000000000 --- a/tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol.0.5.16.MissingEventsAccessControl.json +++ /dev/null @@ -1,636 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 421, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - } - } - ], - "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L19-L21", - "id": "2adc5f8e781cdaaf63f6d48774301e6faebdbc57270ac6e58b9f2c8042d579c9", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "owner = msg.sender", - "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L15-L17", - "id": "3bcd44f3743829d2b06e08c66536a2b284ed15a6de47054be6878f6695462394", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - } - } - } - ], - "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.5.16/missing_events_access_control.sol#L23-L26", - "id": "b2b17502036e90b5febb512ef8147dd1a1220909459522c3551a323e74008aeb", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json deleted file mode 100644 index a06c7fbbe..000000000 --- a/tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol.0.6.11.MissingEventsAccessControl.json +++ /dev/null @@ -1,636 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - } - } - } - ], - "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L23-L26", - "id": "07b828b3ef90ce17c16627d50b5d10d3d0bb12364186c1daf539fe754e044e9d", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 421, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - } - } - ], - "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L19-L21", - "id": "2a1bc700ba646491b242b50ce15549c686f18158317505cc73e49819c13f30ff", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "owner = msg.sender", - "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.6.11/missing_events_access_control.sol#L15-L17", - "id": "6233b8ac6fbfc75896df1f4181adc2b672d947841a32a5e600331f6e3fae0ad7", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json b/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json deleted file mode 100644 index 1d2ff91e4..000000000 --- a/tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol.0.7.6.MissingEventsAccessControl.json +++ /dev/null @@ -1,636 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 421, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 364, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - } - } - ], - "description": "Bug.bad1(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#19-21) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#20) \n", - "markdown": "[Bug.bad1(address)](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L19-L21) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L20) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L19-L21", - "id": "21fc5036d7faf8a85ef526dae53f05bb95d3b164be9153309914c9d1edd4b1fa", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "owner = msg.sender", - "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 284, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Bug.bad0() (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#15-17) should emit an event for: \n\t- owner = msg.sender (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#16) \n", - "markdown": "[Bug.bad0()](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L15-L17) should emit an event for: \n\t- [owner = msg.sender](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L16) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L15-L17", - "id": "60cac8612da706a8f41d365ee5121e3ff3d117d62ef30542f4f0919c1269cc63", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "owner = newOwner", - "source_mapping": { - "start": 552, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 458, - "length": 127, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1309, - "filename_relative": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2(address)" - } - } - } - } - ], - "description": "Bug.bad2(address) (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#23-26) should emit an event for: \n\t- owner = newOwner (tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#25) \n", - "markdown": "[Bug.bad2(address)](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L23-L26) should emit an event for: \n\t- [owner = newOwner](tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L25) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-access/0.7.6/missing_events_access_control.sol#L23-L26", - "id": "7860dfd180581f63b5ecadd5b878a8e35424a20a1ed7bdfa9c7a88bbe40a40ac", - "check": "events-access", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json deleted file mode 100644 index e0cb12afe..000000000 --- a/tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol.0.4.25.MissingEventsArithmetic.json +++ /dev/null @@ -1,504 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - }, - { - "type": "node", - "name": "iprice16 = _price", - "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - } - } - } - ], - "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L30-L32", - "id": "7d5d220e7eb70eecd77a3b9f97edae023ff0ace74cb8fdcc673421a20cd1b0bd", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - }, - { - "type": "node", - "name": "uprice8 = _price", - "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - } - } - } - ], - "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.4.25/missing_events_arithmetic.sol#L22-L24", - "id": "d834b257539b629a79f990d9afdbdea9b092e4539613b94120157bec163e9570", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json deleted file mode 100644 index 1f7a2d8a7..000000000 --- a/tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol.0.5.16.MissingEventsArithmetic.json +++ /dev/null @@ -1,504 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - }, - { - "type": "node", - "name": "iprice16 = _price", - "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - } - } - } - ], - "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L30-L32", - "id": "384e7002e5c0ea33a22d703483b9f837a9ca785cc5b13b911a90fcd094d6a53b", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - }, - { - "type": "node", - "name": "uprice8 = _price", - "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - } - } - } - ], - "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.5.16/missing_events_arithmetic.sol#L22-L24", - "id": "ecfe9683975ad7762734d6bb9363346cd16bb866d217bbc4e3b340796739ac88", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json deleted file mode 100644 index 841323847..000000000 --- a/tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol.0.6.11.MissingEventsArithmetic.json +++ /dev/null @@ -1,504 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - }, - { - "type": "node", - "name": "uprice8 = _price", - "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - } - } - } - ], - "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L22-L24", - "id": "4bf2270c516407112555696f464caa30d4e2e7898bd1479e454016615a38ad24", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - }, - { - "type": "node", - "name": "iprice16 = _price", - "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - } - } - } - ], - "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.6.11/missing_events_arithmetic.sol#L30-L32", - "id": "9fc6945144a499e74e24fc81440c43f9d2266b2b656d6444d05cd3aeb9d6325a", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json b/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json deleted file mode 100644 index dd299c72a..000000000 --- a/tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol.0.7.6.MissingEventsArithmetic.json +++ /dev/null @@ -1,504 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - }, - { - "type": "node", - "name": "iprice16 = _price", - "source_mapping": { - "start": 585, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 535, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(int16)" - } - } - } - } - ], - "description": "Bug.bad1(int16) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#31) \n", - "markdown": "[Bug.bad1(int16)](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L31) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L30-L32", - "id": "9a015bded24bf836777fe364f7fda7e10969446ce8c0b352ce6e0023bdd7b79b", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - }, - { - "type": "node", - "name": "uprice8 = _price", - "source_mapping": { - "start": 442, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 392, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 0, - "length": 1522, - "filename_relative": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(uint8)" - } - } - } - } - ], - "description": "Bug.bad0(uint8) (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#23) \n", - "markdown": "[Bug.bad0(uint8)](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L23) \n", - "first_markdown_element": "tests/e2e/detectors/test_data/events-maths/0.7.6/missing_events_arithmetic.sol#L22-L24", - "id": "fa31b12742b283eaebe95c21d70eb91600f87abda7eb2a186d0a661ab401992a", - "check": "events-maths", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function.sol.0.4.25.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_2.sol.0.4.25.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json deleted file mode 100644 index 5931ffb80..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol.0.4.25.ExternalFunction.json +++ /dev/null @@ -1,181 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 239, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 330, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(uint256[])" - } - } - ], - "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#8)\n", - "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L8", - "id": "69068a3072d6f392073d197438688ae8e0bee7844098cfe4cc6c7d345e603678", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 196, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 330, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(bytes)" - } - } - ], - "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#7)\n", - "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L7", - "id": "695915ec89adb6bfc4bf7f8eebf7993e02756da20f0b0e5a8d1dd251bf956c43", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 287, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 330, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(string)" - } - } - ], - "description": "bad3(string) should be declared external:\n\t- Test.bad3(string) (tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#9)\n", - "markdown": "bad3(string) should be declared external:\n\t- [Test.bad3(string)](tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.4.25/external_function_3.sol#L9", - "id": "f56b73c72461d3d9fd4e79bd3cd2649f79c425406843e5c7b2de3fad5b2f663a", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function.sol.0.5.16.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_2.sol.0.5.16.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json deleted file mode 100644 index 72a50312d..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol.0.5.16.ExternalFunction.json +++ /dev/null @@ -1,268 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 524, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 35, - "length": 532, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(string)" - } - } - ], - "description": "bad4(string) should be declared external:\n\t- Test.bad4(string) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad4(string) should be declared external:\n\t- [Test.bad4(string)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L18)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L18", - "id": "1b6de528ed7f8ecf61a543879c8bcbee1bce7e08bdef89c6f8f663937d5a7209", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 475, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 35, - "length": 532, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(Test.testStruct)" - } - } - ], - "description": "bad3(Test.testStruct) should be declared external:\n\t- Test.bad3(Test.testStruct) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad3(Test.testStruct) should be declared external:\n\t- [Test.bad3(Test.testStruct)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L17)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L17", - "id": "a60742b3998c52eee654f61cfb5b39834d63a1b13212511a01811206ac445dd5", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 427, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 35, - "length": 532, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(uint256[])" - } - } - ], - "description": "bad2(uint256[]) should be declared external:\n\t- Test.bad2(uint256[]) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad2(uint256[]) should be declared external:\n\t- [Test.bad2(uint256[])](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L16)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L16", - "id": "aa4b0cae64f1a6f9f11d3f9981255fd04f37f558c960195ee46413ca4b142822", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 384, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 35, - "length": 532, - "filename_relative": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(bytes)" - } - } - ], - "description": "bad(bytes) should be declared external:\n\t- Test.bad(bytes) (tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "markdown": "bad(bytes) should be declared external:\n\t- [Test.bad(bytes)](tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L15)\nMoreover, the following function parameters should change its data location:\nx location should be calldata\n", - "first_markdown_element": "tests/e2e/detectors/test_data/external-function/0.5.16/external_function_3.sol#L15", - "id": "df1688f3d1120f9600f61accff294ba821689c45dc261f1a9b94f23e6a402367", - "check": "external-function", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function.sol.0.6.11.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_2.sol.0.6.11.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.6.11/external_function_3.sol.0.6.11.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function.sol.0.7.6.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_2.sol.0.7.6.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json b/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/external-function/0.7.6/external_function_3.sol.0.7.6.ExternalFunction.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json deleted file mode 100644 index 4a3e17170..000000000 --- a/tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json +++ /dev/null @@ -1,459 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 157, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L5", - "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z4", - "source_mapping": { - "start": 842, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L17", - "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 268, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L7", - "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y1", - "source_mapping": { - "start": 357, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L9", - "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y2", - "source_mapping": { - "start": 453, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.4.25/function_init_state_variables.sol#L10", - "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json deleted file mode 100644 index 8c104cf5f..000000000 --- a/tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol.0.5.16.FunctionInitializedState.json +++ /dev/null @@ -1,459 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 157, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L5", - "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z4", - "source_mapping": { - "start": 842, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L17", - "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 268, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L7", - "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y1", - "source_mapping": { - "start": 357, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L9", - "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y2", - "source_mapping": { - "start": 453, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.5.16/function_init_state_variables.sol#L10", - "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json deleted file mode 100644 index a974a1f73..000000000 --- a/tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol.0.6.11.FunctionInitializedState.json +++ /dev/null @@ -1,459 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 157, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L5", - "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z4", - "source_mapping": { - "start": 842, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L17", - "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 268, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L7", - "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y1", - "source_mapping": { - "start": 357, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L9", - "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y2", - "source_mapping": { - "start": 453, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1575, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.6.11/function_init_state_variables.sol#L10", - "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json b/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json deleted file mode 100644 index 49d2b74ef..000000000 --- a/tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol.0.7.6.FunctionInitializedState.json +++ /dev/null @@ -1,459 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 157, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.v (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.v](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L5", - "id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z4", - "source_mapping": { - "start": 842, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.z4 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "markdown": "[StateVarInitFromFunction.z4](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L17", - "id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 268, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.x (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "markdown": "[StateVarInitFromFunction.x](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L7", - "id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y1", - "source_mapping": { - "start": 357, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y1 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "markdown": "[StateVarInitFromFunction.y1](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L9", - "id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y2", - "source_mapping": { - "start": 453, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "StateVarInitFromFunction", - "source_mapping": { - "start": 116, - "length": 1567, - "filename_relative": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "StateVarInitFromFunction.y2 (tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "markdown": "[StateVarInitFromFunction.y2](tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n", - "first_markdown_element": "tests/e2e/detectors/test_data/function-init-state/0.7.6/function_init_state_variables.sol#L10", - "id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472", - "check": "function-init-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/immutable-states/0.4.25/immut_state_variables.sol.0.4.25.CouldBeImmutable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/immutable-states/0.5.16/immut_state_variables.sol.0.5.16.CouldBeImmutable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json deleted file mode 100644 index 3c2d2fe8a..000000000 --- a/tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol.0.6.11.CouldBeImmutable.json +++ /dev/null @@ -1,339 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_5", - "source_mapping": { - "start": 1077, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#47) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L47) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L47", - "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_2", - "source_mapping": { - "start": 940, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L44", - "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_4", - "source_mapping": { - "start": 1038, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_4](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L46", - "id": "a26d6df4087ac010928bc4bd18aa70ac58a28e584b1288e348d9c255473c300d", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable", - "source_mapping": { - "start": 894, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L43", - "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_3", - "source_mapping": { - "start": 986, - "length": 46, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 539, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.6.11/immut_state_variables.sol#L45", - "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json deleted file mode 100644 index 11cfe3e5e..000000000 --- a/tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol.0.7.6.CouldBeImmutable.json +++ /dev/null @@ -1,334 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_5", - "source_mapping": { - "start": 1077, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#47) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L47) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L47", - "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_2", - "source_mapping": { - "start": 940, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L44", - "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_4", - "source_mapping": { - "start": 1038, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_4 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_4](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L46", - "id": "a26d6df4087ac010928bc4bd18aa70ac58a28e584b1288e348d9c255473c300d", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable", - "source_mapping": { - "start": 894, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L43", - "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_3", - "source_mapping": { - "start": 986, - "length": 46, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 531, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.7.6/immut_state_variables.sol#L45", - "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json b/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json deleted file mode 100644 index 31fd3b1be..000000000 --- a/tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol.0.8.0.CouldBeImmutable.json +++ /dev/null @@ -1,276 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_5", - "source_mapping": { - "start": 1038, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 46 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 577, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_5 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#46) should be immutable \n", - "markdown": "[Bad.should_be_immutable_5](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L46) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L46", - "id": "42d50245236163ceca90dea732165e65c2155934b149a5a1a5c51bddc0b5b02a", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_2", - "source_mapping": { - "start": 940, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 44 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 577, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_2 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#44) should be immutable \n", - "markdown": "[Bad.should_be_immutable_2](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L44) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L44", - "id": "70d57aa51dda92c28444a466db8567fa783c85d484259aa5eee2ebc63f97a200", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable", - "source_mapping": { - "start": 894, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 5, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 577, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#43) should be immutable \n", - "markdown": "[Bad.should_be_immutable](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L43) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L43", - "id": "b163d277f544f7f05ed4bcddda61e444be893e65ba0469688abd7b401a1db222", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "should_be_immutable_3", - "source_mapping": { - "start": 986, - "length": 46, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bad", - "source_mapping": { - "start": 718, - "length": 577, - "filename_relative": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bad.should_be_immutable_3 (tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#45) should be immutable \n", - "markdown": "[Bad.should_be_immutable_3](tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L45) should be immutable \n", - "first_markdown_element": "tests/e2e/detectors/test_data/immutable-states/0.8.0/immut_state_variables.sol#L45", - "id": "f19f7a22a6f17ffd8b5c29021226388aab7548f996b686a8e0b2bc861f72d447", - "check": "immutable-states", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json deleted file mode 100644 index fcf5e67b7..000000000 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol.0.4.25.IncorrectStrictEquality.json +++ /dev/null @@ -1,2552 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", - "source_mapping": { - "start": 1091, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L47-L50", - "id": "123f37fe2d18f3d62f0c6ce71dbefc3034de268bf8c16054a306ecb3e36ad065", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", - "source_mapping": { - "start": 822, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L37-L40", - "id": "33dd2bddb09b7d20544ca585d3adae4f9228b100250216d0c7864a8076898bbd", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 562, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L25-L27", - "id": "4a9b012b6f9762d5edbdfd01c8160a88c6df6773229601c6d55d90b7c7aa2cdd", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(now == 0)", - "source_mapping": { - "start": 2969, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L123-L125", - "id": "5fcec0bbb23ad1151dc4a805c21795e3dad5e7863008cb2efd460998b23b60d1", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1274, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L52-L57", - "id": "7a6e65373ac0889b26f7464107e30ff847c4db7fe43999ada2631f51625c46ae", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 455, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L21-L23", - "id": "8bdd45363c31403d82b020ba5823c89c6bc3a54c1b96f718fdb5d9d218a675ac", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3034, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L127-L129", - "id": "8d31f3e01926106c2993f7184e5f73efd00cac620fa4143531eec830e143137d", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", - "source_mapping": { - "start": 683, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L32-L35", - "id": "90e38f3c11943fb117be8c79d5c12196aab5990503f859c8e133d5318e2f5c78", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "10000000000000000000 == balance", - "source_mapping": { - "start": 1450, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L59-L64", - "id": "99779d65b3b4cea385aa65b1e7bed533bd5301aa04e141c7a38125b32804e736", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1635, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - } - } - } - ], - "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L66-L71", - "id": "aef2defcd860257b102e1e07583b2bcd8eb96186e0334d26289d62ef66d94265", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3106, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L131-L133", - "id": "be3fc04691f9a4b06c55b3c98a3968c3e0f03bbaf0fd6fe799aba4487b54ac0e", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", - "source_mapping": { - "start": 961, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.4.25/incorrect_equality.sol#L42-L45", - "id": "ca734ebf2aff837ece445cea2cc8441a7a2a73b15bbb5cb68c6bde45ee52bea1", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json deleted file mode 100644 index 08c0c334d..000000000 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol.0.5.16.IncorrectStrictEquality.json +++ /dev/null @@ -1,2552 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", - "source_mapping": { - "start": 1091, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1056, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L47-L50", - "id": "05ce842aed12884d58a58241f422dbad3b4c14769ffa4ca5930726f2948167a5", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", - "source_mapping": { - "start": 683, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 648, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L32-L35", - "id": "29c85226ec025437d4d2ff95e6bc6d934757fc5d3c834873afda9c38a5653756", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", - "source_mapping": { - "start": 822, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 787, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L37-L40", - "id": "352f19146eb75c68f7cb8e05aaaf84a5f2d13e4c03af43e6bcb79babb6411231", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1635, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1538, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - } - } - } - ], - "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L66-L71", - "id": "4285173d33e2e37daddea7c9cb3def32e8b038d9040669bc21a8a8e1e50e982a", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 562, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 511, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L25-L27", - "id": "44c65a790eee93eb2653c6d9f7c1c8c6d9ef4e4264408dc30d5b6a938873cf5e", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "10000000000000000000 == balance", - "source_mapping": { - "start": 1450, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1362, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L59-L64", - "id": "51ece6317db49c0895eef868169b4d605bd7ca72db817a1573edae815d98e71e", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1274, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1186, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L52-L57", - "id": "5d07adb6b1f660d1241d7d9080670f197a09ffc6073d6bcfa5865cc83181708a", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3034, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3000, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L127-L129", - "id": "7c6efda5fe56ba580b299737a41836ed9e39afa559d713d4fffd097d1cf1f889", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", - "source_mapping": { - "start": 961, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 926, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 612, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L42-L45", - "id": "8622833a6a62a400ce901b4bc78815431f921549570de73ba2421375a4b1abae", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 455, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 404, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 165, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L21-L23", - "id": "c1401150abb2f3a3b83eaddd0fee0e89da8c9e96f56c031103654d3fcb6480c5", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(now == 0)", - "source_mapping": { - "start": 2969, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2935, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L123-L125", - "id": "c87d2ed05c3b9e133ab1cc40d5414c3b7ee237fd9349b50c57676f52d5055f41", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3106, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3072, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2368, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.5.16/incorrect_equality.sol#L131-L133", - "id": "ed3aa653005f54d880adb9c0f742a41005855f1c452f1eb93c4d952eeeedfbc5", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json deleted file mode 100644 index aa217c978..000000000 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol.0.6.11.IncorrectStrictEquality.json +++ /dev/null @@ -1,2552 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "10000000000000000000 == balance", - "source_mapping": { - "start": 1467, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L59-L64", - "id": "1e510a2b317178caeb183ec9237ce9b066a622e7564bdfe00368f1d94812b072", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 472, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L21-L23", - "id": "2147be33b046bb4ad215164b5d2d6eece75c761b5d6f1dfa4738c06cb9a3da06", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", - "source_mapping": { - "start": 1108, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L47-L50", - "id": "2aefe606d348048339e03786d458d8fa318a4c927379da603438fc43a380d75a", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1652, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - } - } - } - ], - "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L66-L71", - "id": "71feb4e8fb94d1d8d22e43fa29c5e87973d8c15e195b642758e4a05c35cd0338", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2952, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(now == 0)", - "source_mapping": { - "start": 2986, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2952, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L123-L125", - "id": "91ff3604b6455240febb920249669ca70f281c04a823f722d446cf9fe06fc5a8", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 943, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", - "source_mapping": { - "start": 978, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 943, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L42-L45", - "id": "a5c23b46b1ab4eb0e5944bf42ac85dff621028f3144f5e64b2db3af51cc5c3af", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 579, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L25-L27", - "id": "a8f80863931a71bb79be323f5312d2b15235f4cf63cf47dedbd3fc3a467b8426", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3017, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3051, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3017, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L127-L129", - "id": "c5a137c85131387da43effbf4eb514b58a482c76f58ca9ae0e45a9f4c67f57c6", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1291, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L52-L57", - "id": "dc0d579cd55024763718830f2e8bcdc2cba6001246385b10e994bb45a6bdcdc4", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", - "source_mapping": { - "start": 839, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L37-L40", - "id": "e4fe545c6832599a35bb50b2d617ee8e7f4565d312535e362a015253ee13fe2e", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3089, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3123, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3089, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 774, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L131-L133", - "id": "ec490b5b95549f210fe15cc6df8aeb9c8b78cc71eb3b336cefe602463480ea02", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", - "source_mapping": { - "start": 700, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.6.11/incorrect_equality.sol#L32-L35", - "id": "fbac3cce622ed841991a9947a59d8077df6ddd5f5250bb2af8a3169eb4204f1b", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json deleted file mode 100644 index ddadd3deb..000000000 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol.0.7.6.IncorrectStrictEquality.json +++ /dev/null @@ -1,2552 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(msg.sender) == 10)", - "source_mapping": { - "start": 579, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 528, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(ERC20Variable)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad1(ERC20Variable) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#26)\n", - "markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L25-L27", - "id": "0129e3a960eb5eb0d7bc4f2d6c33fa5ce18ae0704390d3ef9829ce20bcb3d071", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1652, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad6", - "source_mapping": { - "start": 1555, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad6()" - } - } - } - } - ], - "description": "TestContractBalance.bad6() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#68)\n", - "markdown": "[TestContractBalance.bad6()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L66-L71", - "id": "1701908087786c2d3ca6253022b69a41a3637584ebfbe396e0c682097c24119c", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - }, - { - "type": "node", - "name": "require(bool)(erc.balanceOf(address(this)) == 10)", - "source_mapping": { - "start": 472, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 421, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ERC20TestBalance", - "source_mapping": { - "start": 182, - "length": 445, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0(ERC20Function)" - } - } - } - } - ], - "description": "ERC20TestBalance.bad0(ERC20Function) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#22)\n", - "markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L21-L23", - "id": "5e030ae824ffc72258ca317b13b88e476010bab843ed560bcf3e91a77e30869e", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(address(this)).balance)", - "source_mapping": { - "start": 839, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 804, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 37, - 38, - 39, - 40 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestContractBalance.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#38)\n", - "markdown": "[TestContractBalance.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L38)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L37-L40", - "id": "64d04d8f94ed18470f850eb8696b192e2b2f59dcc751feca4116aa2970ead1ca", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2964, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(block.timestamp == 0)", - "source_mapping": { - "start": 2998, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 2964, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 123, - 124, - 125 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#124)\n", - "markdown": "[TestSolidityKeyword.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L124)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L123-L125", - "id": "7b0984af9e0ffedf1575cebc039f322695055a01b9cbd81771e552c441019628", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "require(bool)(10000000000000000000 == address(this).balance)", - "source_mapping": { - "start": 1108, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 1073, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "TestContractBalance.bad3() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#48)\n", - "markdown": "[TestContractBalance.bad3()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L48)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L47-L50", - "id": "a6897be58505c046705a41d57507a230ae91f8582da3ba6573a40275cfef0608", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "balance == 10000000000000000000", - "source_mapping": { - "start": 1291, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1203, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "TestContractBalance.bad4() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#54)\n", - "markdown": "[TestContractBalance.bad4()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L54)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L52-L57", - "id": "b8b849eb6912d14d89c08cc62631b526b98c443d404241f3c52efc638b2bcc86", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(address(address(this)).balance == 10000000000000000000)", - "source_mapping": { - "start": 700, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 665, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 32, - 33, - 34, - 35 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "TestContractBalance.bad0() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#33)\n", - "markdown": "[TestContractBalance.bad0()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L33)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L32-L35", - "id": "c13f1ea5f8ba0968d254f38bae296c5528326f464233f2eb283c0a952cf358ff", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3113, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3147, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 132 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 3113, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 131, - 132, - 133 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#132)\n", - "markdown": "[TestSolidityKeyword.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L132)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L131-L133", - "id": "c2653e938f80ae63a20262eda2521ab3d846f822947c9b7d8b823388e3997928", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - }, - { - "type": "node", - "name": "10000000000000000000 == balance", - "source_mapping": { - "start": 1467, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 13, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1379, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad5()" - } - } - } - } - ], - "description": "TestContractBalance.bad5() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#61)\n", - "markdown": "[TestContractBalance.bad5()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L61)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L59-L64", - "id": "c8b2fbe9338a5c9af7e9645699b830df0239a588e340d65c5d0c2b918f1773d1", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 943, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "require(bool)(address(this).balance == 10000000000000000000)", - "source_mapping": { - "start": 978, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 943, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestContractBalance", - "source_mapping": { - "start": 629, - "length": 1754, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "TestContractBalance.bad2() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#43)\n", - "markdown": "[TestContractBalance.bad2()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L42-L45", - "id": "ea6ab897bf4edb3c5139321ca547b08717767225087f380099e8472566a6a8a0", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3041, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(block.number == 0)", - "source_mapping": { - "start": 3075, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 128 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 3041, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 127, - 128, - 129 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestSolidityKeyword", - "source_mapping": { - "start": 2385, - "length": 798, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "TestSolidityKeyword.bad1() (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#128)\n", - "markdown": "[TestSolidityKeyword.bad1()](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L128)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol#L127-L129", - "id": "f9063c78a209722de77a042a87a28a14eea47675f73a891172c3262232d33e70", - "check": "incorrect-equality", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json deleted file mode 100644 index c17d96402..000000000 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol.0.4.25.ModifierDefaultDetection.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "loopsNoResult", - "source_mapping": { - "start": 496, - "length": 251, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "loopsNoResult()" - } - } - ], - "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L30-L41", - "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "requireAssertNoResult", - "source_mapping": { - "start": 277, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "requireAssertNoResult()" - } - } - ], - "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L18-L22", - "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "noResult", - "source_mapping": { - "start": 20, - "length": 103, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "noResult()" - } - } - ], - "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol#L2-L6", - "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json deleted file mode 100644 index 51ba3b9ce..000000000 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol.0.5.16.ModifierDefaultDetection.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "loopsNoResult", - "source_mapping": { - "start": 496, - "length": 251, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "loopsNoResult()" - } - } - ], - "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L30-L41", - "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "requireAssertNoResult", - "source_mapping": { - "start": 277, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "requireAssertNoResult()" - } - } - ], - "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L18-L22", - "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "noResult", - "source_mapping": { - "start": 20, - "length": 103, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "noResult()" - } - } - ], - "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol#L2-L6", - "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json deleted file mode 100644 index 28e23e301..000000000 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol.0.6.11.ModifierDefaultDetection.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "loopsNoResult", - "source_mapping": { - "start": 496, - "length": 251, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "loopsNoResult()" - } - } - ], - "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L30-L41", - "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "requireAssertNoResult", - "source_mapping": { - "start": 277, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "requireAssertNoResult()" - } - } - ], - "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L18-L22", - "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "noResult", - "source_mapping": { - "start": 20, - "length": 103, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "noResult()" - } - } - ], - "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol#L2-L6", - "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json deleted file mode 100644 index 71397c0df..000000000 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol.0.7.6.ModifierDefaultDetection.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "loopsNoResult", - "source_mapping": { - "start": 496, - "length": 251, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "loopsNoResult()" - } - } - ], - "description": "Modifier Test.loopsNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#30-41) does not always execute _; or revert", - "markdown": "Modifier [Test.loopsNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L30-L41", - "id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "requireAssertNoResult", - "source_mapping": { - "start": 277, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "requireAssertNoResult()" - } - } - ], - "description": "Modifier Test.requireAssertNoResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#18-22) does not always execute _; or revert", - "markdown": "Modifier [Test.requireAssertNoResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L18-L22", - "id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "noResult", - "source_mapping": { - "start": 20, - "length": 103, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 901, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "noResult()" - } - } - ], - "description": "Modifier Test.noResult() (tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#2-6) does not always execute _; or revert", - "markdown": "Modifier [Test.noResult()](tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6) does not always execute _; or revert", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol#L2-L6", - "id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3", - "check": "incorrect-modifier", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.4.25/shift_parameter_mixup.sol.0.4.25.ShiftParameterMixup.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.5.16/shift_parameter_mixup.sol.0.5.16.ShiftParameterMixup.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json deleted file mode 100644 index 5b4d6115a..000000000 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol.0.6.11.ShiftParameterMixup.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 19, - "length": 106, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "a = 8 >> a", - "source_mapping": { - "start": 93, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 13, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 19, - "length": 106, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#5)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-shift/0.6.11/shift_parameter_mixup.sol#L3-L7", - "id": "3b49c1812a94a200ed222cb95c2aa98fb38f623349bf4eceff8b578d1edfb450", - "check": "incorrect-shift", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json deleted file mode 100644 index 20150fd69..000000000 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol.0.7.6.ShiftParameterMixup.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 19, - "length": 106, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "a = 8 >> a", - "source_mapping": { - "start": 93, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 13, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 19, - "length": 106, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7) contains an incorrect shift operation: [a = 8 >> a](tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#L3-L7", - "id": "1e0b56cf3193f6a593cb39fce7f93feb1d57c319bcd090e9a1cd3d96606409cb", - "check": "incorrect-shift", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json b/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json deleted file mode 100644 index 910b5c2aa..000000000 --- a/tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json +++ /dev/null @@ -1,521 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "slitherConstructorVariables", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "slitherConstructorVariables()" - } - }, - { - "type": "node", - "name": "c = (b = + 1)", - "source_mapping": { - "start": 42, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 3, - "ending_column": 16 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "slitherConstructorVariables", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "slitherConstructorVariables()" - } - } - } - } - ], - "description": "C.slitherConstructorVariables() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#1-15) uses an dangerous unary operator: c = (b = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4)\n", - "markdown": "[C.slitherConstructorVariables()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15) uses an dangerous unary operator: [c = (b = + 1)](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L1-L15", - "id": "1cd95648731fa1d8591ad7893453cc18fac345beb99f74b732ba348913c39440", - "check": "incorrect-unary", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x = + 144444", - "source_mapping": { - "start": 104, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = + 144444 (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#8)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = + 144444](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", - "id": "752dfc78458ce332044d64166a2fc7cad63f5797b4e1d4d983a0681c43a7a930", - "check": "incorrect-unary", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "c", - "source_mapping": { - "start": 42, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 3, - "ending_column": 16 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "C.c (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#4) uses an dangerous unary operator: (b = + 1)\n", - "markdown": "[C.c](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4) uses an dangerous unary operator: (b = + 1)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L4", - "id": "98d05a4acbe13ff0e6fa795af35dc2002541cc7607f3f4d7ffb356f9d33681bd", - "check": "incorrect-unary", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x = (x = + 1)", - "source_mapping": { - "start": 136, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 60, - "length": 142, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 204, - "filename_relative": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = (x = + 1) (tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#9)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = (x = + 1)](tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/incorrect-unary/0.4.25/invalid_unary_expression.sol#L6-L14", - "id": "aa018a8d101b2e2a91a45c0075355e9dfae1b2abe322079230cc2a89f58135fb", - "check": "incorrect-unary", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json deleted file mode 100644 index 8a96569ce..000000000 --- a/tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol.0.4.25.LockedEther.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "OnlyLocked", - "source_mapping": { - "start": 368, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 1, - "ending_column": 33 - } - }, - { - "type": "function", - "name": "receive", - "source_mapping": { - "start": 47, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Locked", - "source_mapping": { - "start": 25, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "receive()" - } - } - ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.4.25/locked_ether.sol#L26", - "id": "a2fad0e9c8a75e55b8c548dd184dc33d78142ea5bac9c36cdc5eb174e56d689c", - "check": "locked-ether", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json deleted file mode 100644 index 5b39da397..000000000 --- a/tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol.0.5.16.LockedEther.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "OnlyLocked", - "source_mapping": { - "start": 375, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 1, - "ending_column": 33 - } - }, - { - "type": "function", - "name": "receive", - "source_mapping": { - "start": 46, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Locked", - "source_mapping": { - "start": 24, - "length": 97, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "receive()" - } - } - ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.5.16/locked_ether.sol#L26", - "id": "a2fad0e9c8a75e55b8c548dd184dc33d78142ea5bac9c36cdc5eb174e56d689c", - "check": "locked-ether", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json deleted file mode 100644 index 49eab9f41..000000000 --- a/tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol.0.6.11.LockedEther.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "OnlyLocked", - "source_mapping": { - "start": 401, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 1, - "ending_column": 33 - } - }, - { - "type": "function", - "name": "receive_eth", - "source_mapping": { - "start": 49, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Locked", - "source_mapping": { - "start": 27, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "receive_eth()" - } - } - ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.6.11/locked_ether.sol#L26", - "id": "1818e759217cfcf6787001194bba24ad45470b123962a72d39062edb19447022", - "check": "locked-ether", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json b/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json deleted file mode 100644 index dbfa51782..000000000 --- a/tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol.0.7.6.LockedEther.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "OnlyLocked", - "source_mapping": { - "start": 401, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 1, - "ending_column": 33 - } - }, - { - "type": "function", - "name": "receive_eth", - "source_mapping": { - "start": 49, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Locked", - "source_mapping": { - "start": 27, - "length": 101, - "filename_relative": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "receive_eth()" - } - } - ], - "description": "Contract locking ether found:\n\tContract OnlyLocked (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#26) has payable functions:\n\t - Locked.receive_eth() (tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n", - "markdown": "Contract locking ether found:\n\tContract [OnlyLocked](tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive_eth()](tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n", - "first_markdown_element": "tests/e2e/detectors/test_data/locked-ether/0.7.6/locked_ether.sol#L26", - "id": "1818e759217cfcf6787001194bba24ad45470b123962a72d39062edb19447022", - "check": "locked-ether", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json deleted file mode 100644 index 0b60c1163..000000000 --- a/tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol.0.4.25.LowLevelCalls.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - }, - { - "type": "node", - "name": "_receiver.call.value(msg.value).gas(7777)()", - "source_mapping": { - "start": 111, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - } - } - } - ], - "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.4.25/low_level_calls.sol#L5-L7", - "id": "1891e8bc686be03365c3a2eed6695666275aa30d9b8a9be7aa3d7e9437d1a65a", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json deleted file mode 100644 index 5c8498e47..000000000 --- a/tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol.0.5.16.LowLevelCalls.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - }, - { - "type": "node", - "name": "_receiver.call.value(msg.value).gas(7777)()", - "source_mapping": { - "start": 111, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - } - } - } - ], - "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.5.16/low_level_calls.sol#L5-L7", - "id": "faea7d741ed7b50f33370d71c431256bfcf9c3e0d2d753f250456288039484fc", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json deleted file mode 100644 index 24733492b..000000000 --- a/tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol.0.6.11.LowLevelCalls.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - }, - { - "type": "node", - "name": "_receiver.call.value(msg.value).gas(7777)()", - "source_mapping": { - "start": 111, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - } - } - } - ], - "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.6.11/low_level_calls.sol#L5-L7", - "id": "79efc16fdd7c9cafb6ea0b7bf20805c61342b0205d80e50a74d16eb0240837fe", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json b/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json deleted file mode 100644 index 28ee31e98..000000000 --- a/tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol.0.7.6.LowLevelCalls.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - }, - { - "type": "node", - "name": "_receiver.call{gas: 7777,value: msg.value}()", - "source_mapping": { - "start": 111, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "send", - "source_mapping": { - "start": 51, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Sender", - "source_mapping": { - "start": 29, - "length": 136, - "filename_relative": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "send(address)" - } - } - } - } - ], - "description": "Low level call in Sender.send(address) (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#5-7):\n\t- _receiver.call{gas: 7777,value: msg.value}() (tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#6)\n", - "markdown": "Low level call in [Sender.send(address)](tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L5-L7):\n\t- [_receiver.call{gas: 7777,value: msg.value}()](tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L6)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/low-level-calls/0.7.6/low_level_calls.sol#L5-L7", - "id": "690c796e376fac67085b713c1fbe904c601545e617d290918e244f82ecf12bbb", - "check": "low-level-calls", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json deleted file mode 100644 index 3a68c56a3..000000000 --- a/tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json +++ /dev/null @@ -1,413 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 165, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L9-L11", - "id": "480f143e218317272b848a3585bad43e4e06d4ebee428388434fd9782dd7a6ea", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 544, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 189, - "length": 825, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - }, - { - "type": "struct", - "name": "BalancesStruct", - "source_mapping": { - "start": 218, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 189, - "length": 825, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete stackBalance[idx]", - "source_mapping": { - "start": 650, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 544, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 189, - "length": 825, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - } - } - } - ], - "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#28-31) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#30)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L30)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.4.25/MappingDeletion.sol#L28-L31", - "id": "fd9b876be048b4faa465b510cd9a008e901c270f6a5776877b1d176dd79e3e89", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json deleted file mode 100644 index 4a1d285b4..000000000 --- a/tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol.0.5.16.MappingDeletionDetection.json +++ /dev/null @@ -1,416 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 175, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L9-L11", - "id": "25f78afdb82c912359dfe1e6ae5b252658ae3fcea89e6573b41133d9ee74485a", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - }, - { - "type": "struct", - "name": "BalancesStruct", - "source_mapping": { - "start": 228, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete stackBalance[idx]", - "source_mapping": { - "start": 701, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - } - } - } - ], - "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.5.16/MappingDeletion.sol#L29-L32", - "id": "e32795b53dcf7a1a5f2c10b588df584da1907d195e9ed3c48f020813ccd01d61", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json deleted file mode 100644 index 9bbd114f7..000000000 --- a/tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol.0.6.11.MappingDeletionDetection.json +++ /dev/null @@ -1,416 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - }, - { - "type": "struct", - "name": "BalancesStruct", - "source_mapping": { - "start": 228, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete stackBalance[idx]", - "source_mapping": { - "start": 701, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - } - } - } - ], - "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L29-L32", - "id": "36e71dab3809852d2405eb28b790c702876d1368c5a8c2c5ca1a601bab67d3b8", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 175, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.6.11/MappingDeletion.sol#L9-L11", - "id": "62c206de50149e2a37cc89a4737e53aafba3cdec86127e87633d3e7e2ba3fc65", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json b/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json deleted file mode 100644 index b77765921..000000000 --- a/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol.0.7.6.MappingDeletionDetection.json +++ /dev/null @@ -1,416 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - }, - { - "type": "struct", - "name": "BalancesStruct", - "source_mapping": { - "start": 228, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete stackBalance[idx]", - "source_mapping": { - "start": 701, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteBalance", - "source_mapping": { - "start": 595, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Balances", - "source_mapping": { - "start": 199, - "length": 866, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteBalance(uint256)" - } - } - } - } - ], - "description": "Balances.deleteBalance(uint256) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#29-32) deletes Balances.BalancesStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#31)\n", - "markdown": "[Balances.deleteBalance(uint256)](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32) deletes [Balances.BalancesStruct](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L31)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L29-L32", - "id": "be5ede96c6fee54dfce4422097c8fedb873edf56795b146bda5a64bf4dda87d3", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - }, - { - "type": "struct", - "name": "MyStruct", - "source_mapping": { - "start": 47, - "length": 61, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "delete st[0]", - "source_mapping": { - "start": 175, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "deleteSt", - "source_mapping": { - "start": 114, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Lib", - "source_mapping": { - "start": 29, - "length": 168, - "filename_relative": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "deleteSt(Lib.MyStruct[1])" - } - } - } - } - ], - "description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#10)\n", - "markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol#L9-L11", - "id": "e60cb56bfbbca04e075ecc29366ae58fcdd9ee4dc865f8b0094f7ea5394b92a0", - "check": "mapping-deletion", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json deleted file mode 100644 index a3dc88481..000000000 --- a/tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol.0.4.25.MissingInheritance.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Something", - "source_mapping": { - "start": 68, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "ISomething", - "source_mapping": { - "start": 0, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.4.25/unimplemented_interface.sol#L5-L10", - "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json deleted file mode 100644 index 85d422120..000000000 --- a/tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol.0.5.16.MissingInheritance.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Something", - "source_mapping": { - "start": 68, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "ISomething", - "source_mapping": { - "start": 0, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.5.16/unimplemented_interface.sol#L5-L10", - "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json deleted file mode 100644 index 5c992d241..000000000 --- a/tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol.0.6.11.MissingInheritance.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Something", - "source_mapping": { - "start": 68, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "ISomething", - "source_mapping": { - "start": 0, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.6.11/unimplemented_interface.sol#L5-L10", - "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json b/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json deleted file mode 100644 index ff13fef9e..000000000 --- a/tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol.0.7.6.MissingInheritance.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Something", - "source_mapping": { - "start": 68, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "ISomething", - "source_mapping": { - "start": 0, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "Something (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#5-10) should inherit from ISomething (tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#1-3)\n", - "markdown": "[Something](tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10) should inherit from [ISomething](tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L1-L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-inheritance/0.7.6/unimplemented_interface.sol#L5-L10", - "id": "58962dc72a6c49524a027e8e1615ab92be30f1a0f5ef0eb4a029204687159649", - "check": "missing-inheritance", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json deleted file mode 100644 index 528c5c312..000000000 --- a/tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol.0.4.25.MissingZeroAddressValidation.json +++ /dev/null @@ -1,1472 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 706, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 22, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 687, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.call.value(msg.value)()", - "source_mapping": { - "start": 740, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 687, - "length": 112, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - } - ], - "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L28", - "id": "544803ccc40b7173048033bb584b82acf387458db7d524dd0b19304d734b5da0", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 511, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 26, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 488, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 545, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 488, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - } - ], - "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L23", - "id": "905cc3a02bbc7be7f1c14c8f4c825dfb00d1ab3a5090f4ad447c10422b443a04", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 393, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 26, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 370, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 427, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 370, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - } - ], - "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L19", - "id": "9568826f86b5efbcef2979632d0817fc45c2af86306f82169a179e9f79b44a57", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "new_owner", - "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 27, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - }, - { - "type": "node", - "name": "owner = new_owner", - "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - } - ], - "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L10", - "id": "b3ed5b509e79b10fb11c06792bc1bbea4110fee55583a43a38d79d2048c613f1", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 256, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 22, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 290, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 340, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 1977, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - } - ], - "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.4.25/missing_zero_address_validation.sol#L14", - "id": "fa7268ec4d72f167f61bdc17b887b27ac333d895b5a3827fcd7bfca395d349f4", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json deleted file mode 100644 index 9e048e04a..000000000 --- a/tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol.0.5.16.MissingZeroAddressValidation.json +++ /dev/null @@ -1,1472 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 401, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - } - ], - "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L19", - "id": "29db16277296360f7c637e16b59118e50ab70e3122f09c006f234dbf93ea13f6", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 730, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.call.value(msg.value)()", - "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - } - ], - "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L28", - "id": "9c6ff3aef7b83b809a20128ba0e37b41e372536a7c00f5102f47dd2108e0c637", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "new_owner", - "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 27, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - }, - { - "type": "node", - "name": "owner = new_owner", - "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - } - ], - "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L10", - "id": "b180df9baff938a7cbf352a98d3f08ef7b28b8988f646501a82d249385277dde", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 527, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 569, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - } - ], - "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L23", - "id": "c84a2e53313b2eeb0587d13197812e88d1bed8509570ec333ebf21c9b0aed68d", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 256, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 298, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 348, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - } - ], - "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.5.16/missing_zero_address_validation.sol#L14", - "id": "de1c8c305b18cb8b7a1ed68aad59db3e1b058cff9d003bee9f6b40aaf9f0d859", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json deleted file mode 100644 index 688a270f4..000000000 --- a/tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol.0.6.11.MissingZeroAddressValidation.json +++ /dev/null @@ -1,1472 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 401, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - } - ], - "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L19", - "id": "442dd9d8ab9bcdac1d8ff21404ec8b21d517cfb1601b16abf969175ef0c2be5b", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "new_owner", - "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 27, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - }, - { - "type": "node", - "name": "owner = new_owner", - "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - } - ], - "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L10", - "id": "4c88f4398c0c3744179e7766d1d37259cd78e17d4295fa26aeb4b857aee5eea1", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 256, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 298, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 348, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - } - ], - "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L14", - "id": "e2713744ad519d45431324a0d9c81e886bcbfc85d09518af215830c73451ff41", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 730, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.call.value(msg.value)()", - "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - } - ], - "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L28", - "id": "e8a430e2c04153f1b71097d5bfd3889508325fa8eac71d27557338053138382b", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 527, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 569, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - } - ], - "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.6.11/missing_zero_address_validation.sol#L23", - "id": "f526bdc00d5c7d9ac356dd58801eb48db5fd6f3bdfc28812e0a183cd9cfa3fd6", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json b/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json deleted file mode 100644 index afaceab84..000000000 --- a/tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol.0.7.6.MissingZeroAddressValidation.json +++ /dev/null @@ -1,1472 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 256, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 298, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.send(msg.value)", - "source_mapping": { - "start": 348, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1_send", - "source_mapping": { - "start": 237, - "length": 137, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1_send(address)" - } - } - } - } - ], - "description": "C.bad1_send(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#16)\n", - "markdown": "[C.bad1_send(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L14", - "id": "2dfc801d756c1571f9e02d3506682b5712639e0223155e04545a3ee91d7c9ef8", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 527, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 569, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3_transfer", - "source_mapping": { - "start": 504, - "length": 203, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3_transfer(address)" - } - } - } - } - ], - "description": "C.bad3_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#24)\n", - "markdown": "[C.bad3_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L23", - "id": "5afb93bf3ba0c95d60e0f21547c13aba7fe5b7f22df69d8405c8c701d7e7fae7", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 730, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 22, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.call{value: msg.value}()", - "source_mapping": { - "start": 772, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4_call", - "source_mapping": { - "start": 711, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4_call(address)" - } - } - } - } - ], - "description": "C.bad4_call(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call{value: msg.value}() (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#29)\n", - "markdown": "[C.bad4_call(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call{value: msg.value}()](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L28", - "id": "a7cc8d499df4abc336e824829e21282bf675383376d3a8503991fb66c158fb33", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "addr", - "source_mapping": { - "start": 401, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 26, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - }, - { - "type": "node", - "name": "addr.transfer(msg.value)", - "source_mapping": { - "start": 443, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_transfer", - "source_mapping": { - "start": 378, - "length": 122, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 19, - 20, - 21 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2_transfer(address)" - } - } - } - } - ], - "description": "C.bad2_transfer(address).addr (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#20)\n", - "markdown": "[C.bad2_transfer(address).addr](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L19", - "id": "d2328d61a9a38239f4d1b59c12b409f399408cd478a6603207e9fe645a13d03f", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "variable", - "name": "new_owner", - "source_mapping": { - "start": 149, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 27, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - }, - { - "type": "node", - "name": "owner = new_owner", - "source_mapping": { - "start": 188, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0_set_owner", - "source_mapping": { - "start": 125, - "length": 108, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 2049, - "filename_relative": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0_set_owner(address)" - } - } - } - } - ], - "description": "C.bad0_set_owner(address).new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#11)\n", - "markdown": "[C.bad0_set_owner(address).new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/missing-zero-check/0.7.6/missing_zero_address_validation.sol#L10", - "id": "fa1b673ca923bd1e66e6af3aacc82cef33b264cebf753032dbee23be1f62645e", - "check": "missing-zero-check", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json deleted file mode 100644 index 430a11319..000000000 --- a/tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol.0.4.25.MsgValueInLoop.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[i]] += msg.value", - "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L5-L9", - "id": "3874d3c7006d6d7671320db653fcc2dd0ef0fd9c1337c4c509670839ad4046a2", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[j]] += msg.value", - "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L21-L27", - "id": "3a3cc8fae7c0d90880077b656ffaca0ddfd90bf9fc0763cd3d17e6151e935541", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - }, - { - "type": "node", - "name": "balances[a] += msg.value", - "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - } - } - } - ], - "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.4.25/msg_value_loop.sol#L17-L19", - "id": "4bffc492aeda82de77a2d9ab055133609e03c430266919d983a7e46b85e4eeba", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json deleted file mode 100644 index 968ded84f..000000000 --- a/tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol.0.5.16.MsgValueInLoop.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[j]] += msg.value", - "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L21-L27", - "id": "1b4d9d1f725152eee13a5269b97a8443297f7f598051bfc4f67e93e02c12f165", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - }, - { - "type": "node", - "name": "balances[a] += msg.value", - "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - } - } - } - ], - "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L17-L19", - "id": "406d8b51b71b115c08b097999756740459200deeb3c12901b301f32611f1b330", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[i]] += msg.value", - "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.5.16/msg_value_loop.sol#L5-L9", - "id": "8e4fef885c77d029459f90c7aff4b459dce05adc08b96fb80ce821611c9280d6", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json deleted file mode 100644 index 01e99cd49..000000000 --- a/tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol.0.6.11.MsgValueInLoop.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - }, - { - "type": "node", - "name": "balances[a] += msg.value", - "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - } - } - } - ], - "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L17-L19", - "id": "097df3a5df3bcbc6783595f78fab5791b2cd9413acabcb0aa5694ff7d4309261", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[i]] += msg.value", - "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L5-L9", - "id": "3a08148f1a55375f90c551e5841d47f4846720e07afa57707753a76e727adef7", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[j]] += msg.value", - "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.6.11/msg_value_loop.sol#L21-L27", - "id": "78e8f933f8386fd2534f6fcf4908da3ac17d4362c1e605f31471eee0cc6ca833", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json deleted file mode 100644 index 21f59fbda..000000000 --- a/tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol.0.7.6.MsgValueInLoop.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - }, - { - "type": "node", - "name": "balances[a] += msg.value", - "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - } - } - } - ], - "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L17-L19", - "id": "565d76d19b082213e2aa31539b92593aede0e05d05828605c676e92609fbf8a2", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[j]] += msg.value", - "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L21-L27", - "id": "a711edee77437e7c35f4fa394c4fab613c39c581565149c7c82539481218e16c", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[i]] += msg.value", - "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.7.6/msg_value_loop.sol#L5-L9", - "id": "fe6437a4c09b3dec514d996c7f6668d90b5ca1a73a8480d553e484952c24d34b", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json b/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json deleted file mode 100644 index 46158ce52..000000000 --- a/tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol.0.8.0.MsgValueInLoop.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - }, - { - "type": "node", - "name": "balances[a] += msg.value", - "source_mapping": { - "start": 478, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2_internal", - "source_mapping": { - "start": 425, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2_internal(address)" - } - } - } - } - ], - "description": "C.bad2_internal(address) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#17-19) use msg.value in a loop: balances[a] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#18)\n", - "markdown": "[C.bad2_internal(address)](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19) use msg.value in a loop: [balances[a] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L17-L19", - "id": "093432027e9375993ba8dd36a6e36399dd18201c491d84b7e8810d06d4837141", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[j]] += msg.value", - "source_mapping": { - "start": 694, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 17, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 515, - "length": 245, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address[])" - } - } - } - } - ], - "description": "C.bad3(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#21-27) use msg.value in a loop: balances[receivers[j]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#24)\n", - "markdown": "[C.bad3(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27) use msg.value in a loop: [balances[receivers[j]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L21-L27", - "id": "7028c125d1fea9be89c5b58a4bd84c0f92c8c69ac05389c95f9a68d145130861", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - }, - { - "type": "node", - "name": "balances[receivers[i]] += msg.value", - "source_mapping": { - "start": 188, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 13, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 61, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 763, - "filename_relative": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad(address[])" - } - } - } - } - ], - "description": "C.bad(address[]) (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#5-9) use msg.value in a loop: balances[receivers[i]] += msg.value (tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#7)\n", - "markdown": "[C.bad(address[])](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9) use msg.value in a loop: [balances[receivers[i]] += msg.value](tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/msg-value-loop/0.8.0/msg_value_loop.sol#L5-L9", - "id": "fb7f5216a245e3c793c726ea4bbfbf4e2b6a769f99304efee6f8e2ab505280c3", - "check": "msg-value-loop", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json b/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json deleted file mode 100644 index ff4e9a248..000000000 --- a/tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol.0.4.22.MultipleConstructorSchemes.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 29, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - }, - { - "type": "function", - "name": "A", - "source_mapping": { - "start": 77, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "A()" - } - } - ], - "description": "A (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#1-14) contains multiple constructors in the same contract:\n\t- A.constructor() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#3-5)\n\t- A.A() (tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#6-8)\n", - "markdown": "[A](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14) contains multiple constructors in the same contract:\n\t- [A.constructor()](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L3-L5)\n\t- [A.A()](tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L6-L8)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/multiple-constructors/0.4.22/multiple_constructor_schemes.sol#L1-L14", - "id": "704cdb1c05e919913c22befaf077b9585bc75e31b5033fa46c930ad82dc6852e", - "check": "multiple-constructors", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json deleted file mode 100644 index b89371032..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol.0.4.25.NamingConvention.json +++ /dev/null @@ -1,1372 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "struct", - "name": "test", - "source_mapping": { - "start": 229, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "structure", - "convention": "CapWords" - } - } - ], - "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L14-L16", - "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69", - "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L69", - "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68", - "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Var_One", - "source_mapping": { - "start": 185, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L11", - "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "MY_other_CONSTANT", - "source_mapping": { - "start": 143, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable_constant", - "convention": "UPPER_CASE_WITH_UNDERSCORES" - } - } - ], - "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L9", - "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - }, - "additional_fields": { - "target": "contract", - "convention": "CapWords" - } - } - ], - "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L3-L48", - "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "enum", - "name": "numbers", - "source_mapping": { - "start": 79, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "enum", - "convention": "CapWords" - } - } - ], - "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L6", - "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_used", - "source_mapping": { - "start": 794, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 33, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 766, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59, - 60 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L59", - "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_myPublicVar", - "source_mapping": { - "start": 741, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L56", - "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "event_", - "source_mapping": { - "start": 335, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "event_(uint256)" - }, - "additional_fields": { - "target": "event", - "convention": "CapWords" - } - } - ], - "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L23", - "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L68", - "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "CantDo", - "source_mapping": { - "start": 591, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "CantDo()" - }, - "additional_fields": { - "target": "modifier", - "convention": "mixedCase" - } - } - ], - "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L41-L43", - "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "GetOne", - "source_mapping": { - "start": 440, - "length": 75, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "GetOne()" - }, - "additional_fields": { - "target": "function", - "convention": "mixedCase" - } - } - ], - "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L30-L33", - "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "l", - "source_mapping": { - "start": 900, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L67", - "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Number2", - "source_mapping": { - "start": 551, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 35, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setInt", - "source_mapping": { - "start": 521, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setInt(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.4.25/naming_convention.sol#L35", - "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.4.25/no_warning_for_public_constants.sol.0.4.25.NamingConvention.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json deleted file mode 100644 index 12a853f5c..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol.0.5.16.NamingConvention.json +++ /dev/null @@ -1,1372 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "struct", - "name": "test", - "source_mapping": { - "start": 229, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "structure", - "convention": "CapWords" - } - } - ], - "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L14-L16", - "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69", - "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L69", - "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68", - "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Var_One", - "source_mapping": { - "start": 185, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L11", - "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "MY_other_CONSTANT", - "source_mapping": { - "start": 143, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable_constant", - "convention": "UPPER_CASE_WITH_UNDERSCORES" - } - } - ], - "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L9", - "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - }, - "additional_fields": { - "target": "contract", - "convention": "CapWords" - } - } - ], - "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L3-L48", - "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "enum", - "name": "numbers", - "source_mapping": { - "start": 79, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "enum", - "convention": "CapWords" - } - } - ], - "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L6", - "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_used", - "source_mapping": { - "start": 794, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 33, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 766, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59, - 60 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L59", - "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_myPublicVar", - "source_mapping": { - "start": 741, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L56", - "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "event_", - "source_mapping": { - "start": 335, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "event_(uint256)" - }, - "additional_fields": { - "target": "event", - "convention": "CapWords" - } - } - ], - "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L23", - "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L68", - "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "CantDo", - "source_mapping": { - "start": 591, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "CantDo()" - }, - "additional_fields": { - "target": "modifier", - "convention": "mixedCase" - } - } - ], - "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L41-L43", - "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "GetOne", - "source_mapping": { - "start": 440, - "length": 75, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "GetOne()" - }, - "additional_fields": { - "target": "function", - "convention": "mixedCase" - } - } - ], - "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L30-L33", - "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "l", - "source_mapping": { - "start": 900, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L67", - "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Number2", - "source_mapping": { - "start": 551, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 35, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setInt", - "source_mapping": { - "start": 521, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setInt(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.5.16/naming_convention.sol#L35", - "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.5.16/no_warning_for_public_constants.sol.0.5.16.NamingConvention.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json deleted file mode 100644 index 49d7f52ec..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol.0.6.11.NamingConvention.json +++ /dev/null @@ -1,1372 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "struct", - "name": "test", - "source_mapping": { - "start": 229, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "structure", - "convention": "CapWords" - } - } - ], - "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L14-L16", - "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69", - "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L69", - "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68", - "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Var_One", - "source_mapping": { - "start": 185, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L11", - "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "MY_other_CONSTANT", - "source_mapping": { - "start": 143, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable_constant", - "convention": "UPPER_CASE_WITH_UNDERSCORES" - } - } - ], - "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L9", - "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - }, - "additional_fields": { - "target": "contract", - "convention": "CapWords" - } - } - ], - "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L3-L48", - "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "enum", - "name": "numbers", - "source_mapping": { - "start": 79, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "enum", - "convention": "CapWords" - } - } - ], - "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L6", - "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_used", - "source_mapping": { - "start": 794, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 33, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 766, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59, - 60 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L59", - "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_myPublicVar", - "source_mapping": { - "start": 741, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L56", - "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "event_", - "source_mapping": { - "start": 335, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "event_(uint256)" - }, - "additional_fields": { - "target": "event", - "convention": "CapWords" - } - } - ], - "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L23", - "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L68", - "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "CantDo", - "source_mapping": { - "start": 591, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "CantDo()" - }, - "additional_fields": { - "target": "modifier", - "convention": "mixedCase" - } - } - ], - "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L41-L43", - "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "GetOne", - "source_mapping": { - "start": 440, - "length": 75, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "GetOne()" - }, - "additional_fields": { - "target": "function", - "convention": "mixedCase" - } - } - ], - "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L30-L33", - "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "l", - "source_mapping": { - "start": 900, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L67", - "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Number2", - "source_mapping": { - "start": 551, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 35, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setInt", - "source_mapping": { - "start": 521, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setInt(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.6.11/naming_convention.sol#L35", - "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.6.11/no_warning_for_public_constants.sol.0.6.11.NamingConvention.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json deleted file mode 100644 index 97332650a..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol.0.7.6.NamingConvention.json +++ /dev/null @@ -1,1372 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "struct", - "name": "test", - "source_mapping": { - "start": 229, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "structure", - "convention": "CapWords" - } - } - ], - "description": "Struct naming.test (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#14-16) is not in CapWords\n", - "markdown": "Struct [naming.test](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L14-L16) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L14-L16", - "id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is not in mixedCase\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69", - "id": "12df12bbda2059673d356e5c32ec4e8a037a3821c9fa42b831a9144437cb79f9", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "I", - "source_mapping": { - "start": 932, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.I (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#69) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.I](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L69", - "id": "2ac65aa5bb560436d64f16e164aaab90dbbf38d683bfdfdfb42eeb225fc51759", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is not in mixedCase\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68", - "id": "2de986dda91f7c7e3a51470aa43abfa2c6fd363b742d1bbd38d5287ae179b83a", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Var_One", - "source_mapping": { - "start": 185, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable naming.Var_One (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#11) is not in mixedCase\n", - "markdown": "Variable [naming.Var_One](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L11) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L11", - "id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "MY_other_CONSTANT", - "source_mapping": { - "start": 143, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable_constant", - "convention": "UPPER_CASE_WITH_UNDERSCORES" - } - } - ], - "description": "Constant naming.MY_other_CONSTANT (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "markdown": "Constant [naming.MY_other_CONSTANT](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L9", - "id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - }, - "additional_fields": { - "target": "contract", - "convention": "CapWords" - } - } - ], - "description": "Contract naming (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#3-48) is not in CapWords\n", - "markdown": "Contract [naming](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L3-L48) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L3-L48", - "id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "enum", - "name": "numbers", - "source_mapping": { - "start": 79, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "enum", - "convention": "CapWords" - } - } - ], - "description": "Enum naming.numbers (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#6) is not in CapWords\n", - "markdown": "Enum [naming.numbers](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L6) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L6", - "id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_used", - "source_mapping": { - "start": 794, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59 - ], - "starting_column": 33, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 766, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 59, - 60 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter T.test(uint256,uint256)._used (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#59) is not in mixedCase\n", - "markdown": "Parameter [T.test(uint256,uint256)._used](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L59) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L59", - "id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "_myPublicVar", - "source_mapping": { - "start": 741, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 5, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "mixedCase" - } - } - ], - "description": "Variable T._myPublicVar (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#56) is not in mixedCase\n", - "markdown": "Variable [T._myPublicVar](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L56) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L56", - "id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "event_", - "source_mapping": { - "start": 335, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "event_(uint256)" - }, - "additional_fields": { - "target": "event", - "convention": "CapWords" - } - } - ], - "description": "Event namingevent_(uint256) (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#23) is not in CapWords\n", - "markdown": "Event [namingevent_(uint256)](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L23) is not in CapWords\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L23", - "id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "O", - "source_mapping": { - "start": 916, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.O (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#68) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.O](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L68", - "id": "b341001642225c62eae76fef9879c80003b3134b3bc627d9b1912ebcd190304b", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "CantDo", - "source_mapping": { - "start": 591, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "CantDo()" - }, - "additional_fields": { - "target": "modifier", - "convention": "mixedCase" - } - } - ], - "description": "Modifier naming.CantDo() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#41-43) is not in mixedCase\n", - "markdown": "Modifier [naming.CantDo()](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L41-L43) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L41-L43", - "id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "GetOne", - "source_mapping": { - "start": 440, - "length": 75, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "GetOne()" - }, - "additional_fields": { - "target": "function", - "convention": "mixedCase" - } - } - ], - "description": "Function naming.GetOne() (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#30-33) is not in mixedCase\n", - "markdown": "Function [naming.GetOne()](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L30-L33) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L30-L33", - "id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "l", - "source_mapping": { - "start": 900, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 67 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "T", - "source_mapping": { - "start": 692, - "length": 253, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ], - "starting_column": 1, - "ending_column": 2 - } - } - }, - "additional_fields": { - "target": "variable", - "convention": "l_O_I_should_not_be_used" - } - } - ], - "description": "Variable T.l (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#67) is single letter l, O, or I, which should not be used\n", - "markdown": "Variable [T.l](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L67) is single letter l, O, or I, which should not be used\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L67", - "id": "cb8668afe6ed1284c935ac95f8f9cb1407f96226fe741e7310d104d5f10a0fc6", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "Number2", - "source_mapping": { - "start": 551, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35 - ], - "starting_column": 35, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "setInt", - "source_mapping": { - "start": 521, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "naming", - "source_mapping": { - "start": 28, - "length": 642, - "filename_relative": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "setInt(uint256,uint256)" - } - } - }, - "additional_fields": { - "target": "parameter", - "convention": "mixedCase" - } - } - ], - "description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#35) is not in mixedCase\n", - "markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L35) is not in mixedCase\n", - "first_markdown_element": "tests/e2e/detectors/test_data/naming-convention/0.7.6/naming_convention.sol#L35", - "id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad", - "check": "naming-convention", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json b/tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/naming-convention/0.7.6/no_warning_for_public_constants.sol.0.7.6.NamingConvention.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json deleted file mode 100644 index 0761b2488..000000000 --- a/tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol.0.4.25.ConstantPragma.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.4.24", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.4", - ".24" - ] - } - }, - { - "type": "pragma", - "name": "^0.4.25", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.4", - ".25" - ] - } - } - ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- ^0.4.24 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#1)\n\t- ^0.4.25 (tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.4.24', '^0.4.25']\n\t- [^0.4.24](tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#L1)\n\t- [^0.4.25](tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.25.sol#L1)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.4.25/pragma.0.4.24.sol#L1", - "id": "346aaa435d432d40cf79b02d73faab579d8543fad3d1166da4ce14fe08207281", - "check": "pragma", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json deleted file mode 100644 index 74590cf5f..000000000 --- a/tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol.0.5.16.ConstantPragma.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.5.15", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.5", - ".15" - ] - } - }, - { - "type": "pragma", - "name": "^0.5.16", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.5", - ".16" - ] - } - } - ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- ^0.5.15 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#1)\n\t- ^0.5.16 (tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.5.15', '^0.5.16']\n\t- [^0.5.15](tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#L1)\n\t- [^0.5.16](tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.16.sol#L1)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.5.16/pragma.0.5.15.sol#L1", - "id": "8719cceac46e48000519ed201bfc4b5614e74d18e3a2bee5eaef780e4c781b8b", - "check": "pragma", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json deleted file mode 100644 index 6a9fb98b7..000000000 --- a/tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol.0.6.11.ConstantPragma.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.6.10", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.6", - ".10" - ] - } - }, - { - "type": "pragma", - "name": "^0.6.11", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.6", - ".11" - ] - } - } - ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- ^0.6.10 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#1)\n\t- ^0.6.11 (tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.6.10', '^0.6.11']\n\t- [^0.6.10](tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#L1)\n\t- [^0.6.11](tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.11.sol#L1)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.6.11/pragma.0.6.10.sol#L1", - "id": "008f981322580b1555b5ff7f437a225ad8edec5f3f663e9cb3b67edf9f1330fc", - "check": "pragma", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json b/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json deleted file mode 100644 index fe1c878f8..000000000 --- a/tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol.0.7.6.ConstantPragma.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.7.5", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.7", - ".5" - ] - } - }, - { - "type": "pragma", - "name": "^0.7.6", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.7", - ".6" - ] - } - } - ], - "description": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- ^0.7.5 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#1)\n\t- ^0.7.6 (tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol#1)\n", - "markdown": "Different versions of Solidity are used:\n\t- Version used: ['^0.7.5', '^0.7.6']\n\t- [^0.7.5](tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#L1)\n\t- [^0.7.6](tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.6.sol#L1)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/pragma/0.7.6/pragma.0.7.5.sol#L1", - "id": "cc4121efef895d7909b1f1b353bf8e99df737389afbe71ace29e78d9a71f3100", - "check": "pragma", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json b/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json deleted file mode 100644 index 1706185bc..000000000 --- a/tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol.0.8.2.ProtectedVariables.json +++ /dev/null @@ -1,400 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "buggy", - "source_mapping": { - "start": 938, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Internal", - "source_mapping": { - "start": 742, - "length": 331, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "buggy()" - } - }, - { - "type": "function", - "name": "onlyOwner", - "source_mapping": { - "start": 844, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Internal", - "source_mapping": { - "start": 742, - "length": 331, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "onlyOwner()" - } - }, - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 822, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 38 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Internal", - "source_mapping": { - "start": 742, - "length": 331, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "Internal.buggy() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#47-49) should have Internal.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#42-45) to protect Internal.owner (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#38)\n", - "markdown": "[Internal.buggy()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L47-L49) should have [Internal.onlyOwner()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L42-L45) to protect [Internal.owner](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L38)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L47-L49", - "id": "347d5dbdb03710066bc29d7772156fe5ff3d3371fa4eee4839ee221a1d0de0a4", - "check": "protected-vars", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "set_not_protected", - "source_mapping": { - "start": 653, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyAndWrite", - "source_mapping": { - "start": 55, - "length": 685, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "set_not_protected()" - } - }, - { - "type": "function", - "name": "onlyOwner", - "source_mapping": { - "start": 210, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyAndWrite", - "source_mapping": { - "start": 55, - "length": 685, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "onlyOwner()" - } - }, - { - "type": "variable", - "name": "external_contract", - "source_mapping": { - "start": 184, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyAndWrite", - "source_mapping": { - "start": 55, - "length": 685, - "filename_relative": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "ReentrancyAndWrite.set_not_protected() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#31-33) should have ReentrancyAndWrite.onlyOwner() (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#11-14) to protect ReentrancyAndWrite.external_contract (tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#9)\n", - "markdown": "[ReentrancyAndWrite.set_not_protected()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L31-L33) should have [ReentrancyAndWrite.onlyOwner()](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L11-L14) to protect [ReentrancyAndWrite.external_contract](tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/protected-vars/0.8.2/comment.sol#L31-L33", - "id": "3f3bc8c8a9b3e23482f47f1133aceaed81c2c781c6aaf25656a8e578c9f6cb0e", - "check": "protected-vars", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json b/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json deleted file mode 100644 index e3801df68..000000000 --- a/tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol.0.4.25.PublicMappingNested.json +++ /dev/null @@ -1,68 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "testMapping", - "source_mapping": { - "start": 265, - "length": 47, - "filename_relative": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 5, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Bug", - "source_mapping": { - "start": 138, - "length": 345, - "filename_relative": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Bug.testMapping (tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#14) is a public mapping with nested variables\n", - "markdown": "[Bug.testMapping](tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14) is a public mapping with nested variables\n", - "first_markdown_element": "tests/e2e/detectors/test_data/public-mappings-nested/0.4.25/public_mappings_nested.sol#L14", - "id": "100978112524def620b003331f34b2b51eb78cae6f7eb2793d9671b4b7bb858a", - "check": "public-mappings-nested", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json deleted file mode 100644 index 0005e2a15..000000000 --- a/tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol.0.4.25.RedundantStatements.json +++ /dev/null @@ -1,715 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "bool", - "source_mapping": { - "start": 155, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L7", - "id": "57e17d7362f3d5c310d21eb6b73eccb845f8a3c52a308d15af3c118b5e2caaef", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 257, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L12", - "id": "5e4c867c59bdbc386d4fd243aef79d957c92f8a40729b744096cd96989807c28", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "test", - "source_mapping": { - "start": 287, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L14", - "id": "635ad486b2aae108ff617146f22695a532e84c44a184bb609ececa744c91a497", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L8", - "id": "bcab82b93dc328a381dbd74ce83caf2ae429382bff9e0b482f9355bfcf029f98", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 141, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L6", - "id": "c191e3e65af68e401996255ec75e9a8e990dc47205f36a49476bcd01e5753f79", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "assert(bool)", - "source_mapping": { - "start": 271, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.4.25/redundant_statements.sol#L13", - "id": "f36295bb4a93b2cd2940d435d827e82bb21d70801d2b71ce1c84585153112f9f", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json deleted file mode 100644 index 47268f265..000000000 --- a/tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol.0.5.16.RedundantStatements.json +++ /dev/null @@ -1,715 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "assert(bool)", - "source_mapping": { - "start": 271, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L13", - "id": "31b46936fd424a2a3125e5ce6408b20bedc3c6ca5c5c97e406c1cf43abae4bb4", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "bool", - "source_mapping": { - "start": 155, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L7", - "id": "3581fd720d146e690bb9ecfc0c1b059395cf4d46f69d7d2f802d8a9194b723ae", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 257, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L12", - "id": "6f6a44cfade49a4a2e0310135fe0e83df0083b76c60daaf6d0864386d3485d6a", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 141, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L6", - "id": "7e36dd98fc04d79e6f5f56f606fc38f3c20d1bada8eed5daa2695deadebbb361", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L8", - "id": "9c1239d64c216412cd356b9c4b8104baeb9f4f6dd110533b2392be410e68f946", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "test", - "source_mapping": { - "start": 287, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.5.16/redundant_statements.sol#L14", - "id": "b940d13da80841d1d7760c8b7b0bfcaf1c9eec6f8b7cd94b490db5efddf36cb7", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json deleted file mode 100644 index 7bd6500d4..000000000 --- a/tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol.0.6.11.RedundantStatements.json +++ /dev/null @@ -1,715 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 257, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L12", - "id": "36a2feec0c5aa47c304207db4aa17181086bd3131720656fbf8619924e303a45", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "bool", - "source_mapping": { - "start": 155, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L7", - "id": "5e31be7e1558881cfd23ee013c1a7e1a51e9842a404133611755432d612169c4", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L8", - "id": "7b15d1a763fe71def2468433dab345b5922d874a86bd2a2dfefbb3a08d11317c", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 141, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L6", - "id": "839e1eef447843981948ab172340fecb29ba20c989a3762a404d6b0f9f4b68ae", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "test", - "source_mapping": { - "start": 287, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L14", - "id": "8738d80351735e9090a90f8970736608a17979b06f654baf3dcfdc8ebed4f53a", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "assert(bool)", - "source_mapping": { - "start": 271, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.6.11/redundant_statements.sol#L13", - "id": "ab124cc40de408c2d4f0eb055ed421f31c65ccc9de11edb8761de84c3557fdb1", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json b/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json deleted file mode 100644 index 797bdda30..000000000 --- a/tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol.0.7.6.RedundantStatements.json +++ /dev/null @@ -1,715 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 257, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L12", - "id": "17a6cb4a5c342753c8636d8af683b1d2b94e3a36dd05a19cee2336bc3a1b2f47", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "test", - "source_mapping": { - "start": 287, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"test (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[test](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L14", - "id": "4634ed5f2678141abaf73e85411ed25985f3916ad0db348b6923a15a43fabf32", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "assert(bool)", - "source_mapping": { - "start": 271, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 209, - "length": 109, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "test()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"assert(bool) (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[assert(bool)](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L13", - "id": "6971a500d684a342208eff16cc1f07abbf73f3ba86dbe7386570bdd8e489fc91", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 169, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"RedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L8", - "id": "6a2742272d79ff94d551adebc3a936866e15bc20c3c75238555435365118d382", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "bool", - "source_mapping": { - "start": 155, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"bool (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[bool](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L7", - "id": "703f162d107fded4a6f9e8f1fc0e49529967c9bfdfb5fc401568e6f48d417926", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "node", - "name": "uint256", - "source_mapping": { - "start": 141, - "length": 4, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "constructor()" - } - } - } - }, - { - "type": "contract", - "name": "RedundantStatementsContract", - "source_mapping": { - "start": 66, - "length": 254, - "filename_relative": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 0 - } - } - ], - "description": "Redundant expression \"uint256 (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#3-18)\n", - "markdown": "Redundant expression \"[uint256](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L3-L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/redundant-statements/0.7.6/redundant_statements.sol#L6", - "id": "f21ab6ffea325fedf7d0c0548b552dde439e1859af0cc8811a5a0be792663502", - "check": "redundant-statements", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json deleted file mode 100644 index b44c22620..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol.0.4.25.ReentrancyBenign.json +++ /dev/null @@ -1,4814 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "success = target.call()", - "source_mapping": { - "start": 495, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "success = target.call()", - "source_mapping": { - "start": 495, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 561, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 448, - "length": 132, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#23-27):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#24)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#26)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L24)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L23-L27", - "id": "4ed6ddcc769b17b5a3737f7dafe5651bf4e5ffcbb574810d743cc09a0a703ede", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 322, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "! (msg.sender.call())", - "source_mapping": { - "start": 359, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 13, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 322, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! (msg.sender.call())", - "source_mapping": { - "start": 359, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 13, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 322, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 423, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 322, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#16-21):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#20)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L20)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L16-L21", - "id": "5c7237b5a2a9e1ad35da0f99ff70fbc418319a1c1218cededb9d75f99699a46a", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1008, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1040, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1417, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1364, - "length": 91, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1008, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1040, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1417, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1364, - "length": 91, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1071, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 961, - "length": 170, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 46, - 47, - 48, - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1501, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1461, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#46-51):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#47)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#48)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#49)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L47)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L48)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L49)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L46-L51", - "id": "8dc3fae54d7cfaf76e3de349febceb751f085423bdbf7a76eb5c86a70f3129aa", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 877, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 877, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1329, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1271, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 59, - 60, - 61 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 909, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 830, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1501, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1461, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#40-44):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#41)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#60)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#42)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L41)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L60)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L42)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L40-L44", - "id": "b410e9af3db5ba2a1c0d8d55f35a64120d2a15c45099ffae2f35cfe003a3fed3", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "success = target.call()", - "source_mapping": { - "start": 633, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 700, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 13, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "success = target.call()", - "source_mapping": { - "start": 633, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 9, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 700, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 13, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 748, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 586, - "length": 238, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#29-38):\n\tExternal calls:\n\t- success = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#30)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#32)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#33)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38):\n\tExternal calls:\n\t- [success = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L30)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L32)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L33)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L29-L38", - "id": "bd8ab3b91a42e51b2da0716331de604898a69d29ac9100eb95681a5a7d3f9c47", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1184, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1417, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1364, - "length": 91, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 63, - 64, - 65 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1215, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1137, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1501, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1461, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 67, - 68, - 69 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 25, - "length": 1510, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#53-57):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#54)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#64)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#55)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#68)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L54)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L64)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L55)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L68)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.4.25/reentrancy-benign.sol#L53-L57", - "id": "fbfcc9d6336f34b7ee7673a85a38d0a012fa736517fa999c118486aa4313a4d2", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json deleted file mode 100644 index 6b0fc0322..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol.0.5.16.ReentrancyBenign.json +++ /dev/null @@ -1,4855 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 965, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L41-L45", - "id": "154bd4fe54b895374ec9300b7d7423b290821b97d48ce594f13efb080ccc070a", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 471, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L16-L22", - "id": "244b43e33a9621616a0f97aece5e591ba53563a2178624d90cb056422988824d", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1242, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1273, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L54-L58", - "id": "949d5134548c079237abef52d623106e7e3e777d1eb4d89f47f64ae5025ec29a", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1127, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L47-L52", - "id": "a2ff3f26be25c48b10b66f8121b35b0674cfb38309a1f6ba3788852f13e7d166", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 543, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 543, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 612, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L24-L28", - "id": "e7250d07da93991bb8f92df7697c008c36ec785214f7836c4f1c65b37e175309", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 804, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 13, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.5.16/reentrancy-benign.sol#L30-L39", - "id": "efb5fc52ea69459d644e5074daf0207502967de06e5b3cf876ae71a564d72d98", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json deleted file mode 100644 index 3911f2b0b..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol.0.6.11.ReentrancyBenign.json +++ /dev/null @@ -1,4855 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1064, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1096, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1127, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1017, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#49)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L49)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L47-L52", - "id": "29c069745bf3c12b90fd74cf138f7300e077b078dae17e285fd528aaacb7a149", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 933, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1387, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1329, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 965, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 886, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L41-L45", - "id": "56fad41e825218b4ea67b8f40f78becc7db05f1f9b3a79becede85b495be20f8", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 684, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call.value(1000)()", - "source_mapping": { - "start": 754, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 804, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 13, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 637, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#31)\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L31)\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L30-L39", - "id": "61f1a1c0a75fec4cea251d935d09700f433422562fac941b49c4060ca13c43cb", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 543, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 543, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 612, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 496, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L24-L28", - "id": "6b0541d8db6bf0dc2835d8b19d09afa8f5e7b214d0e4c05b6aca0c625316fb19", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1242, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call.value(1)()", - "source_mapping": { - "start": 1477, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1424, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1273, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1195, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1563, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1523, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#55)\n\t\t- address(target).call.value(1)() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L55)\n\t\t- [address(target).call.value(1)()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L54-L58", - "id": "7ffffc2f58dc006f2f543c361a4eb944fe1d6e58f52717b6770745e29593a91b", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 368, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 471, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 335, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1569, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.6.11/reentrancy-benign.sol#L16-L22", - "id": "d36181ad9dbae588e0ab4f4689a9675a8afd9cf3f8a5f49ab6fbe3ee46016712", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json b/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json deleted file mode 100644 index 301b60756..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol.0.7.6.ReentrancyBenign.json +++ /dev/null @@ -1,4855 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 926, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 926, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 42 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 958, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 43 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 879, - "length": 125, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad3(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#41-45):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#42)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#43)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L42)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L43)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L41-L45", - "id": "57b2ad2ee5a85c48036d5e0a8e7b7d301256c1f692d6ff140516dd1ebaf4ae7d", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 677, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call{value: 1000}()", - "source_mapping": { - "start": 747, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 677, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call{value: 1000}()", - "source_mapping": { - "start": 747, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 13, - "ending_column": 49 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 797, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 13, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 630, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad2(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#30-39):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#31)\n\t- address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tExternal calls sending eth:\n\t- address(target).call{value: 1000}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#33)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#34)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L31)\n\t- [address(target).call{value: 1000}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tExternal calls sending eth:\n\t- [address(target).call{value: 1000}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L33)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L34)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L30-L39", - "id": "8ffb53b6e7211ef3840068c9971a02666e80ffd49661cfe391abe977b26696fc", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1235, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 55 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call{value: 1}()", - "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1266, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad5", - "source_mapping": { - "start": 1188, - "length": 128, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad5(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#54-58):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#55)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#56)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L55)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L56)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L54-L58", - "id": "9ea4f876bdd562affa79eb256f24f2b4d36f6c488107451a724e247a01051dc6", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1057, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1089, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "address(target).call{value: 1}()", - "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "externalCaller(target)", - "source_mapping": { - "start": 1057, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 48 - ], - "starting_column": 9, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call()", - "source_mapping": { - "start": 1380, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 61 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "externalCaller", - "source_mapping": { - "start": 1322, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 60, - 61, - 62 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "externalCaller(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "ethSender(address(0))", - "source_mapping": { - "start": 1089, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 49 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "address(target).call{value: 1}()", - "source_mapping": { - "start": 1470, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "ethSender", - "source_mapping": { - "start": 1417, - "length": 93, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "ethSender(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "varChanger()", - "source_mapping": { - "start": 1120, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 50 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 1010, - "length": 172, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 47, - 48, - 49, - 50, - 51, - 52 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad4(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - }, - { - "type": "node", - "name": "anotherVariableToChange ++", - "source_mapping": { - "start": 1556, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 69 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "varChanger", - "source_mapping": { - "start": 1516, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 68, - 69, - 70 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "varChanger()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "anotherVariableToChange" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#47-52):\n\tExternal calls:\n\t- externalCaller(target) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#48)\n\t\t- address(target).call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#61)\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#49)\n\t\t- address(target).call{value: 1}() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#65)\n\tState variables written after the call(s):\n\t- varChanger() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#50)\n\t\t- anotherVariableToChange ++ (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#69)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52):\n\tExternal calls:\n\t- [externalCaller(target)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L48)\n\t\t- [address(target).call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L61)\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L49)\n\t\t- [address(target).call{value: 1}()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L65)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L50)\n\t\t- [anotherVariableToChange ++](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L69)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L47-L52", - "id": "d8ad62c290ebe6f6eba92d21f77ea938d9d713700e72d0eca1a007d9526a226e", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 536, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = target.call()", - "source_mapping": { - "start": 536, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 605, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 489, - "length": 135, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#24-28):\n\tExternal calls:\n\t- (success) = target.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#25)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#27)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28):\n\tExternal calls:\n\t- [(success) = target.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L25)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L27)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L24-L28", - "id": "dc9321d7bad1a38e7ec848d79ac28b7ebdeb537afe5a753d05308f9575acaa53", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 361, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 361, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "counter += 1", - "source_mapping": { - "start": 464, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 21 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 328, - "length": 155, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyBenign", - "source_mapping": { - "start": 28, - "length": 1562, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "counter" - } - } - ], - "description": "Reentrancy in ReentrancyBenign.bad0() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#16-22):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#17)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#21)\n", - "markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L17)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-benign/0.7.6/reentrancy-benign.sol#L16-L22", - "id": "df1508d1cd0b80a365e0b0d1c11033a99ff078a905637351fb74c53292a98582", - "check": "reentrancy-benign", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json deleted file mode 100644 index 325c82826..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol.0.4.25.ReentrancyEth.json +++ /dev/null @@ -1,9301 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - }, - { - "type": "node", - "name": "extraBalance.balance >= extraBalance.accumulatedInput()", - "source_mapping": { - "start": 11704, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 321 - ], - "starting_column": 17, - "ending_column": 72 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "extraBalance.payOut(address(this),extraBalance.accumulatedInput())", - "source_mapping": { - "start": 11777, - "length": 67, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 322 - ], - "starting_column": 17, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.call.value(weiGiven[msg.sender])()", - "source_mapping": { - "start": 11893, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 325 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.call.value(weiGiven[msg.sender])()", - "source_mapping": { - "start": 11893, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 325 - ], - "starting_column": 17, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "weiGiven[msg.sender] = 0", - "source_mapping": { - "start": 12111, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 329 - ], - "starting_column": 17, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "refund", - "source_mapping": { - "start": 11531, - "length": 635, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TokenCreation", - "source_mapping": { - "start": 10437, - "length": 2342, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "refund()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "weiGiven" - } - } - ], - "description": "Reentrancy in TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332):\n\tExternal calls:\n\t- extraBalance.balance >= extraBalance.accumulatedInput() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#321)\n\t- extraBalance.payOut(address(this),extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#322)\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325)\n\tExternal calls sending eth:\n\t- msg.sender.call.value(weiGiven[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#325)\n\tState variables written after the call(s):\n\t- weiGiven[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#329)\n\tTokenCreationInterface.weiGiven (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#251) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#318-332)\n", - "markdown": "Reentrancy in [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332):\n\tExternal calls:\n\t- [extraBalance.balance >= extraBalance.accumulatedInput()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L321)\n\t- [extraBalance.payOut(address(this),extraBalance.accumulatedInput())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L322)\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tExternal calls sending eth:\n\t- [msg.sender.call.value(weiGiven[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L325)\n\tState variables written after the call(s):\n\t- [weiGiven[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L329)\n\t[TokenCreationInterface.weiGiven](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L251) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L318-L332", - "id": "a37226350e559b6bdb008757f6a66b89aab30256fc993719662092bb46b60b6c", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - }, - { - "type": "node", - "name": "! isRecipientAllowed(p.recipient)", - "source_mapping": { - "start": 33981, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 881 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())", - "source_mapping": { - "start": 43091, - "length": 289, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1159, - 1160, - 1161, - 1162, - 1163 - ], - "starting_column": 13, - "ending_column": 71 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "isRecipientAllowed", - "source_mapping": { - "start": 42994, - "length": 457, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "isRecipientAllowed(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! p.recipient.call.value(p.amount)(_transactionData)", - "source_mapping": { - "start": 35109, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 915 - ], - "starting_column": 17, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! p.creator.send(p.proposalDeposit)", - "source_mapping": { - "start": 34718, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 904 - ], - "starting_column": 17, - "ending_column": 51 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! p.recipient.call.value(p.amount)(_transactionData)", - "source_mapping": { - "start": 35109, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 915 - ], - "starting_column": 17, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "p.proposalPassed = true", - "source_mapping": { - "start": 35198, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 918 - ], - "starting_column": 13, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "closeProposal(_proposalID)", - "source_mapping": { - "start": 35817, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 933 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "p.open = false", - "source_mapping": { - "start": 36121, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 944 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "closeProposal", - "source_mapping": { - "start": 35940, - "length": 202, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 940, - 941, - 942, - 943, - 944, - 945 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "closeProposal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "rewardToken[address(this)] += p.amount", - "source_mapping": { - "start": 35698, - "length": 38, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 928 - ], - "starting_column": 17, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "rewardToken" - } - }, - { - "type": "node", - "name": "closeProposal(_proposalID)", - "source_mapping": { - "start": 35817, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 933 - ], - "starting_column": 9, - "ending_column": 35 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "sumOfProposalDeposits" - } - }, - { - "type": "node", - "name": "sumOfProposalDeposits -= p.proposalDeposit", - "source_mapping": { - "start": 36069, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 943 - ], - "starting_column": 13, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "closeProposal", - "source_mapping": { - "start": 35940, - "length": 202, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 940, - 941, - 942, - 943, - 944, - 945 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "closeProposal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "sumOfProposalDeposits" - } - }, - { - "type": "node", - "name": "totalRewardToken += p.amount", - "source_mapping": { - "start": 35754, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 929 - ], - "starting_column": 17, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "executeProposal", - "source_mapping": { - "start": 32955, - "length": 2978, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "executeProposal(uint256,bytes)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalRewardToken" - } - } - ], - "description": "Reentrancy in DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937):\n\tExternal calls:\n\t- ! isRecipientAllowed(p.recipient) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#881)\n\t\t- allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1159-1163)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915)\n\tExternal calls sending eth:\n\t- ! p.creator.send(p.proposalDeposit) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#904)\n\t- ! p.recipient.call.value(p.amount)(_transactionData) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#915)\n\tState variables written after the call(s):\n\t- p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#918)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- p.open = false (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#944)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#820-850)\n\t- rewardToken[address(this)] += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#928)\n\tDAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410) can be used in cross function reentrancies:\n\t- DAO.changeProposalDeposit(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1139-1146)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1174-1178)\n\t- DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.rewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#410)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- closeProposal(_proposalID) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#933)\n\t\t- sumOfProposalDeposits -= p.proposalDeposit (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#943)\n\tDAOInterface.sumOfProposalDeposits (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#436) can be used in cross function reentrancies:\n\t- DAO.actualBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1169-1171)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#947-1020)\n\t- totalRewardToken += p.amount (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#929)\n\tDAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412) can be used in cross function reentrancies:\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.isRecipientAllowed(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1158-1167)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAOInterface.totalRewardToken (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#412)\n", - "markdown": "Reentrancy in [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937):\n\tExternal calls:\n\t- [! isRecipientAllowed(p.recipient)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L881)\n\t\t- [allowedRecipients[_recipient] || (_recipient == address(extraBalance) && totalRewardToken > extraBalance.accumulatedInput())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1159-L1163)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tExternal calls sending eth:\n\t- [! p.creator.send(p.proposalDeposit)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L904)\n\t- [! p.recipient.call.value(p.amount)(_transactionData)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L915)\n\tState variables written after the call(s):\n\t- [p.proposalPassed = true](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L918)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [closeProposal(_proposalID)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [p.open = false](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L944)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L820-L850)\n\t- [rewardToken[address(this)] += p.amount](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L928)\n\t[DAOInterface.rewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L410) can be used in cross function reentrancies:\n\t- [DAO.changeProposalDeposit(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1139-L1146)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [DAO.newContract(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.rewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L410)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [closeProposal(_proposalID)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L933)\n\t\t- [sumOfProposalDeposits -= p.proposalDeposit](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L943)\n\t[DAOInterface.sumOfProposalDeposits](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L436) can be used in cross function reentrancies:\n\t- [DAO.actualBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1169-L1171)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [totalRewardToken += p.amount](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L929)\n\t[DAOInterface.totalRewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L412) can be used in cross function reentrancies:\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.isRecipientAllowed(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1158-L1167)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAOInterface.totalRewardToken](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L412)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/DAO.sol#L853-L937", - "id": "dfa25972a34c3e5c0b03b9fb544740df3670f21201a99162a9070515009edad3", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json deleted file mode 100644 index ffe13665a..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol.0.4.25.ReentrancyEth.json +++ /dev/null @@ -1,851 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance_nested", - "source_mapping": { - "start": 2465, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_nested()" - } - }, - { - "type": "node", - "name": "msg.sender.call.value(amount / 2)()", - "source_mapping": { - "start": 2620, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 77 - ], - "starting_column": 13, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_nested", - "source_mapping": { - "start": 2465, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_nested()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = 0", - "source_mapping": { - "start": 2667, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 78 - ], - "starting_column": 13, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_nested", - "source_mapping": { - "start": 2465, - "length": 246, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_nested()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80):\n\tExternal calls:\n\t- msg.sender.call.value(amount / 2)() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#77)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#78)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80):\n\tExternal calls:\n\t- [msg.sender.call.value(amount / 2)()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L77)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L78)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80", - "id": "02b13660e262b6ddcd87c831ffd6118ef52a3dd96eaea287f34310036f826ae5", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 656, - "length": 314, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - }, - { - "type": "node", - "name": "! (msg.sender.call.value(userBalance[msg.sender])())", - "source_mapping": { - "start": 839, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 13, - "ending_column": 66 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 656, - "length": 314, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = 0", - "source_mapping": { - "start": 936, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 656, - "length": 314, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 26, - "length": 2691, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31):\n\tExternal calls:\n\t- ! (msg.sender.call.value(userBalance[msg.sender])()) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#27)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#30)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#15-22)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#24-31)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#33-41)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#43-50)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#52-60)\n\t- Reentrancy.withdrawBalance_fixed_4() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#61-72)\n\t- Reentrancy.withdrawBalance_nested() (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#74-80)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31):\n\tExternal calls:\n\t- [! (msg.sender.call.value(userBalance[msg.sender])())](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L27)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L30)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L15-L22)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L33-L41)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L43-L50)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L52-L60)\n\t- [Reentrancy.withdrawBalance_fixed_4()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L61-L72)\n\t- [Reentrancy.withdrawBalance_nested()](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L74-L80)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy.sol#L24-L31", - "id": "7dffb7128bc810a3e2e53da77fd0d3e3a6764329bd89d4ff96aa7aaa195627b9", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json deleted file mode 100644 index 1a719e67b..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json +++ /dev/null @@ -1,440 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 639, - "length": 278, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 185, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - }, - { - "type": "node", - "name": "require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))", - "source_mapping": { - "start": 742, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 639, - "length": 278, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 185, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.transfer(eth_deposed[token][msg.sender])", - "source_mapping": { - "start": 681, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 639, - "length": 278, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 185, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "eth_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 829, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 639, - "length": 278, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 185, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "eth_deposed" - } - }, - { - "type": "node", - "name": "token_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 873, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 639, - "length": 278, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 185, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "token_deposed" - } - } - ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.4.25/reentrancy_indirect.sol#L22-L29", - "id": "17e756180e486527f07db2b6b810136a45beec8f495e04d32e653cbb02e186b1", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json deleted file mode 100644 index aeb67cc4d..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol.0.5.16.ReentrancyEth.json +++ /dev/null @@ -1,761 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()", - "source_mapping": { - "start": 882, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = 0", - "source_mapping": { - "start": 1026, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33", - "id": "c298e6c5caff5538e11c6f1ca18d56cf9d54d0ce9aa411be080ecfd0c4c54d4b", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call.value(amount)()", - "source_mapping": { - "start": 2084, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = amount", - "source_mapping": { - "start": 2183, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy.sol#L55-L64", - "id": "f9420c25fc0bce840e980bfd4c13aabe760a260cbcca4218873c9c536f0b15ad", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json deleted file mode 100644 index 3ddbba506..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol.0.5.16.ReentrancyEth.json +++ /dev/null @@ -1,440 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 671, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 202, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - }, - { - "type": "node", - "name": "require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))", - "source_mapping": { - "start": 782, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 671, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 202, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.transfer(eth_deposed[token][msg.sender])", - "source_mapping": { - "start": 721, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 671, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 202, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "eth_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 869, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 671, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 202, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "eth_deposed" - } - }, - { - "type": "node", - "name": "token_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 913, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 671, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 202, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "token_deposed" - } - } - ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.5.16/reentrancy_indirect.sol#L22-L29", - "id": "2ce339e4f254ce27e1272b4f5f3d005a0614016e20463d51415ba8f842565052", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json deleted file mode 100644 index 36070aee3..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol.0.6.11.ReentrancyEth.json +++ /dev/null @@ -1,761 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1843, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call.value(amount)()", - "source_mapping": { - "start": 2088, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1843, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = amount", - "source_mapping": { - "start": 2187, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1843, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64", - "id": "26d55b7569799393de981b4e1294f2f6d2d3e0f7b8d700fe40ab98c5940bbf93", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 707, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()", - "source_mapping": { - "start": 886, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 707, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = 0", - "source_mapping": { - "start": 1030, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 707, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2213, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy.sol#L25-L33", - "id": "c5f80f289a9e72f1134ab9af607176df7d12bdab173b8d66523f55eb387053a8", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json deleted file mode 100644 index da679a2c0..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol.0.6.11.ReentrancyEth.json +++ /dev/null @@ -1,440 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - }, - { - "type": "node", - "name": "require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))", - "source_mapping": { - "start": 807, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.transfer(eth_deposed[token][msg.sender])", - "source_mapping": { - "start": 746, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "eth_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 894, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "eth_deposed" - } - }, - { - "type": "node", - "name": "token_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 938, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "token_deposed" - } - } - ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.6.11/reentrancy_indirect.sol#L22-L29", - "id": "875860f8833c21533ebd104610793a7dce7464b0b69206111568e4fad87b1296", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json deleted file mode 100644 index f2ea87885..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol.0.7.6.ReentrancyEth.json +++ /dev/null @@ -1,761 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call{value: amount}()", - "source_mapping": { - "start": 2084, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 60 - ], - "starting_column": 9, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = amount", - "source_mapping": { - "start": 2183, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 62 - ], - "starting_column": 13, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance_fixed_3", - "source_mapping": { - "start": 1839, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance_fixed_3()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#60)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#62)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L60)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L62)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64", - "id": "7060c71a1bebcb2af4c41dcd75540db5066eb8daf1e22d70e2ddfe0b346ebc97", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - }, - { - "type": "node", - "name": "(ret,mem) = msg.sender.call{value: userBalance[msg.sender]}()", - "source_mapping": { - "start": 882, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 9, - "ending_column": 90 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "userBalance[msg.sender] = 0", - "source_mapping": { - "start": 1026, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawBalance", - "source_mapping": { - "start": 703, - "length": 357, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 28, - "length": 2209, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawBalance()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "userBalance" - } - } - ], - "description": "Reentrancy in Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call{value: userBalance[msg.sender]}() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#28)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#32)\n\tReentrancy.userBalance (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#4) can be used in cross function reentrancies:\n\t- Reentrancy.addToBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#10-12)\n\t- Reentrancy.constructor() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#15-23)\n\t- Reentrancy.getBalance(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#6-8)\n\t- Reentrancy.withdrawBalance() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#25-33)\n\t- Reentrancy.withdrawBalance_fixed() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#35-44)\n\t- Reentrancy.withdrawBalance_fixed_2() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#46-53)\n\t- Reentrancy.withdrawBalance_fixed_3() (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#55-64)\n", - "markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call{value: userBalance[msg.sender]}()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L28)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L32)\n\t[Reentrancy.userBalance](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L4) can be used in cross function reentrancies:\n\t- [Reentrancy.addToBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L10-L12)\n\t- [Reentrancy.constructor()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L15-L23)\n\t- [Reentrancy.getBalance(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L6-L8)\n\t- [Reentrancy.withdrawBalance()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33)\n\t- [Reentrancy.withdrawBalance_fixed()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L35-L44)\n\t- [Reentrancy.withdrawBalance_fixed_2()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L46-L53)\n\t- [Reentrancy.withdrawBalance_fixed_3()](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L55-L64)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy.sol#L25-L33", - "id": "cec0a7af1ea200527f6cae87c979e9d4847cd646fa9aff3e4d60e2fb52ac9974", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json deleted file mode 100644 index 93dc2049f..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol.0.7.6.ReentrancyEth.json +++ /dev/null @@ -1,440 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - }, - { - "type": "node", - "name": "require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))", - "source_mapping": { - "start": 807, - "length": 76, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 9, - "ending_column": 85 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "msg.sender.transfer(eth_deposed[token][msg.sender])", - "source_mapping": { - "start": 746, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 9, - "ending_column": 60 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "eth_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 894, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "eth_deposed" - } - }, - { - "type": "node", - "name": "token_deposed[token][msg.sender] = 0", - "source_mapping": { - "start": 938, - "length": 36, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 45 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 696, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reentrancy", - "source_mapping": { - "start": 227, - "length": 758, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "token_deposed" - } - } - ], - "description": "Reentrancy in Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#26)\n\tReentrancy.eth_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#10) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_eth(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#13-15)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n\t- token_deposed[token][msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#27)\n\tReentrancy.token_deposed (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#11) can be used in cross function reentrancies:\n\t- Reentrancy.deposit_token(address,uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#17-20)\n\t- Reentrancy.withdraw(address) (tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#22-29)\n", - "markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L26)\n\t[Reentrancy.eth_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L10) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_eth(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L13-L15)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n\t- [token_deposed[token][msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L27)\n\t[Reentrancy.token_deposed](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L11) can be used in cross function reentrancies:\n\t- [Reentrancy.deposit_token(address,uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L17-L20)\n\t- [Reentrancy.withdraw(address)](tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.7.6/reentrancy_indirect.sol#L22-L29", - "id": "57b8ea5ef49cfc6c27d5a658eaf5d88d46f4158a7235777f2e37cb17590a57e4", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json deleted file mode 100644 index 627829853..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol.0.8.10.ReentrancyEth.json +++ /dev/null @@ -1,231 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 133, - "length": 194, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 534, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - }, - { - "type": "node", - "name": "Receiver(msg.sender).send_funds{value: amount}()", - "source_mapping": { - "start": 231, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 10, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 133, - "length": 194, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 534, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= amount", - "source_mapping": { - "start": 290, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 10, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 133, - "length": 194, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 534, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - } - ], - "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#10)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#11)\n\tTestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#6) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#8-12)\n\t- TestWithBug.withdrawFiltered(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#15-19)\n", - "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L10)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L11)\n\t[TestWithBug.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L6) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12)\n\t- [TestWithBug.withdrawFiltered(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L15-L19)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_filtered_comments.sol#L8-L12", - "id": "a39e8bc9ea5df1e8d350cd5043066f0d6db8cf3e3b6951385d51bfe675a1a654", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json b/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json deleted file mode 100644 index 52082ae94..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol.0.8.10.ReentrancyEth.json +++ /dev/null @@ -1,981 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugInternal", - "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - }, - { - "type": "node", - "name": "Receiver(msg.sender).send_funds{value: amount}()", - "source_mapping": { - "start": 1429, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 64 - ], - "starting_column": 10, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugInternal", - "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= amount", - "source_mapping": { - "start": 1488, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 65 - ], - "starting_column": 10, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 1320, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 62, - 63, - 64, - 65, - 66 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugInternal", - "source_mapping": { - "start": 1100, - "length": 698, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - } - ], - "description": "Reentrancy in TestWithBugInternal.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#62-66):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#64)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#65)\n\tTestWithBugInternal.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#52) can be used in cross function reentrancies:\n\t- TestWithBugInternal.withdraw_all_internal() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#72-76)\n", - "markdown": "Reentrancy in [TestWithBugInternal.withdraw_internal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L64)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L65)\n\t[TestWithBugInternal.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L52) can be used in cross function reentrancies:\n\t- [TestWithBugInternal.withdraw_all_internal()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L72-L76)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L62-L66", - "id": "4f446ae8b35f194e5708d12c386d122923fc4f63c17ee05d466b0aa69cd872fc", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 181, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - }, - { - "type": "node", - "name": "Receiver(msg.sender).send_funds{value: amount}()", - "source_mapping": { - "start": 292, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 10, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 181, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= amount", - "source_mapping": { - "start": 351, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 10, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 181, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBug", - "source_mapping": { - "start": 67, - "length": 506, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - } - ], - "description": "Reentrancy in TestWithBug.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#13-17):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#15)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#16)\n\tTestWithBug.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#7) can be used in cross function reentrancies:\n\t- TestWithBug.withdraw_all() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#19-23)\n", - "markdown": "Reentrancy in [TestWithBug.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L15)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L16)\n\t[TestWithBug.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L7) can be used in cross function reentrancies:\n\t- [TestWithBug.withdraw_all()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L19-L23)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L13-L17", - "id": "8b16f075685a85086648e20e2b9cc6b92f6acffd5aeb569fd7a12aac2e536c7d", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 2749, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestBugWithPublicVariable", - "source_mapping": { - "start": 2516, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - }, - { - "type": "node", - "name": "Receiver(msg.sender).send_funds{value: amount}()", - "source_mapping": { - "start": 2858, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 124 - ], - "starting_column": 10, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 2749, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestBugWithPublicVariable", - "source_mapping": { - "start": 2516, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= amount", - "source_mapping": { - "start": 2917, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 125 - ], - "starting_column": 10, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw_internal", - "source_mapping": { - "start": 2749, - "length": 205, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 122, - 123, - 124, - 125, - 126 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestBugWithPublicVariable", - "source_mapping": { - "start": 2516, - "length": 441, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw_internal(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - } - ], - "description": "Reentrancy in TestBugWithPublicVariable.withdraw_internal(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#122-126):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#124)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#125)\n\tTestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112) can be used in cross function reentrancies:\n\t- TestBugWithPublicVariable.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#112)\n", - "markdown": "Reentrancy in [TestBugWithPublicVariable.withdraw_internal(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L124)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L125)\n\t[TestBugWithPublicVariable.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112) can be used in cross function reentrancies:\n\t- [TestBugWithPublicVariable.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L112)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L122-L126", - "id": "a5e43c5bba73814bdd39f88d7edf362fca7cdb7efd0b81c8eade67ff4a0685bd", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 138, - 139, - 140, - 141, - 142 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugNonReentrantRead", - "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - }, - { - "type": "node", - "name": "Receiver(msg.sender).send_funds{value: amount}()", - "source_mapping": { - "start": 3200, - "length": 48, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 140 - ], - "starting_column": 10, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 138, - 139, - 140, - 141, - 142 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugNonReentrantRead", - "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= amount", - "source_mapping": { - "start": 3259, - "length": 30, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 141 - ], - "starting_column": 10, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdraw", - "source_mapping": { - "start": 3089, - "length": 207, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 138, - 139, - 140, - 141, - 142 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TestWithBugNonReentrantRead", - "source_mapping": { - "start": 2959, - "length": 629, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol", - "is_dependency": false, - "lines": [ - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdraw(uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - } - ], - "description": "Reentrancy in TestWithBugNonReentrantRead.withdraw(uint256) (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#138-142):\n\tExternal calls:\n\t- Receiver(msg.sender).send_funds{value: amount}() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#140)\n\tState variables written after the call(s):\n\t- balances[msg.sender] -= amount (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#141)\n\tTestWithBugNonReentrantRead.balances (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#132) can be used in cross function reentrancies:\n\t- TestWithBugNonReentrantRead.read() (tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#146-149)\n", - "markdown": "Reentrancy in [TestWithBugNonReentrantRead.withdraw(uint256)](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142):\n\tExternal calls:\n\t- [Receiver(msg.sender).send_funds{value: amount}()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L140)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] -= amount](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L141)\n\t[TestWithBugNonReentrantRead.balances](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L132) can be used in cross function reentrancies:\n\t- [TestWithBugNonReentrantRead.read()](tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L146-L149)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-eth/0.8.10/reentrancy_with_non_reentrant.sol#L138-L142", - "id": "b79d8012bf893f7647d07b05e004a8b921515338c9030856d8fff9d5d80f4bfc", - "check": "reentrancy-eth", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json deleted file mode 100644 index a297bb05e..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol.0.5.16.ReentrancyEvent.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - }, - { - "type": "node", - "name": "c.f()", - "source_mapping": { - "start": 120, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "E()", - "source_mapping": { - "start": 135, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - } - ], - "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.5.16/reentrancy-events.sol#L14-L17", - "id": "6c7667330a55c58c55cce9ae6835edb150459c2c5d86e40406978699fbdeaa11", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json deleted file mode 100644 index 721b54254..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol.0.6.11.ReentrancyEvent.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - }, - { - "type": "node", - "name": "c.f()", - "source_mapping": { - "start": 120, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "E()", - "source_mapping": { - "start": 135, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - } - ], - "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.6.11/reentrancy-events.sol#L14-L17", - "id": "57dfae738fee13bc099219197e91ba9d4baee9346b386d5e9789ff7210932775", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json b/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json deleted file mode 100644 index 1b4ea36ae..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol.0.7.6.ReentrancyEvent.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - }, - { - "type": "node", - "name": "c.f()", - "source_mapping": { - "start": 120, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "E()", - "source_mapping": { - "start": 135, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug", - "source_mapping": { - "start": 86, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 51, - "length": 193, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug(C)" - } - } - }, - "additional_fields": { - "underlying_type": "event" - } - } - ], - "description": "Reentrancy in Test.bug(C) (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#16)\n", - "markdown": "Reentrancy in [Test.bug(C)](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-events/0.7.6/reentrancy-events.sol#L14-L17", - "id": "eb179fcb7697d6ca861dc9623c9733389f70206ab7b0d7d8b2f3469a17a3ab7f", - "check": "reentrancy-events", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json deleted file mode 100644 index dc81e0f5d..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol.0.4.25.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,27535 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "retrieveDAOReward", - "source_mapping": { - "start": 39505, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "retrieveDAOReward(bool)" - } - }, - { - "type": "node", - "name": "reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender]", - "source_mapping": { - "start": 39789, - "length": 145, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1044, - 1045, - 1046 - ], - "starting_column": 9, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "retrieveDAOReward", - "source_mapping": { - "start": 39505, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "retrieveDAOReward(bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! DAOrewardAccount.payOut(dao.rewardAccount(),reward)", - "source_mapping": { - "start": 39977, - "length": 53, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1048 - ], - "starting_column": 17, - "ending_column": 70 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "retrieveDAOReward", - "source_mapping": { - "start": 39505, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "retrieveDAOReward(bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! DAOrewardAccount.payOut(dao,reward)", - "source_mapping": { - "start": 40100, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1052 - ], - "starting_column": 17, - "ending_column": 54 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "retrieveDAOReward", - "source_mapping": { - "start": 39505, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "retrieveDAOReward(bool)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "DAOpaidOut[msg.sender] += reward", - "source_mapping": { - "start": 40180, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1055 - ], - "starting_column": 9, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "retrieveDAOReward", - "source_mapping": { - "start": 39505, - "length": 735, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "retrieveDAOReward(bool)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "DAOpaidOut" - } - } - ], - "description": "Reentrancy in DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057):\n\tExternal calls:\n\t- reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1044-1046)\n\t- ! DAOrewardAccount.payOut(dao.rewardAccount(),reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1048)\n\t- ! DAOrewardAccount.payOut(dao,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1052)\n\tState variables written after the call(s):\n\t- DAOpaidOut[msg.sender] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1055)\n\tDAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423) can be used in cross function reentrancies:\n\t- DAOInterface.DAOpaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#423)\n\t- DAO.newContract(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1022-1034)\n\t- DAO.retrieveDAOReward(bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1037-1057)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n", - "markdown": "Reentrancy in [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057):\n\tExternal calls:\n\t- [reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1044-L1046)\n\t- [! DAOrewardAccount.payOut(dao.rewardAccount(),reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1048)\n\t- [! DAOrewardAccount.payOut(dao,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1052)\n\tState variables written after the call(s):\n\t- [DAOpaidOut[msg.sender] += reward](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1055)\n\t[DAOInterface.DAOpaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L423) can be used in cross function reentrancies:\n\t- [DAOInterface.DAOpaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L423)\n\t- [DAO.newContract(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1022-L1034)\n\t- [DAO.retrieveDAOReward(bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1037-L1057", - "id": "48ff761b454067eaeae40c5b71f220484bc0dbee9802f41176c9d09f362b1234", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - }, - { - "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", - "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1068, - 1069 - ], - "starting_column": 9, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", - "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1070 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "paidOut[_account] += reward", - "source_mapping": { - "start": 40779, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1072 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - } - ], - "description": "Reentrancy in DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074):\n\tExternal calls:\n\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- paidOut[_account] += reward (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1072)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074):\n\tExternal calls:\n\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [paidOut[_account] += reward](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1072)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074", - "id": "72166dde55a4b03eff9ca22972a9d44de7afd0f5976f9795dde31801a29f5ddb", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - }, - { - "type": "node", - "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", - "source_mapping": { - "start": 37159, - "length": 49, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 974 - ], - "starting_column": 13, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", - "source_mapping": { - "start": 44544, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1196 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createNewDAO", - "source_mapping": { - "start": 44427, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1194, - 1195, - 1196, - 1197 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createNewDAO(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "withdrawRewardFor(msg.sender)", - "source_mapping": { - "start": 38796, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1015 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", - "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1065 - ], - "starting_column": 13, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", - "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1068, - 1069 - ], - "starting_column": 9, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", - "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1070 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "balances[msg.sender] = 0", - "source_mapping": { - "start": 38912, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1017 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "paidOut[msg.sender] = 0", - "source_mapping": { - "start": 38946, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1018 - ], - "starting_column": 9, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "totalSupply -= balances[msg.sender]", - "source_mapping": { - "start": 38867, - "length": 35, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1016 - ], - "starting_column": 9, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "totalSupply" - } - } - ], - "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\t- withdrawRewardFor(msg.sender) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1015)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- balances[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1017)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- paidOut[msg.sender] = 0 (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1018)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n\t- totalSupply -= balances[msg.sender] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1016)\n\tTokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45) can be used in cross function reentrancies:\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.minQuorum(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1174-1178)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- TokenInterface.totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#45)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\t- [withdrawRewardFor(msg.sender)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1015)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [balances[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1017)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [paidOut[msg.sender] = 0](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1018)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n\t- [totalSupply -= balances[msg.sender]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1016)\n\t[TokenInterface.totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L45) can be used in cross function reentrancies:\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.minQuorum(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1174-L1178)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [TokenInterface.totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L45)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", - "id": "b5e0d89e8dfd1630d85dd7e57ea229d39c0c99b61d05b206ac600de851a9f8d4", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - }, - { - "type": "node", - "name": "p.splitData[0].newDAO = createNewDAO(_newCurator)", - "source_mapping": { - "start": 37159, - "length": 49, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 974 - ], - "starting_column": 13, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)", - "source_mapping": { - "start": 44544, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1196 - ], - "starting_column": 9, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "createNewDAO", - "source_mapping": { - "start": 44427, - "length": 198, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1194, - 1195, - 1196, - 1197 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "createNewDAO(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "p.splitData[0].splitBalance = actualBalance()", - "source_mapping": { - "start": 37456, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 981 - ], - "starting_column": 13, - "ending_column": 58 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "p.splitData[0].rewardToken = rewardToken[address(this)]", - "source_mapping": { - "start": 37515, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 982 - ], - "starting_column": 13, - "ending_column": 68 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "p.splitData[0].totalSupply = totalSupply", - "source_mapping": { - "start": 37584, - "length": 40, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 983 - ], - "starting_column": 13, - "ending_column": 53 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - }, - { - "type": "node", - "name": "p.proposalPassed = true", - "source_mapping": { - "start": 37638, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 984 - ], - "starting_column": 13, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "splitDAO", - "source_mapping": { - "start": 36148, - "length": 2849, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "splitDAO(uint256,address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "proposals" - } - } - ], - "description": "Reentrancy in DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020):\n\tExternal calls:\n\t- p.splitData[0].newDAO = createNewDAO(_newCurator) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#974)\n\t\t- daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1196)\n\tState variables written after the call(s):\n\t- p.splitData[0].splitBalance = actualBalance() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#981)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].rewardToken = rewardToken[address(this)] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#982)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.splitData[0].totalSupply = totalSupply (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#983)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- p.proposalPassed = true (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#984)\n\tDAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394) can be used in cross function reentrancies:\n\t- DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#702-726)\n\t- DAO.checkProposalCode(uint256,address,uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#809-817)\n\t- DAO.closeProposal(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#940-945)\n\t- DAO.executeProposal(uint256,bytes) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#853-937)\n\t- DAO.getNewDAOAddress(uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1204-1206)\n\t- DAO.isBlocked(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1208-1218)\n\t- DAO.newProposal(address,uint256,string,bytes,uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#741-806)\n\t- DAO.numberOfProposals() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1199-1202)\n\t- DAOInterface.proposals (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#394)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n", - "markdown": "Reentrancy in [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020):\n\tExternal calls:\n\t- [p.splitData[0].newDAO = createNewDAO(_newCurator)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L974)\n\t\t- [daoCreator.createDAO(_newCurator,0,0,now + splitExecutionPeriod)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1196)\n\tState variables written after the call(s):\n\t- [p.splitData[0].splitBalance = actualBalance()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L981)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].rewardToken = rewardToken[address(this)]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L982)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.splitData[0].totalSupply = totalSupply](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L983)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [p.proposalPassed = true](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L984)\n\t[DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394) can be used in cross function reentrancies:\n\t- [DAO.DAO(address,DAO_Creator,uint256,uint256,uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L702-L726)\n\t- [DAO.checkProposalCode(uint256,address,uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L809-L817)\n\t- [DAO.closeProposal(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L940-L945)\n\t- [DAO.executeProposal(uint256,bytes)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L853-L937)\n\t- [DAO.getNewDAOAddress(uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1204-L1206)\n\t- [DAO.isBlocked(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1208-L1218)\n\t- [DAO.newProposal(address,uint256,string,bytes,uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L741-L806)\n\t- [DAO.numberOfProposals()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1199-L1202)\n\t- [DAOInterface.proposals](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L394)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020", - "id": "d5c4fd83d69b85c498cf950e0fcb501bdd4b8860f67cef98ada5bfcf180ad881", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - }, - { - "type": "node", - "name": "! withdrawRewardFor(_from)", - "source_mapping": { - "start": 41890, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1118 - ], - "starting_column": 13, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", - "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1065 - ], - "starting_column": 13, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", - "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1068, - 1069 - ], - "starting_column": 9, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", - "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1070 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "transferFrom(_from,_to,_value)", - "source_mapping": { - "start": 41944, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1120 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[_to] += _amount", - "source_mapping": { - "start": 4393, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 120 - ], - "starting_column": 13, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 4127, - "length": 509, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[_from] -= _amount", - "source_mapping": { - "start": 4431, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 121 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFrom", - "source_mapping": { - "start": 4127, - "length": 509, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFrom(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "transferFrom(_from,_to,_value)", - "source_mapping": { - "start": 41944, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1120 - ], - "starting_column": 9, - "ending_column": 48 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferFromWithoutReward", - "source_mapping": { - "start": 41743, - "length": 247, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferFromWithoutReward(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_from] -= transferPaidOut", - "source_mapping": { - "start": 42279, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1133 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_to] += transferPaidOut", - "source_mapping": { - "start": 42322, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1134 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - } - ], - "description": "Reentrancy in DAO.transferFromWithoutReward(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1112-1121):\n\tExternal calls:\n\t- ! withdrawRewardFor(_from) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1118)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#120)\n\t\t- balances[_from] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#121)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transferFrom(_from,_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1120)\n\t\t- paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.transferFromWithoutReward(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121):\n\tExternal calls:\n\t- [! withdrawRewardFor(_from)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1118)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transferFrom(_from,_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [balances[_to] += _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L120)\n\t\t- [balances[_from] -= _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L121)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transferFrom(_from,_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1120)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1112-L1121", - "id": "e74ce16aec9de9f8c37762ef749b95f2cba0d27a1d386d41cf1ad708da41dc38", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "transferWithoutReward", - "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferWithoutReward(address,uint256)" - } - }, - { - "type": "node", - "name": "! getMyReward()", - "source_mapping": { - "start": 41288, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1092 - ], - "starting_column": 13, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferWithoutReward", - "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferWithoutReward(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]", - "source_mapping": { - "start": 40461, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1065 - ], - "starting_column": 13, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]", - "source_mapping": { - "start": 40581, - "length": 116, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1068, - 1069 - ], - "starting_column": 9, - "ending_column": 103 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "! rewardAccount.payOut(_account,reward)", - "source_mapping": { - "start": 40711, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1070 - ], - "starting_column": 13, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "withdrawRewardFor", - "source_mapping": { - "start": 40361, - "length": 473, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "withdrawRewardFor(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "transfer(_to,_value)", - "source_mapping": { - "start": 41331, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1094 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferWithoutReward", - "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferWithoutReward(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[msg.sender] -= _amount", - "source_mapping": { - "start": 3920, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 101 - ], - "starting_column": 13, - "ending_column": 44 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 3765, - "length": 356, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "balances[_to] += _amount", - "source_mapping": { - "start": 3965, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 102 - ], - "starting_column": 13, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 3765, - "length": 356, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Token", - "source_mapping": { - "start": 3440, - "length": 1550, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "balances" - } - }, - { - "type": "node", - "name": "transfer(_to,_value)", - "source_mapping": { - "start": 41331, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1094 - ], - "starting_column": 9, - "ending_column": 37 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferWithoutReward", - "source_mapping": { - "start": 41191, - "length": 175, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1091, - 1092, - 1093, - 1094, - 1095 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferWithoutReward(address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_from] -= transferPaidOut", - "source_mapping": { - "start": 42279, - "length": 33, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1133 - ], - "starting_column": 9, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - }, - { - "type": "node", - "name": "paidOut[_to] += transferPaidOut", - "source_mapping": { - "start": 42322, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1134 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "transferPaidOut", - "source_mapping": { - "start": 41997, - "length": 384, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DAO", - "source_mapping": { - "start": 28296, - "length": 17108, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol", - "is_dependency": false, - "lines": [ - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - 882, - 883, - 884, - 885, - 886, - 887, - 888, - 889, - 890, - 891, - 892, - 893, - 894, - 895, - 896, - 897, - 898, - 899, - 900, - 901, - 902, - 903, - 904, - 905, - 906, - 907, - 908, - 909, - 910, - 911, - 912, - 913, - 914, - 915, - 916, - 917, - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039, - 1040, - 1041, - 1042, - 1043, - 1044, - 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084, - 1085, - 1086, - 1087, - 1088, - 1089, - 1090, - 1091, - 1092, - 1093, - 1094, - 1095, - 1096, - 1097, - 1098, - 1099, - 1100, - 1101, - 1102, - 1103, - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128, - 1129, - 1130, - 1131, - 1132, - 1133, - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transferPaidOut(address,address,uint256)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "paidOut" - } - } - ], - "description": "Reentrancy in DAO.transferWithoutReward(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1091-1095):\n\tExternal calls:\n\t- ! getMyReward() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1092)\n\t\t- (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1065)\n\t\t- reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1068-1069)\n\t\t- ! rewardAccount.payOut(_account,reward) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1070)\n\tState variables written after the call(s):\n\t- transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- balances[msg.sender] -= _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#101)\n\t\t- balances[_to] += _amount (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#102)\n\tTokenInterface.balances (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#41) can be used in cross function reentrancies:\n\t- Token.balanceOf(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#95-97)\n\t- TokenCreation.createTokenProxy(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#299-316)\n\t- TokenCreation.refund() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#318-332)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- Token.transfer(address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#99-108)\n\t- Token.transferFrom(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#110-128)\n\t- DAO.vote(uint256,bool) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#820-850)\n\t- transfer(_to,_value) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1094)\n\t\t- paidOut[_from] -= transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1133)\n\t\t- paidOut[_to] += transferPaidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1134)\n\tDAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426) can be used in cross function reentrancies:\n\t- DAOInterface.paidOut (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#426)\n\t- DAO.splitDAO(uint256,address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#947-1020)\n\t- DAO.transferPaidOut(address,address,uint256) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1124-1136)\n\t- DAO.withdrawRewardFor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#1064-1074)\n", - "markdown": "Reentrancy in [DAO.transferWithoutReward(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095):\n\tExternal calls:\n\t- [! getMyReward()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1092)\n\t\t- [(balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1065)\n\t\t- [reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1068-L1069)\n\t\t- [! rewardAccount.payOut(_account,reward)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1070)\n\tState variables written after the call(s):\n\t- [transfer(_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [balances[msg.sender] -= _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L101)\n\t\t- [balances[_to] += _amount](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L102)\n\t[TokenInterface.balances](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L41) can be used in cross function reentrancies:\n\t- [Token.balanceOf(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L95-L97)\n\t- [TokenCreation.createTokenProxy(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L299-L316)\n\t- [TokenCreation.refund()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L318-L332)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [Token.transfer(address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L99-L108)\n\t- [Token.transferFrom(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L110-L128)\n\t- [DAO.vote(uint256,bool)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L820-L850)\n\t- [transfer(_to,_value)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1094)\n\t\t- [paidOut[_from] -= transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1133)\n\t\t- [paidOut[_to] += transferPaidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1134)\n\t[DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426) can be used in cross function reentrancies:\n\t- [DAOInterface.paidOut](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L426)\n\t- [DAO.splitDAO(uint256,address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L947-L1020)\n\t- [DAO.transferPaidOut(address,address,uint256)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1124-L1136)\n\t- [DAO.withdrawRewardFor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1064-L1074)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/DAO.sol#L1091-L1095", - "id": "fe6ba50f9fe5accbf51b8c33af2714aa9b9fa83b40d676c814d9a1ac19978352", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 6e78e3971..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol.0.4.25.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,890 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "! (msg.sender.call())", - "source_mapping": { - "start": 391, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 13, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 455, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22", - "id": "933549b102ad856713f3d95a954fc77ec57f7ccf0f4d9de708f391cf094a8d65", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "success = msg.sender.call()", - "source_mapping": { - "start": 560, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 43 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 630, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "! (msg.sender.call())", - "source_mapping": { - "start": 391, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 13, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 630, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 28 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 485, - "length": 158, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 455, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 326, - "length": 153, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 776, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#26)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- ! (msg.sender.call()) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#28)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#21)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#16-22)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#24-29)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#31-37)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L26)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [! (msg.sender.call())](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L28)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L21)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L16-L22)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L31-L37)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.4.25/reentrancy-write.sol#L24-L29", - "id": "ac39ee6d5de5be925fc4f4038716ee18f762da9548d34786a3b925a9dcd6dbd3", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/no-reentrancy-staticcall.sol.0.5.16.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 404362007..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol.0.5.16.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,913 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 500, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23", - "id": "41ceea104e666924bd8048ba89d761acca8408a3b82d77831baa2a6d0a4130f0", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 605, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 678, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 678, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 500, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#27)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L27)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.5.16/reentrancy-write.sol#L25-L30", - "id": "bd0b8f5e977c52e5cb17a3fdac3796ef55f28259d65be4b970be40d3f0f7ad6f", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/no-reentrancy-staticcall.sol.0.6.11.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 9615749d6..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol.0.6.11.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,913 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 500, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23", - "id": "aa356923ac753b7b9c7a5225d800da7f8d0c9cd9648155ab65a841ef2ea03cee", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 605, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 678, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 397, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 678, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 530, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 500, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 336, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 28, - "length": 859, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#27)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#18)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#29)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#22)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#4) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#16-23)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#25-30)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#7-14)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#32-39)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L27)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L18)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L29)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L22)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L4) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L16-L23)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L7-L14)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L32-L39)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.6.11/reentrancy-write.sol#L25-L30", - "id": "aef958ec49549d90b692c58d3d6a19ef5c4bcc3ff6ceed7dfd7d01210601d847", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/no-reentrancy-staticcall.sol.0.7.6.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 3105cb9a1..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol.0.7.6.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,913 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 383, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 444, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 383, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 547, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 383, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27", - "id": "0c8d97025b73e61d9f897d2b4603c5ad3ca69bad370573776bc0a89982824b9d", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 577, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 652, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 31 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 577, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 725, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 577, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls" - } - }, - { - "type": "node", - "name": "(success) = msg.sender.call()", - "source_mapping": { - "start": 444, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 383, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "external_calls_sending_eth" - } - }, - { - "type": "node", - "name": "bad0()", - "source_mapping": { - "start": 725, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 577, - "length": 161, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 29, - 30, - 31, - 32, - 33, - 34 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(address)" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - }, - { - "type": "node", - "name": "notCalled = false", - "source_mapping": { - "start": 547, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 383, - "length": 188, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ReentrancyWrite", - "source_mapping": { - "start": 82, - "length": 852, - "filename_relative": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - }, - "additional_fields": { - "underlying_type": "variables_written", - "variable_name": "notCalled" - } - } - ], - "description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34):\n\tExternal calls:\n\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#31)\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- (success) = msg.sender.call() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#22)\n\tState variables written after the call(s):\n\t- bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#33)\n\t\t- notCalled = false (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#26)\n\tReentrancyWrite.notCalled (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#8) can be used in cross function reentrancies:\n\t- ReentrancyWrite.bad0() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#20-27)\n\t- ReentrancyWrite.bad1(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#29-34)\n\t- ReentrancyWrite.constructor(address) (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#11-18)\n\t- ReentrancyWrite.good() (tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#36-43)\n", - "markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34):\n\tExternal calls:\n\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L31)\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [(success) = msg.sender.call()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L22)\n\tState variables written after the call(s):\n\t- [bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L33)\n\t\t- [notCalled = false](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L26)\n\t[ReentrancyWrite.notCalled](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L8) can be used in cross function reentrancies:\n\t- [ReentrancyWrite.bad0()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L20-L27)\n\t- [ReentrancyWrite.bad1(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34)\n\t- [ReentrancyWrite.constructor(address)](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L11-L18)\n\t- [ReentrancyWrite.good()](tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L36-L43)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reentrancy-no-eth/0.7.6/reentrancy-write.sol#L29-L34", - "id": "3eb741c75e4861743cc201d67e160aca27ccda58b8cb3bb6dc5e7df7511ca159", - "check": "reentrancy-no-eth", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json b/tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/reentrancy-no-eth/0.8.2/comment.sol.0.8.2.ReentrancyReadBeforeWritten.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json b/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json deleted file mode 100644 index 1e736582d..000000000 --- a/tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol.0.4.21.ReusedBaseConstructor.json +++ /dev/null @@ -1,712 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 295, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "C", - "source_mapping": { - "start": 176, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 155, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "C(uint256)" - } - }, - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 295, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 222, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor C.C(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [C.C(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", - "id": "085dceba8f0b37580e72952eafe1368bf0d09f10c2f44c0b6ff53ad7e72f92b1", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 295, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "A", - "source_mapping": { - "start": 34, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "A(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 155, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 88, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", - "id": "14d6bffb3f1849cfebb7156cb797315fd01ac83911a1261650f702792f4db830", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "F", - "source_mapping": { - "start": 375, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "A", - "source_mapping": { - "start": 34, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "A(uint256)" - } - }, - { - "type": "contract", - "name": "F", - "source_mapping": { - "start": 375, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 88, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[F](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L33-L38", - "id": "71e08d0e5c44bbc2671e014018a6333bd92db7380a85732bf2d17aa5500f6434", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 222, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "A", - "source_mapping": { - "start": 34, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "A(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 155, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 88, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24", - "id": "7436d3215ee6260f9a4b2f4697fa242225ad3f10e30bfbd162679a5e3fa48f10", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 155, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "A", - "source_mapping": { - "start": 34, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "A(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 155, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 88, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) gives base constructor A.A(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) gives base constructor [A.A(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L14-L18", - "id": "d2847fcb309e0ee45dfb303bf749123bbebee692a080ae6a718a76ef785ae8d2", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 295, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "B", - "source_mapping": { - "start": 109, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 88, - "length": 65, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "B(uint256)" - } - }, - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 295, - "length": 77, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 222, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) gives base constructor B.B(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) gives base constructor [B.B(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.21/reused_base_constructor.sol#L26-L30", - "id": "e79d62c434ba85788dd5087e4994bb136be6b9e8a55e8057b0e30c9b0436abdc", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json b/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json deleted file mode 100644 index 0e7952479..000000000 --- a/tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json +++ /dev/null @@ -1,1009 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 34, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", - "id": "1f85bf19873eaee39a8f703b0c783aa86e34c91fad5556ee831eb7c6adcfdb77", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 34, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18", - "id": "2d9d2b1b6d2540f86fd909f9766e128da573e659f40a50835cc9adef3c4dbee8", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 178, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [C.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", - "id": "33b16377cf3026b60d644e79d92682e6e626d7ad6598387440c9b20fd8aa44fe", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [B.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", - "id": "5f3b188e7d6c737684f829c3fde96f739cd502b4aba8f3f6e3ceab7decffa618", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 178, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) gives base constructor C.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) gives base constructor [C.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24", - "id": "b579da8996b6a1a35169bcae74ad8126c68fb0a1819d3977cea3e0e295ff2d5c", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "F", - "source_mapping": { - "start": 380, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 34, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "F", - "source_mapping": { - "start": 380, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36, - 37, - 38 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[F](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L33-L38", - "id": "b74eb2b11af7a004b623d28b035228963f09aed588c95efed636021f426c5cdc", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 110, - "length": 43, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 225, - "length": 72, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor B.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) contract definition\n\t- From E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#20-24) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [B.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) contract definition\n\t- From [E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L20-L24) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", - "id": "ee7d44329ffb81dc06e2a2f1b3a166a5115287a1175b32cf828b57479afbc4ae", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "contract", - "name": "E", - "source_mapping": { - "start": 299, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 34, - "length": 51, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 87, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor(uint256)" - } - }, - { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 157, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 89, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "E (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#26-30) gives base constructor A.constructor(uint256) (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#8-12) constructor definition\n", - "markdown": "[E](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30) gives base constructor [A.constructor(uint256)](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L8-L12) constructor definition\n", - "first_markdown_element": "tests/e2e/detectors/test_data/reused-constructor/0.4.25/reused_base_constructor.sol#L26-L30", - "id": "f5c86955c15d44fe9471680d12d37843a15ba934cbb124786cadab0919ea68d1", - "check": "reused-constructor", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json deleted file mode 100644 index f274accdf..000000000 --- a/tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol.0.4.25.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.4.25/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.4.25/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", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.4.25/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", - "first_markdown_element": "", - "id": "bb5125457e77dc20d54c832822ee40ec1ea295724482eeb47b96476dd9fee7eb", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json deleted file mode 100644 index 6bd7bd699..000000000 --- a/tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol.0.5.16.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.5.16/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.5.16/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", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.5.16/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", - "first_markdown_element": "", - "id": "721d2f64c7a644099d98238b8af0172c84722cf1702ed29537d0fc701f0d8d88", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json deleted file mode 100644 index 3dbac6de8..000000000 --- a/tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol.0.6.11.RightToLeftOverride.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 96, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.6.11/right_to_left_override.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 18, - "ending_column": 21 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.6.11/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", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.6.11/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", - "first_markdown_element": "", - "id": "47d896764ded59ddc17f6ded902e9826d1688fd3af59985d184d30fa6b5e6976", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json b/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json deleted file mode 100644 index 0dc779146..000000000 --- a/tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol.0.8.0.RightToLeftOverride.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 336, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 14, - "ending_column": 17 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "8de5d775d29d586295f60570ff608aef85da40156380c246eada316dbaf94db5", - "check": "rtlo", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 348, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 26, - "ending_column": 29 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "98f55f22798ec4805d32c89953fc385f02f1e69ebfc22bde91d64c5676098a6a", - "check": "rtlo", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "other", - "name": "rtlo-character", - "source_mapping": { - "start": 342, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 20, - "ending_column": 23 - } - } - ], - "description": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "markdown": "tests/e2e/detectors/test_data/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", - "first_markdown_element": "", - "id": "fa1214e29688e5f4e8b915ec0e80bb5ffe0bae47468d588398bc209ed990cdfc", - "check": "rtlo", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json deleted file mode 100644 index d9f03c8a3..000000000 --- a/tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 92, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 46, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 27, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 0, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L2)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.4.25/shadowing_abstract.sol#L7", - "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", - "check": "shadowing-abstract", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json deleted file mode 100644 index 038141f6b..000000000 --- a/tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol.0.5.16.ShadowingAbstractDetection.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 92, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 46, - "length": 63, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 27, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 0, - "length": 44, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L2)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.5.16/shadowing_abstract.sol#L7", - "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", - "check": "shadowing-abstract", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json deleted file mode 100644 index a42cbaf6a..000000000 --- a/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol.0.7.5.ShadowingAbstractDetection.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "__gap", - "source_mapping": { - "start": 127, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 81, - "length": 73, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "__gap", - "source_mapping": { - "start": 51, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 24, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#7) shadows:\n\t- BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#3)\n", - "markdown": "[DerivedContract.__gap](tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L7) shadows:\n\t- [BaseContract.__gap](tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/public_gap_variable.sol#L7", - "id": "8f81b2b4b3285fe96f0b580cdd2144cc6cf6808d970ba68878b9901744069c4c", - "check": "shadowing-abstract", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json b/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/shadowing-abstract/0.7.5/shadowing_state_variable.sol.0.7.5.ShadowingAbstractDetection.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json b/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json deleted file mode 100644 index a9e1bc63f..000000000 --- a/tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json +++ /dev/null @@ -1,799 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "mutable", - "source_mapping": { - "start": 527, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 32 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Reserved", - "source_mapping": { - "start": 504, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "Reserved.mutable (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#32) (state variable) shadows built-in symbol\"\n", - "markdown": "[Reserved.mutable](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L32", - "id": "11840553a9e11623596d7a07275814e65a5b1d90277ae0e2954cd8ce74d6a6d2", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "ecrecover", - "source_mapping": { - "start": 170, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 122, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.ecrecover](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L11", - "id": "39737925cf3bd4ebf9a1c7bbe39da8b80ba28e5a3d93a938d1a4cca78a6a436d", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "keccak256", - "source_mapping": { - "start": 449, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "require", - "source_mapping": { - "start": 380, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - } - } - ], - "description": "FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().keccak256](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L25", - "id": "40f0453d27abf2d9ed76fe60853b6e2e0cd9a443d639e9da457460ea02b2bdc7", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "abi", - "source_mapping": { - "start": 365, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 5, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.abi](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L21", - "id": "4665243a2df090e3543ab26447528fa3401916f4669fe1264145891846d4bc40", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "blockhash", - "source_mapping": { - "start": 54, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 26, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L4", - "id": "61d1c1452e694c321d00576decdf35c62efbe8860f664273955fadce5e063cc8", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "this", - "source_mapping": { - "start": 346, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.this](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L20", - "id": "87e1cc0cb95181dd120d3e6e55d89fdc7b5cd01da2f89cd7a3d105738f57c10b", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "now", - "source_mapping": { - "start": 74, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 26, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.now](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L5", - "id": "942ad0405af0bc533374dded6e2474c53892747c98d2df14d59cbb6840fa18b3", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "revert", - "source_mapping": { - "start": 89, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 26, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "revert(bool)" - } - } - ], - "description": "BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", - "markdown": "[BaseContractrevert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L7", - "id": "9c428e61cb4832d899b2bb711c8d428154425dbadf5dfc2e2d857254824d8f72", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "msg", - "source_mapping": { - "start": 244, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "assert", - "source_mapping": { - "start": 195, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 122, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "assert(bool)" - } - } - } - } - ], - "description": "ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool).msg](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L14", - "id": "a2a7e1e27320d38e52b51c9b1ec67cca0a403673ff6fdd59652f9cd8425d011f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "assert", - "source_mapping": { - "start": 195, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 122, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "assert(bool)" - } - } - ], - "description": "ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L13-L15", - "id": "b3a1b23c1daed52b1a2ff5fb76d4fcdf2bc0b2126524303321cf8e7835116d6f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "sha3", - "source_mapping": { - "start": 473, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "require", - "source_mapping": { - "start": 380, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - } - } - ], - "description": "FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().sha3](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L26", - "id": "c481dbbf77c99cb337740a656ebabae1c89bf13b9d7b7d315dcf54feeab1cd63", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "blockhash", - "source_mapping": { - "start": 322, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L19", - "id": "d405ccbec679f921252d475591a890a89a023b375dc4994119967693692f8da9", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "require", - "source_mapping": { - "start": 380, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 263, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - ], - "description": "FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require()](tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.4.25/shadowing_builtin_symbols.sol#L23-L28", - "id": "db6c26c9a7c319c1a34c486e6e625c0906a2b118f8cd72f38a38c167832aab4f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json b/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json deleted file mode 100644 index e12347591..000000000 --- a/tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol.0.5.16.BuiltinSymbolShadowing.json +++ /dev/null @@ -1,749 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "ecrecover", - "source_mapping": { - "start": 173, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 125, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "ExtendedContract.ecrecover (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.ecrecover](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L11", - "id": "39737925cf3bd4ebf9a1c7bbe39da8b80ba28e5a3d93a938d1a4cca78a6a436d", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "keccak256", - "source_mapping": { - "start": 452, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "require", - "source_mapping": { - "start": 383, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - } - } - ], - "description": "FurtherExtendedContract.require().keccak256 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().keccak256](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L25", - "id": "40f0453d27abf2d9ed76fe60853b6e2e0cd9a443d639e9da457460ea02b2bdc7", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "abi", - "source_mapping": { - "start": 368, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 5, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.abi (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.abi](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L21", - "id": "4665243a2df090e3543ab26447528fa3401916f4669fe1264145891846d4bc40", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "blockhash", - "source_mapping": { - "start": 57, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "BaseContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L4", - "id": "61d1c1452e694c321d00576decdf35c62efbe8860f664273955fadce5e063cc8", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "this", - "source_mapping": { - "start": 349, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 20 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.this (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.this](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L20", - "id": "87e1cc0cb95181dd120d3e6e55d89fdc7b5cd01da2f89cd7a3d105738f57c10b", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "now", - "source_mapping": { - "start": 77, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 13 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "BaseContract.now (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n", - "markdown": "[BaseContract.now](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L5", - "id": "942ad0405af0bc533374dded6e2474c53892747c98d2df14d59cbb6840fa18b3", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "event", - "name": "revert", - "source_mapping": { - "start": 92, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "revert(bool)" - } - } - ], - "description": "BaseContractrevert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n", - "markdown": "[BaseContractrevert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L7", - "id": "9c428e61cb4832d899b2bb711c8d428154425dbadf5dfc2e2d857254824d8f72", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "msg", - "source_mapping": { - "start": 247, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "assert", - "source_mapping": { - "start": 198, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 125, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "assert(bool)" - } - } - } - } - ], - "description": "ExtendedContract.assert(bool).msg (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool).msg](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L14", - "id": "a2a7e1e27320d38e52b51c9b1ec67cca0a403673ff6fdd59652f9cd8425d011f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "assert", - "source_mapping": { - "start": 198, - "length": 64, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 125, - "length": 139, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "assert(bool)" - } - } - ], - "description": "ExtendedContract.assert(bool) (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n", - "markdown": "[ExtendedContract.assert(bool)](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L13-L15", - "id": "b3a1b23c1daed52b1a2ff5fb76d4fcdf2bc0b2126524303321cf8e7835116d6f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "sha3", - "source_mapping": { - "start": 476, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 26 - ], - "starting_column": 9, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "require", - "source_mapping": { - "start": 383, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - } - } - ], - "description": "FurtherExtendedContract.require().sha3 (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require().sha3](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L26", - "id": "c481dbbf77c99cb337740a656ebabae1c89bf13b9d7b7d315dcf54feeab1cd63", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "blockhash", - "source_mapping": { - "start": 325, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 19 - ], - "starting_column": 5, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.blockhash (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.blockhash](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L19", - "id": "d405ccbec679f921252d475591a890a89a023b375dc4994119967693692f8da9", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "require", - "source_mapping": { - "start": 383, - "length": 120, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26, - 27, - 28 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 266, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol", - "is_dependency": false, - "lines": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "require()" - } - } - ], - "description": "FurtherExtendedContract.require() (tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n", - "markdown": "[FurtherExtendedContract.require()](tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-builtin/0.5.16/shadowing_builtin_symbols.sol#L23-L28", - "id": "db6c26c9a7c319c1a34c486e6e625c0906a2b118f8cd72f38a38c167832aab4f", - "check": "shadowing-builtin", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json deleted file mode 100644 index 01d1ce42c..000000000 --- a/tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol.0.4.25.LocalShadowing.json +++ /dev/null @@ -1,814 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 376, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 30, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 351, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 256, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 133, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 85, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 54, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 26, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#4) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L4) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", - "id": "0991435c12aa2d6f15e8da2a00a18e9c58ef65dcf31137cdb561655317353247", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 533, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 52, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedState", - "source_mapping": { - "start": 486, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 434, - "length": 225, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedState()" - } - } - } - }, - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 470, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 434, - "length": 225, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L30", - "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 398, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 52, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 351, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 70, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 26, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", - "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 421, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 75, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 351, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "event", - "name": "v", - "source_mapping": { - "start": 183, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 85, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "v()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", - "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "w", - "source_mapping": { - "start": 413, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 67, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 351, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "w", - "source_mapping": { - "start": 274, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "w()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", - "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z", - "source_mapping": { - "start": 405, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 59, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 351, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 197, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "z", - "source_mapping": { - "start": 150, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 85, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "z()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.4.25/shadowing_local_variable.sol#L25", - "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json deleted file mode 100644 index 11c615913..000000000 --- a/tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol.0.5.16.LocalShadowing.json +++ /dev/null @@ -1,977 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 379, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 30, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 354, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 259, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 136, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 57, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#4) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L4) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", - "id": "0991435c12aa2d6f15e8da2a00a18e9c58ef65dcf31137cdb561655317353247", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 536, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 52, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedState", - "source_mapping": { - "start": 489, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 437, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedState()" - } - } - } - }, - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 473, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 437, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L30", - "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 401, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 52, - "ending_column": 57 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 354, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 73, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", - "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 424, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 75, - "ending_column": 81 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 354, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "event", - "name": "v", - "source_mapping": { - "start": 186, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "v()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", - "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "w", - "source_mapping": { - "start": 416, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 67, - "ending_column": 73 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 354, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "w", - "source_mapping": { - "start": 277, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "w()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", - "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "local_scope_0", - "source_mapping": { - "start": 653, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 583, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 437, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedReturn()" - } - } - } - }, - { - "type": "variable", - "name": "local", - "source_mapping": { - "start": 631, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 53, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 583, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 437, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedReturn()" - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L34", - "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z", - "source_mapping": { - "start": 408, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 59, - "ending_column": 65 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 354, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 84 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 200, - "length": 235, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "z", - "source_mapping": { - "start": 153, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 110, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "z()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.5.16/shadowing_local_variable.sol#L25", - "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json deleted file mode 100644 index 834751662..000000000 --- a/tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol.0.6.11.LocalShadowing.json +++ /dev/null @@ -1,896 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 541, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 52, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedState", - "source_mapping": { - "start": 494, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedState()" - } - } - } - }, - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 478, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L30", - "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 406, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 54, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 73, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", - "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 429, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 77, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "event", - "name": "v", - "source_mapping": { - "start": 187, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "v()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", - "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "w", - "source_mapping": { - "start": 421, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 69, - "ending_column": 75 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "w", - "source_mapping": { - "start": 280, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "w()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", - "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "__x", - "source_mapping": { - "start": 382, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 30, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "__x", - "source_mapping": { - "start": 260, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#17) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L17) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", - "id": "cd61765f88a1447471f5c75c7a488af44534d81be3998f5d01a6b5fa8f693327", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "local_scope_0", - "source_mapping": { - "start": 658, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 588, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedReturn()" - } - } - } - }, - { - "type": "variable", - "name": "local", - "source_mapping": { - "start": 636, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 53, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 588, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "shadowedReturn()" - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L34", - "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z", - "source_mapping": { - "start": 413, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 61, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "z", - "source_mapping": { - "start": 154, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "z()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.6.11/shadowing_local_variable.sol#L25", - "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json b/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json deleted file mode 100644 index ebeacebd5..000000000 --- a/tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol.0.7.6.LocalShadowing.json +++ /dev/null @@ -1,892 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 541, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30 - ], - "starting_column": 52, - "ending_column": 62 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedState", - "source_mapping": { - "start": 494, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 30, - 31, - 32 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowedState()" - } - } - } - }, - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 478, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 29 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedState().state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#30) shadows:\n\t- LocalReturnVariables.state (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#29) (state variable)\n", - "markdown": "[LocalReturnVariables.shadowedState().state](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L30) shadows:\n\t- [LocalReturnVariables.state](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L29) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L30", - "id": "1b0030affabcff703e57e4f388b86dbda0f412e51ba8d15248bcae9e4748a012", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 406, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 54, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "y", - "source_mapping": { - "start": 73, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 29, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#5) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L5) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", - "id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 429, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 77, - "ending_column": 83 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "event", - "name": "v", - "source_mapping": { - "start": 187, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "v()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#13) (event)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L13) (event)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", - "id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "w", - "source_mapping": { - "start": 421, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 69, - "ending_column": 75 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "w", - "source_mapping": { - "start": 280, - "length": 71, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "w()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#20-23) (modifier)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L20-L23) (modifier)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", - "id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "__x", - "source_mapping": { - "start": 382, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 30, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "variable", - "name": "__x", - "source_mapping": { - "start": 260, - "length": 12, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.__x (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#17) (state variable)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).__x](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.__x](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L17) (state variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", - "id": "cd61765f88a1447471f5c75c7a488af44534d81be3998f5d01a6b5fa8f693327", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "local_scope_0", - "source_mapping": { - "start": 658, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 34 - ], - "starting_column": 9, - "ending_column": 23 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 588, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowedReturn()" - } - } - } - }, - { - "type": "variable", - "name": "local", - "source_mapping": { - "start": 636, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33 - ], - "starting_column": 53, - "ending_column": 63 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowedReturn", - "source_mapping": { - "start": 588, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 33, - 34, - 35, - 36 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "LocalReturnVariables", - "source_mapping": { - "start": 442, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowedReturn()" - } - } - } - } - ], - "description": "LocalReturnVariables.shadowedReturn().local_scope_0 (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#34) shadows:\n\t- LocalReturnVariables.shadowedReturn().local (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#33) (return variable)\n", - "markdown": "[LocalReturnVariables.shadowedReturn().local_scope_0](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L34) shadows:\n\t- [LocalReturnVariables.shadowedReturn().local](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L33) (return variable)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L34", - "id": "cd63bdf3f6420e4e109d20ec44b52fcbcbde1c5b6a0701fc6994b35960ab1e85", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "z", - "source_mapping": { - "start": 413, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 61, - "ending_column": 67 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "shadowingParent", - "source_mapping": { - "start": 357, - "length": 81, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 25 - ], - "starting_column": 5, - "ending_column": 86 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "FurtherExtendedContract", - "source_mapping": { - "start": 201, - "length": 239, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "shadowingParent(uint256)" - } - } - } - }, - { - "type": "function", - "name": "z", - "source_mapping": { - "start": 154, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "ExtendedContract", - "source_mapping": { - "start": 88, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "z()" - } - } - ], - "description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#11) (function)\n", - "markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L11) (function)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-local/0.7.6/shadowing_local_variable.sol#L25", - "id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd", - "check": "shadowing-local", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json deleted file mode 100644 index 7a085c8ba..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol.0.4.25.StateShadowing.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 172, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 126, - "length": 210, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 27, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 0, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L2)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.4.25/shadowing_state_variable.sol#L12", - "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", - "check": "shadowing-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json deleted file mode 100644 index ddbd655ed..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol.0.5.16.StateShadowing.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 172, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 126, - "length": 227, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "owner", - "source_mapping": { - "start": 27, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 2 - ], - "starting_column": 5, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 0, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#2)\n", - "markdown": "[DerivedContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L2)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.5.16/shadowing_state_variable.sol#L12", - "id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab", - "check": "shadowing-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.6.11/shadowing_state_variable.sol.0.6.11.StateShadowing.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json deleted file mode 100644 index 93578d854..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol.0.7.5.StateShadowing.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "__gap", - "source_mapping": { - "start": 156, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 5, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "DerivedContract", - "source_mapping": { - "start": 110, - "length": 102, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "variable", - "name": "__gap", - "source_mapping": { - "start": 51, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseContract", - "source_mapping": { - "start": 24, - "length": 84, - "filename_relative": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - } - ], - "description": "DerivedContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#8) shadows:\n\t- BaseContract.__gap (tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#3)\n", - "markdown": "[DerivedContract.__gap](tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L8) shadows:\n\t- [BaseContract.__gap](tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/shadowing-state/0.7.5/public_gap_variable.sol#L8", - "id": "8f81b2b4b3285fe96f0b580cdd2144cc6cf6808d970ba68878b9901744069c4c", - "check": "shadowing-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.7.5/shadowing_state_variable.sol.0.7.5.StateShadowing.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json b/tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/shadowing-state/0.7.6/shadowing_state_variable.sol.0.7.6.StateShadowing.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json deleted file mode 100644 index ca8ff4d95..000000000 --- a/tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol.0.4.25.SimilarVarsDetection.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "testVariable", - "source_mapping": { - "start": 69, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - }, - { - "type": "variable", - "name": "textVariable", - "source_mapping": { - "start": 100, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.4.25/similar_variables.sol#L3", - "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", - "check": "similar-names", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json deleted file mode 100644 index 6bdc717e6..000000000 --- a/tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol.0.5.16.SimilarVarsDetection.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "testVariable", - "source_mapping": { - "start": 69, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - }, - { - "type": "variable", - "name": "textVariable", - "source_mapping": { - "start": 100, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.5.16/similar_variables.sol#L3", - "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", - "check": "similar-names", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json deleted file mode 100644 index cb4140fff..000000000 --- a/tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol.0.6.11.SimilarVarsDetection.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "testVariable", - "source_mapping": { - "start": 69, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - }, - { - "type": "variable", - "name": "textVariable", - "source_mapping": { - "start": 100, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.6.11/similar_variables.sol#L3", - "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", - "check": "similar-names", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json b/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json deleted file mode 100644 index 959b53404..000000000 --- a/tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol.0.7.6.SimilarVarsDetection.json +++ /dev/null @@ -1,149 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "testVariable", - "source_mapping": { - "start": 69, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - }, - { - "type": "variable", - "name": "textVariable", - "source_mapping": { - "start": 100, - "length": 21, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 30 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 23, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Similar", - "source_mapping": { - "start": 0, - "length": 174, - "filename_relative": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "Variable Similar.f().testVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#3) is too similar to Similar.f().textVariable (tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#4)\n", - "markdown": "Variable [Similar.f().testVariable](tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L3) is too similar to [Similar.f().textVariable](tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/similar-names/0.7.6/similar_variables.sol#L3", - "id": "2f767a2bb6f48a8435ce456e2d3ad859bdeccf66507735a14e20515e914038d5", - "check": "similar-names", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json deleted file mode 100644 index 20ffda221..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol.0.4.25.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [], - "description": "solc-0.4.25 is not recommended for deployment\n", - "markdown": "solc-0.4.25 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "4d64003d70a62b1c6963f871e841b6cbd633d07d95554e1a50e0f25d9b71ebb3", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "pragma", - "name": "0.4.25", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.4", - ".25" - ] - } - } - ], - "description": "Pragma version0.4.25 (tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.4.25](tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.4.25/static.sol#L1", - "id": "4e5f2e515609476e00f6be631f981c3589c446b78660745af9a3593ca1130fef", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json deleted file mode 100644 index a43f586bc..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol.0.5.14.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "0.5.14", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.5", - ".14" - ] - } - } - ], - "description": "Pragma version0.5.14 (tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", - "markdown": "Pragma version[0.5.14](tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#L1) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.14/static.sol#L1", - "id": "ba83251344888926a6441f526dc8f9e88cae6c86918e93a323d705d491f8e7a1", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.5.14 is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)", - "markdown": "solc-0.5.14 is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)", - "first_markdown_element": "", - "id": "d29c07fc4fd9f7602b9f99b17646c6ce1a1c10740d60888a7a706f2537f6e59d", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json deleted file mode 100644 index 0cfee492f..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol.0.5.16.IncorrectSolc.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.5.15", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.5", - ".15" - ] - } - } - ], - "description": "Pragma version^0.5.15 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.5.15](tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_1.sol#L1", - "id": "91d2ad5b0149c3b4c4625cb637af4532cf9598a5a2b067ebd2c8e9b6bb5fc079", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json deleted file mode 100644 index cb5878f1f..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol.0.5.16.IncorrectSolc.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": ">=0.5.0<0.6.0", - "source_mapping": { - "start": 0, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 32 - }, - "type_specific_fields": { - "directive": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ] - } - } - ], - "description": "Pragma version>=0.5.0<0.6.0 (tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#1) allows old versions\n", - "markdown": "Pragma version[>=0.5.0<0.6.0](tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/dynamic_2.sol#L1", - "id": "02a864c253786052cb7908fed97573b424063a911900f7b2a444ccf28773935a", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json deleted file mode 100644 index 28fb98f0a..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol.0.5.16.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [], - "description": "solc-0.5.16 is not recommended for deployment\n", - "markdown": "solc-0.5.16 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "94ddf430efb860e471a768a108c851848fa998e8a2c489c6fb23ed71d3ef4b09", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "pragma", - "name": "0.5.16", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.5", - ".16" - ] - } - } - ], - "description": "Pragma version0.5.16 (tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.5.16](tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.5.16/static.sol#L1", - "id": "ff39ee4e334e44fff23e833d9ee84b4cfcb43bd2ac704a9d5aa1ef82a1a38d5d", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json deleted file mode 100644 index fc324892e..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol.0.6.10.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [], - "description": "solc-0.6.10 is not recommended for deployment\n", - "markdown": "solc-0.6.10 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "b2c2f26d29a163098673e6dcb2342e00d94996a84040bac62f7dbb2f20fa8f28", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "pragma", - "name": "0.6.10", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.6", - ".10" - ] - } - } - ], - "description": "Pragma version0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.6.10](tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.10/static.sol#L1", - "id": "cd90c39225151b788bfa16a1691e7536f51464cd6e59f55694a1022e6aea7d96", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json deleted file mode 100644 index d8e0ab3f9..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol.0.6.11.IncorrectSolc.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - [ - { - "elements": [], - "description": "solc-0.6.11 is not recommended for deployment\n", - "markdown": "solc-0.6.11 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "pragma", - "name": "^0.6.10", - "source_mapping": { - "start": 0, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 25 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.6", - ".10" - ] - } - } - ], - "description": "Pragma version^0.6.10 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.6.10](tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_1.sol#L1", - "id": "fe9bdf90f61e61a27a7b6cff5d46a367791bb8a4e5cee82b66b2a387fcb1b07c", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json deleted file mode 100644 index c1f83b58e..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol.0.6.11.IncorrectSolc.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": ">=0.6.0<0.7.0", - "source_mapping": { - "start": 0, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 32 - }, - "type_specific_fields": { - "directive": [ - "solidity", - ">=", - "0.6", - ".0", - "<", - "0.7", - ".0" - ] - } - } - ], - "description": "Pragma version>=0.6.0<0.7.0 (tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#1) allows old versions\n", - "markdown": "Pragma version[>=0.6.0<0.7.0](tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/dynamic_2.sol#L1", - "id": "a25609bb9ae5982429e846e71d245a10687e54dd89db1e026ce8abc372a6b10a", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.6.11 is not recommended for deployment\n", - "markdown": "solc-0.6.11 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json deleted file mode 100644 index 97f46f030..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol.0.6.11.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "0.6.11", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.6", - ".11" - ] - } - } - ], - "description": "Pragma version0.6.11 (tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.6.11](tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.6.11/static.sol#L1", - "id": "1a28cd562fc4e98f8404f2c820705720133d7ad9abc8eeca6940753963e73ea8", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.6.11 is not recommended for deployment\n", - "markdown": "solc-0.6.11 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "bafd522d637977886f038e619ad47c1987efedc6c4c24515e6e27b23585535bd", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json deleted file mode 100644 index a1927027b..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol.0.7.4.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "0.7.4", - "source_mapping": { - "start": 0, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 23 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.7", - ".4" - ] - } - } - ], - "description": "Pragma version0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.7.4](tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.4/static.sol#L1", - "id": "0b68e24ddb7139f74a8dd063388c1337e1372799f60bface7a5d177b8793b741", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.7.4 is not recommended for deployment\n", - "markdown": "solc-0.7.4 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "27e54a3813c974274b355c03bd742d4f2b8cd63fa57143b4fb741cbecd022dd2", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json deleted file mode 100644 index 18bc52bc7..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol.0.7.6.IncorrectSolc.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "^0.7.4", - "source_mapping": { - "start": 0, - "length": 23, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 24 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "^", - "0.7", - ".4" - ] - } - } - ], - "description": "Pragma version^0.7.4 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#1) allows old versions\n", - "markdown": "Pragma version[^0.7.4](tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_1.sol#L1", - "id": "a26793ac70a065f8101c425f5a93a44e10518267fd539c588a81aeaa273f8f4e", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json deleted file mode 100644 index d20b1d58d..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol.0.7.6.IncorrectSolc.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": ">=0.7.0<=0.7.6", - "source_mapping": { - "start": 0, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 33 - }, - "type_specific_fields": { - "directive": [ - "solidity", - ">=", - "0.7", - ".0", - "<=", - "0.7", - ".6" - ] - } - } - ], - "description": "Pragma version>=0.7.0<=0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#1) is too complex\n", - "markdown": "Pragma version[>=0.7.0<=0.7.6](tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#L1) is too complex\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/dynamic_2.sol#L1", - "id": "553e646c4f06caff84790d2bf426d1b639f5ab492f06d35c1cc1de27171a5458", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json b/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json deleted file mode 100644 index 2feda0b82..000000000 --- a/tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol.0.7.6.IncorrectSolc.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "pragma", - "name": "0.7.6", - "source_mapping": { - "start": 0, - "length": 22, - "filename_relative": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol", - "is_dependency": false, - "lines": [ - 1 - ], - "starting_column": 1, - "ending_column": 23 - }, - "type_specific_fields": { - "directive": [ - "solidity", - "0.7", - ".6" - ] - } - } - ], - "description": "Pragma version0.7.6 (tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#1) allows old versions\n", - "markdown": "Pragma version[0.7.6](tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#L1) allows old versions\n", - "first_markdown_element": "tests/e2e/detectors/test_data/solc-version/0.7.6/static.sol#L1", - "id": "730c7b68388c8968a0dc7398162989157d0fc6c1223b719c86abaa23aa141422", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "solc-0.7.6 is not recommended for deployment\n", - "markdown": "solc-0.7.6 is not recommended for deployment\n", - "first_markdown_element": "", - "id": "ddb8ee36d9dd69b14eab702506268f8f9ef3283777d042e197277e29407b386e", - "check": "solc-version", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/storage-array/0.5.10/storage_signed_integer_array.sol.0.5.10.StorageSignedIntegerArray.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json b/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/storage-array/0.5.16/storage_signed_integer_array.sol.0.5.16.StorageSignedIntegerArray.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json deleted file mode 100644 index 4f1d5835f..000000000 --- a/tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol.0.4.25.Suicidal.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.4.25/suicidal.sol#L4-L6", - "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", - "check": "suicidal", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json deleted file mode 100644 index d7999c9d9..000000000 --- a/tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol.0.5.16.Suicidal.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.5.16/suicidal.sol#L4-L6", - "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", - "check": "suicidal", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json deleted file mode 100644 index bec245766..000000000 --- a/tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol.0.6.11.Suicidal.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.6.11/suicidal.sol#L4-L6", - "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", - "check": "suicidal", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json b/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json deleted file mode 100644 index 01b0dde93..000000000 --- a/tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol.0.7.6.Suicidal.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "i_am_a_backdoor", - "source_mapping": { - "start": 18, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 1, - "length": 94, - "filename_relative": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "i_am_a_backdoor()" - } - } - ], - "description": "C.i_am_a_backdoor() (tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#4-6) allows anyone to destruct the contract\n", - "markdown": "[C.i_am_a_backdoor()](tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#L4-L6) allows anyone to destruct the contract\n", - "first_markdown_element": "tests/e2e/detectors/test_data/suicidal/0.7.6/suicidal.sol#L4-L6", - "id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7", - "check": "suicidal", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json deleted file mode 100644 index c40705123..000000000 --- a/tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol.0.4.25.TypeBasedTautology.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - }, - { - "type": "node", - "name": "(y < 512)", - "source_mapping": { - "start": 202, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - } - } - } - ], - "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L9-L11", - "id": "2d5afaf7ffe75ae8bd3fe6831af4fdbc60c3151ccaedbf03a96dc28463ab87f7", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "x >= 0", - "source_mapping": { - "start": 69, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.4.25/type_based_tautology.sol#L2-L7", - "id": "8e35298d2cfa14f0683bc976a299c6c757f7b036a96443fa8ddae8ff8edab0a6", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json deleted file mode 100644 index ae70b276a..000000000 --- a/tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol.0.5.16.TypeBasedTautology.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - }, - { - "type": "node", - "name": "(y < 512)", - "source_mapping": { - "start": 202, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - } - } - } - ], - "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L9-L11", - "id": "4104ae382ec7ca18aa48706d1336f1cf8a1420e3bbca67931fca5a534f59eaca", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "x >= 0", - "source_mapping": { - "start": 69, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.5.16/type_based_tautology.sol#L2-L7", - "id": "5b31f4bb71fc1840be393b354338ffba3380a788f823be9f3bfb017ab2876051", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json deleted file mode 100644 index b3484d6ac..000000000 --- a/tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol.0.6.11.TypeBasedTautology.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - }, - { - "type": "node", - "name": "(y < 512)", - "source_mapping": { - "start": 202, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - } - } - } - ], - "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L9-L11", - "id": "847fae465158df30ff5281b9fb6c4fe56bc62126a24263e5b73cfe189ea88101", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "x >= 0", - "source_mapping": { - "start": 69, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.6.11/type_based_tautology.sol#L2-L7", - "id": "eadd3a6e49d82eee622768c1de7238bc9a7dab02bfa86a7622fc0499f0398a84", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json b/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json deleted file mode 100644 index 54356483e..000000000 --- a/tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol.0.7.6.TypeBasedTautology.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - }, - { - "type": "node", - "name": "(y < 512)", - "source_mapping": { - "start": 202, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "g", - "source_mapping": { - "start": 150, - "length": 80, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "g(uint8)" - } - } - } - } - ], - "description": "A.g(uint8) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#9-11) contains a tautology or contradiction:\n\t- (y < 512) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#10)\n", - "markdown": "[A.g(uint8)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L9-L11) contains a tautology or contradiction:\n\t- [(y < 512)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L9-L11", - "id": "8775db38ad7ea2dae79cc8a2998e6babf60b8d925894c198fde99ce0d56f8dd8", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "x >= 0", - "source_mapping": { - "start": 69, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 14, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 2, - "ending_column": 3 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 0, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "A.f(uint256) (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#2-7) contains a tautology or contradiction:\n\t- x >= 0 (tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#3)\n", - "markdown": "[A.f(uint256)](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L2-L7) contains a tautology or contradiction:\n\t- [x >= 0](tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tautology/0.7.6/type_based_tautology.sol#L2-L7", - "id": "bdb95728224ebe35a966e39c2ad0f8e705087e7577bc7bfb30b383652171813e", - "check": "tautology", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json deleted file mode 100644 index 2bac9145f..000000000 --- a/tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol.0.4.25.Timestamp.json +++ /dev/null @@ -1,444 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(block.timestamp == 0)", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L4-L6", - "id": "03594e6df776c41fb3de4b4b7858ab3dd2b36ed0b2bd9dccb5a343732d26e7f4", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(time == 0)", - "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L8-L11", - "id": "e2b861584cc340e917c6ac6a1191895909bd447d58b3b73907bfc766af3a69e8", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "block.timestamp > 0", - "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.4.25/timestamp.sol#L13-L15", - "id": "f66328b4b47ebaaf78184cdcfa95e1fe0fd9a1ed3de1c93968f4b6325c174f4b", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json deleted file mode 100644 index 18f29cbee..000000000 --- a/tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol.0.5.16.Timestamp.json +++ /dev/null @@ -1,444 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(time == 0)", - "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L8-L11", - "id": "49a0bfcb661a31edaa9b37280b8000653c712209b40cd415e386536633730b7f", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(block.timestamp == 0)", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L4-L6", - "id": "4df4c103af282998c5004ea73cf301de8b030dce3eae9174fabc560da2c8dfcc", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "block.timestamp > 0", - "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.5.16/timestamp.sol#L13-L15", - "id": "8783893a5aa7a9e13ef0b39ba3f525610aea6b2ae8b5f994552a87c0dc4c8263", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json deleted file mode 100644 index 09671e31b..000000000 --- a/tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol.0.6.11.Timestamp.json +++ /dev/null @@ -1,444 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(block.timestamp == 0)", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L4-L6", - "id": "23a1b86e2f94f257d4234ff06cc78c782f0dc8c2628452a58625edb30d620c0d", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(time == 0)", - "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L8-L11", - "id": "31b6ab92cef91ce4098c8adbffe3e22bc84eb6e3f30fb85e63cd33eadd08e496", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "block.timestamp > 0", - "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.6.11/timestamp.sol#L13-L15", - "id": "bb9f5bde3d69a13c45f96610397f1c0a5a3a56b796ae577fbfc3d0dfc2c3d862", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json b/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json deleted file mode 100644 index 5606861c1..000000000 --- a/tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol.0.7.6.Timestamp.json +++ /dev/null @@ -1,444 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "block.timestamp > 0", - "source_mapping": { - "start": 279, - "length": 24, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 9, - "ending_column": 33 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 231, - "length": 79, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "Timestamp.bad2() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#14)\n", - "markdown": "[Timestamp.bad2()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L13-L15", - "id": "7eb1c390d5c07173eb75465abb24e6996b100848e292c0462a666ca614907770", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "require(bool)(block.timestamp == 0)", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 47, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "Timestamp.bad0() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#5)\n", - "markdown": "[Timestamp.bad0()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L5)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L4-L6", - "id": "7efbdd62dbabbb488457b4ec4e4aef7f07852c5d817f9957a1b70455af297d0d", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "require(bool)(time == 0)", - "source_mapping": { - "start": 197, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 126, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Timestamp", - "source_mapping": { - "start": 0, - "length": 402, - "filename_relative": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "Timestamp.bad1() (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#10)\n", - "markdown": "[Timestamp.bad1()](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/timestamp/0.7.6/timestamp.sol#L8-L11", - "id": "d5e863862b123d4e87ea1d43501d463ef36caa3c90c5d42e4df981c3e62f5661", - "check": "timestamp", - "impact": "Low", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json deleted file mode 100644 index 47eb60ef0..000000000 --- a/tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol.0.4.25.TooManyDigits.json +++ /dev/null @@ -1,980 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - }, - { - "type": "node", - "name": "x2 = 100000", - "source_mapping": { - "start": 512, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - } - } - } - ], - "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L20-L24", - "id": "053e072eea67b5308f8292cf1830c330fbc80a99a5a45343e29150fe26d51928", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x4 = 100000", - "source_mapping": { - "start": 311, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "579e9c63d2b881823eca4226876a901fc6c9de7a96a54e1615165f944f4ec993", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x1 = 0x000001", - "source_mapping": { - "start": 209, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "8333f893ea49b4205a270184968190c9eb89af862b58bb167b33ca792a74a68c", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x3 = 1000000000000000000", - "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "e954700672dbefd40444a24fc867f6989e2d37011867a6cd4c2f651e249292a7", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x2 = 0x0000000000001", - "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.4.25/too_many_digits.sol#L9-L15", - "id": "ec348978a30da0283b0660abafc5a51687f5a12774a950944c56cebaf9de63c8", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json deleted file mode 100644 index a90452e7b..000000000 --- a/tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol.0.5.16.TooManyDigits.json +++ /dev/null @@ -1,980 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x2 = 0x0000000000001", - "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "4330493d2b1ee0d0cbefafa7f9b0d7f58e9aec83268f33dd85bf2c0046add1fc", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - }, - { - "type": "node", - "name": "x2 = 100000", - "source_mapping": { - "start": 512, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - } - } - } - ], - "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L20-L24", - "id": "590bcf5dc5ea643fac6c0b3e1e819626e2f44d18caa50845adf179044616072a", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x3 = 1000000000000000000", - "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "69afedac402e965c98ab17a5927f0ce44f3497e4d4f9f6c1db6b21c6e9c1763b", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x1 = 0x000001", - "source_mapping": { - "start": 209, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "6f2cd82484200efd6897d01be4e6b4b24437d10a2de204a5efd9fea2b1661015", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x4 = 100000", - "source_mapping": { - "start": 311, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 999, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.5.16/too_many_digits.sol#L9-L15", - "id": "9c2d8aa12c825077848edceeb4f633f4afa334accd986efa4f6062ca9667ebcf", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json deleted file mode 100644 index 6ad103d2b..000000000 --- a/tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol.0.6.11.TooManyDigits.json +++ /dev/null @@ -1,990 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x3 = 1000000000000000000", - "source_mapping": { - "start": 272, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "04b17f2c4d0e28c1d74160bbb3770c986a068a50438a21e521b518867ea7ffb4", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x2 = 0x0000000000001", - "source_mapping": { - "start": 237, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "79422ffc3e0bbce7e320954d1a85e216449766995702cef5d594d82c41bf40db", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x4 = 100000", - "source_mapping": { - "start": 311, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "7e5f8ae263ae46f7ab365199289b9737a23dee61f856679dd3ceaa3b3d68ce58", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - }, - { - "type": "node", - "name": "x2 = 100000", - "source_mapping": { - "start": 512, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "h", - "source_mapping": { - "start": 456, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - } - } - } - ], - "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L20-L24", - "id": "8cecf4ad1009d6c1188cd11ee23c8f7870756189e7d8344657fa9979c2ae6fca", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x1 = 0x000001", - "source_mapping": { - "start": 209, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 177, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 28, - "length": 1000, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.6.11/too_many_digits.sol#L9-L15", - "id": "f52a8172f386c68b1e935f3e2acf75b851a17cca0881dbbd915a3c810337b676", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json b/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json deleted file mode 100644 index 84ebdae37..000000000 --- a/tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol.0.7.6.TooManyDigits.json +++ /dev/null @@ -1,970 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x3 = 1000000000000000000", - "source_mapping": { - "start": 246, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#12)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L12)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "0d18bde863ef2b94fe2573c8e094e8c71ce0530994ab7e1e1120c362f50680ff", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x2 = 0x0000000000001", - "source_mapping": { - "start": 211, - "length": 25, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 34 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#11)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "145cf1a01ee8d6803da8098287a473a5639a6ed377b4185044b448af47a7785d", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x1 = 0x000001", - "source_mapping": { - "start": 183, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#10)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "50fa9983fd37fc3ef4d4fc3def220cbabf3e1e87482c6974e7b574689dc9431f", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "h", - "source_mapping": { - "start": 430, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - }, - { - "type": "node", - "name": "x2 = 100000", - "source_mapping": { - "start": 486, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "h", - "source_mapping": { - "start": 430, - "length": 113, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "h()" - } - } - } - } - ], - "description": "C.h() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#22)\n", - "markdown": "[C.h()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L20-L24", - "id": "bb3db442853479007fff235805e7bcf030d1cf8c1bbad6fd112b9c996ba61c4a", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - }, - { - "type": "node", - "name": "x4 = 100000", - "source_mapping": { - "start": 285, - "length": 16, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 9, - "ending_column": 25 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 151, - "length": 195, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 2, - "length": 917, - "filename_relative": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f()" - } - } - } - } - ], - "description": "C.f() (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#13)\n", - "markdown": "[C.f()](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L13)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/too-many-digits/0.7.6/too_many_digits.sol#L9-L15", - "id": "fbf4039e77bad288247e091fc3e7184fdc787f06bc45085f7d79c7cf8c3a0f66", - "check": "too-many-digits", - "impact": "Informational", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json deleted file mode 100644 index 02b43f0d1..000000000 --- a/tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol.0.4.25.TxOrigin.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 116, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - }, - { - "type": "node", - "name": "require(bool)(tx.origin == owner)", - "source_mapping": { - "start": 142, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 116, - "length": 60, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - } - } - } - ], - "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L9-L11", - "id": "763fe3d84027e0b56f7797a2913da141bb2a3a61872e3faaffd5637a7c215966", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 182, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - }, - { - "type": "node", - "name": "tx.origin != owner", - "source_mapping": { - "start": 212, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 182, - "length": 89, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 393, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - } - } - } - ], - "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.4.25/tx_origin.sol#L13-L17", - "id": "9cd6cc5fbb38a4aa51b6fe687ffc959d61e571c43f7ddb2c2a9d628b06a472a3", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json deleted file mode 100644 index 77cd977b2..000000000 --- a/tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol.0.5.16.TxOrigin.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 127, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 25, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - }, - { - "type": "node", - "name": "require(bool)(tx.origin == owner)", - "source_mapping": { - "start": 159, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 127, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 25, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - } - } - } - ], - "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L9-L11", - "id": "964dc0a5332a1829793bae146cb8c612b19d9f4c7ffabdec535865be0267e453", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 199, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 25, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - }, - { - "type": "node", - "name": "tx.origin != owner", - "source_mapping": { - "start": 235, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 199, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 25, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - } - } - } - ], - "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.5.16/tx_origin.sol#L13-L17", - "id": "c59530b3606736ac49042a2b48fef6644036400f64f91c8d004d0d5bf7031826", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json deleted file mode 100644 index fbc904ae3..000000000 --- a/tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol.0.6.11.TxOrigin.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 130, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - }, - { - "type": "node", - "name": "require(bool)(tx.origin == owner)", - "source_mapping": { - "start": 162, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 130, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - } - } - } - ], - "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L9-L11", - "id": "e916fd4b9d754f327bef52f0e01c6184164c070b135260e1ffd7e4297a465e11", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 202, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - }, - { - "type": "node", - "name": "tx.origin != owner", - "source_mapping": { - "start": 238, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 202, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - } - } - } - ], - "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.6.11/tx_origin.sol#L13-L17", - "id": "fb2810a8b293123b87a1cc869b0a5123a6c43c9eaf5e05635f2f4c8d11dcce01", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json b/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json deleted file mode 100644 index d0e7139c7..000000000 --- a/tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol.0.7.6.TxOrigin.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 202, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - }, - { - "type": "node", - "name": "tx.origin != owner", - "source_mapping": { - "start": 238, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 13, - "ending_column": 31 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug2", - "source_mapping": { - "start": 202, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug2()" - } - } - } - } - ], - "description": "TxOrigin.bug2() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#14)\n", - "markdown": "[TxOrigin.bug2()](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L13-L17", - "id": "be02a2e929852a463b8ea0b02d6ac0aa7a977589b305078a506503bae3e539ae", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 130, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - }, - { - "type": "node", - "name": "require(bool)(tx.origin == owner)", - "source_mapping": { - "start": 162, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bug0", - "source_mapping": { - "start": 130, - "length": 66, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "TxOrigin", - "source_mapping": { - "start": 28, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bug0()" - } - } - } - } - ], - "description": "TxOrigin.bug0() (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#10)\n", - "markdown": "[TxOrigin.bug0()](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/tx-origin/0.7.6/tx_origin.sol#L9-L11", - "id": "d7499b349f6bf0f616986a3a459ecb90cd625e5bf3601d1e2b864bad16a11ec4", - "check": "tx-origin", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json deleted file mode 100644 index 6e32d2a64..000000000 --- a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 214, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.call.value(msg.value)()", - "source_mapping": { - "start": 73, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 88, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 214, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.4.25/unchecked_lowlevel.sol#L2-L4", - "id": "a53ebce132787a825156e74d4580a7948908502dfa293ced870c2f8cce988567", - "check": "unchecked-lowlevel", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json deleted file mode 100644 index 8cbe3b1bc..000000000 --- a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol.0.5.16.UncheckedLowLevel.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.call.value(msg.value)()", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.5.16/unchecked_lowlevel.sol#L2-L4", - "id": "681bc51b34d1673cfd5e09101557ba555577312655bcd976ec05109be46c9ed1", - "check": "unchecked-lowlevel", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json deleted file mode 100644 index 5c462303c..000000000 --- a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol.0.6.11.UncheckedLowLevel.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.call.value(msg.value)()", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.6.11/unchecked_lowlevel.sol#L2-L4", - "id": "944a7149ed3900aa7e22a86921df5db6e9952b9bb63ebd1a53967bfbd79ec888", - "check": "unchecked-lowlevel", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json b/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json deleted file mode 100644 index 4fb9e18e7..000000000 --- a/tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol.0.7.6.UncheckedLowLevel.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.call{value: msg.value}()", - "source_mapping": { - "start": 81, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 38 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 96, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 274, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#2-4) ignores return value by dst.call{value: msg.value}() (tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call{value: msg.value}()](tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-lowlevel/0.7.6/unchecked_lowlevel.sol#L2-L4", - "id": "3d788c931cdecb4919bf36187d46e5f66c541055763747d6822741a05b12eb98", - "check": "unchecked-lowlevel", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json deleted file mode 100644 index 039c36d9e..000000000 --- a/tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol.0.4.25.UncheckedSend.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 395, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.send(msg.value)", - "source_mapping": { - "start": 73, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 395, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.4.25/unchecked_send.sol#L2-L4", - "id": "53c669b7a1a11ee69bc94ea346368fc8f198ab118986b147f83135047186b948", - "check": "unchecked-send", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json deleted file mode 100644 index fd3a9775e..000000000 --- a/tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol.0.5.16.UncheckedSend.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.send(msg.value)", - "source_mapping": { - "start": 81, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.5.16/unchecked_send.sol#L2-L4", - "id": "07b3682c6cfb1a5f141bff2d66a2bab2bbef9dd783d4061716ca6f23283d649f", - "check": "unchecked-send", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json deleted file mode 100644 index f74efaa70..000000000 --- a/tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol.0.6.11.UncheckedSend.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.send(msg.value)", - "source_mapping": { - "start": 81, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.6.11/unchecked_send.sol#L2-L4", - "id": "5a8a36e26f96ad9c6c96c2fe504e0199561af6e9e25b901ca899655349f7f64d", - "check": "unchecked-send", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json b/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json deleted file mode 100644 index 3984b49e9..000000000 --- a/tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol.0.7.6.UncheckedSend.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - }, - { - "type": "node", - "name": "dst.send(msg.value)", - "source_mapping": { - "start": 81, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 21, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "MyConc", - "source_mapping": { - "start": 0, - "length": 419, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad(address)" - } - } - } - } - ], - "description": "MyConc.bad(address) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#2-4) ignores return value by dst.send(msg.value) (tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#3)\n", - "markdown": "[MyConc.bad(address)](tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L3)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-send/0.7.6/unchecked_send.sol#L2-L4", - "id": "9b37538e9923917709a86b5e590c69d39664c6ed979db9c15767acc11317872e", - "check": "unchecked-send", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json b/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json deleted file mode 100644 index 7e14b9765..000000000 --- a/tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json +++ /dev/null @@ -1,428 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 461, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 330, - "length": 1456, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "t.transfer(address(0),1000000000000000000)", - "source_mapping": { - "start": 493, - "length": 31, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 40 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 461, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 330, - "length": 1456, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "C.bad0() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#20-22) ignores return value by t.transfer(address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#21)\n", - "markdown": "[C.bad0()](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22) ignores return value by [t.transfer(address(0),1000000000000000000)](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L21)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L20-L22", - "id": "e7965c2319b8ce1f10fb8b4c90af763c5bc9e6c74a6706b810de2ee871ed779e", - "check": "unchecked-transfer", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 1043, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 330, - "length": 1456, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "t.transferFrom(address(this),address(0),1000000000000000000)", - "source_mapping": { - "start": 1076, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 41 - ], - "starting_column": 9, - "ending_column": 59 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 1043, - "length": 90, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 40, - 41, - 42 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 330, - "length": 1456, - "filename_relative": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "C.bad1() (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#40-42) ignores return value by t.transferFrom(address(this),address(0),1000000000000000000) (tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#41)\n", - "markdown": "[C.bad1()](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42) ignores return value by [t.transferFrom(address(this),address(0),1000000000000000000)](tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L41)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unchecked-transfer/0.7.6/unused_return_transfers.sol#L40-L42", - "id": "eb40769155f8a641f5841fb036ba726b798603ce8cde222293c77d436f0c3657", - "check": "unchecked-transfer", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json deleted file mode 100644 index 002670fea..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,336 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_good", - "source_mapping": { - "start": 775, - "length": 243, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "get", - "source_mapping": { - "start": 495, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface3", - "source_mapping": { - "start": 465, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "get(uint256)" - } - } - ], - "description": "DerivedContract_good (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#35-41) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_good](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L35-L41", - "id": "08d3e8a72b5da6d189acb46ecd36f00787a87812727526a0cae248a2bac348fc", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad2", - "source_mapping": { - "start": 541, - "length": 232, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "get", - "source_mapping": { - "start": 495, - "length": 42, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 47 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface3", - "source_mapping": { - "start": 465, - "length": 74, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "get(uint256)" - } - } - ], - "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L27-L33", - "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad0", - "source_mapping": { - "start": 185, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f2", - "source_mapping": { - "start": 72, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface", - "source_mapping": { - "start": 0, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f2()" - } - }, - { - "type": "function", - "name": "f3", - "source_mapping": { - "start": 144, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface2", - "source_mapping": { - "start": 113, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f3()" - } - } - ], - "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L10-L14", - "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 320, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f1", - "source_mapping": { - "start": 357, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 320, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f1()" - } - } - ], - "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.4.25/unimplemented.sol#L16-L21", - "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json deleted file mode 100644 index ea4ac759e..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol.0.5.16.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,190 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad0", - "source_mapping": { - "start": 185, - "length": 133, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f2", - "source_mapping": { - "start": 72, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface", - "source_mapping": { - "start": 0, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f2()" - } - }, - { - "type": "function", - "name": "f3", - "source_mapping": { - "start": 144, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface2", - "source_mapping": { - "start": 113, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f3()" - } - } - ], - "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L10-L14", - "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 320, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f1", - "source_mapping": { - "start": 357, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 320, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f1()" - } - } - ], - "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented.sol#L16-L21", - "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.5.16/unimplemented_interfaces.sol.0.5.16.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json deleted file mode 100644 index 9d5db3cbc..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol.0.6.11.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,263 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad2", - "source_mapping": { - "start": 593, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "get", - "source_mapping": { - "start": 539, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface3", - "source_mapping": { - "start": 500, - "length": 91, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "get(uint256)" - } - } - ], - "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L27-L33", - "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad0", - "source_mapping": { - "start": 185, - "length": 151, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f2", - "source_mapping": { - "start": 72, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface", - "source_mapping": { - "start": 0, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f2()" - } - }, - { - "type": "function", - "name": "f3", - "source_mapping": { - "start": 144, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface2", - "source_mapping": { - "start": 113, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f3()" - } - } - ], - "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L10-L14", - "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 338, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f1", - "source_mapping": { - "start": 384, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 338, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f1()" - } - } - ], - "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented.sol#L16-L21", - "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.6.11/unimplemented_interfaces.sol.0.6.11.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json deleted file mode 100644 index a8a2dcc4a..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol.0.7.6.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,263 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad2", - "source_mapping": { - "start": 593, - "length": 344, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "get", - "source_mapping": { - "start": 539, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 24 - ], - "starting_column": 5, - "ending_column": 55 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface3", - "source_mapping": { - "start": 500, - "length": 91, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "get(uint256)" - } - } - ], - "description": "DerivedContract_bad2 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#24)\n", - "markdown": "[DerivedContract_bad2](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L24)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L27-L33", - "id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "DerivedContract_bad0", - "source_mapping": { - "start": 185, - "length": 151, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f2", - "source_mapping": { - "start": 72, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface", - "source_mapping": { - "start": 0, - "length": 111, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f2()" - } - }, - { - "type": "function", - "name": "f3", - "source_mapping": { - "start": 144, - "length": 37, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 42 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BaseInterface2", - "source_mapping": { - "start": 113, - "length": 70, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f3()" - } - } - ], - "description": "DerivedContract_bad0 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#7)\n", - "markdown": "[DerivedContract_bad0](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L7)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L10-L14", - "id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 338, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "f1", - "source_mapping": { - "start": 384, - "length": 45, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 17 - ], - "starting_column": 5, - "ending_column": 50 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "AbstractContract_bad1", - "source_mapping": { - "start": 338, - "length": 160, - "filename_relative": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol", - "is_dependency": false, - "lines": [ - 16, - 17, - 18, - 19, - 20, - 21 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "f1()" - } - } - ], - "description": "AbstractContract_bad1 (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#17)\n", - "markdown": "[AbstractContract_bad1](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L17)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented.sol#L16-L21", - "id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7", - "check": "unimplemented-functions", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json b/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unimplemented-functions/0.7.6/unimplemented_interfaces.sol.0.7.6.UnimplementedFunctionDetection.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json deleted file mode 100644 index 3d768545e..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol.0.4.25.UninitializedFunctionPtrsConstructor.json +++ /dev/null @@ -1,421 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "s.a(10)", - "source_mapping": { - "start": 671, - "length": 7, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 5, - "ending_column": 12 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 628, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L20-L29", - "id": "48965b294d666c5558ddadb16c50004510a7a482f96c0e552626f8c22c74763d", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 164, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 45, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L3-L9", - "id": "5cc40c11bac1ce653b3ff8b4ca493a62f4b47720aa75fb8e5bd5396e8821a464", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 858, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 831, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L31-L42", - "id": "7c27b9d3ec2de9d0a7adc058d3fea7f1a2cd4cc9b13b0057c52e60fbc63fedc5", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b(10)", - "source_mapping": { - "start": 472, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 196, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.4.25/uninitialized_function_ptr_constructor.sol#L11-L18", - "id": "ab3fbfc5752a20c2e3c19725ed0a12e9efa5f3afdbad0e5846e8ca1f02a3b712", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.16/uninitialized_function_ptr_constructor.sol.0.5.16.UninitializedFunctionPtrsConstructor.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json b/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json deleted file mode 100644 index d8f65e902..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json +++ /dev/null @@ -1,421 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 858, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 36 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 831, - "length": 50, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 35, - 36, - 37, - 38 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad3", - "source_mapping": { - "start": 687, - "length": 269, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad3 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad3](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L31-L42", - "id": "0b6c6f4112e4bd5ae791a8f775dfb7bab683b836ad651088919fcac9eb919506", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "b(10)", - "source_mapping": { - "start": 472, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 196, - "length": 286, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad1", - "source_mapping": { - "start": 178, - "length": 306, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad1 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad1](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L11-L18", - "id": "22cdfafee9843c6f077ea2c73482297e3bc2a99684751e011f70f4ba25f75432", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "a(10)", - "source_mapping": { - "start": 164, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 10 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 45, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6, - 7, - 8 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad0", - "source_mapping": { - "start": 27, - "length": 149, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad0 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad0](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L3-L9", - "id": "6296e46dabc9a0ec1bffc6ddd4c2660676b1c5d61b151282e8265c24b9bdf102", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "node", - "name": "s.a(10)", - "source_mapping": { - "start": 671, - "length": 7, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 27 - ], - "starting_column": 5, - "ending_column": 12 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 628, - "length": 55, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 25, - 26, - 27, - 28 - ], - "starting_column": 3, - "ending_column": 4 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "bad2", - "source_mapping": { - "start": 486, - "length": 199, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Contract bad2 (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#20-29) \n\t s.a(10) (tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#27) is an unintialized function pointer call in a constructor\n", - "markdown": "Contract [bad2](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29) \n\t [s.a(10)](tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L27) is an unintialized function pointer call in a constructor\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-fptr-cst/0.5.8/uninitialized_function_ptr_constructor.sol#L20-L29", - "id": "b5b9c1cfba830927aa14b83f505668f4a35b2fec54f9f2a2d50e5f8ead8bb8bf", - "check": "uninitialized-fptr-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json deleted file mode 100644 index cb09a2128..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "uint_not_init", - "source_mapping": { - "start": 77, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "func", - "source_mapping": { - "start": 29, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "func()" - } - } - } - } - ], - "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol#L4", - "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json deleted file mode 100644 index 815146f15..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol.0.5.16.UninitializedLocalVars.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "uint_not_init", - "source_mapping": { - "start": 77, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "func", - "source_mapping": { - "start": 29, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "func()" - } - } - } - } - ], - "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.5.16/uninitialized_local_variable.sol#L4", - "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json deleted file mode 100644 index 2dc1ac349..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol.0.6.11.UninitializedLocalVars.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "uint_not_init", - "source_mapping": { - "start": 77, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "func", - "source_mapping": { - "start": 29, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "func()" - } - } - } - } - ], - "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol#L4", - "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json b/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json deleted file mode 100644 index 386c6fdac..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol.0.7.6.UninitializedLocalVars.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "uint_not_init", - "source_mapping": { - "start": 77, - "length": 18, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "func", - "source_mapping": { - "start": 29, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 179, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "func()" - } - } - } - } - ], - "description": "Uninitialized.func().uint_not_init (tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#4) is a local variable never initialized\n", - "markdown": "[Uninitialized.func().uint_not_init](tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4) is a local variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-local/0.7.6/uninitialized_local_variable.sol#L4", - "id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476", - "check": "uninitialized-local", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json deleted file mode 100644 index 144a7dba1..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json +++ /dev/null @@ -1,456 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "st", - "source_mapping": { - "start": 698, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 644, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 878, - "length": 117, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 644, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L45", - "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "balances", - "source_mapping": { - "start": 192, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 172, - "length": 332, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 359, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 172, - "length": 332, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L15", - "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 751, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 644, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "init", - "source_mapping": { - "start": 820, - "length": 52, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 644, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "init()" - } - } - ], - "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L47", - "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "destination", - "source_mapping": { - "start": 58, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 29, - "length": 140, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 84, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 29, - "length": 140, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer()" - } - } - ], - "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.4.25/uninitialized.sol#L5", - "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json deleted file mode 100644 index 9af086d34..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol.0.5.16.UninitializedStateVarsDetection.json +++ /dev/null @@ -1,456 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "st", - "source_mapping": { - "start": 729, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 916, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L45", - "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "balances", - "source_mapping": { - "start": 199, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 372, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L15", - "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 782, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "init", - "source_mapping": { - "start": 851, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "init()" - } - } - ], - "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L47", - "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "destination", - "source_mapping": { - "start": 57, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 91, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer()" - } - } - ], - "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.5.16/uninitialized.sol#L5", - "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json deleted file mode 100644 index 4bffc62b2..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol.0.6.11.UninitializedStateVarsDetection.json +++ /dev/null @@ -1,456 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "st", - "source_mapping": { - "start": 729, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 916, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L45", - "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "balances", - "source_mapping": { - "start": 199, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 372, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L15", - "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 782, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "init", - "source_mapping": { - "start": 851, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "init()" - } - } - ], - "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L47", - "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "destination", - "source_mapping": { - "start": 57, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 91, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer()" - } - } - ], - "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.6.11/uninitialized.sol#L5", - "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json b/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json deleted file mode 100644 index dbd437c52..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol.0.7.6.UninitializedStateVarsDetection.json +++ /dev/null @@ -1,456 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "st", - "source_mapping": { - "start": 729, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 45 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 916, - "length": 129, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 53, - 54, - 55, - 56 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test2.st (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#53-56)\n", - "markdown": "[Test2.st](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L53-L56)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L45", - "id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "balances", - "source_mapping": { - "start": 199, - "length": 34, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 5, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "use", - "source_mapping": { - "start": 372, - "length": 154, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 23, - 24, - 25, - 26 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 179, - "length": 349, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "use()" - } - } - ], - "description": "Test.balances (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#23-26)\n", - "markdown": "[Test.balances](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L23-L26)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L15", - "id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "v", - "source_mapping": { - "start": 782, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 47 - ], - "starting_column": 5, - "ending_column": 11 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "init", - "source_mapping": { - "start": 851, - "length": 59, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 49, - 50, - 51 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test2", - "source_mapping": { - "start": 675, - "length": 373, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "init()" - } - } - ], - "description": "Test2.v (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#49-51)\n", - "markdown": "[Test2.v](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L49-L51)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L47", - "id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "destination", - "source_mapping": { - "start": 57, - "length": 27, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "function", - "name": "transfer", - "source_mapping": { - "start": 91, - "length": 82, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 28, - "length": 148, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "transfer()" - } - } - ], - "description": "Uninitialized.destination (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#7-9)\n", - "markdown": "[Uninitialized.destination](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L7-L9)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-state/0.7.6/uninitialized.sol#L5", - "id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44", - "check": "uninitialized-state", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json b/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json deleted file mode 100644 index d67fa7dc1..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json +++ /dev/null @@ -1,89 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "st_bug", - "source_mapping": { - "start": 171, - "length": 9, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 18 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "func", - "source_mapping": { - "start": 67, - "length": 143, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 217, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "func()" - } - } - } - } - ], - "description": "Uninitialized.func().st_bug (tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#10) is a storage variable never initialized\n", - "markdown": "[Uninitialized.func().st_bug](tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10) is a storage variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-storage/0.4.25/uninitialized_storage_pointer.sol#L10", - "id": "b8f7c2470a8a7f83fd42dca40c50cbf2070e7fa5486c674585f2b0b39d3dc429", - "check": "uninitialized-storage", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json b/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json deleted file mode 100644 index 4b867cc05..000000000 --- a/tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol.0.8.19.UninitializedStorageVars.json +++ /dev/null @@ -1,90 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "ret", - "source_mapping": { - "start": 100, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 38, - "ending_column": 52 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad", - "source_mapping": { - "start": 67, - "length": 95, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 7, - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Uninitialized", - "source_mapping": { - "start": 0, - "length": 262, - "filename_relative": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad()" - } - } - } - } - ], - "description": "Uninitialized.bad().ret (tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#7) is a storage variable never initialized\n", - "markdown": "[Uninitialized.bad().ret](tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7) is a storage variable never initialized\n", - "first_markdown_element": "tests/e2e/detectors/test_data/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7", - "id": "979d28e501693ed7ece0d429e7c30266f8e9d6a2e2eedc87006c4bad63e78706", - "check": "uninitialized-storage", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json deleted file mode 100644 index 5338de68e..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol.0.4.25.UnprotectedUpgradeable.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 277, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "initialize", - "source_mapping": { - "start": 88, - "length": 115, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 277, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "initialize()" - } - }, - { - "type": "function", - "name": "kill", - "source_mapping": { - "start": 208, - "length": 98, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 277, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "kill()" - } - } - ], - "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Buggy.sol#L3-L15", - "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", - "check": "unprotected-upgrade", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/Fixed.sol.0.4.25.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.4.25/whitelisted.sol.0.4.25.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json deleted file mode 100644 index 5c95df3d9..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol.0.5.16.UnprotectedUpgradeable.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "initialize", - "source_mapping": { - "start": 96, - "length": 115, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "initialize()" - } - }, - { - "type": "function", - "name": "kill", - "source_mapping": { - "start": 216, - "length": 98, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "kill()" - } - } - ], - "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Buggy.sol#L3-L15", - "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", - "check": "unprotected-upgrade", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/Fixed.sol.0.5.16.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.5.16/whitelisted.sol.0.5.16.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json deleted file mode 100644 index 6612db2c4..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol.0.6.11.UnprotectedUpgradeable.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "initialize", - "source_mapping": { - "start": 96, - "length": 115, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "initialize()" - } - }, - { - "type": "function", - "name": "kill", - "source_mapping": { - "start": 216, - "length": 98, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "kill()" - } - } - ], - "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Buggy.sol#L3-L15", - "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", - "check": "unprotected-upgrade", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/Fixed.sol.0.6.11.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.6.11/whitelisted.sol.0.6.11.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json deleted file mode 100644 index 4ee7824d0..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol.0.7.6.UnprotectedUpgradeable.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - { - "type": "function", - "name": "initialize", - "source_mapping": { - "start": 96, - "length": 115, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "initialize()" - } - }, - { - "type": "function", - "name": "kill", - "source_mapping": { - "start": 216, - "length": 98, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 285, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "kill()" - } - } - ], - "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#3-15) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Buggy.sol#L3-L15", - "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", - "check": "unprotected-upgrade", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/Fixed.sol.0.7.6.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.7.6/whitelisted.sol.0.7.6.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json deleted file mode 100644 index 69bdcf712..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol.0.8.15.UnprotectedUpgradeable.json +++ /dev/null @@ -1,145 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 294, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - { - "type": "function", - "name": "initialize", - "source_mapping": { - "start": 96, - "length": 124, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "is_dependency": false, - "lines": [ - 6, - 7, - 8, - 9 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 294, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "initialize()" - } - }, - { - "type": "function", - "name": "kill", - "source_mapping": { - "start": 225, - "length": 98, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Buggy", - "source_mapping": { - "start": 31, - "length": 294, - "filename_relative": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "kill()" - } - } - ], - "description": "Buggy (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#3-14) is an upgradeable contract that does not protect its initialize functions: Buggy.initialize() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#10-13)", - "markdown": "[Buggy](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14) is an upgradeable contract that does not protect its initialize functions: [Buggy.initialize()](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L10-L13)", - "first_markdown_element": "tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Buggy.sol#L3-L14", - "id": "d85b90230632a30f7ffb5140a791d4a9ae8b0be045c5b27175f3c477e189c08c", - "check": "unprotected-upgrade", - "impact": "High", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol.0.8.15.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json b/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/whitelisted.sol.0.8.15.UnprotectedUpgradeable.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json deleted file mode 100644 index e7bbae2d7..000000000 --- a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol.0.4.25.UnusedReturnValues.json +++ /dev/null @@ -1,328 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "t.f()", - "source_mapping": { - "start": 279, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29", - "id": "c5015552dbe34ab3e4ad7fddcf3ce9a62065df0780ac4541d441f23a1617ac53", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "a.add(0)", - "source_mapping": { - "start": 353, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#L17-L29", - "id": "e80688c415b86f06ab1b89934f843c8f566f5f073c821315581f2f93dbb2ac25", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json deleted file mode 100644 index a99fba736..000000000 --- a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol.0.5.16.UnusedReturnValues.json +++ /dev/null @@ -1,328 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "t.f()", - "source_mapping": { - "start": 279, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29", - "id": "7843b65e61884b02dc8cf4350acc7821049497a85a283c2bc9d0ba86ae3271d1", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "a.add(0)", - "source_mapping": { - "start": 353, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 239, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 189, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#L17-L29", - "id": "d876e2686a0e1aa7863854de350210a92276a3cb046989301b13d02405b350fd", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json deleted file mode 100644 index faaa7ed63..000000000 --- a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol.0.6.11.UnusedReturnValues.json +++ /dev/null @@ -1,328 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "a.add(0)", - "source_mapping": { - "start": 370, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29", - "id": "3dc614b48b1a73e884a9eab5a5edf9e72ef8150d1f6113cff92c8e07d561ddbb", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "t.f()", - "source_mapping": { - "start": 296, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#L17-L29", - "id": "4aef1645332b4a0136e6a0e78fd3fa35ddef10772b35bab5e548ea68e635cad2", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json deleted file mode 100644 index 976a5e944..000000000 --- a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol.0.7.6.UnusedReturnValues.json +++ /dev/null @@ -1,328 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "a.add(0)", - "source_mapping": { - "start": 370, - "length": 8, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 17 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#22)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L22)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29", - "id": "09f2e1abd220d36055b9a751ae0009c7346054948c4e2bcd2191621412abc445", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - }, - { - "type": "node", - "name": "t.f()", - "source_mapping": { - "start": 296, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 18 - ], - "starting_column": 9, - "ending_column": 14 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "test", - "source_mapping": { - "start": 256, - "length": 354, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "User", - "source_mapping": { - "start": 206, - "length": 406, - "filename_relative": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol", - "is_dependency": false, - "lines": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "test(Target)" - } - } - } - } - ], - "description": "User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18)\n", - "markdown": "[User.test(Target)](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L18)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#L17-L29", - "id": "9893d158fba1f4647212ce557a98037ba20350e55e7432f6d78ea11860f2ade2", - "check": "unused-return", - "impact": "Medium", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json deleted file mode 100644 index d1fd736d2..000000000 --- a/tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol.0.4.25.UnusedStateVars.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "unused", - "source_mapping": { - "start": 44, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L4", - "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused4", - "source_mapping": { - "start": 106, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L7", - "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused2", - "source_mapping": { - "start": 64, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L5", - "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused3", - "source_mapping": { - "start": 85, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.4.25/unused_state.sol#L6", - "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json deleted file mode 100644 index eed961d11..000000000 --- a/tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol.0.5.16.UnusedStateVars.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "unused", - "source_mapping": { - "start": 44, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L4", - "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused4", - "source_mapping": { - "start": 106, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L7", - "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused2", - "source_mapping": { - "start": 64, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L5", - "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused3", - "source_mapping": { - "start": 85, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.5.16/unused_state.sol#L6", - "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json deleted file mode 100644 index 90126296b..000000000 --- a/tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol.0.6.11.UnusedStateVars.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "unused", - "source_mapping": { - "start": 44, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L4", - "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused4", - "source_mapping": { - "start": 106, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L7", - "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused2", - "source_mapping": { - "start": 64, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L5", - "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused3", - "source_mapping": { - "start": 85, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.6.11/unused_state.sol#L6", - "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json b/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json deleted file mode 100644 index f959460a9..000000000 --- a/tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol.0.7.6.UnusedStateVars.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "unused", - "source_mapping": { - "start": 44, - "length": 14, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 5, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#4) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L4) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L4", - "id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused4", - "source_mapping": { - "start": 106, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 7 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused4 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#7) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused4](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L7) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L7", - "id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused2", - "source_mapping": { - "start": 64, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused2 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#5) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused2](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L5) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L5", - "id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "unused3", - "source_mapping": { - "start": 85, - "length": 15, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 5, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "A", - "source_mapping": { - "start": 28, - "length": 114, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "contract", - "name": "B", - "source_mapping": { - "start": 144, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13, - 14, - 15, - 16 - ], - "starting_column": 1, - "ending_column": 2 - } - } - ], - "description": "A.unused3 (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#6) is never used in B (tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#11-16)\n", - "markdown": "[A.unused3](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L6) is never used in [B](tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L11-L16)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/unused-state/0.7.6/unused_state.sol#L6", - "id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48", - "check": "unused-state", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json deleted file mode 100644 index 5825bcacc..000000000 --- a/tests/e2e/detectors/test_data/var-read-using-this/0.4.25/var_read_using_this.sol.0.4.25.VarReadUsingThis.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - [] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json deleted file mode 100644 index bef851b5e..000000000 --- a/tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol.0.5.16.VarReadUsingThis.json +++ /dev/null @@ -1,736 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "this.erc20() == address(0)", - "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L11-L13", - "id": "55503790711e79d47b5a41729e9de26ce1fda4ab9c0935699a14cc107501842f", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "local = this.erc20()", - "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 13, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L14-L18", - "id": "7e28633dee0a5338ebf7ccf52d467d96e66822051333ac4bc66de407ff56f3bd", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "this.myMap(x)", - "source_mapping": { - "start": 160, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L5-L7", - "id": "c5f735934f6390e4bb9ceae821df4ef6b509dde6dead3cea64f3db09508d6029", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "this.erc20()", - "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1107, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.5.16/var_read_using_this.sol#L8-L10", - "id": "e77df2d273271c1f2dea4480d2958fd432f725463ff933493542ccdff84987b5", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json deleted file mode 100644 index 0a879704d..000000000 --- a/tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol.0.6.11.VarReadUsingThis.json +++ /dev/null @@ -1,736 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "this.erc20()", - "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L8-L10", - "id": "9a65c3b63270657dc2c8cccb6e65b1b2a2c1f662b3d82969b258adf63430f46c", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "this.myMap(x)", - "source_mapping": { - "start": 160, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L5-L7", - "id": "d6aadc6c5e0b16141411ad82b627e660be61fe615802a6fba82fb0680d8ec677", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "this.erc20() == address(0)", - "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L11-L13", - "id": "ee3598271c55ef81ce5bb5797f41fe975de5f5a14728b4fb87fed3477f01c238", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "local = this.erc20()", - "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 13, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.6.11/var_read_using_this.sol#L14-L18", - "id": "fca8c2dd2139fad566cfbd2302ebbeabd3e18380a3969fe5bca5128234bcfef2", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json deleted file mode 100644 index 9b34e90d3..000000000 --- a/tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol.0.7.6.VarReadUsingThis.json +++ /dev/null @@ -1,736 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "this.erc20()", - "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L8-L10", - "id": "290598228553ac4edab639bddf2d53828b34be8d1042a2b4a6d123204d496f35", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "local = this.erc20()", - "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 13, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L14-L18", - "id": "30a0f3b46a9e9a90b039eb227e2718a281380de9a1e9af5dc185d56cfd66a2c7", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "this.myMap(x)", - "source_mapping": { - "start": 160, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L5-L7", - "id": "b256cea47af4d3cd37395d1a733b696008854142bbde559be84d26bd9762ee94", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "this.erc20() == address(0)", - "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.7.6/var_read_using_this.sol#L11-L13", - "id": "f08a064b6849275d93e7950958053cc779230d9ed5aa56c2e0ee64bc42a64a18", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json b/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json deleted file mode 100644 index f5cbbe0d7..000000000 --- a/tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol.0.8.15.VarReadUsingThis.json +++ /dev/null @@ -1,736 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "this.erc20()", - "source_mapping": { - "start": 244, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 9, - "ending_column": 28 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 192, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad2() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#8-10) reads this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#9) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad2()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10) reads [this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L9) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L8-L10", - "id": "40ec22aa539127c7cb3bc7631b7f92ebbfc062ff2d9c0df1f1939c5560d446ca", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - }, - { - "type": "node", - "name": "this.myMap(x)", - "source_mapping": { - "start": 160, - "length": 20, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 6 - ], - "starting_column": 9, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 102, - "length": 85, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 5, - 6, - 7 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1(uint256)" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad1(uint256) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#5-7) reads this.myMap(x) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#6) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad1(uint256)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7) reads [this.myMap(x)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L6) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L5-L7", - "id": "be52068edd166c8df6487c7731a41ae63028b53837808ab34cfc7ed8f7f0e25a", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - }, - { - "type": "node", - "name": "local = this.erc20()", - "source_mapping": { - "start": 471, - "length": 28, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 16 - ], - "starting_column": 13, - "ending_column": 41 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad4", - "source_mapping": { - "start": 379, - "length": 138, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 14, - 15, - 16, - 17, - 18 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad4()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad4() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#14-18) reads local = this.erc20() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#16) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad4()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18) reads [local = this.erc20()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L16) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L14-L18", - "id": "ebe2972f34a0dab794de30abdcaa715345347d50e045220e34b6fe186b3116e9", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "this.erc20() == address(0)", - "source_mapping": { - "start": 331, - "length": 26, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 12 - ], - "starting_column": 13, - "ending_column": 39 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 275, - "length": 99, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 11, - 12, - 13 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "VarReadUsingThis", - "source_mapping": { - "start": 1, - "length": 1103, - "filename_relative": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "The function VarReadUsingThis.bad3() (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#11-13) reads this.erc20() == address(0) (tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#12) with `this` which adds an extra STATICCALL.\n", - "markdown": "The function [VarReadUsingThis.bad3()](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13) reads [this.erc20() == address(0)](tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L12) with `this` which adds an extra STATICCALL.\n", - "first_markdown_element": "tests/e2e/detectors/test_data/var-read-using-this/0.8.15/var_read_using_this.sol#L11-L13", - "id": "faca8090dd3c1760f275353c90f014075eae7ad4ee5cd3559ef7219cd842bb1f", - "check": "var-read-using-this", - "impact": "Optimization", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json b/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json deleted file mode 100644 index 6950dcb48..000000000 --- a/tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json +++ /dev/null @@ -1,1299 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "i", - "source_mapping": { - "start": 199, - "length": 11, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 18, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - }, - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "i --", - "source_mapping": { - "start": 417, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 29, - "ending_column": 32 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i -- (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i --](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "095c11e8610be17375a514b274a990111f6eecade86dcfb496e9f37928e897d6", - "check": "variable-scope", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "i", - "source_mapping": { - "start": 199, - "length": 11, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 18, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - }, - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "x += i", - "source_mapping": { - "start": 436, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 15 - ], - "starting_column": 13, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: x += i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#15)\n", - "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [x += i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L15)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "1fd0e708c176441472d554bac03777d3bbefc96772c8f5d2cbf0ce9a8bbfb96a", - "check": "variable-scope", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "i", - "source_mapping": { - "start": 199, - "length": 11, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 18, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - }, - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "i > 0", - "source_mapping": { - "start": 410, - "length": 5, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 22, - "ending_column": 27 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i > 0 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i > 0](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "5488c1057b2ea266ea7471dff81dfc1b833e117af14dd80fbc2ec6b895c042f8", - "check": "variable-scope", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "i", - "source_mapping": { - "start": 199, - "length": 11, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 8 - ], - "starting_column": 18, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - }, - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "i = 10", - "source_mapping": { - "start": 402, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 14 - ], - "starting_column": 14, - "ending_column": 20 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "Variable 'C.f(uint256).i (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: i = 10 (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#14)\n", - "markdown": "Variable '[C.f(uint256).i](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i = 10](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L14)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L8", - "id": "7a8e31247c347e66766a188c2b474c43e42d7ae3d848eee491b448b7f006ec45", - "check": "variable-scope", - "impact": "Low", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "x", - "source_mapping": { - "start": 130, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - }, - { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - }, - { - "type": "node", - "name": "y = x + 9 + z", - "source_mapping": { - "start": 69, - "length": 13, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 4 - ], - "starting_column": 9, - "ending_column": 22 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "f", - "source_mapping": { - "start": 17, - "length": 442, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "C", - "source_mapping": { - "start": 0, - "length": 461, - "filename_relative": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19 - ], - "starting_column": 1, - "ending_column": 0 - } - }, - "signature": "f(uint256)" - } - } - } - } - ], - "description": "Variable 'C.f(uint256).x (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#5)' in C.f(uint256) (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#2-17) potentially used before declaration: y = x + 9 + z (tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#4)\n", - "markdown": "Variable '[C.f(uint256).x](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L5)' in [C.f(uint256)](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [y = x + 9 + z](tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L4)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/variable-scope/0.4.25/predeclaration_usage_local.sol#L5", - "id": "94c4c9c10924861806ab710b2985af6bf804e7a4be0e53e9faebe25b48d94c12", - "check": "variable-scope", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json deleted file mode 100644 index d1a086fb3..000000000 --- a/tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol.0.4.25.VoidConstructor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - }, - { - "type": "node", - "name": "C()", - "source_mapping": { - "start": 62, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 26, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.4.25/void-cst.sol#L10-L12", - "id": "55ac96fcef936e541b9795169e91e30db40ef05b05579e409099c7c216e50a1e", - "check": "void-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json deleted file mode 100644 index 7134909b6..000000000 --- a/tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol.0.5.16.VoidConstructor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - }, - { - "type": "node", - "name": "C()", - "source_mapping": { - "start": 62, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 26, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.5.16/void-cst.sol#L10-L12", - "id": "cc95457850d185b1d1b294987dcfbf4d46368435b7b739884040b6e9beff545d", - "check": "void-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json deleted file mode 100644 index 5504c2332..000000000 --- a/tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol.0.6.11.VoidConstructor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - }, - { - "type": "node", - "name": "C()", - "source_mapping": { - "start": 62, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 26, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.6.11/void-cst.sol#L10-L12", - "id": "73a68bb3efac669142fd13cd60fb44891b45e1a85791aefe5191e8c751b5469f", - "check": "void-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json b/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json deleted file mode 100644 index 0096a9256..000000000 --- a/tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol.0.7.6.VoidConstructor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - }, - { - "type": "node", - "name": "C()", - "source_mapping": { - "start": 62, - "length": 3, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 26, - "ending_column": 29 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "constructor", - "source_mapping": { - "start": 41, - "length": 32, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "is_dependency": false, - "lines": [ - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "D", - "source_mapping": { - "start": 19, - "length": 57, - "filename_relative": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "constructor()" - } - } - } - } - ], - "description": "Void constructor called in D.constructor() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10-12):\n\t- C() (tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#10)\n", - "markdown": "Void constructor called in [D.constructor()](tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10-L12):\n\t- [C()](tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/void-cst/0.7.6/void-cst.sol#L10-L12", - "id": "7ae5f294c43db6bc7621197cb8a85bfa9f2fc2d96c5534b80f5e3de95ffa6706", - "check": "void-cst", - "impact": "Low", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json deleted file mode 100644 index 0c508dbc9..000000000 --- a/tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol.0.4.25.BadPRNG.json +++ /dev/null @@ -1,644 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "i = now % 10", - "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 7, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L8-L10", - "id": "143f5f0813a8024fe87180dc965da233f389d77a41bad7b937acde2f5555e13e", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", - "source_mapping": { - "start": 216, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 7, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L12-L14", - "id": "a48a54481e1fc0db4bca891f0c3f22b29bf26ced0d0b8431d888967c3263b264", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "i = foo() % 10", - "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 7, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L20-L22", - "id": "cac2fa07af6b5b7ea3532b6c1b1e1d260037c40b731fcc45a75f206d6a648652", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "i = block.timestamp % 10", - "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 7, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.4.25/bad_prng.sol#L4-L6", - "id": "d5ccd15b3c621af3f73362f44b9d4d23def15db653ce33b361a644434be9602c", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json deleted file mode 100644 index e999af5f9..000000000 --- a/tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol.0.5.16.BadPRNG.json +++ /dev/null @@ -1,644 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "i = now % 10", - "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 7, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L8-L10", - "id": "3c7be6367f5be15ead00dfbcfc2022fdb73817e5f935c6015ba4fc807b505f69", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "i = block.timestamp % 10", - "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 7, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L4-L6", - "id": "be9b456f0a8ae7cb5bbc52eae709817707238cc2316533b72ac707cb3228316f", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", - "source_mapping": { - "start": 216, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 7, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L12-L14", - "id": "c158977d5022ad3d99288118f7a6f52b52bb33f9977554bd4d0818ff51c9e9c2", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "i = foo() % 10", - "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 7, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.5.16/bad_prng.sol#L20-L22", - "id": "fd288ed50722fc401dd1618df6351f671367dfd03eb5640ebf32022c2c7616a6", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json deleted file mode 100644 index 8c7a1f4ca..000000000 --- a/tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol.0.6.11.BadPRNG.json +++ /dev/null @@ -1,644 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "i = now % 10", - "source_mapping": { - "start": 154, - "length": 17, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 7, - "ending_column": 24 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 56, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L8-L10", - "id": "00229cc63ae06a1fdb0d8046a4e7c0ade397b309659a2b597399a3663985b25a", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "i = block.timestamp % 10", - "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 7, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L4-L6", - "id": "075aa1de6fc21238aeeaffdfbae1b4361021f8a6c476b422e40a4cabfc337ae4", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", - "source_mapping": { - "start": 216, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 7, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 184, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L12-L14", - "id": "0f2caf1275a0fff75dc984176de06ea8ffade337f7d54176a7902cc77fad2333", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "i = foo() % 10", - "source_mapping": { - "start": 395, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 7, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 363, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 499, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.6.11/bad_prng.sol#L20-L22", - "id": "5af8366c76386b6e2acdad51dfcbbd64226e53e7b4decab2acd11a9ce5b4ba3c", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json b/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json deleted file mode 100644 index 3b85badb2..000000000 --- a/tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol.0.7.6.BadPRNG.json +++ /dev/null @@ -1,644 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 375, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - }, - { - "type": "node", - "name": "i = foo() % 10", - "source_mapping": { - "start": 407, - "length": 19, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 7, - "ending_column": 26 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad3", - "source_mapping": { - "start": 375, - "length": 58, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad3()" - } - } - } - } - ], - "description": "BadPRNG.bad3() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#21)\" \n", - "markdown": "[BadPRNG.bad3()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L21)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L20-L22", - "id": "07d06861c819615e4db8b0e5dad920b32ffd6264b7e167fbeb3c832d26970b33", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 196, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - }, - { - "type": "node", - "name": "i = uint256(blockhash(uint256)(10000)) % 10", - "source_mapping": { - "start": 228, - "length": 39, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 13 - ], - "starting_column": 7, - "ending_column": 46 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad2", - "source_mapping": { - "start": 196, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 12, - 13, - 14 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad2()" - } - } - } - } - ], - "description": "BadPRNG.bad2() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#13)\" \n", - "markdown": "[BadPRNG.bad2()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L13)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L12-L14", - "id": "235a90165fd614c1665cc0f21365b3be51c00c850e4023e6fb490073335e9799", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - }, - { - "type": "node", - "name": "i = block.timestamp % 10", - "source_mapping": { - "start": 154, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 9 - ], - "starting_column": 7, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad1", - "source_mapping": { - "start": 122, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 8, - 9, - 10 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad1()" - } - } - } - } - ], - "description": "BadPRNG.bad1() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#8-10) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#9)\" \n", - "markdown": "[BadPRNG.bad1()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L9)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L8-L10", - "id": "5b78d3756b66561562fbf9c19a39c7083e422f1e0404a7635e01aed584636221", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - }, - { - "elements": [ - { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - }, - { - "type": "node", - "name": "i = block.timestamp % 10", - "source_mapping": { - "start": 77, - "length": 29, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 5 - ], - "starting_column": 7, - "ending_column": 36 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bad0", - "source_mapping": { - "start": 45, - "length": 68, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 4, - 5, - 6 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "BadPRNG", - "source_mapping": { - "start": 0, - "length": 511, - "filename_relative": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bad0()" - } - } - } - } - ], - "description": "BadPRNG.bad0() (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#5)\" \n", - "markdown": "[BadPRNG.bad0()](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L5)\" \n", - "first_markdown_element": "tests/e2e/detectors/test_data/weak-prng/0.7.6/bad_prng.sol#L4-L6", - "id": "998e1c79a2cdbd1e2ff7c3faf1546c5fdf0bf9095f49e7fc9dd1fa4f6d673dac", - "check": "weak-prng", - "impact": "High", - "confidence": "Medium" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json b/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json deleted file mode 100644 index 9a08b581f..000000000 --- a/tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol.0.8.0.WriteAfterWrite.json +++ /dev/null @@ -1,1070 +0,0 @@ -[ - [ - { - "elements": [ - { - "type": "variable", - "name": "state", - "source_mapping": { - "start": 20, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 3 - ], - "starting_column": 5, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - } - } - }, - { - "type": "node", - "name": "state = 10", - "source_mapping": { - "start": 157, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 10 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "buggy_state", - "source_mapping": { - "start": 116, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "buggy_state()" - } - } - } - }, - { - "type": "node", - "name": "state = 20", - "source_mapping": { - "start": 177, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 11 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "buggy_state", - "source_mapping": { - "start": 116, - "length": 78, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 9, - 10, - 11, - 12 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "buggy_state()" - } - } - } - } - ], - "description": "Test.state (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#3) is written in both\n\tstate = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#10)\n\tstate = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#11)\n", - "markdown": "[Test.state](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L3) is written in both\n\t[state = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L10)\n\t[state = 20](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L11)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L3", - "id": "ac5839f78b0995be85eede2862996d38a3a50c70e92668462f31fadce02f081e", - "check": "write-after-write", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "local", - "source_mapping": { - "start": 894, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 52 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bugy_external_local", - "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bugy_external_local()" - } - } - } - }, - { - "type": "node", - "name": "local = 10", - "source_mapping": { - "start": 914, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 53 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bugy_external_local", - "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bugy_external_local()" - } - } - } - }, - { - "type": "node", - "name": "local = 11", - "source_mapping": { - "start": 973, - "length": 10, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 56 - ], - "starting_column": 9, - "ending_column": 19 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "bugy_external_local", - "source_mapping": { - "start": 845, - "length": 145, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "bugy_external_local()" - } - } - } - } - ], - "description": "Test.bugy_external_local().local (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#52) is written in both\n\tlocal = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#53)\n\tlocal = 11 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#56)\n", - "markdown": "[Test.bugy_external_local().local](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L52) is written in both\n\t[local = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L53)\n\t[local = 11](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L56)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L52", - "id": "bbb2aea426252f6fa0c1bb26bc05cdadfa245207b59273fcd3a5afcdaff675ce", - "check": "write-after-write", - "impact": "Medium", - "confidence": "High" - }, - { - "elements": [ - { - "type": "variable", - "name": "a", - "source_mapping": { - "start": 351, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 21 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "buggy_local", - "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "buggy_local()" - } - } - } - }, - { - "type": "node", - "name": "a = 10", - "source_mapping": { - "start": 367, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 22 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "buggy_local", - "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "buggy_local()" - } - } - } - }, - { - "type": "node", - "name": "a = 20", - "source_mapping": { - "start": 383, - "length": 6, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 23 - ], - "starting_column": 9, - "ending_column": 15 - }, - "type_specific_fields": { - "parent": { - "type": "function", - "name": "buggy_local", - "source_mapping": { - "start": 310, - "length": 86, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 20, - 21, - 22, - 23, - 24 - ], - "starting_column": 5, - "ending_column": 6 - }, - "type_specific_fields": { - "parent": { - "type": "contract", - "name": "Test", - "source_mapping": { - "start": 0, - "length": 992, - "filename_relative": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "filename_absolute": "/GENERIC_PATH", - "filename_short": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol", - "is_dependency": false, - "lines": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ], - "starting_column": 1, - "ending_column": 2 - } - }, - "signature": "buggy_local()" - } - } - } - } - ], - "description": "Test.buggy_local().a (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#21) is written in both\n\ta = 10 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#22)\n\ta = 20 (tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#23)\n", - "markdown": "[Test.buggy_local().a](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L21) is written in both\n\t[a = 10](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L22)\n\t[a = 20](tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L23)\n", - "first_markdown_element": "tests/e2e/detectors/test_data/write-after-write/0.8.0/write-after-write.sol#L21", - "id": "f676e1dedd369680cb4b83867fa0f2bc5ff5e9d7f9e089fcbb31a824c77e2bb8", - "check": "write-after-write", - "impact": "Medium", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index 0e3185eef..26ea93743 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -2,11 +2,9 @@ import json import os from pathlib import Path import sys -from pprint import pprint from typing import Type, Optional, List import pytest -from deepdiff import DeepDiff # pip install deepdiff from crytic_compile import CryticCompile, save_to_zip from crytic_compile.utils.zip import load_from_zip @@ -1667,12 +1665,9 @@ def test_detector(test_item: Test, snapshot): test_item.solc_ver, ).as_posix() test_file_path = Path(test_dir_path, test_item.test_file).as_posix() - expected_result_path = Path(test_dir_path, test_item.expected_result).absolute().as_posix() zip_artifact_path = Path(f"{test_file_path}-{test_item.solc_ver}.zip").as_posix() crytic_compile = load_from_zip(zip_artifact_path)[0] - # The absolute paths saved in the zip file must be replaced by the generic path - artifact_filenames = crytic_compile.filenames sl = Slither(crytic_compile) sl.register_detector(test_item.detector) @@ -1685,37 +1680,6 @@ def test_detector(test_item: Test, snapshot): actual_output += "\n" assert snapshot() == actual_output - with open(expected_result_path, encoding="utf8") as f: - expected_result = json.load(f) - - results_as_string = json.dumps(results) - - for additional_file in test_item.additional_files: - additional_path = Path(test_dir_path, additional_file).absolute().as_posix() - additional_path = additional_path.replace("\\", "\\\\") - for artifact_filename in artifact_filenames: - results_as_string = results_as_string.replace(artifact_filename.absolute, GENERIC_PATH) - - test_file_path = test_file_path.replace("\\", "\\\\") - for artifact_filename in artifact_filenames: - results_as_string = results_as_string.replace(artifact_filename.absolute, GENERIC_PATH) - results = json.loads(results_as_string) - - diff = DeepDiff(results, expected_result, ignore_order=True, verbose_level=2) - if diff: - pprint(diff) - diff_as_dict = diff.to_dict() - - if "iterable_item_added" in diff_as_dict: - print("#### Findings added") - for finding_added in diff_as_dict["iterable_item_added"].values(): - print(finding_added["description"]) - if "iterable_item_removed" in diff_as_dict: - print("#### Findings removed") - for finding_added in diff_as_dict["iterable_item_removed"].values(): - print(finding_added["description"]) - assert False - def _generate_test(test_item: Test, skip_existing=False): test_dir_path = Path( From 111559bf750ce58d307806e36fbebb671ad7c973 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 4 Apr 2023 13:15:20 -0500 Subject: [PATCH 032/105] Black --- slither/utils/code_generation.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index cd72e6c8f..c22a72526 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,13 @@ from slither.utils.type import ( export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import Type, UserDefinedType, MappingType, ArrayType, ElementaryType +from slither.core.solidity_types import ( + Type, + UserDefinedType, + MappingType, + ArrayType, + ElementaryType, +) from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: From fa4ca2c454da4500ecf9ce4d0c1f38185a1552f4 Mon Sep 17 00:00:00 2001 From: aga7hokakological Date: Thu, 6 Apr 2023 00:22:43 +0530 Subject: [PATCH 033/105] fixed: changed name of the printer pausable -> not-pausable --- slither/printers/summary/when_not_paused.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/printers/summary/when_not_paused.py b/slither/printers/summary/when_not_paused.py index d8a57b6c7..c45f32d5b 100644 --- a/slither/printers/summary/when_not_paused.py +++ b/slither/printers/summary/when_not_paused.py @@ -23,7 +23,7 @@ def _use_modifier(function: Function, modifier_name: str = "whenNotPaused") -> b class PrinterWhenNotPaused(AbstractPrinter): - ARGUMENT = "pausable" + ARGUMENT = "not-pausable" HELP = "Print functions that do not use whenNotPaused" WIKI = "https://github.com/trailofbits/slither/wiki/Printer-documentation#when-not-paused" From 82960f387c0216b94e2ee404e882a2da30c88e08 Mon Sep 17 00:00:00 2001 From: aga7hokakological Date: Thu, 6 Apr 2023 00:25:52 +0530 Subject: [PATCH 034/105] fixed: pausable printer includes checks on constructor() --- slither/printers/summary/when_not_paused.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slither/printers/summary/when_not_paused.py b/slither/printers/summary/when_not_paused.py index c45f32d5b..aaeeeacec 100644 --- a/slither/printers/summary/when_not_paused.py +++ b/slither/printers/summary/when_not_paused.py @@ -10,8 +10,6 @@ from slither.utils.myprettytable import MyPrettyTable def _use_modifier(function: Function, modifier_name: str = "whenNotPaused") -> bool: - if function.is_constructor or function.view or function.pure: - return False for internal_call in function.all_internal_calls(): if isinstance(internal_call, SolidityFunction): @@ -46,6 +44,8 @@ class PrinterWhenNotPaused(AbstractPrinter): table = MyPrettyTable(["Name", "Use whenNotPaused"]) for function in contract.functions_entry_points: + if function.is_constructor or function.view or function.pure: + continue status = "X" if _use_modifier(function, modifier_name) else "" table.add_row([function.solidity_signature, status]) From 1e8abe01d11af1a9e2a4d45178ef4296e09e4f69 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 7 Apr 2023 16:20:22 +0200 Subject: [PATCH 035/105] Fix try catch infinite recursion --- slither/solc_parsing/declarations/function.py | 13 ++++++++----- .../trycatch-0.4.0.sol-0.4.0-legacy.zip | Bin 724 -> 751 bytes .../trycatch-0.4.0.sol-0.4.1-legacy.zip | Bin 723 -> 752 bytes .../trycatch-0.4.0.sol-0.4.10-legacy.zip | Bin 795 -> 821 bytes .../trycatch-0.4.0.sol-0.4.11-legacy.zip | Bin 805 -> 832 bytes .../trycatch-0.4.0.sol-0.4.12-compact.zip | Bin 862 -> 886 bytes .../trycatch-0.4.0.sol-0.4.12-legacy.zip | Bin 873 -> 894 bytes .../trycatch-0.4.0.sol-0.4.13-compact.zip | Bin 866 -> 886 bytes .../trycatch-0.4.0.sol-0.4.13-legacy.zip | Bin 873 -> 894 bytes .../trycatch-0.4.0.sol-0.4.14-compact.zip | Bin 865 -> 885 bytes .../trycatch-0.4.0.sol-0.4.14-legacy.zip | Bin 873 -> 893 bytes .../trycatch-0.4.0.sol-0.4.15-compact.zip | Bin 865 -> 886 bytes .../trycatch-0.4.0.sol-0.4.15-legacy.zip | Bin 873 -> 894 bytes .../trycatch-0.4.0.sol-0.4.16-compact.zip | Bin 864 -> 883 bytes .../trycatch-0.4.0.sol-0.4.16-legacy.zip | Bin 872 -> 891 bytes .../trycatch-0.4.0.sol-0.4.17-compact.zip | Bin 863 -> 879 bytes .../trycatch-0.4.0.sol-0.4.17-legacy.zip | Bin 871 -> 888 bytes .../trycatch-0.4.0.sol-0.4.18-compact.zip | Bin 863 -> 881 bytes .../trycatch-0.4.0.sol-0.4.18-legacy.zip | Bin 870 -> 889 bytes .../trycatch-0.4.0.sol-0.4.19-compact.zip | Bin 863 -> 882 bytes .../trycatch-0.4.0.sol-0.4.19-legacy.zip | Bin 870 -> 890 bytes .../trycatch-0.4.0.sol-0.4.2-legacy.zip | Bin 725 -> 751 bytes .../trycatch-0.4.0.sol-0.4.20-compact.zip | Bin 860 -> 881 bytes .../trycatch-0.4.0.sol-0.4.20-legacy.zip | Bin 867 -> 889 bytes .../trycatch-0.4.0.sol-0.4.21-compact.zip | Bin 859 -> 879 bytes .../trycatch-0.4.0.sol-0.4.21-legacy.zip | Bin 867 -> 888 bytes .../trycatch-0.4.0.sol-0.4.22-compact.zip | Bin 887 -> 910 bytes .../trycatch-0.4.0.sol-0.4.22-legacy.zip | Bin 894 -> 917 bytes .../trycatch-0.4.0.sol-0.4.23-compact.zip | Bin 887 -> 909 bytes .../trycatch-0.4.0.sol-0.4.23-legacy.zip | Bin 895 -> 917 bytes .../trycatch-0.4.0.sol-0.4.24-compact.zip | Bin 887 -> 907 bytes .../trycatch-0.4.0.sol-0.4.24-legacy.zip | Bin 896 -> 915 bytes .../trycatch-0.4.0.sol-0.4.25-compact.zip | Bin 888 -> 907 bytes .../trycatch-0.4.0.sol-0.4.25-legacy.zip | Bin 896 -> 915 bytes .../trycatch-0.4.0.sol-0.4.26-compact.zip | Bin 887 -> 908 bytes .../trycatch-0.4.0.sol-0.4.26-legacy.zip | Bin 896 -> 916 bytes .../trycatch-0.4.0.sol-0.4.3-legacy.zip | Bin 723 -> 752 bytes .../trycatch-0.4.0.sol-0.4.4-legacy.zip | Bin 725 -> 751 bytes .../trycatch-0.4.0.sol-0.4.5-legacy.zip | Bin 726 -> 752 bytes .../trycatch-0.4.0.sol-0.4.6-legacy.zip | Bin 725 -> 752 bytes .../trycatch-0.4.0.sol-0.4.7-legacy.zip | Bin 800 -> 825 bytes .../trycatch-0.4.0.sol-0.4.8-legacy.zip | Bin 799 -> 824 bytes .../trycatch-0.4.0.sol-0.4.9-legacy.zip | Bin 795 -> 819 bytes .../trycatch-0.4.0.sol-0.5.0-compact.zip | Bin 891 -> 911 bytes .../trycatch-0.4.0.sol-0.5.0-legacy.zip | Bin 899 -> 918 bytes .../trycatch-0.4.0.sol-0.5.1-compact.zip | Bin 887 -> 910 bytes .../trycatch-0.4.0.sol-0.5.1-legacy.zip | Bin 894 -> 917 bytes .../trycatch-0.4.0.sol-0.5.10-compact.zip | Bin 906 -> 922 bytes .../trycatch-0.4.0.sol-0.5.10-legacy.zip | Bin 912 -> 931 bytes .../trycatch-0.4.0.sol-0.5.11-compact.zip | Bin 903 -> 924 bytes .../trycatch-0.4.0.sol-0.5.11-legacy.zip | Bin 910 -> 932 bytes .../trycatch-0.4.0.sol-0.5.12-compact.zip | Bin 902 -> 922 bytes .../trycatch-0.4.0.sol-0.5.12-legacy.zip | Bin 909 -> 930 bytes .../trycatch-0.4.0.sol-0.5.13-compact.zip | Bin 903 -> 923 bytes .../trycatch-0.4.0.sol-0.5.13-legacy.zip | Bin 910 -> 930 bytes .../trycatch-0.4.0.sol-0.5.14-compact.zip | Bin 903 -> 923 bytes .../trycatch-0.4.0.sol-0.5.14-legacy.zip | Bin 911 -> 931 bytes .../trycatch-0.4.0.sol-0.5.15-compact.zip | Bin 905 -> 922 bytes .../trycatch-0.4.0.sol-0.5.15-legacy.zip | Bin 912 -> 930 bytes .../trycatch-0.4.0.sol-0.5.16-compact.zip | Bin 904 -> 920 bytes .../trycatch-0.4.0.sol-0.5.16-legacy.zip | Bin 911 -> 928 bytes .../trycatch-0.4.0.sol-0.5.17-compact.zip | Bin 899 -> 920 bytes .../trycatch-0.4.0.sol-0.5.17-legacy.zip | Bin 907 -> 928 bytes .../trycatch-0.4.0.sol-0.5.2-compact.zip | Bin 891 -> 908 bytes .../trycatch-0.4.0.sol-0.5.2-legacy.zip | Bin 898 -> 916 bytes .../trycatch-0.4.0.sol-0.5.3-compact.zip | Bin 889 -> 910 bytes .../trycatch-0.4.0.sol-0.5.3-legacy.zip | Bin 897 -> 918 bytes .../trycatch-0.4.0.sol-0.5.4-compact.zip | Bin 892 -> 910 bytes .../trycatch-0.4.0.sol-0.5.4-legacy.zip | Bin 899 -> 917 bytes .../trycatch-0.4.0.sol-0.5.5-compact.zip | Bin 890 -> 910 bytes .../trycatch-0.4.0.sol-0.5.5-legacy.zip | Bin 898 -> 918 bytes .../trycatch-0.4.0.sol-0.5.6-compact.zip | Bin 891 -> 908 bytes .../trycatch-0.4.0.sol-0.5.6-legacy.zip | Bin 898 -> 916 bytes .../trycatch-0.4.0.sol-0.5.7-compact.zip | Bin 887 -> 910 bytes .../trycatch-0.4.0.sol-0.5.7-legacy.zip | Bin 894 -> 918 bytes .../trycatch-0.4.0.sol-0.5.8-compact.zip | Bin 891 -> 909 bytes .../trycatch-0.4.0.sol-0.5.8-legacy.zip | Bin 899 -> 917 bytes .../trycatch-0.4.0.sol-0.5.9-compact.zip | Bin 904 -> 920 bytes .../trycatch-0.4.0.sol-0.5.9-legacy.zip | Bin 911 -> 928 bytes .../trycatch-0.6.0.sol-0.6.0-compact.zip | Bin 5348 -> 5895 bytes .../trycatch-0.6.0.sol-0.6.1-compact.zip | Bin 5335 -> 5904 bytes .../trycatch-0.6.0.sol-0.6.10-compact.zip | Bin 5120 -> 5683 bytes .../trycatch-0.6.0.sol-0.6.11-compact.zip | Bin 5121 -> 5686 bytes .../trycatch-0.6.0.sol-0.6.12-compact.zip | Bin 5122 -> 5676 bytes .../trycatch-0.6.0.sol-0.6.2-compact.zip | Bin 5337 -> 5896 bytes .../trycatch-0.6.0.sol-0.6.3-compact.zip | Bin 5338 -> 5911 bytes .../trycatch-0.6.0.sol-0.6.4-compact.zip | Bin 5340 -> 5917 bytes .../trycatch-0.6.0.sol-0.6.5-compact.zip | Bin 5343 -> 5910 bytes .../trycatch-0.6.0.sol-0.6.6-compact.zip | Bin 5359 -> 5927 bytes .../trycatch-0.6.0.sol-0.6.7-compact.zip | Bin 5370 -> 5934 bytes .../trycatch-0.6.0.sol-0.6.8-compact.zip | Bin 5385 -> 5943 bytes .../trycatch-0.6.0.sol-0.6.9-compact.zip | Bin 5114 -> 5681 bytes .../trycatch-0.6.0.sol-0.7.0-compact.zip | Bin 5033 -> 5580 bytes .../trycatch-0.6.0.sol-0.7.1-compact.zip | Bin 5032 -> 5584 bytes .../trycatch-0.6.0.sol-0.7.2-compact.zip | Bin 5036 -> 5593 bytes .../trycatch-0.6.0.sol-0.7.3-compact.zip | Bin 5037 -> 5584 bytes .../trycatch-0.6.0.sol-0.7.4-compact.zip | Bin 5036 -> 5586 bytes .../trycatch-0.6.0.sol-0.7.5-compact.zip | Bin 5033 -> 5588 bytes .../trycatch-0.6.0.sol-0.7.6-compact.zip | Bin 5036 -> 5588 bytes .../trycatch-0.6.0.sol-0.8.0-compact.zip | Bin 5994 -> 6717 bytes .../trycatch-0.6.0.sol-0.8.1-compact.zip | Bin 6204 -> 6858 bytes .../trycatch-0.6.0.sol-0.8.10-compact.zip | Bin 6459 -> 7209 bytes .../trycatch-0.6.0.sol-0.8.11-compact.zip | Bin 6463 -> 7209 bytes .../trycatch-0.6.0.sol-0.8.12-compact.zip | Bin 6464 -> 7205 bytes .../trycatch-0.6.0.sol-0.8.13-compact.zip | Bin 6479 -> 7201 bytes .../trycatch-0.6.0.sol-0.8.14-compact.zip | Bin 6477 -> 7201 bytes .../trycatch-0.6.0.sol-0.8.15-compact.zip | Bin 6482 -> 7182 bytes .../trycatch-0.6.0.sol-0.8.2-compact.zip | Bin 6267 -> 6952 bytes .../trycatch-0.6.0.sol-0.8.3-compact.zip | Bin 6262 -> 6947 bytes .../trycatch-0.6.0.sol-0.8.4-compact.zip | Bin 6346 -> 7011 bytes .../trycatch-0.6.0.sol-0.8.5-compact.zip | Bin 6363 -> 7045 bytes .../trycatch-0.6.0.sol-0.8.6-compact.zip | Bin 6359 -> 7040 bytes .../trycatch-0.6.0.sol-0.8.7-compact.zip | Bin 6338 -> 7047 bytes .../trycatch-0.6.0.sol-0.8.8-compact.zip | Bin 6481 -> 7208 bytes .../trycatch-0.6.0.sol-0.8.9-compact.zip | Bin 6495 -> 7216 bytes .../trycatch-0.6.0.sol-0.6.0-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.1-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.10-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.11-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.12-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.2-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.3-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.4-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.5-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.6-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.7-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.8-compact.json | 2 +- .../trycatch-0.6.0.sol-0.6.9-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.0-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.1-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.2-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.3-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.4-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.5-compact.json | 2 +- .../trycatch-0.6.0.sol-0.7.6-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.0-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.1-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.10-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.11-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.12-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.13-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.14-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.15-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.2-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.3-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.4-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.5-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.6-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.7-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.8-compact.json | 2 +- .../trycatch-0.6.0.sol-0.8.9-compact.json | 2 +- .../solc_parsing/test_data/trycatch-0.6.0.sol | 8 ++++++++ 152 files changed, 52 insertions(+), 41 deletions(-) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index ba2f225f0..6b1846107 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1145,20 +1145,23 @@ class FunctionSolc(CallerContextExpression): node.set_sons([start_node]) start_node.add_father(node) - def _fix_try(self, node: Node) -> None: + def _fix_try(self, node: Node, visited: set[Node] = None) -> None: + if visited is None: + visited = set() end_node = next((son for son in node.sons if son.type != NodeType.CATCH), None) if end_node: for son in node.sons: if son.type == NodeType.CATCH: - self._fix_catch(son, end_node) + self._fix_catch(son, end_node, visited) - def _fix_catch(self, node: Node, end_node: Node) -> None: + def _fix_catch(self, node: Node, end_node: Node, visited: set[Node]) -> None: if not node.sons: link_nodes(node, end_node) else: for son in node.sons: - if son != end_node: - self._fix_catch(son, end_node) + if son != end_node and son not in visited: + visited.add(son) + self._fix_catch(son, end_node, visited) def _add_param(self, param: Dict) -> LocalVariableSolc: diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.0-legacy.zip index e575a37a7c8bc2e9b024ea59d6ca4fdf0816c446..04dc217a84de9c3beaac4d62359325d0236165af 100644 GIT binary patch delta 615 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 PPyWkf#I_Nb8W|V>;MOgP diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.11-legacy.zip index 46d896ba07de092a59a948b9ceb9ee137837c2ef..bf56ab75e25dba4030b38042a9ea48712d1f96d0 100644 GIT binary patch delta 697 zcmV;q0!IC%2EYawP)h>@KL7#%4gd{*hgLP0jggW9001Qkkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8L^artp7)Nk0^9*PE z^s_SHgs(xSN@z5H2UIwR!~c*5g+f>*P$}?r;yuEOasP9k6uF>@W9}UG6P4kEv8ZgE zV$vs{!uDPzw&+M3W;iXj2Vplf%STKzqhsE{gudBAe)r(;99%+p# z3v|i$e40RlY97|k`e{_VOm~t#<2V=zX~XPeee!Za$c0CLqkMSCF4s!pW4QiUab(h} zaCe$@xiep;gqlOd7Obb)pXIoAG|sk%IRR5+Vr#|>iB#)-rSz8)?1-0js>P+NC$>N; zx0baDlZkHL$&8W<uIBl2Kl z>BQWSyxXgPZQbPr&>U)-^FkV?r>gx2-Q=1`~2JniJH6A+EJ-oHfj|v zQwR6E`^%5mB!O)l=1MJ%HP~&Wl`E%?S!husTDJZ4Mnr^+PwXTRF0bd!gpP$Xa>vds zMio^;y0bKRh1z(2_%X)2El7PB->w0(B>Y(w z>1)~>&(x21!&T7Z^Dx5NglP@*wVlaFL#nhC9sRvAIQ>M6<^S`Fht^O_0Rle*KL7#% f4gd`ee}`5zmyMB<0ssId36s?VN(R;f000001xr|5 delta 690 zcmV;j0!{tE2BiiYP)h>@KL7#%4gj-ra8zuD^EY<_008|5001VF0Rt(KL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3y&0pqh?0n>Ip&Vaa10~2Nx^?WHjz>(2c&FferZBys~hzkNFVw~$ zU>C0-Xnht=^g1CR6OhRP`aUo(Ha?jvP%k2Zq@5xz58;cNJBGl^4WNI_!PQ-nm|3^} ze)Nxa@gtJ=J|c4DY7!FGd?g3+Si1G>d3#nft#Yc$oN+$NFg(=<^|toEv`yV4V=q;H3bT?ueK( zTzhzut8_iIW{OQ}QaA_^#-BK^=AkJbS-NAK8;*|rDk4)O)hbpXJbd%+;Db!?W!C$h zN*TXeIyKz4H3=vg{|_|vD3|^^e3MX10Rle*KL7#%4gj-ra8zuD^EY<_008|5001Tc Y0000000000005Kz0z3x00ssI20DI9uTL1t6 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-compact.zip index e16147f510ff08c4680725ed34f46add438484a2..9fb83735c9232735ed896c2fd88f5ac8a2a3a412 100644 GIT binary patch delta 752 zcmV@KL7#%4gd~+hgL6MBeci@000RJ001VF9|I|oL@IyvLq3k% z8(|US<+$<-R-TXbNE-97FH-K9mq@1&+0=A#oo)!e&BSqqY@)H2tpV5?K7wRBZt4}$ zBQpE?X)yD}^0K78!#x5CbQ(**;`Y?sQwoZ^(xv9rtB`VsY#g48&iHyQUdEw<99y13 z;QtO>to{$x(J-QJ9*`CBLDYXAGmJ^5B^{WH|AG;v2XAM62)9-Abd98!7Y--4r1sd$ z(nuM0I1XaHWsjVY0|<=a6EgfH+7sF)>m>)vMK~Uu}1B&NYMess9JT{fFfj3=FNMe zB^g$-efuAh%hsCgu#a2-^3-UgjsL{8V5Pgnzn_l>UCO9XB7^D&+dDNTFTbzyfyCb- z^62<|76B-Nu!g(Cx^aI9d`A-G+Q9(AYceBD_{Jdl2gKfld?WFbIxPRJcV@0R-){+9 zWRJ=ltE@_7k5u%%8$%tsm7OX+=Oj#1=Y8PQZS^;kYX<;RMBdxz!PXXbBj-B-oi${0 zi^T`=wkm%jY?WcaIl}oBaU~X`BW@{RdszZt^+GW6d&T0TQYC)|X+GJ+n^>#t)S)tV z?ZI#smYfBNiy~kNQipDj6j~6UN|^yDGUu^d-)Z8?q~%phA5NgYidOu?6w@!;AWX^= zQupiTH=rbHZ;IZ=Fqb6!JfEepW;v9KRH`=U3~8KF%}{Qfx_?a@$M0{;G;+;aWrq&o zyW!v@U}w$2jaof&){^fzBwq`FTC4&J>L^8RQffNGpH&t90^7O)@c-}NK!Z?A0Rle* iKL7#%4gd~+hgL6MBeci@000RJlMVw)1`GoL0001bv|_~o delta 721 zcmV;?0xtdb2Hpl3P)h>@KL7#%4gl@7WLAU?oZzqm005K-kr-Bg@kbAZrIlV+*LwgE zaqkuAn-IgLaZPnscN={wfW})Juc+K?NS}K zY#VQ_!CBRoJi5uZHJ2$4!t7=d{j6DC#$zS$d4H!fRS!R<^(BsZ$g0-@%m9(IWr%y3 znCnoZQ;8CT3Wyhf3-WdX)V`NrU$A!XWb}l7021PxS0Oc)j%tQTUJ7$c{^kIzL{-@~ z+2&Db-1?%S(>P0t@Cm8c<8NnHWBTRAjt1z?LPU#X1n^_zlc1q<`B!R2%ffWAt#GX& z!0s-JnXK^DSf7H89Qd0P$XqXm0xwYujjvG)xu`>?#YGN(JH;gmHgLM8WdF}IKT9EJ zb+bWBGgL4m(v~(yJXclxH%RnyLu41@hxCKz+k)={dm;7JV1!s=&x zxb7Kh$gN`ME*v58!FcNKIQV&g)|eqo-DMv>#Fz*O5&5VS#q(EC zY;(K!Iq}aqTyao0YDKUIrg(vKSn=qS1~_vd`gnBVx0ssJ%2$LoQN(S@-00000 DYnN3+ diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.12-legacy.zip index caf1e250b3fbfde591c3b410794115777c23f317..31185f085f8284cb502718f60a188ed18bf71519 100644 GIT binary patch delta 759 zcmV@KL7#%4gd~+hgJzNCGXGz001xwkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8L_%uoJ|RDt#doTZFpD#x^DeDDX98f@y|2IcB#QrVoye`k^iaNEqZ7WEcO>>D_Tw9OAv z>rvUX+=b`eBh)ZW1e9}EU}=Q&h4WftvoWfdqsov(a~)wCjmR8~&*2N(aY%)w-INJ(}2iC5}faiP)|L%J) p>rhJp0zU&k00ICG01khLRtYdA@6ZAO05A%Z83RfN6axSN002h!VL<=@ delta 745 zcmV@KL7#%4gj-ra8&9(=QXqjVTRM4|afIbUkE-3y&6ca{ro**wl1bSO~>l$eSdqbt)yv&L1@| zyu~c0T9M!h0~g6;`-{m_$&!DW1g(FjmKz;NZhGO9q|g?lA}NNC|8ARYUiMB6(yAUH zNRn;iGjPF;*gJY|n+L^cGC*UvF|2=;5?t)YIkrN> z-PJTI9!<6ABR3q$n5i10kI#cQYPH0;VCwzqbvX*<8<3C}V`^GP^J)VWV9)}`BuNin ztBB608-Olnj{lY6=k-5{GV%2q1_+|w@6v*)q5jZf(y{J!M@1=`?O>E{WDRcaJ&>$X z4|#saoKwii+Rkr~RxW=%QOu$P7%u~70d?!KNjdqRnTnA|^Uh2i2cZI>g`Ij8+Qfe( z*}tCcH92+Y$P2Gq>F{Cpw*(0LQ)H<2&d(&K+Z;Vs+z`;_Vv(GvsD2CnJ>gz5AGv?Qnr*Ow0|QDl(XPV^ ztXVzxYBu~@UpLdc?HYzpYwiqpeD*Nk$mfqsRoB)f;fhDM{`9PH0+W1^3WqO2hw6N1 zb3A(}ZQpmJy%u)vX_r4&2V9#t6qaiJMRo9xHPi+vrgmXEYKxdl#(@A7mK;mRrXJO? zAcZznTQk5#bcHtg!da(_I?j!^+t{WZ&ce*O928u13v%)01g1N bb8uAZKIb*N0ssK{2$L=YN(TP|00000VGLwQ diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.13-compact.zip index 893be6e1571a70f5bf1fcac2d2135aa22f472698..fefebf9530148339d6afca8b4c892421258c4717 100644 GIT binary patch delta 751 zcmV@KL7#%4ge2-hgPOrJA%jp000RJkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8L{N43l#-V~7Tb@GT z{|;QN{twmBFrsdM9*`CBLDU~Jj7g>?9hi&%f)S+$Z)bf7w^j6Xjii?s4kx#y_SnnP zNEvoG4r0A!kDQPL2#nzqGX}xuukE3m{rG39J+Zh7mWlf@pXaC=`Rwf(qWS0rVy(JC z2}BdoBD-$T!m+S`I7l@yF;YR*tJSApZFh0bHG}o3{|CW;{fFfj3+dKs^YnT9b+7~8HY?7=dfZ=0mly!eB^SP^D&Hb z23}(o7<81G(9tL<1a%uBqD-d#T&i*t%v>I4#6LWdAC^*ZBD0vIvz7VtZ3dXyhOBg( zAEVfBVb+g-Oa>J)rHH6GN4m9VUa!E;ZQow*-+1?Xn^#IZIadjB)oxj?MNX7!d`;j^ zmM*x$sG!lDUI&r7wOdUd;-Q+4O5z+?DHtmE4fekXyG^2R-ufPz12G z+nL}QnwN#W@j3cFT2)KJZEf$9!9=Sl$Gh(Rmkfu0O*?RMX?5=^7SVoS2jmMejfV;1 zkH1of<>_NIryQ{y(Er}dDhR+k?bOz_uiAN9 zfaafx!>JW>Y_zsPCXGNK9$4U%u>2OxddLpGNcVApnP|uwMWweti=!jPBv%wyYrbCZ zbl@KL7#%4gj-ra8!;R1!lAY007bmkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiyfP6RuPmZkf+HkmP{ucce{|8g z7!0DKX`CGBx3JJcHULsH)UrTMe~q>F+( zR~k5{PvWnQElqQ(U$3^~FF4e_l>~%taA^T}Xp5o?99W=5PLm@J-a}8UIQNs>l!=Ph zPc>UhA}@tr9VO~itz~-7LyzmLACZh=3rD0p^>#HIdec#4F>QTAL{g{HUu>cjSG4dORj6Ujsaw?8|u`)Q0uDwLu~+gC!D`XBP4D+CPg^M_Foq*qcAgn^8yA1A28)tCJvDuB_y_S4$Ie$ zE6>mps&v}N8!i6d_gU3DxIMs@n$xTwa7$9y)g6obJh`~@KL7#%4ge2-hgOB;-A&K}001xwkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8L{N43l#-V~7Tb@GT z{|;QN{twmBFrsdM9*`CBLDU~Jj9{aT*Hh$)F;xR%3?n4p-XsX8j(yzfxIIeS^d1P) zZ^>%uoJ|RDt#doTZFpD#x^DeDDX98f@y|1^*lZ0(*jYgSlKf&Dfn+F(30tP4!C-&HlMu zXcMA-iAP%B=oc=pWqU?GdGnD+bVRq26I=XSrAWuRV^~A_%w>TM033Cf`bjJVy delta 745 zcmV@KL7#%4gj-ra8&Ro%OJY~008+2001VFKLaU|L?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3y&CIi)yxk-Do4Ufk(w&$eSdqbt)yv&L1@| zyu~c0T9M!h0~g6;`-{m_$&!DW1g(FjmKz;NZhGO9q|g?lA}NNC|8ARYUiMB6(yAUH zNRn;iGjPF;*gJY|n+L^cGC*UvF|2=;5?t)YIkrN> z-PJTI9!9^kR_%GIoT@5u6fwVqD=HIZ-kCm%!UIcddxC|X?OVk8qxd^A5s!{+{|u`*Y;NQ{tFT2h=6GAI#TFel2)fn+1`EG_RGYTJY5AOkblf zKOWm0^D;_kPIejCFZ?Od;U68DjE|_R6=MGdd6t@KxVJNkuj>RpKZ7 zB&qAivYCHnOAo!-b2-($QZz}L3v%@4H={k!jNcZ3!Wf39HO7!Bc@vxIbA<6{Bg_<(<^%HPe(-IjlV5NSoi`}VyBn)uA{ zgWy+%5c&0${b{07z<@Vmv|f1Sr3uHO%<|dPJ1`kuusC#D;vhk6b+&fX9bmGd zejEj?d>zx3MwXgD)Ef#}y={_nn&g^cDn5kFQ6;htG|KSK*oc0#Hn?bKc9Xo5w3w{b z+S;$N#*J^v4f-}mH}bj%6UCrrok`nmxFY@|GCF3n^oM!<=w=2`O928u13v%)01g1N bb8uAfC(9ta0ssK{2$L=YN(TP|00000!*6Wg diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-compact.zip index 4c4a6fea8fd1cf9756b13e0374aa774b289a486e..bdc77a05443a8052f4bdbff7c7c35a13da0914e0 100644 GIT binary patch delta 750 zcmV@KL7#%4ge5;hgKBPtmwxA000RJkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8M0fP|qm@aGtT&J;I zFBwZh57U3Afel4}IMs%x$aVa7bxMad!1kotLK`QRSMyd9;O&O)$aj_bg}lSh*RGpB z|0~(cvmyPx2r6V;VH9sc*RdgA1^7?xF)tebboZ`G!B>%n%B_c(ey*+4 zG>>C@oA&CZwcP@9Ko7B0!uFZqLph9Ow*4B|r;scNd;4uX9RNpTI#SkHl(~zs?HhF&Vunc>aiU>|QOIh3 zDv;C9o$Q4-3s!|Fb|@AtJM6v>Yg%GhqU%Z|zyHrE%JA&mMgBQS9cxk#L-NNi3#DC# zY=RwWCw10;M`r|y^|Wfaio^qfr?`oq_jUJ2{VUo@T2Zy8uJdh!wMr0S|F|c=GLb!> z^;CB=4z+M(krIUiLBsT=m0E*x*Y#ZbvZktMtrluce;m^LpKqxr74h5@mHZl%;osl4 zPkT9NQ@;Ao$jcORCj*r-XDV90Ln8?dpoxrhCj>fwO%?!i!Tk-%{4iatLO^~RQnFTT zO)2v%1hj2YvZv&2hoJWwb}sihlcXFYP$>HY>giEu$`$3Tk<&vP|IWQ)PPKe_M%N9} z9dX}Tz!qHtzdg3c*zK#1xBG)z+j>RsFq4L=77$h%YaC(g9a65kMcQ{u*FuM*Km!>> z>R~NH?J}Rhq~B?+rB`e`WC(kZyQ85^2s>oy;Riz;dWl@KL7#%4gj-ra8&z>^5?Sx007bmkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei-+&Pae6N=IE?n>Dq=%|;S(&c6Psif?y>e*$^6oQ< z93+u;0=MXu#!`nIAP3aw-UDAGbRxpy&X?%-*ALcTUIo)x+Pw(* z8D=aFom^rAA)w4@xLu_RF^JB^xE7g$YJqx@+V4s4btyhlq8*1?bqG6p(T_(o8!@WE06>eYeJWXDhLTN|! z0}$yhG2R%;CH~L>V)uE6fK#pi-~6@5P)h*3! M14;(>0ssI20C6W?DF6Tf diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.14-legacy.zip index 1058278ba027da200f34e5786ad26cd62c4f8a9b..535eee60f0501bc9ccd1413a2e706f295fbc1ce9 100644 GIT binary patch delta 758 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 M14;(>0ssI20Kd*x3jhEB diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.15-legacy.zip index b55301acb40e65410609b0e7a1de1b283ce4481b..a2e2a572fa743297a11cdb9a98a2a9ce22222f83 100644 GIT binary patch delta 759 zcmV@KL7#%4ge8J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8M1}l-Vk=l_Lu5SZX z3;`~pp0!n4pvkd+y=nX3-fazBx}lRxLLU>K5m*gL4TmEDktOve7aG*3-r>{6hDEXA z9Yse6c+Za6I6N=k$SO*dXm0+7-F zvMjwq<;;Cqaa!R~7q2jivvEFGGJi+&MZOm^{A@O*Ba>=>7qMER4NjV-fv-`-Y`b$t z)78zHXFNgpw^%1s{Fet21j3`yt)-v5l=c!Ju91KLSqO#7dZ4Gjw;gB z{VB7@Zj+{nLoV%G_hf+Gc(qs=@!N77liM@j!)=WCH}>$(P5JVze6xs*^sXK4)8*|O zk_?2LrZP2u-4|WIIkx9tK7FmQu%6$yjR1G#S`4=r{j|#xa%4%sg4eWCw9vJ%sVg#B zqq{x^gcHOR0mqy<#NFinOU|fjmPNEd>h_?!VeM4r*Fw%HR1W$u+6 zjhqFHNJoygSyrtD`nLl=i|mcx_?oH6X+r=RMR0w(rGo;-hAc*nlrR)Iw&N)H+f(O7 zC@KL7#%4gj-ra8%+}?Z~?V008+2001VFKLaU|L?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3y&Oa+1WszEh;G165j4#qQ=x)>*41}U0}$< z7;zyaDwBBUw&CC3B987?KE{80N)>5JkvlcZ9S|!%#rguSPlQ=3iebh>wVZz4NDox& z7OlJH%Su444|zSale!?NVe>xD>Zs+Uog)73melke1$39of8X=AE6cm^!>V-8I-#Jk zcBZ3{exw&s5cs=tY~Ic*8jbqOIG+T`I8Ya`6t@Xpv`s1WviL!}(+_{&<))&=;52dn zRRuA0NY&u13b}h|JG`}ed@=+LyFxpoI5S?kofHPh`4);Af5?;#am>huFvhnzVcMe} z4d*}aNdV5TZ<#^_FwB-Gg57TjY(c?8()D5&DN0BA?Ky=Q-(O9R5|qts(a+TGriU_@5Tl-RoAW$Fh5n)8=OFU*M&z5>`TbyvzwL%WFwJJFd-$4Y3w<3=MygS$>5+J#n*ougbcXb{pwKzW{$_vRKhNtrz8+CC>)P zn_UzpybN> zuIQ@iy{sB%M-GrkcLNR%$lQyE>i#@KL7#%4geB=hgQKZfDpw3000RJ001VFApc?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{P^4phjv_ zkf#JPBMM0bU|%XU4Q5<(-GzTwV`@m#UvS%^_@jahj?@RGdBEs^&#>eA461JACvjy&UwIB`@xSN zn=VVv@N!HPSt|acGyW(T`q|c(2ibnQ)O!e+52B#p4@cSjvYSA-a`u1sx6i%#yj)7w zE&VTXoisPyKt%zuMmAzDJ)e~(OUw`phQ(Bw0tST+hVDJ#~#*?hsgiIprBei0ptO{?GDoNEjy+DPocW3 zHv9rJi9vn?De|mS7_NU)J+B&7DUsg-ow9((cwcAhW$gZ!UU~q+0ae82qQz@N9MTyT zOO8i^ICK`|bU+-gyo2$}N+sT8a%I~{DZ0JW+pkppz!jWv77!Czou@HFYnsE^m`l5* z)2CI|rS&FObBI8}&M!v0$`OYIyiBOKicYiAl#RH*Ep}d?t2=*70a!px^HOM@+4iXl zctWR+47AKS`)A<4_6^lk<l+8BleC|Mcoz!B9&9 l0zU&k00ICG01|(PR>3ZS5XAxj00|0{5CcjE2?GEC004STXPf{4 delta 729 zcmV;~0w(?Q2H*x5P)h>@KL7#%4gj-ra8#VXTLH2H007bmkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiaZ$v^_h{x_~b3j63P6MnknD0Vr?q%roox_+dO9uEQoB@>FAx zm1e6qdE5Qg6=W}82)3Zsn=&&`(!W53#b%93_Fx7*o`{HlR{I}+3W^$gN89T^<&vp; zgIjP~_Rl6GHk(O5zTEH1F`_UF_hve$t8f*Fy2OvVyr$0ZqMu62f4kEycj#^+n|w6W zQew~BEU{Y4d9?%2`wCiCg{t=Lt_t&F!1p$gs*Yo7qLgS1lM}ILV$1MJ(hYc;IPIuS; zomGACgKQG=BqpF)B@>;(1Ffe;Nq`#Yg#=_l1)p0bmh=a4jS0$`s%1b_@jI3iNRiM zOz*FWF$hDLSXfyuT3Qcl9X|Wfmr8_6V~hGBV<$B*@p*DL0&X^l%ulhD)<@?=ZvBr2@my#9x@vf^QxN_D)a(5f~c3ys!8g1-B?j>?tvoG7_r0V(C?Km zDKiKyKT_~ZXA&GP_IO928u13v%)01g1Nb8u9gzgq#a0ssKg2$LfN LN(S}<000008a8JF diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.16-legacy.zip index 4f1b5928936a4e67b9e0cd531b7d7b3de83ca0bf..7714ee0b787d9f6663e1a9d9d24994ca2a94e546 100644 GIT binary patch delta 756 zcmV@KL7#%4geB=hgL8SmUYbn001xwkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8M3ZO=6Q;??wG9wB} z1Yln(G!154bKQl1S7T~O(_eMZ(h8wFF)2?1qvt#Re{5{#bj*C%mO_C%+Hh(bk>PQP zAw(7L00{r-@|}e4^RSY z&BryQ;wN41|A~#x4z_jMONx_FYq7(jCwsA7QO&i~E4Dt;GA%e&_lck+s{cGQ-&^uH;T|~;izuQDo!mqd_H-7y@(43BduK{4mtsF> z6*t*lp=rcg4J~o%Wh@AA&IhaVqpHaH#9lP43)Cxmt>dOo59zWM~tsu~PT7DvbVVyWDV)2e=CW9LrGKSKPsfsa5 zjB%J7VG52&V3oCjXUL*N@KL7#%4gj-ra8%5`b%DA9008+2001VFJOe3_L?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3y&UOqo`EvEw_NVv4MwYz?!NvXXQ@EAWqSW zs!bPjcTW1%?qF!T)iI5f-iLqgXnOv5?|_45lzAwDveSJ5stNXxoX(oVrL=(r53l9D zXh{-XB17U!V%SHGzm?qeRT^J@=_A$oPvL66RiulP_{m$~Hh^x8aJ?0^-+ z5_!`!z+{`E7bwRj0F?L0+ji-OpFJmu+Rw_~-dA0E674+M5!YE1ZOea(Nua*y{!{ZY zJJ5U3@0`t6?FNGwJ-;Cf*cY#hYl~B&_WaBW9O`}ufq{_;5V`-xOFiHkD+uSpDXhD) zP{}S^)6F7&uAep`b+Spb=>~^VghfQmtZM}uKx?EDBIJKt9wRW46lGucmwv12BNi&; zH>XAhw|VhPEla6)=U9I(Iq7H`@wu30`w00k`qdpiRY;5t_@WD{^IJAh=hg6-i&}Qa zFI<#gZ*na^!)(XYX$0a}Zm3dR-Q?%=A++Vb_au?n0yQm*R1KRjdk~lzu@D7m^*@oB zU|7WILa$zP`FljdiSId{E}h^||8`4hfxto>i79%tnXXAcN%4Q9#|1$%Rd*(gT{>P( zK`-5E7+`l$J9E;tT}TL?g$4EH?I!Q^j@aiQHrA9rSI(SHsq*z-D*&__Ar{H)!*6&* zg#0|2naz%h#R;y(eq15L$-zh&>>Z>5tr)|a1`6a54&I}jwUQxdWfA92-3!mhu_nFW zF8qUwDjEO0na(x&QYle|w{B+F#0Rle*KL7#%4gj-r aa8%5`b%DA9008+2lPd#C2L1v700007%V`w= diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.17-compact.zip index 9345bdeaeb97c879208a5ed5a030690d8ca7f0a8..4ef7c1223e9d68b83a8875c961c0d1737b0e0d8f 100644 GIT binary patch delta 751 zcmV@KL7#%4geE>hgSZ)=RLs!0003B001VFAOk6pL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{P^920$O> ziq39jj$1{ZU|%XU4Q5<(-GzTwV`@m#UvS%^_@jahj?@RGdBEs^&#>eA461JACvjy&UwIB`@xSN zn=VVv@N!HPSt|acGyW(T`q|c(2ibnQ)O!e+52B#p4@cSjvYSA-a`u1sx6i%#yj)7w zE&VTXoisPyKt%zuMmAzDJ)e~(OUw`phQ(Bw0tST+gowBP!Bmt7nix{{vw#Wn}8;Gd2zK0H(@dom%461 zZ`s}nGorl6mlz&wbvA!(q<0cKlweLiDC0hrqIxZ0vXvjkHmNLr?^p=L$78a35^IN` zu3Nj&?u9&qUp%==9qc~xu-JFJACvLb&==sggcTsuL)U}~42x2MK7$t{5DB?IY&hC{U9$uo zYD!y(0+`AS^wMWlY5RHx3;GHT`@8>aOjLt{|4-+#Ef=N961gZYwAeg6<6@9@yx5VH zf6@~iv7FO}VRAe}0~~h3U;US;Sz0=(w0m|Z#rzg94%Ho-kTyuphyHWf8Bj|B0zU&k h00ICG026@KL7#%4gj-ra8wJ-^p3Ft007De001VFFas%(L?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3y&a5ulR%QEw_NVv4MwYz?!NvXXQ@EAWjlX zM|yLl>^JS>a#5=`BlhN9jfH<7QE%$-jyBzuS~jzyw^)F1@0}=p0J6wlC}9e5lKWj1 zHWkeyI<0%rAHA8)E{NSB&wIi6kHzt{Jv+|2fG+NgJL#!LL$xCTC~xr0Gwb>IVLTnK z!zLZ_RAZ2pW~(=O+x^xRWG`O`wxHIVGBZ!ozd(h>W{pYqUU) zWbZwO_nyE^HQq^jc_il)p^oo^{MC_~J5+-l`(hAk`)vE{(<%y5R-L_prITJ4&^;y+ z_;CAOmol%fT@WqiU1+pq0L+)~06n~r0STE3!HsR-M=eH4-YkESbRyuH)l(EAIrirZvR+{H}MB4RLwic@PO6Gb2tZfrr2NEbwNIlI$#wtG= z71r#oB2KWXTP)h>@KL7#%4geH?hgSD4KXu9i001Zokr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8M4+cOV<%-U3WsX}# zo?u@pG!154bKQl1S7T~O(_eMZ(h8wFF)2?1qvt#Re{5{#bj*C%mO_C%+Hh(bk>PQP zAw(7L00{r-@|}e4^RSY z&BryQ;wN41|A~#x4z_jMONx_FYq7(jCwsA7QO&i~E4Dt;GA%e&_lck+s{<5g^3Sje}-5eJEdQV{EEDeKT9|k|s^T5jP|`LID+UBr_=e52k2Z;Sz&R-d0MzDbxMKjSObTjY%sh;9ld@V7f<0pl^<= zfU$Dp|ANcn>V5%{(zNDN(K%C00000a@KSq delta 736 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 delta 735 zcmV<50wDeQ2IdABP)h>@KL7#%4gj=sa8#fXXx6v_008j_kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiD09}Qe1jK6V;*YS zmG>PT;$+@$@+^8eJmjB>wp(T?=>X6xy{34S#f83m1(VsJje^OS3 zFu(f;i-l~%N~;LVHj<_RWSI~FJWl}6p2F&c{!+vm!)NCj)S~6lM7t$S^R&@@5p7i0 zhvmKQOhWHw&+N@tAMA@yIJLftWp2xMX)V&ptFEd->}WH8<*}s(U#bW~KYp@~+BkA< zX=_`(GVd9#xtfCRnvnf=Rb0gT*li!WwU>CBuLxQ(;FD5~=pkY;dhI^UR~-0H>+~1^ zW_E4ldqG-ZVMW@gt)Bn%g9y;L9hZpBxq9r6`7o%9%a>~@c`OwRncDtO!3U3P9M6d~ zSlr7I6p@mDO}4-CBXC0y!<(zM+ib(ZsdZ&psU9q@82CEv&Z1-#89bkJSl^Gz5hY{u zu0YDttEfXBf>))_d_}^?k32H?cC|G|h!%GPL>k!3sd39*A3k}X$@pi`D>v?_~fe=t!FBY5Yaf)DoC6b%J8P#se3&nMZmsPH&l zKp|@KL7#%4geN^hgKr`U^~PD0003B001VFAOk6pL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{P^HnBbhi zL%<7Dua%J?s8pMiqs95Jw1$6@gIweG!fuA|A-YR_ixY(2dn#whR8=^zZMG+vaPQiW zQ>zNjhC}C7AO(Rfsfc4OdN{pL=dE-*8_4MaGar#98&>OXXBjDg_6@LOasz-$V0 zpP0OXzYg7W2pT|khlGD%6P{LgSz0EH=wcecnL?cbx)Y_2p<2zU@u{;oZ?CPF-es%X zy;>0XN0PoDpwZ|ZbJL$8+ko7K!V&uw6lwfw8$Edeb2FxFED0uhQLptx^(d8Ydm_*` z{xo2C&!YjFSh2Nwk=S+02;niloJ;65YlZNa$yu62^YmdHN;7|vX4?4|FE$*+=7!Za zyK{-J)97te+>T&|>1ECEJ5k5Yo58kM?jUmvnL5SlpvzxAf#)q&g;kL@KL7#%4gj=sa8!vyz@M=K007Dekr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiD09{BWSkQrwz^&? z^hnHomPm*vJ8>+3>k@gXO(LuScyk84fS|$HDYjqpb+|gKf6XDBA*@9wOd}37a%RD% zU72Qaf5rG>{85^LdRtL`SAm)^y7RYwtj~0N;ELI_+(eEOOU@XrPo=iOpAzF@HOIU6 z++6p4YpY@265O7c6VxruY={1UmlA_uQ4do+aVw=I<)4qQM0C=fot9%q zY*sl$1#w@0!C^v-fmGT-1uc%daVv(Tc4`S3XG)%uQ$dY|L@|2iz#FjoFJQSZAHP4H zAUX>~rea1>3^P7UHg2Wg<+`IRUy&vF9Ty@YIgrhL)byV&|DVg^El$l0&O1Oj{I^X0 zjc{Z|fdyBL<4>TlwSKG2e{4XtReuNk7o$Lfb}syX&BrY*T&q3QCeDLP(HLtOUovPO zngq!QJn*c)nK1vB8Ut2HF+e>j%G`aX4^svd?g!YlhmCLRk95)?b{Atq;-!N;b?xO7 zGK-RsrErc?BS+AZ^#OGX7T^<~7Sq6fCDUn0EUc=h*z3VYLf@d2W#9!?wj*=}T2@KL7#%4geN^hgM`I%g)RK001Zokr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8M7ntCjz(c?bQ?Heg zAgENElcUA?ue64Ll7n31_QGz4?>Giq!QHa^48KW=k}MIn8!Mt+VnFBLni{boR@6ewhJL0mU>8+t)GYjU2@a z->;G)`pTnmY=#0IFH`$I_tF6=EjdE~7Jp>}+};#SwcLGwcdWJ0;8Eb@9t-%=yCgnr9SlC`PEt{MKt<-96Rd(%-&rFMd&Uu;QruOt} z$z5MmT8Ez+$sfc?_4ErtC}!k=q-Sqi2pD(Xe5t-~Q;F`1BRH+Zn2@4DSS3c3Mslw7 zpxk;5ysYGZqhhdTQBAD`DB^)hDA8b-_40v}d*6z_RUd=tmhWDOZ5TR3zkEVZjlI70yG@lzc8g-Z-yOAb$PsjVKth+UxKnTW{8NAgo#vBp&S+Hm^B03ypHVU!Uv`nr zau_Iy(a}ySGajtj<7U<@m>y;;m)t6{Yp-00nZJg~*`O>K~QB!OUZffAH1{LxsR z`2)#@%z&uBm+)kqcc4PGx;5Eo!|CrOxoB61_-@p+P7apx68U=$qe-h3f7d9J`DPyp z`x;0~ON1>lqO*^BJJ*3c+$4{!JskzxEIeP*V_1=N`AltKLm8ah+`6h-Z1ozpu#`bd z_>99x%0^j~ST$<@m=D-K7V(CHLRq)O6R4VCt+dM|xZx-O$xg`{7$0C8|Iq$gKTt~n l0zU&k00ICG02Y6TR%9j1&ddS;04NHR76VEK5CZ@J001$(Z)N}h delta 735 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 delta 725 zcmV;`0xJFS2HXZ1P)h>@KL7#%4gj=sa8#4nPj;>X007Dekr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiS^Q@<6W-L63%-WkDpYjIXuwot+m5~5&knB;y^s?w7GOq$-a*HV< zOy84nZmbRM><@b6s9*HO#uapM3sdM%GPT1M?FGq!pv&)dbhWj`cI{}h0;?l+ULLhQ zcFPYh+J8qs)+9vSqU0qfX*j1Lw9I__3BZW-PxoOLY)f;0(@xwiVdU+5Oc9R*(f2QK z+hbWo4aTwYvMk|SA(9J%X})c32@6T?7T0t(MX_v=Ml^BXfFzfUS2D37aujPJEECIJ|N zi_LtT9*c1cdhOHB+>wH-DbeVvmR3(!Uj(h6fI*5E} zRs}#!-=YccN7|n<2wV}LZ`Ai9f+wJTL8nVHRzsyr5hj$qvS<{R!OoeOPa^7&G%q$r z=>Xp;(QM?)1=$`2!D0X4GFrS)O928u13v%)01g1Ob8u9X*iUw@0ssKY2$LZLN(S-* H00000r~OxH diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.20-legacy.zip index 1afd69691c8c52d69b5734c8580f8a847f517c88..88aff80a44f290d207ac7d09b1498b5b59d81374 100644 GIT binary patch delta 754 zcmV@KL7#%4geT`hgLoqh!M*I001Zokr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8RZXt&-u}$S9<>dN# z)E~Q&^Zf(5i&nFLt$Ryb!SUU=#~-!b{;*G8{E)YMW{tVH_w)})HFqu7Lt4EtU1}S^ z;Plp)_bZnS=fJLiBXE>a0{ReI48gvFW0Ir%{?bBngF#r-?f=~t$1B_RzInW%XF~w- zI}O5>l68zpI{Xp}yUzkT!&PWO8`DX>NJ`7T_bG%x*CQIhC z5nCs8DgU$X{G;}7ZDk14;%D0{{R30K~;>g8%>k delta 732 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 delta 732 zcmV<20wewS2IB@8P)h>@KL7#%4gj=sa8xGS9`UsT008j_kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiffrzCAXcsXy=}lo zomrE)tyhMEmqJb_t zZvE1VTE#Da1x`4A5~6LDO>`}yeH`^{C9|jcNX@~KB3JrW9*8F#Di$7T0{(ygh87v+ zHzpJH7kzwqIwAa28IlM*_klyO4Ar4T=yx@)g?`IaMYi_nt`dkA!>`0epK?; z0|ozC2p%ugR0@x#Hb>SweNAa)y8o}H{CFciP=I%T?-~Vf+ic?54V0P{|DEm;m^{GF z4S`0DosX}tX5jSwu>M9yEFF1Du7^tgVRL8h=USBlfp&wr9?8qq9skmG81)xy9}iA( zQ%xhdf!sT)m!KSiB#e6NUSOP=h+RhhSg6z9Z}yrF$!o0okRdw3$dOSa+JJ>deo2LK zN@KL7#%4gec}hgN!l{X*aZ001Nkkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8RcTShZ7)Nk0^9*PE z^s_SHgs(xSN@z5H2UIwR!~c*5ZN9boT%#G!S+}`n-D|K(E{Hl~>e!Rb3w}1|)Rqfh zAn`hLmhdHyc-sgz&ue^#`6k5A<>^iy2YvgPIDOMjP;$&Lmpb zt1W>RAmUU5W@Eo8gg;Z9+uFq8#pp|w#jhoQZJAeQypM~~sx0*Am=i~(@$8H7 z>g&=I6b2TALrHh=Qt=NM3d6D|*sd?;7@`a z&C@fmjOF_p5E#bBr2-6WSV&8Li}5fY#xY8GFKH)TzcE$My#7uKi?-Qm^p4Mjn_|zBl7g1TZEG%P0wYj9SMK=hWdzz~!1@KL7#%4gj=sa8zv=C925+008X>001VFPXj5DL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3z1P42^w3&a9GYo4?(7-7{zR2xaNf`n~)HS z>Myae#&FAhyX_Y_Y*I}1Tl9a5{r6M_J{mLtjxR|@-b9V&_M*359t+_V^q3z2nnovE zg|~??g2=B7^F?W1G}*SAj?ZX-@LFv~|GuV4WN+EEbncTd@>+f$x2OWeyz$qA@GgG2Igdcmy7G_rC+ujf-qRb@CluMmU(|Cb%@KjB!X zUpfW=k6+SZx`8~1wr+o47j#JSZ2U0?3J^l1g_DY#;0Y0aD+dyA@t-85R?-qS0U~bm z-9cg|u(IpS8wx9~{i^L!pUR{wND}#fC zzuEoKurBVX0VRCh%BhFcgKa&nLFmO~xp{h-1~#4>CQ3ZTD36AS83-8K~~K@`!B_H(+u|H(1Sv_`ToevOpl zM&tzo+-}_uQX0PP5qJ_AYy4FdoG0015NXg2@= diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.22-legacy.zip index 2bcc69b5b39a0e482c578e7dbcfe0fd5a3f15daa..6b17dc536d5c7dc8ec430152050ed302e0485859 100644 GIT binary patch delta 789 zcmV+w1M2+#29*aJP)h>@KL7#%4gec}hgRUz1^?#)002u0001VFKLaU|L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{Q9XPM5_P zM{qFn3}^fFvohd>uR*3tXf%HZR5*vj|Bwc4)@>kPOeK`Z$ck#J==Us5*17P1e24&& z?hz*vWgdsk2yFC{IrQEwaPJZxVr$WcMqlKN3 z$OvAf8aSOCHwhvs-P=~lP=%3(Tw1mfp8#z@n!GV_Yuz-P^PA1e^h$q=4g~42EP3^N zXVDlDWv=D>!>v*5+JCB_mRt$Sllp$9zB?VxP+HCnJ7M_xsgvXV5e^FN&!Tev9lQeu z2IZFXKd-=v#d^{KG%W?TJUt@GpSmw%qR3grGiB~2!xmH4SJD{wy~rE*75+0Qmvxhc z%EY*SUkq(gGv?)3OvkeQo9RC`}+=*O{=scO{kUXnuAs_g3yJS=mr*Lm4 zXAhx{K`hP;sXt=!^aaPJ!OPXGT2?KvO4zVCL0-R#edL{*2pp(n`_c*MEayrC01z-$ zA*nC3_7E!3{`na>Xfy~j1k@$x7G#iD9-aRA305#rO928u13v%)01f~fe}`7!(*^(M T0ssI@3X?7aN(L(f00000N6T(_ delta 759 zcmV@KL7#%4gj=sa8y~>pv%w#000yTkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiffrzAkQMJxV-ZoOD^8EY5D~xMD{1kL1{Wl*H2rd7js%IrI&Hg7Q-a#EyOhBBQXD|< z&k!Aem_khH-7X&}-HNujQi|;uiEyLuqc31~inr;dA~r)|Nak3%((7C2Y%_7l0rYzw zf_=^|i3^Z_FohdaP!yPv(m3g5TB=B>Y=4veF24bl%66iE5hIzm6;=X~c&5lm6!tKv z4*1KRLrZCfXP+qfV*tZLC7WN%iBD|x0i2oTA4&2#rc*%2eoK%aXZ_YQOS0~}xJ@N1 zUu?3bnLL1Q9BLSdKd`^~v{GrJPTDPEuuWE@+Xe1_NRjzfa%7?sSJ_pqUDjnCkR)>5 zCaKtuYx3+|E7QrJB`Sa??G0789KsE$g8SXRfE-5T@i@N$d8*_v=TrZ_B{q=>v z#S<7y28V0zU&k00ICG0JL*(R9V-c%g_P<02B$6MFUC(6axSN000j$XT$&i diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.23-compact.zip index b6947abb798f14e4c81b28f0dd38eac7fdf4d20b..b3f89b2aec9ddc4c6a741230df3bbd9df4483390 100644 GIT binary patch delta 774 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 C+IX7) delta 759 zcmV@KL7#%4gj=sa8&LD-EYYP008X>001VFOam#AL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3z1a)7ppMP)s>ApMP`08^x!B>(u}XJjU0J0 zstAFp_@cabZIb3gk63S4T=su7@!nTWYditpfDs6Mua@~PT<_%yLTxQams2~lYTZJurPw3Z}A=HNT7fJto=stjjT2o z6BL^KpQg@MOS7u}N~XWS;1Xu-iybD5HX-gW^YBKKDG+VyZ#LO|a)$YLU!6g0L`pwS z`ra}`2%oBdn6z5=m+7)vN zV1ui>jcH5+a>BuRbVZ@w_jx}aP%CUPDzh>De7CciS93uS(~!l$?zF_P{uSK+a4hcOoi{v6V|#lO6ic0JU7fc~ZJnv?0&SB? z2l(@zQJI}%W=}*L`&jpL-vHCDBL@%&7rHkgQG!C-tl+Vs)(@KL7#%4ges3hgP;y#mnUa002u0001VFK?5m~L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{Q9gLlE?s zE^Gu`r?Ffw8B0PB(|@Od4Ml%A)rO|Xb^La9W6=@SVsw|x__ES2CO=7g8$uP1A`Q@W z;kUZU_)G}K36S7tlS7{)LT2z0=jP%rN822G( z)Tr?`K3(zwi#o!)$d{K1+EwUd;>)Kh3|AR4`CqjOpX}kGH>QV6{5{**kT$beA6+8U z!fUvH@l`LWR!y&n>%%pb33>*y)pz_<{$^xNYKq<%r!|(LbDr?Huh12qyj``4UnqC< z9AUuQaSsk$n`&oF;roc#drzxb3W@0O@Jud z%6Th2p2(6804!h|Zn+TT73DUFu+=?fe0+=}bebHG>~Sh!HZmSt?~tucmeLr&jz@NB zy8+XE#Ol=9oAT(sWycB|P1GhR1?ggi?cP_GvQ86ecFVnH<9dHY9$^4SuR;IQ*j7G! zyIDAW%oP_n1}eab{)6E}IcnAMS0sa#nD=eK5vnw9d~Cv(*+fkgqYI4D7mJJHh}FrI zR7O{t3?QGnQz9)d?0oyE!4tx@r^hLf%3!Eq_X|4IcV`{JmLR6z0UHY<4O~UY%K6yJ z-^Z>Zfw1)PI#6J23pzs2V#UA5@l!36txFm&O~PZwPl6G*%}t#IVWk=CRj;3?y4tY| zvKFF5O=DGsenH9cOK$IaieA@cFwiqY|MJ`XHc(3e0zU&k00ICG03d&dR<=^b%jE(9 R080v!Fat^kDFXli005WZaJv8i delta 761 zcmV@KL7#%4gj=sa8!7{bSKgR000yTkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei3K5I|4l}lNb}W-qhFjeoq#N4#$ciMsJ4$j1KSuiQcE2aid|TpPN%NJqU_f=9>Ov zD@k&ux0adk>(L>}GMswaD7Gn8ojly@)Bug4v3-Psv}8}NK33D`xrU39JA7XjIP82T z#tGyl!XIFN{17(0GcS#jRMDFo)L!l%51NUtYeM@VTI{k!)AgBCPeysvnd6O;%n0B; z4lQ!#zGHFv1UU0`F^(?3HskpFZ5RS|hsj1m;8dHV7KbMfQkS$L1#uIfwY3_xFEt1{z^yRm{`*k@KL7#%4gev4hgJr%SVY|d001Nkkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8RgzJ&9k=l_Lu5SZX z3;`~pp0!n4pvkd+y=nX3-fazBx{1=KY*TDhEPcRZg77z1r0s%_IaEHB#k7@ckzHVj z7V7LCbGN6}#M_(8J2tOXo>vj8kw?x&g)dehcN#PidkH;_X)m=Rsn7FNzQ_$)z70qK zZ%>XMF{AvAn|pA0({C5PEcN}L8^r`#rng4w$RRrRd@Vu1p=&8A=%i~ zFIH8HJm}Fk^`6}UIGVmCYrdktD1<<*0FWQs= z(0^mjujZSna!rQ?6IMVY;`)WYTfLc7?mn@d2&vB>>?a*Km>gn19iG-!vFoiQO z_(5q~RUPzy+_*3KD$gTE`^St&xI-(9+w}~YbX!n<^Jg%yQBSKiR0Kr9k3SN!0(;OG zvjUVj#Rl5Gm;eO~Km%jBNnUtkrI}JX0=@)f`T`!Z_qSnH(^_w1VcaRy^z^n5_JIrx zw3^fkf`_o8`!u}OGf~ox?eS=G=2Kp%=y$V*2zEn%pRk}}WylNtHvjhXvPLr903D9d z7h~QQZ-}{3Z6|_shv6%?wY1235zdI|q^wk8BD4O7S|v(2f$bsoB~X%%Lww7C*pY?Wr{gUoB!t1rATZXcrU}ZU z*ClLNiO4?TLJyxhK{>tF6)djM{23~ik}TX}p3Nlg4Un#Lz-D-Dl>OXMJ1$eVc@~e^ zn4+eFXAhxDr~mp%p;=H%0Rle*KL7#%4gev4hgJr%SVY|d001NklPCj91|b6g0000P Ce{n_t delta 760 zcmV@KL7#%4gj=sa8%6|sxHa`008X>001VFOam#AL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3z1g^+1WszEh;G165j4#qQ=x)>*41}U0?%? zxzvzfGmVz_kB&Css!tL;g)Dzub-yKru+1JQ1`H%e1s8243|IR8!(CU7!Ip^}D!0fL zj()=lNB6@qo_D*Xbx+;Q(B=lafEU-K__!ohro>zL4u%G-v4J=YFAu%q0%to??);97 zR4zn^2bYTcor|*&*6ak*)njc4IW+3d21mv=SBUhsLtx=QgmD6uV5fa~LV7<7qBLsq+$Q$L+!Ju#$ve87}#;dY>jfWU*+1V?kfIxN@K zTVmb78T?}VS?s534pLa`6HI+EB&23;){?|0tYF-n75X%@8DrSnd-SSD31?L&tX4_H z$(wmAglP3m8$emfu+cRe^@^g&MBM}YZR>II_?_?W#bGzJ%9wwUxtpng8r{6mZz>Xl zS*35~j;%Y4kcecZ#C3Jt{??0WFv1Z|c)mT$IXoGD<j ze9R;|ifzJud1O%8FqaAB>WO^H{{c9u*gMZeORGMeel_ucLNb-rU38esIben58r1|k zp5_A7Wl<3W9mYju&M|26dX|8^Q2R(v7XBF(H+Hu5KvQ!}dsc^YR;dt#6!kla>;Jy3 qM!!%?0Rle*KL7#%4gj=sa8%6|sxHa`008X>lRE=S1`Y!N0002l?`pCD diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.25-legacy.zip index 93ab79e624aca23e4fb57aa92d1ac120d67f1e79..2068617878f48d4f319964328d126e284a4b3637 100644 GIT binary patch delta 787 zcmV+u1MK{O2a^XIP)h>@KL7#%4gev4hgK`!f+yty002u0001VFK?5m~L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{Q9k>yfdM z+L0HoZv#~f0WPARwN+Z6$+3UEY5U*aZ4F$yp_5BO9}}MuSPe-Hha&)yCG{p38q}xW z;nT*3MX})>MMnpC&yLwRJTKqKDoT`SZvKYk<+V@txx`d)7|y5URQ8vPHIlICey|B) z$(xEbvGs?tEWJYI%zasLTH#R_uP}e~3QpMZ$Dq!0z1T zqT|?eX+*!1e&hIu)3hBsmp7&G>1vddO@6X~OG$;KJ;$(sK#Sf2UMnm+cfCdL>tA4R z@kG+$W-F%7a&1sZ1MCy=F@#NU9VOw)yBc5h0y6E-QE33i5-)$NlP@G=B@e>h(XW}j zfz0f*_;aY1vU>x~jfcCj_ad_|5GI4krgN=ubRs!IY%p~uC>N3g-}}UZrUF$eqkSFz z{h0KE-jFNTrnJ(j?vH?olNaGEfa#BcT%fzQorMV&z+({Ujlv++tdO@VHn5c%VXNNy zI2$Uym{w=3mlR-E0X9R&v9hrKIk60tlZQDkIKUwg%H+bf9?|p;kFm@KL7#%4gj=sa8wkzaca^6000yTkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueilUrM=F3Vz ztq*xUvy-|YsA2Oy&g!V;q@5!E?v~W_9R+lk%YWbVwkylK@WZNf&pM%?v391Tkba~W zQ4sjMa%|qtD;kaZ$~d0{$v99KuoSlmUbIaq^s@LtyVDPU-{q#F#o#n?|5XJsbV%7+ z2^cR*b(20unEy=Ja8*`1+;PAxah^4wsP|@Pxh^2izWCVgFOqL#A(0ApxEEp2rvJ4? zcXGXbI@Hlapi13%;alnHHGmU9l-TvH9uoVCRfWhI+?5#^J#K6(LenR56QU+ZNGi=t zqyBt>iOrvXh8IZGN7;QSJU|ho#|1en$`A*u>vt_dQoOBRtkqdiHkjA0-?4@KL7#%4gey5hgPn@C<5LB001Nkkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8RiC{)*Q;??wG9wB} z1Yln(G!154bKQl1S7T~O(_eMZ(es*9w`;`ZW>9SN+A2{N$|K^KyyiZjVq&hT_%qci>}82Z`Pmj~H?y3~6Jm=B_$;15UH{IZ)sxN`P?_qWfz`Mg|8)-C-nas!2n z941j(QvOF?VQ8&~#lj88vtVUN*TU{tl}?-U4Hl3BP7P$B1IOgo$4Ako`Qv@uC>h5{ zVg)|n!(+m1QVO|L)wB zypW8tA^#_TTOC~;KwC-aEMnkkMBf(V0`w+B08p^)W#{Qt1vkP_rhs}YDmXo51r`Uq z=l%{)Bvl-4F!}trhiR|8=zZ`TR4!4XNLuqu{DM$@7k(3niyGH(6neA$*ahQjVhM@9 zX_1Dl`b!LxS7xg6UFkE;{2Yi3hG4r_7nsp#{X_hJQt@@w#R2)`stmZK+Dz%bw!`EC zPi|FazJpds3VM?z$D>^vgK0K3yeRPXnVOVKQ5AwgWn`xiEBrh835c_%5|1n_3O_S# zNN)nN5O$ujK%9KGk_(K4bkFzeJoTi_>mCTZ7%8`d(}sQyDK#y z9bJ)Gj^7h8Txp{M7E90@(_CXfF^4#uyBv;{`OG-|W2P9=SaWRsMg5S-s(1R+(?W@`e8Rvy^R6O928u13v%)01f~me}`7Cz$gOV0ssIc3X>-TN(LeW00000 DcQS2n delta 759 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.3-legacy.zip index 84389607b971771a0dc6fc1de303df3e283671a1..c498a8bdb2fd9de2bd51d6dbf475342c2bd7384e 100644 GIT binary patch delta 616 zcmV-u0+;>M1@HwJP)h>@KL7#%4gd&$hgNok7Y9ND004&vkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8ZUo`b_>ii9huOGh- z&TTQlk90umeAE+vH$YdB_0->WfWux!o-CZ0C`AO4ZPrf=1@Gl3{KH0$(os7^!d-yy zR}LcF?RSHbA3{OQCOQY+)7p#WlCu6P`8Ny#u}&1fAbFjuu)JZ&{YiAsN+x(5nGCiW zS1GrSklefx4dQ-cB_cezyYE6gi3BA%H}>nih+P>vSqzkaF$+C2@iv$-|5LNo$kGHJ z+Q1-ax!rK(a7_zK__!5-QuxWwwRHT3EL)LYdoNlgM^%?0jQsfgwoSZlnUVuh+|Q$0 zRJgX=aDn#vEuw)!iOJzc#bHLSguBR7fcXyxgtyx}yLG-$cnQ@8=e6pKzsMY1cKzeN z2s%pZ{IynpiS5MaJnebufYnV*0s>Ic@ev&t8Bz=B>z%~TV2d0CdY%|4U7YnwKSdKI zb3uXqL+k$yNJVv>8?I3ND~$j{9bY$tPer5EWTXd-G`KbnHTDgjc0kcn?0Y=#o##xz zv$Mz3_5=ql=PU{1HB6Sh;iY5A;i5r&EB>?W~}JGiB`vsum$7?U55h} z1Pwbm0N#HSjQ{Bs{Y+3x0Rle*KL7#%4gd&$hgNok7Y9ND004&vlY;_E28IFv00025 CO&(hS delta 594 zcmV-Y0@KL7#%4gj)qa8zas?wch7004~!001VFu>vWPL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3zUEQl>Bmu9-=d*6} zHLl53dGBvll&I9OawApg)zfR4f%PEr8B(S=7%)GB+|4m!?s7rvU*&J{&hKN+jc>) zs?q^{ActA%iP9*E6?n>5hlM)HZgkuryZKgNR$6LJ35au|cgcQQ@f~xnq%gnI8|xsJ z-jn#WR!{w3J3LeW4^SNrv|naWQGE{lN2uu4!}%x`RK2ukF|5^hpj&TYDlo#fuGmfq>hKr+UW;U@^F`C; zQvRb7IlX6v?jo1RnsxE86miM;rSsH7i9{z9d#P)h*@KL7#%4gd&$hgRh^_Ygq>004&vkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8f5i1v?JiQHdR~sEK zC0SJ@*jluG&5c8U`DwtX$&$q1-UmY!%Ya1kvUSwDDHEyodU^0dFn9(GxBs`I;>^uy zdD9w<_)$OG@Jj7qSj%b7yOO%)qTDTPRSU6|xYLqe7@U;RCVgeWR0zpFU>0fybI*_n zBfx|ECWv8nLH7FJdFvuAlL5GFwug~!n7$pa+q7VrLn2gvfuV*s0D?6aSvV@Cr6+;u zeYL)QgWdhI1`)7*7pl9`bXHKL@_o7wJZ#u@ON6WSRjCs53<2i5YF+5QjUlWtS1HA5 zfhf(IJ{o8nE$gr$5C&7bD=o^^FWal@B)CoeDPvb5SgNei?b~4}J6X6Y47`Wa8<6|S z(DjUBCI%jV9ncHf1Igaszi9Q#t}@!gD(wqge5DoJp1q)$E{ablX{V1jxJkh(-YP^1 z&jJP?b&lFCe<2T^H>H6BWmzU|k!?S@+T))z7`!>!3#K!#)p=xLFU;3p@~U}*AxbZv z&X#&>4G6UFd%7$-BOD|*+0sh6?7mAdmOWVh+iGV!c7&vy^vU?4k)}3CD4Op69;zt0 zV^l|@=@DXi|F(JK5J3U}0EY*Yg#t delta 596 zcmV-a0;~P+1=R%`P)h>@KL7#%4gj)qa8%}F?1m=-004~!001VFumUNOL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3zpAlUSlCX@E=3Y6|;=O2X$JEfIpnUHiFU0 z^guf9pi3~YX$98uZFQ2BJ&k`R&I0GY<3?W1FuoOk^urt0c`eL>b_ zQb8P4*AO@#sI$E>!?5c*%zZ#K+ZqU^H8R@G-q~;oJYuO=1P)favul64>=W{Uo~G~p zAkzntms}tA>{)*yQW0x8#TGAvlDJU4?p42lnj10;D6>0iGJHPS4N=rC+kPz98XG_X zq!+o=$>7WcVx&CV?5wK%Cr{|E)%5$zK}foW(5gCLuLwm8K!1UZFRynaX|EF@)$+AY zoTd%^(RQ+~N0Q&9Xo-JtBYZfB%*L9E@ONBSK1`T1)0E{FcKfXD0VC=ism5_ztRjcX z*ZQD7ZIu#v4&_U>PEw?Vq6hC+%8s>?{wO;?PT?mB`we{eP1@HwJP)h>@KL7#%4gd*%hgO7lJrqI$004&vkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8kwKH<%YxJK73-&{} zI}HIy*`M#-e`>man|3OTMro|ioOslQbwTIB9TSOqMgrQ9uR3m*(1_vfXXTYRR&!Ku z7;uTeJa5ZgV~t^kc(|`9FTL?)>K2aAF_b;yOXDciF3)s;T}_fhEpaDB)mRr|QWR~` zMB}InBLdRXZjy#Iv#rXaee*Xk11}L76o@CGn{RzP#JJyoZ!ZHyA!9?)Ut@16R=5nH zV9AA{f|82OpGoR<>3=1gkZPK2?j8)!Gt!|l8cWYtYdD^)Xs@n6ud#2exjCq6)Kn>p|9RS;H*L@`|H8aN_f!r8u zv9S+R5j-@19NE7wH{$=curs9EAKI@}^s{_s%ccTwhdjGb&QG-Y)^5w}S-|UYw!c3S=m}6u0Rle*KL7#%4gd*%hgO7lJrqI$004&vlZFCH28IFv0000J Cb01Uy delta 597 zcmV-b0;>J+1=a-{P)h>@KL7#%4gj)qa8$R(0U#&>004~!001VFu>vWPL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3z-=YZjI=cpB+RznlQ4Md9ft}AJzRIQ=ddvCT8-7ZfpV?HP%2C~VCL-A;hV)#T{$_F0Mt4bZmj zBo!6T;W}!d(iN1|Gm1?8-(ZftydYvxHf~*wTu$Rp$5P)Av(SEzf>{TejEKQPnrd;2 zIig_8kMB+rak31;z=(g3qrReKM_u#$Y~5I3D`6XIdwP{_j;R-m1@(Pqorb|^Ko2?u z#i+)fKGhaW;(o%S+hGr+ANHOu9VvIdderW+Bx^L@ybe59oLs+DS|f9aYMMvauD5#Q z3n+}s{S5?Sa3K@%+d&?ytH)OSQsi;N;zK}vg(xyUH)lR|hu0!k{28JCw*t*jO928u j13v%)01g1Mb8u9*#sMHG0ssJw29uxyN(O8K00000ydV;W diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.6-legacy.zip index 3789051d3b95e882086a796ab40541e9a3c8cc89..c5a704fb689c9f68d0b6e6888d10e92decbdeb44 100644 GIT binary patch delta 616 zcmV-u0+;>O1@HwJP)h>@KL7#%4gd;&hgQ}54WB{+004&vkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?9G;8q8Ydp;HmSlf`F<)O zVU@J?&b@Yk(q%b+qczw3NCDE&kC9Bg6J|9c>Zfd|FGqd24oda#@;acwr=VFAU;HUP z8M7xg<$>Pki>((_s#T;u0H#J|xLVB$4-Z4O&QvXX1xZA724`#L1;Drm9)eGj8)$7S zU|^p&9Ml4`cIQ|i!7C)ntRa3(ypw^9XsY`H%6k9q@>=tMVA|l$BdRr~J1RRj-ID>& ziRH8`X%3P8?eiNhK2Q-Lf6Nd9#)Wl1#ua2mge?+Bx=R}n@*8R0#_d!MU{6hk5LO)t zbhQH_@}R@TU0Ld9-+>>FgKh0*%bZMzkJs9ZqpbuumHy~gWGcl|82j39wB|O}UR+)e zM5s1NxJ62TwcW*EHjMG)Ae%6^6T1MUdy_d*C+&)T&o87%TZZ5*P-iXQBA%}gWjE%- zu4Tj)f)cX90|eJCzN7_ZUDL;?HUJ|*W1SLOndIYlsYXzrPjrC}_3zcdbMCLXD zL8q@{g{W@cAPbj|P?V}%_3gM)B?=PTi?fNw84s8|#K-&J-tE(%7Js6)V(Y1s?_9e{ zpoV^n&AaPy0sm6{WdKl10Rle*KL7#%4gd;&hgQ}54WB{+004&vlZ66G28IFv0001~ CZXON* delta 596 zcmV-a0;~P-1=R%`P)h>@KL7#%4gj)qa8z*7#0Vz>004~!001VFu>vWPL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkE-3!6zM{dK1EkL>#4E)m&>BEC!rFEA?pTC2aA zzYp}4)6t~1aN^0_45df?BnyASg+z$G;2v2MVZy%*XnI@IXQ8IX)#JKRlBgbf*7H+X z2y`9^ePX+70Re6Vbb0k4tn6yVWi%d+JMn~&8JcY23aI9|FK4dwVOJY-_{Or31 zy&CUsZ!$jQLPt)bq9N;{nCrOCBs;KViU>L56;004~!lb`}h25SNU0002SG#M2D diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.7-legacy.zip index dc15b8aa5b21ef3ca5fb9582ab0e57ea15b0ad05..49077e685b45ca835f87d243cbe5dba91e511a29 100644 GIT binary patch delta 697 zcmV;q0!ICy2Dt_sP)h>@KL7#%4gd>(hgM2l;9H9V0021%001VF;Q}dc?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{REq@b@Mv zrr=qOZYL^R&Hb7U*%FS7kwkw`jEGH&a<^gm5BTBUb2TFBr);P%M}4>sO7-yaI-tR) zpji`N{3$*evnMv?f!^nftrt|PRir)urbcDBTFnX%4@0)jR4sc2Nknu8XT)2fFM&+G zf}BHwI(6;Jh7=(42pczVOK1Bh&ZnK@MjIfzu4~}+Gny(*wv6k245)wY^tMwEq$jqs z2l83haG%ehuY0cCe1y$fF6M#YmTvK47BbU9RCRvQ{hCTc`(*i0`EQIXq<65P_6AlS z2@fR~i1~TEZ#7V3Glcg(r+sH5qX6Jj|j}U2gKNrw<8z+c^CMr!(;gep(4ec znEg&oP0Cn?*-<`Je58NqW@!PivRz3T%|51)Mrz@n1{ZT9%UBr*(kHpo=p@ke@^ne2RPjYJ3SJ$wVXtksYi{NY~R5?zeoQ!O^Z!vqAaD_muEI zUAS<$@3spkFw)m7;>Ta^^(f58IkywpD-HzatUt@XtPJg{U;oX+w8>CQ0Rle*KL7#% f4gd>(hgM2l;9CZZ0ssIx2$RqPN(RpY00000WWY|N delta 683 zcmV;c0#yCE2A~EQP)h>@KL7#%4gj)qa8x(zBXDv8002J+kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei=KXc1^N;NM;Vu!`ha$dA2rn=y{#vWQnZFP8mDACr zws7Lf+zh2h{Ui&2!i7YLz2F{M6Jf%?3}|{=(`TWk#?|AxQIe=0de-w(SO|0;34LO_ zYXJdn1ayy0TlOtKgI6o9I}VE8u=@ueoFTmD>kz&IIv1oFz^#6HLax6g8anDA}#qznZQT_3=TsO7W) zNXz}@-xQChA$oc$w-u)tna~8xm4UjHp zenpu?JXq1)Nfe5W(^Y~jI!1D9SFz6mLdOLXFXYPTQsYws{>1m!FZOA4>glo1(vCyi z*d<>|a{crvVzy9A0Rle*KL7#%4gj)qa8x(zBXDv8002J+001Tc0000000000004ji R0001!`~o)ywgLbE000fsIH>>t diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.8-legacy.zip index bb225993e13ee35f91baddf0a0f5e2b0e2296441..3ff71cdcd864bd7b1a2c0b35ca89a3d1468505cf 100644 GIT binary patch delta 696 zcmV;p0!RIy2Dk@KL7#%4gd>(hgO%N^=*m*0021%001VF-~uU;L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{RU`DbnR@ z^q&U{_CvTk4FO2mpYPp&YPx@$b}EZTX{^tjc+`b;LFd686N!380@{$TI&PQHh~e#L z<&`*Ab5w5_aEZV?Z_8a{jbVm(xUVQLz42x07LLy`ls)51<0#ZF&vbxYP#lHJ_?0`l zcD`q5lw<^0EP*lChr$jhY=>ecq~8ul`P59bUhALkew{?VKWUi%x0HX3Dq$pz@Tf;) z&tb^0Z~CmlvHJd)2rrp*4%(+`1*^MF-y>aV3{qya1LZ6NmdIQ@Ovh}eJ)-h(Li2vq zd}qJ(n#zL!VCoMEJnbxm90*E1I&|nm1vbaD*L z(j#>u|0k`(*VjQv;Xi-uA=6X8pk2zDcvbV10_ifMDut&|2*I51nW>#PaesNlkUR|W zo(N%13d-y{cvaVSx+D!Xb3cE`fo}?S5(ikIGaS!*9Y3de|N31_FHlPX0zU&k00ICG e01JPIR+pjmZHff~0021%lg|Q52F?Ni0001t6i~nb delta 683 zcmV;c0#yCD2A>8PP)h>@KL7#%4gj)qa8v}l+%s_k002J+kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiALUk`i1zDRoW-oL zT!#%v%tjc4?7X>up6XV)fw9dq=@%3+ZS5I}aVTuf2;EMA@lD+Zx4X5nA?-s4AAzcj zE;59TuyP3R+_T|?kZP!F&MmC0kKgvY^5CspF?JLw(V@^9t7fl`Higzn{=kKlt+i*_hLS$ zZ@GphyM_~0uwMkMePTRyem^q~?p4XHC)DeS27T^M6FYpe>N+AD*J z2v=zm87u04IZv$=l5I?$elxyZW;t{_X$OTGX$M9zR^N}02iGKAs0Lg-^(G4sSil<) zik(zGf^;9PDdVtXcrg|u`(Og?1oHO4wSaZADi36_=~x@*(DhcdW9R}A@kTzQU*EF_ z^@nEtnysvu!0~b0lFG0;*%)*S+Zi@|FJXj=$yjZFL%8=_Zn25O&JB7~TPa#(rp}Wy ztf3_|UT0!Gd(tKxC*|~Dx(ob1|8NwMExQh19m@jBWqdj7a6yaZ{YJWdN`yat%*w&L zWGAb2|LlQE$52ZF0zU&k00ICG0J3v%R0O-+GjRd{06zx+044wc00000000000Du7i R0001!`~o%xwE_SD004_mG(rFX diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.4.9-legacy.zip index 9a3eed5113291f944f416d93f0374e3ce541e9fe..5e776960b1e7168b35efd4bc690c2497527c226e 100644 GIT binary patch delta 690 zcmV;j0!{s!2D1hmP)h>@KL7#%4gd^)hgOiVh*pIH0012b001VF+yW_)L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djo{RleiPGh3 z^q&U{_CvTk4FO2mpYPp&YPx@$b}EZTX{^tjc+`b;LFd686N!380@{$TI&PQHh~e#L z<&`*Ab5w5_aEZV?Z_8a{jbVm(xUVQLz42x07LLy`ls)51<0#ZF&vb&+6h(9{St)Z{ zz?2lP;Nkhcgm`~LCa7;aM)=N4i;Gu!jU+78#onV4jZTvBZhhk1YodQ><@bs+$PlO1 z)PU?^WC-MW zY&u{I(n?)mdP=yYiu`}qE6{A1|5(?b5PFOYp@^c%&lX%}Q@*pLAyXzrh?itvBv zJnVs@KL7#%4gj-ra8&%O;>>LV001!ukr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiALUk`i1zDRoW-oL zT!#%v%tjc4?7X>up6XV)fw9dq=@%3+ZS5I}aVTuf2;EMA@lD+Zx4X5nA?-s4AAzcj zE;59TuyP6Wf}c`N6LeWmWu{RL?Yx6;ZI3yf87ELdm`0X#Y%__Z6<}B2d>Xsie0$Ud zc7+tYKIcQPOF)}Dm!Q{rxR zte|WJ(OTL~1b89iE(z9*Q?`_7 z!MNkvU0CL?_c0CFNtbi(Flq%rLx0hTsUDR^Ju<9nj*?xK%grFn2O(C^7_X8Qwh%~ zS@l$6>^j)Te7vp$K6LLH{N;ar&b?Eb>cQ4@CC@8=s$I#-hLITHZe?6EY+X~F{6TW_ zOI=-zC2elQTijWJeIaxPrAzq5ey8bl4eLiV$lKMsGqmaA$+FSyV7NG&ZWR6+vNt@90086yKT`kz diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.0-compact.zip index 0efe0230707b425ac8d150039a0e97f5e83fd932..c1b397d44ece297b4235d5dfc20fdea338a6ba5c 100644 GIT binary patch delta 783 zcmV+q1MvL&29F0DP)h>@KL7#%4ge&7hgRY|_;ld{001Kj001VFJOe3_L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yN-qogDx zwt+C?*7({A=TMSin=f)s`n-QXOPrZ~i4jrrvDVz?gLhll*y|Y7c(UMx#`%`}Hmwzl zEM3xjfs#yiNE}XHhhH(G-CKEHv*0)&XjWnOESX|> z6__vT*hc~8a2@0e688zifhGp^8oIFB1+}01(?DTm@Nvc5dA1WC)M9_^?yd|=;iYl? zVXidB6&X##KEM{Ww!)a6q7g!x&+`B%=KuJBJY^J0&%Pzd^};ZP-P;^^)7>0Mte$Tm zX=aa^- zNP~jhr{foM4F=r)^yGi@PvZ^v?Ag(84}a|H*5V1o3|eq_7RG@nJE)#HQ%TtiVXfg@ zt?|Xx8D9I|gkm98JM1(+A&!|EmUfQ2zse%$=0g#mnh3%LTu$jaeE`?+Mb7b5yBg34KHPsGB17ql*mKRTIYdf{r{M2;4*(uMpE=;Y3PUKr|fgjfEVFf2r9h%@Qm(bh96SO*s2R)DWut3Xtlc6JaE27W;T zc!yBHEp=b&YlvLf0TT8e!HMal2t8~=L5i4p%l6TrY>7ne;@OZ2tnF@_m1inr_NH(S zUtiD^_WJA8HUzeq>?xu0DTK8$|D^Eq?odks0zU&k00ICG03?5hR^mMPbm0O303!;M ND+5XfB?ABe001zQfI@KL7#%4gj@ta8$oLz;(?6008U=001VFPy;EEL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cnn-8j`PumgOS>1>wzOP6qo#TNG#STZ8vX zQ%|%54gE~vj758P7(DjRZZm(vOPwBYz0V97t-`wQc1rWJe-~?ZyGWl*Z}wACD3wdhG@?!Ny~RaKT?ri69k2VTMmcW z8sFB784FtZu%ef8T6G0#{zhT#{Q}6UEunG zlN<4uo~65T*w(zn@cV_}CLjO%DWGo*#?3Mr6kt5$js-@Owl`qbJ~DhC^Ec4$2u-zR zx!OE%+072|9IVyfvX9yM?fSXo*lDgB9wfB^uc0Kn1W0)5(>8TQ6vlg<=^iB#_r<>p z7dlC!e(VjK=PH%i$tiygo~zglAy$U2F~YVDAqy~rYq2;Yu7)RKGjGb@KL7#%4ge&7hgJ{9Xd&nV002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luGQ=_CLB({Mt%PI)$tom&wwKVf0JV$&o@&DH46T-19iH>fBKgKDm)N=(Lu? zL`ypKWT%`o);KV7LC!Q5axb`$VQrx35N26|i$iK;r!Q20#gnG9h3v9AP_CflKhh4@ zxZxa9uyU9x9lds{B6YF+^AiEr<%-JmzDC(@^zFFQ?WQ7oCmL+(To|m_`WlSFQ@7L7 zb5S9jxCP^qBnZ)!Vq%D{Ls|w5rO}`ojJ4eLY}vGh+Wv%AJCFsspGTmq4eBeWWO{2lyKL8G_B^(OME-*qvI+ZZki?8#cTFW`9$XoVI zwV>aB^XPaHAGTt{%E;IJ+qOs}%7yxbz=Yk delta 764 zcmV@KL7#%4gj@ta8xxbP^r}d000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiWbIy$GlrF-AdPgx6cX14nHJKaCY(+NK1R}4f@tz$kNK^MKF1G{kh7yuUAviWHf+d zDOqh@Jl0%C>tj$>$D`(+kMe@A2m4skzZ5M+(+%)V4W%7#l@zgBoy1lmodhFKdaywBd6M+?uyeD4+WyH z5 z*o;hTFQ%7&ull;vjVefx=8;*!qSFdKKR85nCkvOx1Nx>cgkRc+1!HB`=RWDgX95FF zGlJObh6G%z4CX1dZtS+yq|1p%R(pG^*UIBu(|yH%`(RcO#mA*S`eXS8R_;$($;?&n zTcoF><#cc&q?7_79=tTWv;?=T-cgSAi$@9R7?iE6<6*vJ;V^S38az3geJ)-5x|zDA z*5mUrbG4GO{dT+KP13h5Qz4z}Mw~`xLo{w2A@OKacOtsu--{+-cep6PCN^w+$`rwn z?a8lDseX+;`y^=2YCS7f)HtJlgeG|Yf8yXK-=ANLnxm5jHW8Nm?I9`QBxvGC?KL;3 udH)4F!vIiA0Rle*KL7#%4gj@ta8xxbP^r}d000vSlSTtd1{nhY0000N(08@~ diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-compact.zip index cd86e983a5831eca52430b416dbd53f08943a500..a87fa765d62b64abdcaf02b73cee9a7aaf9e2488 100644 GIT binary patch delta 775 zcmV+i1Ni*+295_9P)h>@KL7#%4ge*8hgR`*)a~E`001Kjkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL}TcLc%xJ~t)$xA zo7f$w{eiw)zwB${2|*0(3x~{qxi>?4QiR`d)D?INP6tBlA8{QkzUd?;(CZnLIxUipJk~5Ap~ump zu{GzK;q969P2YM;Be;K9THNszhi^~3HnD(dPgA|S73KnN30644KPpuard_6}Os>tr z>U^_XO88jT(JI-YL1)O1(%U{q#Ly#ZiS)K4%Yp0wmE>NC$9FtIip>;+oieQN_hWk| zb01m$u?EB?ZKX;F|4aTZ08mQ-0zU&k00ICG040BiR`GSz?cf3c03!;MCj&|bBm)2d F004_KcrpM0 delta 759 zcmV@KL7#%4gj@ta8&$DhoQ*=008U=001VFPXj5DL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc!?%gAIaGAO&Y40MRvzH z(mPSkNS>t-MXsn~5;g6>)|r2+_B2MYP@d~D{&0I|9Emmk3D>%K@d!^$lyVYXTn~4G zy-2oNl}eFf=h$7ivXBH+bagVf__!uUb93i|fEgknW3Oc-zF^`U`{UKZFTDwZ%}eEn zM%kV4G3qQH;$L@ql%iOYH_@;76KWcOnOL+Prbg&75m@fumKj|}A7Fn^udu~K)M+rD z!O6QBi!$oiy5k{gs$?S-Ggu#i)p7Vg1|d+NgH;8*EW)|*Bpmn|Dr@R_bEHx1*-Bs( zJs!ClB|B0XO`C#wXhjmAoV$&0vNTupl#aM(+E^I;&C3LF^{9>AA`oh6>_nl06{^(x z<2j)mh$vLv?q2bsXU2ce7*ImuS|>RVBE|_E+&TlDSgLw^77HT(|FLg5nHnVE5XF=` z0n8UiRd||Y^oL#tMihx$B!9s0BwmtSY1cqX#2TQJ<2KsF14iZlJy>WBJQh#0O4a0p z&ga$5@r6CEjbuiBM$9Oa{(3PMhRAi4!Z=edn2VJ&eY#RrAp?K=lx5q~xV)rFBH2zM zwgwKYZCm7?iv|k(YU?3W{;JB2;s1mGPIR3~_*m>7^foLnd(J>enx(iB)T5_zz)Z1BQ~d@lC1UaA#`N+DeNEs<(3WFkW=Cs!sHqb3Aj>&pSevb4El@p&$; z4-0=BqAk_P3T#uRfPqUxOx)^w4-`+qs)agw|MeBR ps!&S-0zU&k00ICG0JU>)RQyYap~(UO0PF~pJ_AYy4FdoG000pBVcGxy diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.1-legacy.zip index 1464d4e809d0872cd6431713e592c5f11d6a104e..1e8fb232279fdca09d36f3af5df4f8d3cbb61c3d 100644 GIT binary patch delta 789 zcmV+w1M2+#29*aJP)h>@KL7#%4ge;9hgMBpB$4L=002q~001VFKLaU|L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErW9Wo< zqf|Mqq}tq@*d3_-fxcig7ixbPK$ExxEP|#QX|GM$-Ootkr{p_H08aGXrYPqG*&Kbl zSDA@Dn}i`t@cqRiA=q4mts_*_fF5dLWpHmzpgwfvWt^1Zr9CjvNGMqE;1MPp>{1id~U@MaW zL7S<4KeRl{nbbohW{2!~a64bL`oK5F+eq6HWP(VL-3sa*ute$>*-T66XKE?9q2Ts$ zbjVyiGOa1Dc$n5!Z5I3^GCTFMJX#Wng7*pQ&?=1CyxEjZ+CT1&`^pfaYLmh8$@Rf& z{Bidy8n4Ke7*ExaxjcW?=B@o#LLo0;1x~ z4{Y3VCAA9}d>C~hW;5oQ!g!J&4%W)tsYih*^UatlQ2<%W5{p;aJ$>ZT59%K>I1Mq0 zWB8q?!xqrMzR_X_G;ntQwNAd$)z5xZ+ZnJx9#e4@KL7#%4gj@ta8x->WpU5~000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiHS+HLINy~Ex$ z!ORUX*5o@s*YIn9qff-u6DP(+3}|Op+B3*<)lv^8=il6SOSB;;B5mtrAutD`q^1ec z6*>y5VKz&`s&bMFPK8CHBy{p};x*5ui6RI>;GcB73z`Yyq*Hs>8q zhB&Kxqq?grNzS+*YA94LegxVyn*Z^k=d#U;-|vEA>myee|JsHF`jOi2YIMre&h0IW zmE||~`nv3_r>0Pk+M;L7K&T~(m%HiU=)+|ZY>{=>g+&lp^0~N0bsA7>Q9JF#%)bu4 zghE2gJa68A>3>4)dCw|I_tRK}y??@v6a7^LV*vE`;&XxJ^%zG~NJ0fA;Qz9*07d{j z`N!pB?#>6P=lJ&`+;S0^BY_FfK^fGxwTI5T^l4JkeR| zPAXUd!4?M$ixZ&)j4sW> zr0)w|fAkRr>6kgj2bOAqC%Z9@W}06k_s{JK^{A0?C;3b?lVV7*(rYW?E2SVQ@yr@+ zRP#Ygbq}sHuz|kW;~(Wg$gEi9ZZ})R5?v$anJ$)022w5MFUC(6axSN0080Ab*%sZ diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-compact.zip index efcd0ace8f58838fa8fb8ac7252583ff419b8320..d08d17ad9acd0a38e95ba8767d371ac4c4eca018 100644 GIT binary patch delta 787 zcmV+u1MK{Y2bu>MP)h>@KL7#%4gfQMhgK=Vt5EC$002k|kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL|_3qbl7a}gH(S) z-3GY-o2G=6y|rh5pb_VB`8RRG)2!}_PewOJ{64u^c{FbwhmrCO0?N?h?cAIFR1RFS z+pp6WS{^l)?U|k5p-i}O(OQ4~@_EF%32Tiz z-Aq=c-dxZ?PD)dZ>FBYH7c7v4`(`Q3w>IcY;ywIV%s6<&OXx+v}l$`i~0*aSc^LANm$ zOf)8E_A%IpP-Zd07E7j1xEry#Kaf!@^m0zU&k00ICG05gAwRw=@(Q0xK# R07wdxIs-}uFarPp000$JeR==@ delta 771 zcmV+e1N{7&2Z{$6P)h>@KL7#%4gj`ua8x)+WRu(i000pQkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei^#!Xk#vNSAzR3=#kP4 zWo8FN^t(boSE-+{b$I4yrcopx2-4C3(J1kqE z9}y2gLs{Scw$l%K9$>5xZvH*>u!>C!_s6XlsW&yExbrPe&O81Fm>Vx{iI&No=po#@9;c2? zi1V>rHLZbvAc#_ zgQB!vG8rk@>RCh_U4TRJH9_>(4M_A}+eFJIrGefbPj{xc;EfUk zO1DzsijeFOv5-6U)FEW%_pCP<|u>*5`v9S8_hLn0Q#WEUCmCJ}K zu);+R@PRMNff!x*9BST8xAIbj|h)GY%g zjLG&_2&SLN>KBQ1lpdSWi>#LWU%E}kW!fCGsqZ+(<9OcInvKz2Q1p1><9;G#ulxXZ z2ys)DmH@gt{|dw;08mQ-0zU&k00ICG0Jd{*R5(dwliUIT01*k3N&`v;AOipZ0040R Bb6NlZ diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.10-legacy.zip index 17dd61c7c182914e295a073373d2483dc4864143..c2523d0efe11bf98af455972b493cf697e79d2f3 100644 GIT binary patch delta 818 zcmV-21I_%92criYP)h>@KL7#%4gfQMhgR(U_A~VY003_a001VFQ3ENFL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErU;#OF z*lg~DRDVL<2Dty5ri7HewP$~z5$AFFH*vz#tnRcbSvM?gxJbgoDJ{~P9!0Vem1wQ3 z(IXLK{kg#7qAZph4iriy0@5P+$;Z}Rwi(i2U5Ct!#h@ydmNV z6Lr__imfN8vQp6A7T(*Ltc|b4jN=sP_?xNb#|K>cWA(Se{b1#owatIM{vhXkl<$Rb zn7ehVDY$zbxjO!B5dV`rBI97vk`0lVDYKj-BB;zBSs}68xF!{|<@^}twE_m@d>)<#JQ~bYV8zxKT&|SH+}I|)q~l$oV(xk)PPc~cs*kC1N@vlC zk~zvhY^H9JNgX`oU-xr`v6vu_Ya3eA#ewx|42G%&NCNg+9@Kw-?QFg&zW0+TYLUqX zB1Ywi_?{*Kdl_rX0-7vw4eG!E3}U*JYEdSiE2=E^xCfvlk}*~f6aV(J`p9K-Yd^h! z0iwo9@!GlimjcjbRLjER3PBWrtTNM43&Q}t~TQZU1@KL7#%4gj`ua8!+5K&avZ001}%kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei^#!XlDztzQFCMe z4}-E;kv=_p3SPT^IPuDAn4!s(?V1Va$j{H8*8VZSKEYwa@7-1lBP~K z8zq@kA}_L+t4L=xF5^AL^i2C+K8V#(nrL*djYT7gjSYc@yF-5h=(_gYL@e2;WhP6B z#}c?LOQXxbF_1}$L?SJIQV2@zrq9Xt`$S8!k)G@N?+kN)E}FA@JU^=8GpBjJeg^>* z9G?WQGXXgiskdcc24{42P>>_3hOSc~fsnFhL$)lHr4(@qDTUpOXN!I#psjv-t!vXb zs#OFJGYGA6FLQ6fnPE8qougf^`<*y~lFXADOImQW6%S<1l)oE@6$q&iZ|R}n62a; zI=yhM-u;YER^eWTTUM$m<-0^^&KKkEr3KzjUu&3uXx5iQs@IVEp09f8M-mb}0V`4B z9;MwYvE=_)9d1o*4xE5Wu~?BvY)7K)4BrdYfQlq=d@Q%FoY!N+gjTb3fJJusp^NV; zIdlcNc-rfig>EoM;wnS-Z*vaf!=QpMrY|bg>v2P=>E(u7yoRke^yxpy-NAE#>@*{P zfh_Y~Xfo4d@$zA)wE_GFgOX?-_TEVWv#ptDd+cOUx*QwMlj%Au*lzLRDsj|MO928u13v%)01g1Qb8u9RT|lVf0ssIw36oO;N(Lqa H00000=*VkU diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-compact.zip index b22cdd2528417c40361ca0cba6765500c2a2f4a8..f200540cc6b0299cadbac59a82bf38548c7f1cd2 100644 GIT binary patch delta 811 zcmV+`1JwM72b>2OP)h>@KL7#%4gfWOhgLxw>bUL#002k|kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL|_Y-jlZ+JAZ|Lp z<>sl!Y*lzfqe_l{?*h>w+--jYQz51m_GGaaa=9R)n3fGamZriXid_iV7_KUUMk%J{ z2rClE9Ez{bCvbddNkyL$w6by;M`w*}<7lB#3~Uf85%ZC%;iIM`eiov~A7^n%VDtbk z2IrKvYP8abj4vlF ztTrqfm|c;#7eaKG3c4??>Y#nOKfVoQZW<~XQ^AVbk0|R<+BQmg<~I2_WD)Fi4Xk@) zb#eu2!+qMf+d}!Ee9$s4rGLF!t31R|>>tc1 zvcaw{aw&WO#J7SzmVJNuI|GC;=j+1%SgrtY+AZH|G-~8f?;xFLi3astPtMTEaTpg< zkvsV*LL>Bb6J08pxza4{lnO38{o9$&Kn9}&nFC~hrNG5Br+_z{X1?_Fy46M835!WL;|neWIr@KL7#%4gj`ua8$*?beh=$000pQ001VFT>~kRL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc!>A0<0BHfj!*I;I{wjYjDh`%k})Z%@^( zAmjS5l3|LlDx{lDo;a?adD?$nnwdO!9D;<$4KG0U7eI9ursjHz#*OhMOnurTqe#qx zmJoRmxn+*EAtnXsPq_BzG|@|_u#7yJR)tU4DqK5;R%BrcKCG%|KlWf>!Nzm&#M~bvaj*}wp-vF>jqggfcmzn4t@}iC&_wbiF zYB|;o3f#+N$l~rc`kFM3@n!ORrhWzpEgfL+^+|X;{nXjI*o?Q z;}zMA(1yPDer~t%MXY}y(!X8+=1{R*cI1D-XAV_JWs$mLP3GW;>m6slM`X-X>7 zK094w*|rI=(RS<@`JXEXXIoHX9vsi}jErN7iFnHF4GAOu2qMG0Q1wY%{qtvXS5w`n%M#X01*k3Oan>=9RmOW F005dsa`pfK diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.11-legacy.zip index 25ef2396916cabf25a6e58dbdf5cfa2d82da4978..a8b4fa3d4f16d47261d95f1a08514b828033b57e 100644 GIT binary patch delta 818 zcmV-21I_%72c!oZP)h>@KL7#%4gfWOhgKEc?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErU<;Rx zzq7m`ZaTl^=BdYQRd__BN{)Z;0?{GdZGQt(A*MgzJMp2LP^I&iKK}Rin6~l3;aqRX z>EYc#s({i>*lir*cC)rsDetesYiQx+w>9}jr0-(iq<*Mk(agJ_#6^dCz(HT#+92!c zM6MLBQ9*$Hu27MYmrX3KX5o|Roq9z2is1`eTA?;r~#!u#U1>!p8xf2=IS%&DiNP1l6rC`(vU@=^*^IpEP~-1?$lr#fu{7}?HbS`RS1 z8k>H0ggQD>9S6uL+k|PIiHI%~zZI+GDfL?p3&q z4z1!$;$b$Sx^Ls>KCS{q#vB!d-k_qfIjjNpAR|s+Fv`gi3bKFjmW6N55wyOt(-unt zrb=erYBoRcw>)<6QX%60pMiiM3+Qyu0qBfuCAw2oAde4e71_{wrp#>965GG3ui(Bp zJDq{A9h*lQj`Io}6S)ht$F|BTsD=#EJNUm!u$iGvg@*8#qB6SBbX=+YX*_1COP5$30vew`$oqnjB=g^}Ga5%5@QMqb>XzZl_R70Rle* wKL7#%4gfWOhgKE@KL7#%4gj`ua8&KkqdVXN001}%kr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei$JB>!^82eAZj&D!ZuWARu@${|k zPsS0x>zNr(>Y_V;xPUWqnf}@hng_KV<35E%T}TOIUItplR2ZK^_noBE6NA7qCd8CjcB#8;%Ug2;D4Y?7AjQLJ7c^##)s+C{N zSx+#=Aji~~Te$TFy3J!!5dc#SvH3p@zkNBWI@c9{uLzqaU@u$?IxJzUM`INU z1#A4}tH0jFujf1e3fT?b>NbRYQypLB)&D!ttlzn%*(>gs;NADWTd; z$%zM~7a24=WAi2|t$cOj!KX11JbtFx!*=4&)o{YQTrhnpaGA7N(k{c-RlDb<5ziP9 z#!zI=fJSV8KQ#BaQ&Ma4t}RnnUNv+%f%1pRfGb!|w|05BK`N(xAh!R6zzdToMC^vy z_S$_I+P<*ckJb6|=E6frsp-6ps-nw@&@oQl&tUs(7jY`qc$|t)J-t&9s$8ZX} zHKer~dD`u8Mn)dW4?mLSh^=+I6Z4%N65$eqYO1$?yo3fLGa_q_@|U0`(U7wmyCTrb z7b42Ok@p3Jg^eGmv{N6K#A0D+qF2%*#bDl439CCn?DvIyv5886C7Os^mw_A3~ z+uwX!&)znMlQyC5^$4-CkRJ<>U4sk!`i0pDst?;g-&<*0`U``G#2f;s?K&wJ338kv z=2L5H^9XUF*JDn@@BIL2XHZK40zU&k00ICG0Jd{*RPE5CJKzEU05}PgR0B!|Bm)2d F001xxbe8}C diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-compact.zip index 17f51760a59c7fc445d697a9dbe4fc91322c8f22..0362ca98ef3e53f8e3639059eb6476d6ea3e060a 100644 GIT binary patch delta 811 zcmV+`1JwM62bu>MP)h>@KL7#%4gfZPhgJ-cxl`-{002k|kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL|_#v@>4?#K&=nS zACjCRPi9z9TARv$;`jk1_9!IeALi3eDsU6p*aNEdg}oh2v2a41X;TFT>#q~R_U0UR zb$6+(fHRPg=#B&Ktez@zejzmX)mv7M$qO)ZGxfgauGChqn=fecW;bCT8x?%M?wp7h>j7;HwZ(Db*ZpezwJ+mNhfQZNe zqTAB)i0G*3#&B03l73F&oM@&HG;?6jMK|zi3r8!8LVyuBcjuOlf!l;ld>-9{BiPMh zJvo;L{YTI`_^Y`h!kuSC( zOpxry{EZW${Bnz3rK%s4m93pBQT#7rL8tVh;R{>^Sd5My9K9))%^-;#Cnsgkt0&GP zin6kTlC9H*wt=JdMK`-UANLmtcuG1`CfO3c;=<2>1_TTthUG+z%G9%21kP0Y>=H^? z<{|BWp8vCX+wXl<)+RH7L>$mv`)5kLs)J&3Ay5Z_=Cyp=!W6PD<9=7?@Pcil6*#Vn zv$jw=_D>LJx_O94FB+?|@{BjDLULl#|A2!<08mQ-0zU&k00ICG05*SzRt%B3Q|tl& p07wb|044wc00000000000Du7i0001Va(QEuP6ILqFarPp003JHcpd-% delta 767 zcmV@KL7#%4gj`ua8!K5ahuoz000pQkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei;}lng}WBK!ICdJQ+QHV=NqzuW*Vt!^a7HF2rOLr;uIFJVHxup5I}! z+3eDC7`>Ic10QouJTMhoE+uof6nK!@Msj7Y3OXPuh%o5%q-v$mIj0U)LZjVnT z92?TX=54*gPO(#CD<^WS6)6^zi-9~alF_)MrmwcjLZB%_U>FTu-h7OS^QRqsY|(}K z_z`=?US#io2JRRN;uPOp-P%jmVuIp*n*gFB!nNf*@mqx~1I8((d%G->V5A!C6o{)v z%gGjYeugLya?Fq)h7&D~ClK5M=f0JT03asa>so#u$kS=1O<=Uiqt2ZRbu<1gIg6)X zqM#u^x$s(Wm;Mc$=A5}pLK%TZCL|U_2@(*JJJt1n*MXGk@A%zqGUW+0X>+p^l$ka~ zB>`#r{%-V&(6v{CJJ8hxQluB*(@1GW53FC&*tAjg*$atFvS_i2+OGP+M?04JfFJ@? z&sM^ZQ^hr$5!R$aB#EJQQU}<QoBT!2L0zU&k00ICG0Jd{*RD8p6o7e&X01*k3N&`v;90LFV008NeWMcpT diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.12-legacy.zip index 8ea839faa8789c515bf9130ff2713e9d3b4f015e..b545e28dc63862778b0eab80b83b0a636fb542c2 100644 GIT binary patch delta 818 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 delta 775 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 delta 776 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 H000008#Z#u diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.16-compact.zip index 92d708ff4355c81e0940a56d33c3131e1a78ca4a..7c528e303d7572fcf0b04f7babebbdd3085143cb 100644 GIT binary patch delta 785 zcmV+s1Md8Y2bc#KP)h>@KL7#%4gfuWhgQIfgktIf002k|kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL|{BCk8R$dnj~VO z;QZF>JQiWYQ~=|DnL0`ivksfVFmBS}nS)y2Tp^uiWi$ZmkJUj8^}`!_z=KpcQs;{I z42SmJFF7=#)!orxy&ZKBzOpy+=)p#}0d+T}hL7q;WSP5?d#^bM9ad+|V`y0M^yuTA z&GDWHaM>5pGaM6VdZVWlTx(E%1h%)OP=P8n$B>GR+SqJ=#7K{Z;vFo{OU~qYLIG2J zd3+=xW1WuGNM|mbej6wl8n9w^GMzy*Ip{mjdk(;G#~TSKFJ@WD;uUn~VQ$FLvvy9@ zc2zws0|WF2PaSSU<#Vyf0ZF~?MLO4{q?Upr+ooShuJyd?X_Z39X^sR{e;!>5@LFs# zPmmmxH4Yko6?cBBr9q9{=lbR5R@E&4F9d*)H3v~~n{?*1aI@ZsO<$#Lj6&?ky;>V2 zv|T0pa^Z9jJ{68~)Q0h4(`Nvs)%4$EzTYYCFtMNvP&>nVxwc9(tGBq6I88VEKd z9m=8M?rSi*TICOUd2}tJ!6=&B*NAR(y_1Sn3=sR`u%lWc(lc*@h2~FLAydzyCjk zH{c=#`Umrc=&{CbkhvLmWKyWhPeK3WuLO=zO928u13v%)01f~>e}`7UiiBe70ssI= P3X?bkN(L?i000002xfA3 delta 769 zcmV+c1OEJ&2Z#q4P)h>@KL7#%4gj`ua8zI9{YcsZ000pQkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei&3 z8&{n^*y2!kFR##l34X=JHJ%xb+wqiV_P)DR7!$4<1%Ulgc%Bt2)b+UM30 zaS=md1KzL@HXMhAK0?hOiaJu7mkvBu^}!dvPQGcUt|Fp;A218QTTJi^vC)JWDBqx^ z#)7548wU6X{ADnl&A^XN0i?_Be<$mK1wfIR^3DaA$fCY~p!p@@0mL_1=lcy>$Gi)h z1YrYFnP=^S@cV~m0{jO$*z(wAxIhS@bRZL`p!P>9E*b-ntruRTJ7`zol(MWmwc1+L zBVNyLhyZPWJPDeShn;}3HOw@e+3B*O#TY%L*~Fm7Wz5gK9?pXAUA@ zV|a^*HaFBH>q0zLZ&!mR@YxyO4Yc)6{WQXk%d~^}?k16Xq+3K;#3MoUe4W0+p1PRM zf+J>N&*s2c3=CJ)RadviNVlN>OsVgA$3}C13=C#rH#rmTki0OuJ^_(?(;t~TG>JH` z`!~c@p>E?K5Vw<3R!P)d)N3QkeQzaIkI`i^CBVg->&C6DRQLI1ILLyJ?e#A1X`(nw zVb8|7*hByM(&}PRO928u13v%)01g1Qb8u8&@KL7#%4gfuWhgK+PpeFJH003_a001VFPy;EEL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErU_2|2 zZQh`oBx0f9{MPF{7Gc9w0ONm|I!X?+4x7O+Zqo*ko~p3e;n#VwZfL|Xj0nf$ZX_w5 z(evY?Yl({*INKYBTXB{arRghz+A38EWh%mz?~(;~jQvC9PUdOYB1a_^WLQ_t4d|{L zI#8OrAyvFRUcP$%n&x%=OvSue&TuQNNe1S;Xs&d-y;pA zg|MbRw}?@o9wn&r@Rcj)#fefN85>3 z&yC?&sH+^ZUrNfCQ4TH9;r@lS#D23;v_Gvirdrt^PXK4Zwr@cr5}}88yVbiW#O*{R zdKS1Gk<(h*UZHIatl%6lv>=v&O6jMyx56QP6?Q$<&ja$B4!mk!%#e6$i@^K|ehi6k zG>akVh#o>RV$KEqF?Qw6MxJW};hryKwRF2@BVhwkIPIu)HUHxylYCH10Rle*KL7#% e4gfuWhgK+PpeFJH003_alRpDW1~vl#0001hRCjFv delta 783 zcmV+q1MvKy2ag9EP)h>@KL7#%4gj}va8xGY5u4!x001}%001VFVFM|VL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc!>HaEW)Lq1!~LB*k07|tp*KFR}wg$by? z;%7k^tXc3C;`r7cp_CGC)Y^agic**Ha=@vs(m3V~=Vnod|M#T=A#8R`ENxW4LEmdMw-_Gy(Q-ZC1;H5N3XJ# z#rK*olwB8|H7IYeMkxRLQM__y1^9>)vclV2Ca|O{5PF<&tXUv z-bp4?CvEMDNKf18kGSTtlRT7NgVwzdgeN0U(YwPjU#H5*MPq;VV)MU*4^!n(5c}bp zU%yjCJDX^L%s`$`F>f`-r*uf;)liBlLC~IQ1cCG-CBKBFcpbSn$BKCfGhlD2qft_t z=>(W8kI{Q!i@~LbD}fxCa>~$JlU|`_kNdLD^g>8|f^ShR{@LKPOsv%ixD*lfW*HB9V0zU&k00ICG0Jn2+R3_mOo8bZg05}Pg NPy@KL7#%4gfuWhgPi?`ZDSQ002k|kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL|{cwvu)m>nj~VO z;QZF>JQiWYQ~=|DnL0`ivksfVFmBS}nS)y2Tp^uiWi$ZmkJUj8^}`!_z=KpcQs;{I z42SmJFF7=#)!orxy&ZKBzOpy+=)p#}0d+T}hL7q;WSP5?d#^bM9ad+|V`y0M^yuTA z&GDWHaM>5pGaM6VdZVWlTx(E%1h%)OP=P8n$B>GR+SqJ=#7K{Z;vFo{OU~qYLIG2J zd3+=xW1WuGNM|mbej6wl8n9w^GMzy*Ip{mjdk(;G#~TSKFJ@WD;uUn~VQ$FLvvy9@ zc2zws0|WF2PaSSU<#Vye_-V0AsCvK(T(`|=Q!5cjSdELum{zjsLjRBz?f>;0P>F1&XHr2nnB@?oddUz>+0I8=nSTZmb*&;UDP+2dBK9(gD z^&6{f=vN(v8e)XyUof;mu~Geuts-Uw@&(8E9@c6s`)G}pp=yMW)aEJ2z=eXwxQScx zztU{C+rf0uZ?Edz&5^}yQ(H{&|Cayw(}wc%`NqD~2wcH2Kl}SVO7T%d?~!U<*YlRI z9_3Si(E$uEVbp|e}`7B7Wy*k0ssI= p3IG5m00000000000001h0RR910CaMBV_|fYO#?6nE&~7n002!0dTsy! delta 764 zcmV@KL7#%4gj}va8&wPM4iZ#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei&3 z8&{n^*y2!kFR##l34X=JHJ%xb+wqiV_P)DR7!$4<1%Ulgc%Bt2)b+UM30 zaS=md1KzL@HXMhAK0?hOiaJu7mkvBu^}!dvPQGcUt|Fp;A218QTTJi^vC)JWDBqx^ z#)7548wU6X{ADnl&A^XN0i?_Be<$mK1wfIR^3DaA$fCY~p!p@@0mL_1=lcy>$F!fx z2&}s0S&@pHMd)7JuV`H*w!MPocKT|Hi!zPM>n~N18t9{gw1amm&rGq*p+63)bNPVH zCj@^9U2mg*Ta~Ak*4o^o5v^UXei@Sp#~k^`5q|uiqLO?Y&@^W5uS}Cw9xnJf>Tg(Rt`KbJj1Z8Fxu;{Z@Q0Nljs>Sj1`pu3idZCwN`PyR;2$&UsQ}($;uU2t?l$gegaAvTv-nW9rdYpO%yofrc zh?D|4cJ7I`N3qK3ig~_O@wcFzqmzc!4f96?q#!lq|D0Rle*KL7#%4gj}va8&wPM4iUV diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.17-legacy.zip index 688f47c1fc49e0bf3415522e3603bf2cab147f40..61f612c0f25f9bcd815c075984043081c72db39b 100644 GIT binary patch delta 818 zcmV-21I_%42cQQVP)h>@KL7#%4gf%ZhgR3nA|vtw003_a001VFOam#AL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErU`0@~ zZQh`oBx0f9{MPF{7Gc9w0ONm|I!X?+4x7O+Zqo*ko~p3e;n#VwZfL|Xj0nf$ZX_w5 z(evY?Yl({*INKYBTXB{arRghz+A38EWh%mz?~(;~jQvC9PUdOYB1a_^WLQ_t4d|{L zI#8OrAyvFRUcP$%n&x%=OvSue&TuQNNe1S;Xs&d-y;pA zg|MbRw}?@o9wn&r@Rn&TDwd6M0!;V6425lpE?uYtG5?|_^y^=}b0}V#dhhZPW$#SH`876p7CWxSPIOyNg z!k8B(P0w79ssD5&n>uuG+ImSUq^TsQ*{Vxq=YA8n?|_Xavf_X6$>S%7eF>c2^c**> z96J}#m&)q@Zg>bJTb8|)Vl;F5!mj=XUN5*Nktd#D68a)^kKgp@*~PtgD~hD*Ts%UE z$2{-dCJ~L1W!r99%^Y@KL7#%4gj}va8w>yTh!eG001}%001VFVFM|VL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc!>I*-51yFOdYLB*k07|tp*KFR}wg$by? z;%7k^tXc3C;`r7cp_CGC)Y^agic**Ha=@vs(m3V~=Vnod|M#T=A#8R`ENxW4oX`s;A*;NDt`gal4cJ1Nk{1o z(^dDEz^kAIWV@JrvDAOvGK2~z5AlN0y={X0sI>;9Q*c&kuOC_;+@n+w&HM5GpJfg* z0;%->Ce6~m&6QvpQVS% zGOYkcwq=^16w9+#)Z?EqKwJC=Va>5;3Z!BaS}3`uZD;kB;%|RP!3ZsRs+O1~18Qj{ zvn`5Ka2LE)mC;=6C4xH}w*r0n09K%Lfy)a5VC%EBv}^yJ5a?1kz$+IL-{}@Y*fhk; z)Op=T2mzFXfSG_S_J4f~%+_)D)yoZ9Z>T7)+MzS07wB}3m@`9d{QsS!o3{BJwc$xh z$O5z8&hD>$8QEC+YlI}jn)kDMuPZ9_Spd4UfgFWVF;dp?;#D|Mi7sUQ@KL7#%4ge>AhgK}Gzmwhq001Kj001VFJOe3_L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErYlHOJ zTR$4?w|w9BJ`2uymBym_q!WJ+bAJ*+805i`P~l~_j;HsuQ7XqBkWRbVw*SL`33aDI zTolP;7&dF1L)(>(bMJLQ$rlZRAy#~>Mgud~{LZ{;Mer7wp)#0VQYwQ0=(8UbNWl3i zW_ggAThIDW@~vo7_*fR!KJ##KUvurA78jL)J(UYSCnno$kyTxCIh238fYlepQf>Js z9l0v*dpjjcTg5#>Ug9P)SkQG*~;W zLl=9tBsx%crQG-mq;(6-oy6#J1-)%cCV z-@H`(JWo0MPF}zyck9zT?7SmligtcB*n9FDBk#A=rh1tbDB^$W27jxUK8lA)pF`kwIzumQLFiYX9Cs?BGyK0Rle*KL7#%4ge>AhgK}Gzmwhq001KjlPd#C K1|kCh0000Js(p0; delta 763 zcmV@KL7#%4gj@ta8zgA2wcqq008U=001VFO#>;BL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc!`6E^qAMzhu;C&iYEkuIc7h&#pOB+^#6 z0Ma06(nu=sZ0B$d&V;BviRgckfsV)2X1>YbvR3v(*hJ1{QP>H$_{`C<&+Tvz`U(v; zAlvTZR~f&;v#DX~Rg-u;5O@KY!1 z4cySDPB!G=&w)sa*a}3*I!vi>4rYcZ)OEr@^}F}F2TfgntXHf)RA=1?T+IRi0PF~pJOfGw5d#1K008ECZruO? diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.2-legacy.zip index edb32dfb56ba401834e3131ed06645f79ad40e2f..e6128824a5d46a7f85dcb8dc338c14106938e263 100644 GIT binary patch delta 811 zcmV+`1JwM22b2dGP)h>@KL7#%4ge>AhgM_m?v&;N002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL~Dce*;_vv?6-X1 z_C5>Fd6mYZ`lJ(o4|9JKK^Wx0kx_q%ugmAeV@W9$&#r0Ah9T7>s$p%-Te)!RYOIdr z!Tm;9+{!P)O>ZqL`hyK4)<0)8{i!o7$Z`Z(wI$V*yqrV@A;dIh7(0MzR1v^oP(XC< z>VZn(*Kw~^uG;JgSKs2IBI97#Q6|4go~!Cq*f_vf-Lh?q?40jR6-Wdx&C>|xP2 zwIIqWtz`9o0%bttH^{Td2?BPHHbHtpr^N21WPD(P#bLi9bz4qu9;5y;c?8cYLcv0X z$)Asn-|)p_o|(Tv%muPPs~UsX-eZfrH5KdV;Tl;?7oOC6XcIw*9A@BQWE;v}pOl0> zyKztBK}}_$CV>ENX)7ao{v(+zlD2;>iHRON+=}jhwq8*`q1WaJz?dFn7t#sN#Hesm zE6~vRt6t9l3;d@Q<;-^FG%Ecm(N~qC8Tv_fqe~fmj9rVBlyb*p$Dm|OI}W3qH+~7= z!(8Xl_Ojq(avC8x_X6$uEThj#sQX7}Uy_!Yo`K@hG7We3oiE=yh6cN+Z(mK_tvNDs zVO-3AD%zCEvD!f}TnjIcgP6koJLLlX4TCppnl=RO`&~}DdfS4q)YOySQHVRIYK7dX zCT3`?8WArHXbC~nm676*w?qG@KL7#%4gj@ta8z^Qe3;Y%000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiq*ft_%tU0s*wdI>FK0m0Hz+n(Rec3S4H_u#xi~?!shWtu zXjPgFa0YYg=bFT-J=WvdrG)Vv8NaKJ>MJUgR`ugl=HQFXY#QYzS@batR9lv4s-kKtr9@?B9Za7$Vckjb#?_xJs^Jsx2x| zQJRd}Sq)ou0A*?CocWMg#nz$o9{V;NRQJgwf5_8eprh|C5bo!UziYsWs(}L=jew!U zz*G(GX^Kkre)n*>MZpR4#k(i6gy+-H-+1$B+DlNxm%1S3vUH{-Bu;ML1|FTLK&Xc% zi-72(Gros^h3{wCQ#jW1=IOMQFSW?%WKh!4aj+Y`bm5EDv%Y7T#RiC5W3>{p($4)( zk;W`n;R-@Rqw53TCj_;6K8Q9<4jG zmp*B8nV>l(+)MUu^+tocHdvN*XPd;<8h5{#x=$YyLd6}-s^YazJ{nrjjmi#$aM+XJ zM9x5XjS@spG>cM$3|dXV9BlHKy-rw6Zz)9bta0<4k8J`{(<1v?c|>yAJn%p`_6*Ci3KQA& t|Lwk23s6e|0zU&k00ICG0JU>)RCD2cnA8FQ022w5L<33&7y|$R008}Od5!=8 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.3-compact.zip index 99b3caddb678b4ce3ea9013af33c43810f0f071c..9970a0c0c56f5d627f44a6e63822ad17e6286b96 100644 GIT binary patch delta 775 zcmV+i1Ni*;295_9P)h>@KL7#%4ge^BhgPB<-XP!t001Kjkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDL~{#8%v(Pi?6-X1 z_C5>Fd6mYZ`lJ(o4|9JKK^Wx0kx=1fw~nXxv{5R@9gt4D*|z_~fC+V{L0lBcV;DAT zoI~4{j&tvILCF^lf+1FXtVRPf*Zj`BYDMrCn4vP5T~aE80O+$H6iC4NDQ0<)nOo2L zPx7s3Q}|dG);{xaabI)oo)#CCfjyNAJ|`yIY>`!6aygWLx`5Re#ZqngCmp#e?s?R7 z0J8Z_LgMDP2JRz97Bal3ADq0?JQUkW9J*D3FyR#xO=jcO)pLFK!HacW*QzYwxHt`2 zNqks6ki*e_Mb?K>KOGN!h(-YTBT`6cl#9lov6%GIT5JH-ha@h2ghd4sbOd{Kr#t6- zy&N_c9>w2(hEKsoTz~Cp**Gi!Uc`|BtT%ZD!ZetaLCHT}%$MKJmMyJ%cDIoBL$&Vs zs1KSHYq3HfQT$^yPpHm9pS<@@>+0RU(o>v$J$sU2C3tog-B40^*5YGz2R1g1wr;KT zUek6bvd*8}k-I$DF;@M|M}?6=pg+!i&$u z`KlvITj3hX(rnA%31*}?Tr<24Np`wEMJ_m1?>QJK_NBJbe&w6>e_!0>H8J}0#66md zTa86q@#%E8n71-aI6N_aQA2P_!_Z<`X?Zg^bs=?Ai>L1${F-#CG(uMG=V0c}n$kdy zTYhvX{)J>N7wFc_|Lh{~w@^y~0zU&k00ICG04RTlR-zu>Am9Q303!;MDFaFdBm)2d F007Ola+Cl7 delta 761 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 M14;%Y0{{R30Fa1tR{#J2 delta 764 zcmV@KL7#%4gj@ta8%>&-{{T)008U=001VFPXj5DL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc#1@N>0p5-{iw4ed$yYl#ju$1EDge@^@t z(+{59AE2O-=tMOYOEy*AuG)XIie=+2KW`CMj!FQPw5@*$#Rp>%Lk{>Nh7HXW{frXM z^!l58>4A#N0bd*gLoRD+u)?$fny-NMaI_EN9rN!%SA-<8`sc_ClpT;ovugkI`hVNc zihf0SI(eAYv8)6zaVNX*nMEC99D(z}71XmLg(Xbh?J5K3hkws6(Pn?N;n!MLt%Rye zF5#JJe{Y`OO`EE9r<&ZNla3Jyg$<;x_5I@Z&%+-bY5D1y_#{}M6lS9-L4 z`RKBKrug=-U{EXwaF3WOl!ogoL=)Nlc2$d2c$fMI$rZ=Bq(Vjcu4)MNgorC#jk7ci zv}sIlPWIi9>PJUH07!o%MMl=%$x#op`r>jDl7SnLkEAaETdq*72 zlCy-jSzZY#%GGNLwyZ*g53iFG+*}oGAlIz#Pk{V;GCX>&H+f)X@CW>IUQfSZ5Rzba zn;d22E9ZQm+$1*>cw%lD{{14y}&Rr=o7=cK+1&P-q-|@9ttz&I4ep@0Rle*KL7#%4gj@ta8%>&-{{T)008U=lRg7V1`-1R00001<7s~Y diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.4-legacy.zip index 0d5652cc974f3201626d1ee16bcfc55dbef4d714..95af39dc51dc5572863a051b0d85c4f06e894322 100644 GIT binary patch delta 811 zcmV+`1JwM32bBjHP)h>@KL7#%4ge~DhgLoM^zG*Y002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luGQ~3^n`G-@|imos7 z282-A{y2I1Erg?gbHA?E2$6glk?dDbh#peV=wf0ijStOCXb0Ynb7zHJ+*Q%1tcBB5 zsvShP@zXrkaI`mIkPweL52ACqt1C>j37>Yc}bj4u?oYn>le1qum@zNIf*Rd^^W3a0s=lGV^z)gI!{#cYaY-G&iOKXKV$ zT_5-%aR54oE7Lw-0HyvL0whs3ti9=+6QYdsI8-R%r8^M?c2tW{wN=PxHtiCH7vq5eTfmoRG0PvTc2TK^_r!ws6FY3OJZ*QHL0w4PGKa zC`^-y0Cu1?z6T=A!hY+n3av;WI)w{^CVj3GP1JRn^(iraNS`jj#l0i!v}QFvVrTC} zW;^zE^1WE|satd^fIl!5Z!eJijE}TiGeRhAmi@C`o>{>Lcw)cqW;z(GtY>D0sXpSK z>$DVqZSqPr$MkRWkCFv(!mi^8BiNG*tCAJGRrSPQo4PTH;Km`v&Z#0LRr1?N=JKjx zzc!vt>?MNSJBGI)NMuEI)=p#p#Sd5LP)h*@KL7#%4gj@ta8y;NhXvIF000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiTW#`zLF`PyAFlTr!rHHZk&TVEj+tIK%p z-MazR#I+h~I_!iL1}QRh5G-ZAHN^IcA1GTIxZ()+eBd4U@|r(5*T3odV5}RAcV&z@ zE(s;$z^2E4(pTd6slVE1+b560V0Ev9p_sBLeuD^?PGwQ%kPn4mGU1|o(?4DdfpPhw z3lzk-a0uxZ@`i-iCmSxzZB(-y>(3hEI;bRyzu2lD!pF-F%qYW7_Q1~)f?;QYP@{2v z1x9SeNY|?_lfo+X655-g9RU;HwP58kbQ6ILQ7=w^3MzJ61=+3vdKgW)TX0RM>>q&q zjVZ-1XbDCA~!57Q+wWrynPu8zXJ_cNF@817+=O-5~`CyZ@ zI-@CW_<~nOWBeGZ?^^=kE_964j4=&-AioX<@ooqBVZq;iW|AywF{+kgN|<)7ID^8?hXPS1)=Y uZ~woKhQClt0Rle*KL7#%4gj@ta8y;NhXvIF000vSlSKnc1{nhY0001FDQMmR diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.5-compact.zip index 09a9c249835095ae77dc4b7b0aaab0b0d5bfd12d..79bded00ae5b7f5b26a1e47451fe9e13c8466c28 100644 GIT binary patch delta 775 zcmV+i1Ni*<295_9P)h>@KL7#%4gf5FhgQWVuYuqK001Kjkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luGN4G9{(JeiNvoRv2 zm^VIo+qWY7J!1WTK0{)j4{901x}*j{X)1-~n@ZdzS(gptgg<+;vFT#8Hc?rZ?=bIR zGKJBpx55yEt&z)KLiGS6DBcqYTclALw*9mqChdo?P?I8+F?Fj^#@v9iH7}U7SD2to zUNK(A{-vW;X(|^C&)p(noR~DLJJ{RWccg2kL|Bu$F5iKFr1dQ5kCUOpcCNIth^fb1 zMdTH^sa$NoE1nlCUkDx4-USD&B$ZiYwCTr0D!@6E+3;f6Q`-oN@v`ks(qX<=&T8eWQTG%g)sb^;``j7r6CsBFuBtoq(m~LYsx3 zrf9_kzSV_)#J}w}nfSEFG)K7;IeN;+4^m3+@u26p5Ac?!5K5mZ2Q0vG59{ z>*CZA7I-=4@rGXAf{tBt92u(w@C@`bikQYt^gHw%L~RXfg}zRp39v`3Tz13Sq1wf% zjyX9{_{d}3#YaRM1#BR1WrxYsI4vA|ql4hb;{LLK>mSX8{W3BwZQI$ zUjq>zYdZ-f#3oF03!;MDg#OeBm)2d F002#`aL51v delta 762 zcmV@KL7#%4gj@ta8y?gOjyhU008U=001VFPXj5DL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3CndTI*|0}7U9cn7Y_zn;tG0e6w3UhV>pN< zrUqF3lG4i1heNEo9cx=uO-CRH=qehBs z9ePav{d4Ulp1H36<>11|zPj-!Jp6b9_H~KSxXicwG?LsQ*{B`Y*Al+DBIxC|5!dmpI3Kw4GT>O=x+wKz^(nq z2!c1QD|(1@!F(*+Elzi2*0dWjRBys0^BtsK13nB@Y&XY?$mP$kha3t0azhakwv*)V zMWyMvBc88W7jvIFCWe2TvP_LS!5^H%IQfS$EDM+RgdUV4`8w%JfpUBn#yC`h>(URe zS3;9kVH1_-5+Lbr zBS`WWLbn1a><@(SxwRFHnS4@cT6oD@xaj7BUPY@HR@W!dEz-&V-L_b^>t^Zw3;0yr zKS8PtgUfp`sMJTCLXNK-b)dS7hNS4gZ*o*Gv&||*5P$}}UBg8Mn~TX$Bno|!-KfUp s{%T@lP)h*@KL7#%4gf5FhgLmD+*s%W002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luGN4G9{(JeiNvoRv2 zm^VIo+qWY7J!1WTK0{)j4{901y0KYj#{+pYhInwuh7D_a=Qqb?8UHcSV5xZ*cMk%^_z7_ItQ%JR;{p$Lnx)Xj12}SAbhtLQ%@P&bYl6`v>b1Oy)ZXXGF5vQXH zMaqIn%P!5MiCis)7sfj?4V>eZJEwakXeS-4=be_=;VN1qd(g-#2=prxA0tn+$l0`M z#|G<={7iGH4J&7ZRh;;cF@Mab%`Nea5nM1XRI>Nqvh%RgKHDT!5(VpX7}z_CXX$|l zK={sX#L)GBp+QN}4~UVWka0bSu^fF~I9i{Z@7HDNoA~9;Z*;7UW9&cbbg`fPwJFhz zH2yJY9FdaJ&e8Ot?eL$+f|*HgHQA@E@q6V{bjrpL0MN&Lpn-l6k8ZHY=B@aX0z9xU z3Kynl1N6rzA*b8mQL-7g(T(B91t_=q^EDq!=%@aFz1|!&&FnU*68Z0M4I+GcID^XX z49pvAq^GGBZ1F=QH^848ThfYt5uP5zF86xDcDt78+&2S3^4r9KI&-bQeEnr=(YOJ( zNq3CYq_`(@CbByO?@D^sR(+Ru3~P=i86REh}nD$-WujLa?`Thdz=c zf@KL7#%4gj@ta8#~QX1UY?000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiXh6M?ePB7W!i z4S#8mXhQmlTt?P^>c1HMbf-PfxU`@T_;rOG8p`A+f$I%dR&H_!- zs8pu7?P=7HBPWuuGxpnrcjI#Hknmf(i6R`b5$j6}i@1wh)ldljPeXy!xo>m??+(E2D5OMb9#acL@{Bh|Ac3E@jj; zS>3`?fE!Z21LxKPa>Gk7V(#Z+%)RIX8Gxzqvx022w5MgvL)7y|$R007Z!X!8I7 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-compact.zip index d63a357bc95010e74b45345ee0d8b3675b9ecad5..435879d6f45d0af65be9dc82db6b601cf4ab4ef3 100644 GIT binary patch delta 780 zcmV+n1M~d*28;(AP)h>@KL7#%4gf8GhgQf4GH>1j001Kj001VFJOe3_L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErj7sut zqf|Mqq}tq@*d3_-fxcig7ixbPK$ExxEP|#QX$&eieW~_ROI+!y=drU2DC_Rst*DDx z>GAunW$5MwZ6L9OL9SkCqUVcOzu|fQR9bJ&gVDz@xs}VRLu<`c_v(d9sgG5OK7!vP zq*A@F-_mxDp0FQeSAK1drW(m{Ve{XrbzNJ^0M z$8eqmaY32-WB=Z#E)g;Td_CUus$#T5Sa0XGf zd{Vfr#lanI$*tRy677FsZFYmrh3%a=01BY(wi_DB(`Kd`%-6XtxdtV6f&r(|&p53b zkp4YTsN@>Qc_FHs5h%A9(OXwvUF})$xa0GQy>_Wk#Z zXArcLfq4WJ;tBahUu45(ohby6oD|doBz)rCMgOd+39yrli^8D+ zCu=!>=lMt1oYuv`D}5)6BdTZs_t>iz7~)qx#lGMB-v z3M^?PYeF{ugOR*s=YoF@e%JkwSrJf60Rle*KL7#%4gf8GhgQf4GH>1j001KjlPd#C K1|kCh0002G{B}+N delta 763 zcmV@KL7#%4gj@ta8!m-*Hp~{008U=001VFO#>;BL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc#9H#OobGAO&Y40MRvzH z(mPSkNS>t-MXsn~5;g6>)|r2+_B2MYP@d~D{&0I|9Emmk3D>%K@cm-rZQNpqVsg3V z_}A6=0q?zf#RIBWeTPhov0abmn@7FU+p=u&q|s*nr!V;53RM9`zb|sf93f_USt;s9 z=PhG&xw0a^m9KC~`1M%%-22M`yT#4(V{9YTQDAZ_&2ML7X%k0MY|4Lq9X|YyMos8j zlrP<=ox?FIXN~nvpvbi*zaVp3askMO)g?Mu^&?;uNY%D@OY_k)dOn;pe97*Bu ztYhRCBnYJgEg)AMLIyR9m18+pIQ+8P?vDTyk&HT<1ZZ$D^SqmZ<0g+zG%>k;jyIo8 z3Ki@*Zhv`>{_FjF#P06b!2WvE)}D+CZeFf5N_0A-om0rvNArIb6&=c&PivFMlR0pc zQlJdxRa@BKgh`Y|w33oeISu({T1g>(y~sZzP5v1v6ownHHor5lkvla0MFBh}xKL|w z4Zp0r7iz)zY76G(42B>`kEk?w;PoWV^f5%z*gBo_^>9w)REAO4RLuea0PF~pJOfGw5d#1K002FtawGr% diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.6-legacy.zip index 6b7e407734ca6ee143ad15172f5c6cf0ee96e3d4..a18bf4806a3c66f612b845a0ffac83dd1c976f6f 100644 GIT binary patch delta 811 zcmV+`1JwM22b2dGP)h>@KL7#%4gf8GhgQQM;LYX&002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDM2t%EZKG5``Z?*x%?H`v*#Om z-v76UThYi*cl?RrVNbv{?Mxa`;6bHMfAMjGkI(|{Gz0B_+WZtk0bnbW0YRIoeLu83 z%bCR>p z8>K-D%}w?!jw1d9i|%+|y~)YFncLy+LgNNY!5`OYiM{*htpEPiop+xg=WnT$6wooE z>E(dF+JEYQz>yZy$illywNMdm*gg-&B9&#cYbZh%%O zryGMqek=bpb>^RoCjc{*8V)ISV`%n`%OOBKGP>gCbaV2{?+wXXL$IH*jJG`kN=9rpm0(b|N4n&0l4Ta`Wtc9^wvz zZ@(la(N(qPVm~S!Z*1XzutQD#GLkS*O928u13v%)01f~xe}`7XAK=aA0ssI?3IG5m p00000000000001h0RR910CaMBV_|e-Xe}_4Py;LmDgyuj008WKfUy7o delta 763 zcmV@KL7#%4gj@ta8#}|YoXKv000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiHS+HLINy~Ex$ z!ORUX*5o@s*YIn9qff-u6DP(+3}|Op+B3*<)lv^8=il6SOSB;;B5mtrAutD`q^1ec z6*>y5VKz&`s&bMFPK8CHBy{p};x*5ui6RI>;GcB73z`N&{h1x`h) zUc`i9?XdO`jB>lwe@_XZQ&5P6!-N-~a-q*GQ4gVNW&;_Fg?-4Q@m}6~k!_V^Q=WKg z%nyD74`UztFe_V1AW~w}$tA-g^W9F3zoe&02Cij3 z-cmmIe&Lkd5l?XZcfS5l(3>5&qw;LizK8(;HMK%u^cTG2~lm=NkZ|w5~wg3JDo_?8s%+(_n!=C<|3}P`E<^$hohy>Ty z`i@GN1gbxj?SJE%P9&^KR{4=}ld}#Xan}WcF4a`f_}cK4b5;S{y-++B#{2ESd<^dd zC$zq4JThY|j-+n8zs%d=NO;=+@S|7c4XI>Iak#v9MLQT=GI-&ohGYX0#IshccbK3F z_>Xf>Z%qWkp>0h_PA~Mxppnes$DOa|dd-?5MX%amAUX2SU{(wMDn0D`iMDh0qEUz{ t|EnT&icm`d0zU&k00ICG0JU>)RIW5@q0|BZ022w5L<33&7y|$R004b4Y|;P# diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-compact.zip index f6a35103afcb27026b93812f3843ac36b43e7802..9e1426299f48cbe0ce7bd5570f68780ec0687d5a 100644 GIT binary patch delta 775 zcmV+i1Ni*+295_9P)h>@KL7#%4gfEIhgJ)twfW!z001Kjkr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDM3fGCZKG5szYndRQKwIOR0}li9UkgBcxfN8nk~f z;&=w%cV)*1nBbgUPDfg~MIrEeY?p&Uqc5Y}uRcf{DbhiIKm9=*;Ydo5^2czV1aU!` z{Fx{^1C({5xlb&vX7XU08_0Mx*e+n#h6*}2KlLT(CXzq%2ncYy^@1hCLh&zYKk{0a zCg+V`;}xE_LlyzIoA$Pz+-itHyK8#E&e$vfL8ufsMgrxGTF*=v5po7l9FAO4s>*fc zp$Cj@&EG|T&Nb5+-#N>q1?73e?>k?NA9g)1N;${hmye4tMvK7N(?A)!)O%4*cPX~N zur>PO&!v889~QQ*n3At?!e|3DO4;yt+Sji9%rbVu;>#EsV^ZIZCLT7c%c#W7L-Y45 zNstqRq~H2T1I5?darH}0uC11#jI0?{toA1b1y^@}5C2w|&~9sijoXFF(GF7@m2@Ot z`rbK<5S0YmWHV)rv;l(F7xbC!Z&05Ob+kgDWe@XZ@(=J@1) z7lr9{SldO1unBN^5u@(P4k<}RZ#v@jxsE1+EV;L-ex#HlZTqRFiw=1LA)JKWqLT|! zu03B{K3gYk#l|nM&zn3(X82xKP~uL)_vS@TwUZNVQHF8ju!Ld_CeAz9etsHfY%kdC z@KL7#%4gj@ta8xKZQiRC@008U=001VFPXj5DL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc#CkcHwaGAO&Y40MRvzH z(mPSkNS>t-MXsn~5;g6>)|r2+_B2MYP@d~D{&0I|9Emmk3D>%K@cm-rZQNpqVsg3V z_}A6=0q?zf#RIBWeTPhov0abmn@7FU+p=u&q|s*nr!V;53RM9`zb|sf93f_USt;s9 z=PhG&xw0a^m9KC~`1M%%-22M`yT#4(V{9YTQDAZ_&2ML7X%k0MY|4Lq9X|YyMos8j zlrP<=ox?FIXNF%0I#UnIH9yA-NQ7tVfqRzA=>`{lR z8cX|&Hx&nrkRTFrFEBi`Fw|w9)OiM}gw`*szAd7TB>%cG%C+#`gN7DN4Grt6OrjuH zYA96@bJ@db=EsC?Fuc_Merf*4De#E}cv`MK`x9T|ZxXx5tQ&uHF^n&!MUVl1#;F>? zXC6XeZ5O%wCH)-DVp*c*10GZ1$Ccu;yf!>Ikyx$Q=#ITga%8Q5G}HQ_iArn}_A4cM z8?x=9E!5Hn+2x#?gN`nG`9CD)JM~ug%ii|4POHxCbE+qDCzj5wX~;hRebrXiO2M;V z;6lLw2yvzYjZj2z7kJ61+hi>M4o3k}GO@$}TjD<#alpa-5eA@@wqcvokH>Lq{`oxU pe^5&S0zU&k00ICG0JU>)R46u5gvkN`0PF~pJ_AYy4FdoG005GTYlZ*- diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.7-legacy.zip index 0c57a77cdf3b0538e6a245b2346bbb66339e81e3..313f42d9be843cd773dd5404c1ca5315a82f4480 100644 GIT binary patch delta 790 zcmV+x1L^$!29^gKP)h>@KL7#%4gfEIhgMN$2Xg2F002q~001VFKLaU|L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErln#1r zqf|Mqq}tq@*d3_-fxcig7ixbPK$ExxEP|#QX|GM$-Ootkr{p_H08aGXrYPqG*&Kbl zSDA@Dn}i`t@cqRiA=q4mts_*_fF5dLWpHmzpgwfvWt^1Zr9CjvNGMqE;1MPp>{1id~U@MaW zL7S<4KeRl{nbbohW{2!~a64bL`oK5F+epu&)dfVx2X+nSxUG?TLuKv%<)YE?48L`% zCEfi{ir3W}r9lhLP4+B~BK`!6?s#9l$;rK$+u`m)j(8NMAkbmjZ*1HpD`V8)hNNYO zJ8HGTK%hFe&(w{|Xj&a6-|aKEi;$$Dexh76$xZR; zS6}73_-$$ZzEXi%H>kZW162jieMb2QpsTT2+g`#`jA2xkxems-(QZOkA;#8B%}j)+ zR4%ox55RU$0b!GFmxUsJc6n|_ulkl!kjkOicN)}*%ITf-{M&!$xXk($O4iCfS=<>X zK(l9nh|So!dA%hPyQPubz&P!|M$02qN@(v3z8RE8@m( z-6HGRY^AWsS^#6sUs1<+r#(6EkK32kJ1J-ZAvpcgE(L|#lUm*6fj7W-$n_`H16%(Kq1Dq$@KL7#%4gj@ta8yr4oPE#&000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiHS+HLINy~Ex$ z!ORUX*5o@s*YIn9qff-u6DP(+3}|Op+B3*<)lv^8=il6SOSB;;B5mtrAutD`q^1ec z6*>y5VKz&`s&bMFPK8CHBy{p};x*5ui6RI>;GcB73z`N&{h1x`h) zUc`i9?XdO`jB>lwe@_XZQ&5P6!-N-~a-q*GQ4gVNW&;_Fg?-4Q@m}6~k!_V^Q=WKg z%nyD!XT_tQM;K_8@)4v{E_GyZx=S&aq87?n zyDVlnL^F36g(YUvyT5(J4CB8l;EM;Lc3w>FHFnK}rq4yTs#IFpzUa%Ydb*gRptt7B zMyE$o&#$I5`Fn;Ehg4nVg^y*10^TH5^YefcdXMRUs0!uGmirM?aGcR$<# z^TgkbPvhWvqCWE&&rcWtjg7s0NP+UO&qX36ZGV;hEcLU}!ix$k8Id*1)#6yhW&CVE z8;_Ao?^F~dvQk3*zQa(@E#!K{=)R8K{meb52`022w5MgvL)6axSN0013KZngjb diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.8-compact.zip index 65bd0821e681d1b2573c70f93cc7b6fc970740a4..23f1086a7b0596c5affbfefbe0cd347801e8abc1 100644 GIT binary patch delta 781 zcmV+o1M>X)28{@KL7#%4gfHJhgLXq+Nj?G001Kj001VFJOe3_L?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErn_gs6 zR6`^6+0&r3>}*Q=GANMqU9f*kK@qBJs?*YF%CBl)1oill?s_KzqRJx-D$hpg81^j+ zvp%U8HYfsLvSL*#F5_f-^N($YVFa4;W~mH<8pG^hPv2QX?U+SlU$1z(ey5FLpGUY+ zwqKlm?CLXm+-|4~q;omeP*18m-Br1mGV@Tt5OpHvBkp)Of4cn|(FlKYkqCjYQ`8wT zwmGv_^~2ltZ&skT!R>%fy~#GZnb@FTe9pFY!V@tYsD5%cr{W;w1hvX^wH-TG$vW>@34;2N%vprTczs zJbn2V{9QfwXrNW$je=ExC`}jtkG2{TM$FJ$g**@^*R^6Xd*uxYVQ)o2+zl|LrQK&n zs!8kB3xuL%A@V4{i_@(+fY$G~3x@Hm&XPTBa)4%114N^yqh){FKh5BPFd>O=@liZ! zI(J|I?8g~u{*nm@BPDl-0oQ6*uikvXp^en!TDBpPOS(B@CnkRQtFI~eK`6H%ZWO|} z$INjn(Hy0e7J-!kewu6OdDw=)#78B%G)lehC#UxeZg(zi&$06rc?ws6{ekiOF_$s- zUBDyL)Su;iwxU|SdsDPTd1oC0VW0}X LN(LhX00000A>MNq delta 763 zcmV@KL7#%4gj`ua8&w`2^Gx(008U=001VFP6H{CL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc#Fwnh8wp}^-(5Co3Tj?c_D6~e#91(K`>d`=VBx2OsUhZlEf7#MI zw5@4OJL|-pCXdx(5&r08&qx>lUZGv+*&i>?aT8nAy?ScD8t%gyJ*} zXSgN_#fMkeOOQK7=`|?A!yv#aOwR#lTK(9fXT~b}ZVL46MUBtp0?Q z0*!FY;PDwh|G~t|^aH}tOnxHNGY2PYo^0#thEQ&mfBG~D06%|nFbJu=JeD%bH8p}E z;Za^GD`=}tsao;X)YqDmBv$VkDhY>iu{3yqCu@%VeCkm{04_d&pq`1M9q)_@KL7#%4gfHJhgKXNJ#FU#002q~kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDM4Mh@QdC1D_1V*) zwCrq3`!Xny^IfoiOFqa^z{KBT^{d@%v2k#)eyG!@A>41_rKYr=pmfyv?Rv#1w{D<)VgPIO zIULJ}ma8NBewb+24WX@Cb@8|12DxE>DPZO={8C79ssn<5#_kywIUG9ke~1L&0_=mg zHEZ*_#c3)cY*CS{AOgXH{JrAe7!^%XD)PWKmr}=70U)|99Ua$%^x2wf zEe^WwaDuwClOXsY$sTY#Tr}PJWC78EFw4s;gs52#jXfWla9{(xp7Un zSr8?T*5%o=%lm&#=ug?OmAb>wjo1dT!kKCC{d0SN5UClI^I0lP_jFOX12KeRq=f=L zse8GH`0sei%Jmq390ZnwD!*4Q>RfcN26TtdH3wr#<-r;M(&)K(vZ zVa^Uf+gr|O4?5BOP6V`-`m*U0g(D|5x*2})DhX|dX22Y_YELew8rCp+c7dAVSGHz7O7Pu`-dscf!cb*hP)h*@KL7#%4gj`ua8w8~398is000vSkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueixtwQmqTxVj2F0&rM5sr{Y+vS}!rr)}BW20FU+=h4_+^ov-05d-u6GNYF}H`IEv8P-ff=?VVneqtDt}esPFs3OMMM zC5t(vHcT6T9T1?krN2pg(2urjVLD>^xl(shV#M! z5{w+^bt;&WC1cIiZ1`LzoC>&RC$+tCoVo@QdKG8-3ruO1g*&{g!00g5sQcR=eK%)AHv;Wfyf3MA@sqsXl1I~6k^mkvc${vo_ zib`u?uahvPa!MS|?u7xsbcqS%X7a=GB(J6TdXFK@onsd7$d$ZMDz9)QBnud66x^M~ zy}PPVhb3CqFbA5)>b1Unh=^HWv0r0Og77TS9gt}v-Yyu^j&1{sApN|XUvL$Q4EzBc uB>#2HT>wx^0Rle*KL7#%4gj`ua8w8~398is000vSlSKnc1{nhY00028hiAtC diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.4.0.sol-0.5.9-compact.zip index 02af66182e98458f3628fb16116486e581ca6080..d4914cd637c194b09319b3894b2a5e60a5b7ef94 100644 GIT binary patch delta 785 zcmV+s1Md8Y2bc#KP)h>@KL7#%4gfNLhgOUHy&viV002h{kr+^aAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x= zGW+^zF!ROovZTGkJpu`I8cV?9_SD={3W~eZrRLSEkaCA?99luDM51&y`bfXrM>d?E z>gb?4phu#GZKb$>tD^V|(be#V|FwnsAuD6hD{Y(np2lFQU!oAap&WJg2>K*M{j(iY zeZ3nhzy#{oJ3DD?j?kpGe#IcnUi$+@VgPq&C@7iZx%oR3rl`KdKU=a z?T&f;;im7W7x5uuoBupS*Cub<1L;4amXpVc5I}&xvy23PUd{xFw)I{8HXY852Orz) zkNCn1^}##%&8KJ!Y5p_VKJwvS-|kP?L7j{I^L_R#wVdo7!D==vX?=#_p3JeNaLJzg% zU$}6Er-wYxF|Z3c%R_Qt@W7m#k3-F)2ughg37S2qLmc7JBt0K5tHf7AZDXM^4-w!F zSNp0t8E=7Ng&p_Mh#foI@+Y_|L%;+N*4kagFNsxuPQue;h2$qviyf4(zq4qkPqv~^ z4m(nM3fPa4;kIqog5?#{UL$_7hRa0JxY1}Oe_1Q>i7XqNyh5VTA0ep{tMN7%$G5it z3e|L@q%<0<`1-Y@Cm?< zv?#&%COKD>5@8kbYGCdTf)>sUCQJXO)>24NO928u13v%)01f~$e}`6!{JkIQ0ssI< P3X?bkN(L?i000002!?!o delta 769 zcmV+c1OEJ&2Z#q4P)h>@KL7#%4gj`ua8ze$FnZbo000mPkr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEuei^l2oFaz_`LlT1n72BNOyJv zDR$VdvS8#8m=FYx&yLT`Hxttip5vAXf=iDoHV&-Xa zMtKqtOd-R66T((^&75`Yi6eo2z*=K2$bEX_> z3m4Gvc>C2G#_Vu69>eRQ%(AOBOXlxln1`Ve#CqY+ZrD~J?-s)EuwOaVF~1I?4$8C+ znNdQZf_l&|kkfyL{l_4~>Zm2*>SXXscjz~>bdzd-tBo&Hw3m6n6_s}|?Crn}slj=z zQ2LWw%89+44{Xoy5Hu_&d~N7i^1NoM(XHiy)~nx@@KL7#%4gfNLhgM7c{f6=a003?Z001VFPy;EEL?nM7*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711Ly`}%1x^TqPAq`kvE0ts{)OTgmx)Z9}Fio4RK=GCi^a))djT0yErqI5R; zNWa`iHk_X7=%6~FN1}yorMQ2qqWBBZ)$oS@wi?=K(bkZ<6}+4a+^B9yHvps_6DE>~ z=~_Dq;1!8AnZW(K1Tq3X?im(296IxV zhy>sQ?1Q&8YxBCrX(}RYQIV`50>Og(z2e^(6-`kp^1y3i=dD15_C@17o|SOz0Pz&{ zdc=I5TUR#o!q}gnW_I&02*bxoVN5cWax}$G4mnuWX{)SM?9KGEgGY%#25?-Iri=a? zA77SqS4qIQlUSn0iy(hPpmu$GjV+7bhqmMuNm>;yqN`1+`obd6uuA(xd|-E)Q#Do( z5=Z?kbQ0aHa%@c1Q<@`Nk1@6a=D2pGb#rplb|-9US26@7PYK?b2-1r9_pfPPvXA;5 zsn+nVx*bN=HjCpY;?cDyoVrBdQxMKpU?BT_$vzGHqmXAH}%uoZNeFJ?49<|uKf^tiU0V%xz|uj0Rle*KL7#% e4gfNLhgM7c{f6=a003?ZlRpDW1~vl#0001`D}Cbt delta 783 zcmV+q1MvKy2ag9EP)h>@KL7#%4gj`ua8$e($Wh?}001`$001VFVFM|VL?nMFuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2qjVTRM4|afIbUkEh3Cc#I#HP03`h@);WzkO0NItxAVH5N2WZWdM zRT?&TN8;SoL&KU2v=>--gNuJiE`?eEX|UL*G(VOKa#j#pW1n>}O5pQTCZb$r@|^zPD1C zbF&^>lcN$ub_**gJb{1Z_mQ9&C{oE0cbKbaAD%Aq)^08jOIPxy$VB64%?%$QDqflm zI#_@nFC*lm+LXK$_N3bT@b!9`Iepu8R71eiO5XE;nd*fpV7)CtqcSIywBbNE$3U5{ zzA^kcRqcMx;Deht0jL{K6tT*tBOjCpd1F&wi(L;xWzi; znFON;Go}ia>S6LYVjpbCE=PFhR#Ct33`sdZjGaU$W`=wx9UaIEak7|9>vy)qJQ)m% zzyo3EE$01`KuZw(EJwU9?4k>?q)$$ye7j0o*{tw65Ib_A4poO4X0YSge7D0B;|y4sM3&L(&H|MY0p!ca>A0zU&k00ICG0Jd{*RJ<3+QQ-mr05=Jf NPy@KL7#%4gf)ahgKypH)&ZG007wo0g)L`e;?O#y%sU`Lq3k% z8(|US<+$<-R-TXbNE-97FH-K9mq@1&+0=A#oo)!e&BSqqY@)H2tpV5?K7wRBZt4}$ zBQpE?X)yD}^0K7dqbULjbQ(**;`Y?sQwoZ^(xv9rtB`VsY#hTRyaW)tMJQVm*M|yG zNW?q7ei!yumuR3Se@GJw;-DjjAF#`p*2)UgqMof5RTq!}Gf5PU8_ue-kj>t@leWh9 z5ayz6WJZo#3mn+JU+V*v!?t4$meAu3f}`kq-BE>WC{i*ZI_8XcFHIwtLqZpiCzeom zh*5eS_QS5$x{i<|9$;)2#9K~=`Zz)nM&;9-FzOgKF-M6kf17WN)XXBV%KGJCVz88U zeWvgw-<&eed?A$}3>_4!5M?V810U@Si(rUaPG+9-yP9camxV;mbBlMaiWXX{5l87U z<%1th3qm-LKtn1Tnr8{dM}5ZU&$Uk&Y!UDwd4itTPOPq|eR(zwto|FTovxpA_(H{` zZ5`{N2hBYWe@Mv5xBpZLMasy&*Q=6im-&TbalG6{*_JFe6yP)fQ*+DD?~9p2d@Kp- z3Tr^Hy(gq&;GkumHzFO%Lk3jXBA1drF5=wPL;UI?;615-b8JA~f!p97W1zR`1 zQgH|gUGMR%wN0^5j3;96AVPSD_ly-z;+`NXs~MJLwX3@De)wYg>!tI} zo^Gl>f3ReZd%H)+=;fJ=UcI5ej+Dx9f^j`MFgcc&e53ujy{%?>sNR=x9FI1Q=-S(- zgLuq^Y}#PMJ|ca({n*ApCS3ItP$y15W}f0c`5*Kbs0aRu1x_$MS36EUwbk1L~( z*Df9S%o{+VkzBP8C9d|2Vv5tzQQ7MPSBI2={$ z^dpi7l@&6-`##!H4*LV8NzNTJG=+N26;yyFh-4fU6yK%R6DBU5<)3!MDIa7A7(S-t ze;jZYeO*MwA`B-czjZre@-QVi!0KBzWIp;L<}07v@H{$o6I%VNrui5ac&xZ5sQF|M zsS?AwT#k=6N=A?ABxjvL2R+7$i?1oj9Uh6CM{lLE1O!zZK(QTK0N=KcUljz;0b9g* z6{25jRi^}-C7hUpqHB1gF59qb!U6GVH>tXA)}e}-<_ zPX7c)_eD0U#Uc@d?l1&F4`kc9;-nAG0P+!F@X&URcDi+)Aq>53HN)HH+c+8?JU^b< zx3gfu8x+%B8wAiL{$WrWNH(LXqB_*AFU(t-a~0y58LvDX#Ix2dTr^MvlFz6;n3M!3gbl?0d0+*!e}WB7il!Y$fyH59x9sRked>zPeozPt}~0J94}6Syzg zFmoy4!HEx`-VS;PHXjDh+Gw^JBxnsI40Ts*ssHHd!q#lUYkD$fl8+gOUW?o;4%`YZ zE%c#@A>Z`f(r$P5l~qc@e{JG9q279NUJ2QM0Pe&Z)I!+<~HtI~JkUzoi*~K51&ez}05Lsm`{{fUEA%MuQ6L;vi z_M+qI_N`_GxE8gS2Xx&!pk&5EJ2zMOZ&6bB+5xw(PQBp6`H|?Jeqe^f`GZ40M94TIhjSFW=VzE5SKHZiT?gQr7Im|G`;d zGC~Nz-PExjLI?e^#kG3*?3gPf@%VQe>Kmx{xDAv8kqiWM3#-} zn>@FTTr9%He-S%Kj2t72zyR26d+Y6@nrU zl2Soao2d(OiUWVeu3uB16%=@VCR`Fjwu-~t-Ap14*#8Q_GBs71;94;$41~e41AaA} zB&L?#UWj9Bf8X=oc#HHuxR=iFQ(N)?C?b$8bXd@2q}(E_t-d7PdqDUqwyLOoU00hs zZBE5;mR%7RThv~rZ!_Br=j6(n!t}M<5}=engg^AXxJFl)acaf6T9}!fYEg+j+6}=6 z3(gSOa@}c_Y@1c!J_))By`n@;#~W7+`hKf?FinI!e@IT1GqzZ&_ffHJ$%`c*`mAP} zpPG|w3_|;eQqDTxej`X;dM*Ambr)yBtPK<8<@4pgm0-mX;^y_Ngyd^Z`sc^eKgGMx z1K8xk@Q}_)sG-^cik5tYT!z)7I&)vjLGst-x3DbmE*BQI#CVf!doEHwMYO@LWo%#{S;#ph)bqb zJKIO5>gn!t7@}Hf5jsgxNY1)2^+F1Vd4Kb<^q8^fY(bbFkgO^V(yI^jWr!Ot2G!P_ z6*gAk0Mcv7F^qz5hHz<(zNk^6G~R{_e^P(!4G8%}hyq3cviR7n?6wiFAr81FOY**; zSK~IkKoCB44^>eKG}n8qF6~ABQBo0oe<4NJW1S0!f!QJ^%-QBn3$1NMd>k_ z!CSTK2O(5ieh*>p{;T}JdpofA9Wio%VF<|Uf-rT~_zH+mpeW?#mH-IugQuo@f9$Q2 zP;DbQ;}ZrA9~{+AHD#{u(szRuMJFdc*A`NhelcNzl`$txMJr&1&;kLgieDfiSw`5h z22*c&sS?q@pGWTG5X_H2M2Alxmmdl*lGC9U%*Ks5FMrEiZH@6|A<*Tyb?iRTqatc( zq2jyg)1b|Em@7C95P?0{91JA`f2qt4nrh-6y8z9h6`htM3blbUGQ!2zv4Wnwq#gLL zo_fY1G5`d2n_TrWso$GZ-vaQ&HUs3Oc^D@@ruB(k3g(MppLaCvt?pvZGEK1al~ zJy4%onh*^lbG!#!|3sWM-9)qpgJ0&dGe%kg-HkPp1RdDg0AtXvK_&~M+E_4d3d~WI zq$gdyb!NxdLF|0K>(E)c(n$8R3&rTn)lL;>oTgzp0;cUdn`MnK^y`3?x7m>+jfK1Op#VL&+}iGkdOE_^~+aV&ngQIoMB z0J#p3xM3&^Ci>Q;e;>rdP#0RcGJwzv(+mH4%;HQ-c0P^Fe8<4}tl?r&q9Fmr3{QYz z2!%P6hkKMbeTIR9ZUK!=5*I*aAju;dG<9tkbd`fUO9f^hW^hzSiYX7n+x&>@pQ5V* zo2*Tl;pc5UB$tyV9<(8C{~&P##avv1HbJ=<)FMM~i{}Njf03pR8|CSTsprSAB&0ZZ zeb8min!-DH>**lHj}N1oUL8N)xcfC%>Z`*pt>~6kGmd)!dP&t9%~e#ta)6*uvO_Csz>gDb(h zw6ot(CvE3ff4*fc7KDZY0=kx-5MK&{+Ig#H^T@p(MA(-Iu_+4|Og&UbuyBZ@J<;$N zX>s7j6-|jplB?I!S45d*R<*lT?k`HAN*dB4+VIIl(_^t_*q6mo-z z9m$(#MNz%F+h#2Kl>{kEaR4`9hEU>Urq|6;UdStwe^OK}Z%osveIf_R0YL~>af!TF zfZY^;{287)N7h8#lPGQ|L12C&k#5ZZv%BI80##ED&b!5~H0$?`nP1XUfA4GH77Vun zm+ja}L8vI-v8j{7^X9#?Sb*J;e__rMw3Wv2_D9iW8Aq;8ll`va{~N_9YHQdeC*57I zM;VlXf1jXTv*1YPaE1^$UhzjGZViRKH|C2)+e)ERD`vDx51$=wd2-!Peu?}#$k^%Z zWoF9UR9Jp<&{_F!i8^qoK0RaH&)1KMcl1E|C5Vgv zq3qz^feFz8oitRgHypk21yG4|f`Np>oHouef1+}vpeqOrII~*Yt8en+T*L!0KHHgt zEdrw-Zrh>Pa_1KvX%y$MI8{L}i0Ug_YJIHB!vcr`M+R={OVN}2cV^)u#L)s|%r*-5 z;JI5y-)?oU^Scy6B?mb@gfb)}IW>Pq_%^&T=k5S~0(`la*^V*Nt2`U#H#o>m_ah1V zf9&&4MU-4hF~fGH>Ji%4_r@ey!EeUQfr#!5c^Swi#}Re*Ioj$>O3TD1G$2De3j7#qDgA6S%c}$6&Wct;%-Jfj+k1m%&OK(fVk%*9lSF}xO_eWT;wr&7cPBVQbjTj`Shxy*~e}$dp zc>*crqgp`_R3Y!u-N}eQXEVgXq{sxaV0RoCLW-``A0Js)y8^+XV*o34(zG8iZ~Sa( z+R<5%^bQC>`1{_zpZ_|+6AdPw5neVEEDXf9{TK!u=|10x!$Z(ip`}P8%TTupb#0+7 zkEM5q7XDO@j_~i~?vV2DoW5WMf01wU=GRwrDc?&64Yc=`^&#tFqQM-=FZ|#ljy3P4 z&h-1)`xiGiX`CZMu7mmh3p|&{kYr6inh7w|>F%aE?g2CIw@h3y&IgOjM9VkOs%_BxjFdC70o`8Nr^wPDEQmPJ2UIpG)G6pay@>9WDLaVB$JgvklYd;e zT{;qRBnpKf(kf`gNdkI50g?-i&p1<#G%EYX5-15>Nq4aw8<(u&K#Hw~9z>4;ul4#L zxTn=~cDwb$Bd{`2!cVJqe~<&X4kO3i&%*O8fPS6)=Sxur`++2$y6n5zS<$@4XH}Y~ z-bn2WhP;>c#>TC(?BE!2MNHT(xwSu(eE)aMt{StWX%9|$o;@+pvAmO6tDW`<)p5$5 zG>IYC2HwqGit9OLtE17wG4mL?#219~bXW=@jiWSx6u?imHAAQ(e*wfmdVQ^PG2stP zRu@GNw9adqq6AyhlnHy5;v6$dDH&>%1gMGG3vykNP?w&J7Wo5W=@dpN#bbB%QX*tH zcXIo(nCM(zI@u>e;*Z50);+HgnHAZ{?U<^NtquC0AV*+CotM#-4K(`QG<1d3yMvAD z;qpe>Uy*52__Esff6;_46q@ zA}VSTyVE{XG)$RGp>m~2%pJ#6LojOGapYPlE%>(D16zowNob?Xt;{MypJFPA((+M?FfIb-%Eo{5 z3%4Ahj~$Dof3#Dx74MfJE4R0Gab*kja3Y|7;=f|xZ={t0;LFe=#Gp95cj%>69bOMl zXTloz4ma+{wa|8n&@MCm{)7^*25E8{Tv$caH<{!6cH*9d0!+lQEH7ag-7!y?Sm2hc zPpM1ytPi{KdWk8h8+U#ftx+Mi^A1|bs6z3R4_xGBe;}L!EUSTNE4z5`+0qnwwM3GM zo#X*q5rs|_Va@7);!{U$cuk)n2bkod)eZqJ84?IzB(ZhQ)>tO0t83;uN{@D`GN15J zlM0&Z^m0wGwh`t*?p$O=WN48(_qKuB_e+dEujpuJ={X3pPu#AE&9>a{ z!f?>?f1{*?#||YPrCDm5k5_Ip;x1Mod72v#ph_7QrgiKDb2)*kmaikj0Sq%5ek{SK z!R_Me2*~5XB{!xMop{CsjAi0Dipc&NzN#L^#C%O|$kFSZjrxqRf>LG(cK`8uItWlp q0Rle*KL7#%4gf)ahgKypH)&ZG007wo0RScdlb94n2AviF0002!QxmcP delta 5250 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 I6aWAK0Fv?+T>t<8 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.1-compact.zip index 75eb6e36546eb769720661f12896e8c804910d13..0d43274b54d4ebc41238ce1a12d616850e50855f 100644 GIT binary patch delta 5811 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 delta 5243 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 delta 5035 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 B#_j+B diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.12-compact.zip index b2ea3e78759b0263d60dc32490acdc0a7d1aab22..594e9e9c78de222994da9e4e42185dd4a8d5f808 100644 GIT binary patch delta 5579 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 I6951J0H3hIk^lez diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.2-compact.zip index 25d29cd4d176d0df52d4f833a57d9f1ff55268a5..98f9966c41632d7841a2aa990778cacd4044c8a4 100644 GIT binary patch delta 5804 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 delta 5239 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.3-compact.zip index a823ddeed40f896f31867832d9ac236e6461abc2..9d8cccf4e9ce5934a780c148c41ab0e9317cc72c 100644 GIT binary patch delta 5818 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 Q0|Aqb6iEiN761SM00y8*Z2$lO delta 5248 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 G0002^LlFT0 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.5-compact.zip index 6a76e2343c17163c47c95bb8f3d05578a79e33b1..bb7f19c0941b4e7a846181b4b17fcd37cf713fb4 100644 GIT binary patch delta 5823 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 JtQG(O005<<7dij{ delta 5245 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 aR_^Ytpm`Pm0E`6zlb{qy2E7&l0000(Wn{Gg delta 5261 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.8-compact.zip index 0e0da75599c8fd34241d64fcbcc60db7980897eb..ae0e01054257003d839c253fe86c7ae019056808 100644 GIT binary patch delta 5850 zcmV<07A5J4Dz`2fP)h>@KL7#%4ggSphgP};4RVPV005)_0g)L`e;?O#y%sU`Lq3k% z8(|US<+$<-R-TXbNE-97FH-K9mq@1&+0=A#oo)!e&BSqqY@)H2tpV5?K7wRBZt4}$ zBQpE?X)yD}^0K7dqbULjbQ(**;`Y?sQwoZ^(xv9rtB`VsY#g48_t+`YcR$L0-Dj4kK#?KjbiW9_upG_t{Iea0y2P9f6ck7{~0yL{#r?NMy)bY z>T~au8kX;q^lc<;-8_@Elhzt`t}r-#)2f@!IXMxYlBKo0VJpt7^_ZMN`GJbGkz(jv zjc9O;JgUpGl$YrKacVb7T?kkR(&qUGOzHyJZu(CjwYQv4xj6F=+SRF7Wfz%@RW09- z&?yqQF$vXAe?}OLFznJOu||$HvjFl@MYAYuh25|I%@#j!z`L66Tkt0PGFY>1gA+rr z2exBt3%JEG-af`{etT zCwZxLooqhI(rAzL6M~%th4T5@(Ri?uW@Q-Z1>=fwe+Ylm${Gbce3lr3|0)o_p(grZ0b|)j#yCNmy1y39y;Pbbr(&mkpOAeE(EoyHV5Z z3q-0te@{QR&4fk|xeb2eD(C~W-p>C$LTyi0E%U@_4zVlZ3|*w(1hu-%Z%$muaZJ$} zgi-Mb)|LZmhO}9*&{JK7dD(*%eueUg=-Rcimvc}_F%ZZbhLq$XKUIY}vPz-x5HCEP zHAGrWs-4xfo+ezd^$k&^H-j>b$t*WwNjau^;hW4YX{`eh4e|2;Zy~4ude|RU*H5;G ze>a!_mxZg0?x9+tkBd4dq{Ys)Y!rk?Mlya+P zb;WGLFOh0Gur{)zL^rtEiwCI2X#)`Z`t%@Zy)|Wou#BG9i>mu|<{J30MFGoo&Z6x# zMncEPrI3b^tNcab$RYRarc{saG80*je>%}h){7Q$c%Fhx(G&Oi!OZ$K*ZPGD-q~l^ z=vV*nI%Db_*Je7O0Gp>wEchS!?nLa_`_;LW!D=rnc?YWAS>5-1Ep{kNa{*uf4x#?| zX|@k)_ltWL^38sk6?$D30r|=s{$4Pc24a!n5?1-z@nasA(-1PP8lx>VW=ny)e;>#o z`z8-%st-*hu0YDMp#L6Vpx7t+U2@uu+NrbxDeaM$Xiv@taeuNc>LwEn`Dk=om*DYxu*g5(q;^SnwR!TRjaH}E$C)$K_vlZIG@ z-QS?E%ZpNMtE-!ZbU(%neK ztMQQXcN`d{qhF>VrFs@^&rI1yG z@=mHiLhn1ZWvwIIpuIVMfBzBFW{r{pLhFK#!KmyutC^mE_1*gje&V6zWHPC|R|(x1 z-mP11+>t3^l8E~-dJ=e-F(Qh?RcvmuK$^INghP1eflm=*sL%@G_H`wfH?9Pcgt@G1il@;T)u<`7GxY z%S9tl8uX+DGX%EO=T*!}A+xy-xTo>d71f465bm@aW4G9>e`+rD@X2jL;`q1fKir|2 zJ=G2(!qNAlFm$X498nWF5BuI7;t41bgt|>KyKV<@ z0RjHDZ(jMJaNiF%1Wa+2Wbu1Q(NqeE=p_gHz3rOjRr+LaP|M%Q2F;gq%%_sOHr$+x zkL??;S_gf91q@>Ht&LjOS+(6xeHNA-!sL9e-Xz-j$Wd-$1A0h@r0BaL?Ph*s>>0X zJ;gTY~yU&dd9`hi$C^Z99VSTy6MJqz&j5=Sm$D$Ux7VwVBGZpG+Ql3uu}k^pU@K`u2lplwGRb?CGor5xHj z3_5R{MpH)pd2qYVhleH78G9~}3P6+pjOI99&@;E6p$TbmcQQEYRtNWa3}^FPw2@k6 zFuTMIMEdzww>yRjNcTfB{$b54w>JWme_gF5t?zbbWVuyHu3%#*Pge5cJb%%d?M|YZ zsZ{UF^L}L7_t|A8K&IPm KHO#bw$|nfr*!!AR^MD(z#oQLe}hes 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 delta 5292 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.6.9-compact.zip index 53b706ef033651d1de00d3285bda539a51780554..b3a3e5f5bd6c03e94dd4460dfaeff2bd965d71bd 100644 GIT binary patch delta 5584 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 I6951J08saeivR!s diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.1-compact.zip index 9e6e0ba180d49b6f75d17960b9f7c1ad10ba853b..ef7f69d5f48723261380421a5080a197ff67f413 100644 GIT binary patch delta 5486 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 delta 4937 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 delta 4942 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 Bf)oG% diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.7.6-compact.zip index 2ecda6bf7c80aa45ba65c93878eb0a0377cac2cd..8de85d76d4c05e5c8aa962cc2c3c639eb7c2f30b 100644 GIT binary patch delta 5497 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 delta 5906 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 delta 6111 zcmV<57a-`$HM}qwP)h>@KL7#%4gk1wa8yl|LkW%-0021Ikr+^aC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6>!$y-3a)VEueiaKU{0GTBR?ztg*J*1#(e6GzOx#)@G~pX_TVOgEZG$Gz1CHlmtq9{hqDyf=3*|MECs$Af z&7NM2)A&qtb{TXiPk&m;+bh74`fnsgmE1q5LSc$k+XKIhu{Ng0#Ep;)>Ly|!*3liW zfi;OuB#c#mC`Kq(LwzNM?s!6wVUb3@5cDeXhbA_>M0kzB}UYO?<*$wFTO#E@7Kb5^%5;l`Z zM{q}5V1$q+`ftDm3ZV!5A?<+<+ueRss)=Fo6wi2ng6*+)?YJ7LDBP{YB8<6RD2oCz z-a(c4vNuRT5EkPRjMR4b97R`b4|!%k*1wTpelARiqzZxmVfOBrT%Y57w;eMrVA|3O zJ$_4pp<7-RG5l6<^uWjepD#L#G+eeg8nzV$TIbt4lNX)lC3gTHqVbAlcHfHQ@Z-VW z#T?v!uXLTikG^>*RLEFoLrfd4U3FKQXEZMbSFu2AiCqs_mTIZP6o_%N9adqC5Y%>Z zo2XJEVc;Y1mTVVr0H;ZHVgD2OxdiK@oy%fe@PD4kN%h2%ow&_9d(A(xQlflJWg&?4 zLd42AX)m9RkBCm#Q~@YwGp_B0*u(?rrPxxL`VISH-rwH8kp+W%F~Vwh|^4|SENk|n&gDRse-rQ4Z*d1*u% zVkA@2QuCS0#Baos%mLJ&qRwM^90B5udYStbES+)xMS6wyNnQ3{$_KH4&see7SEg5+ z(`+QyK*T9pc7e%GbY=e&$*S5TwRbgRLfa{xBtd$EGxZEDP?5@vHMo7>P64U;nm5l- z=ry|o6rCQ)lZBn@wS;sW!(Oj{#-4rsoc#urfa^mucum9>I}Q@WRpcwfiA573aTP>y7l<@$>GZft-bJ9fbn$6uO%)-o>DWO%RG zV7hbJ3fiMhb~mMwhunqk?zmA_(Qx`uW<3oAbSNrzb~7oWqax;zX5`lrlq=BS&Yo3W zVOOH(t5D#*ej+lL%ee{IdtNsj4D^(bzqZj8FUGD6m?+l04WTx45g=7i!$Z19Ob;TC z+F{&KMakd;$XM{n3$+A)GFb9Eow*>9e2>j0W!3$CfeM)jQqs#dzO0|#tJifJJMb8KN{cums)g1CqFUaMFH^9u0+^UmpspbI9-$SGa>FNM3WKVdaf zB_$L7ZuP{&_8kXszW)2vBCsD?W`VM=(O(T!QKR<5_WcTjJ3_~QgA}yVu{_sL!&LLr zBlN5#ii2h&Xr+*b(Tug7UK3B}LY!;p<2=r$Atz5oPXIMVZyI>9iO?7qO$)s*sn~SE z;H5ntUnzLHoipIAn98lo_Od$}lbxEigmEZUP#@DT5rSz2WK-rzTWjhYKVU<);>^`An=OilC?5 z#InMJk#fgVL|<-^XNjg+q=ldRpq@H`*}*T@w^5nAVKAlM zgB9)rUl}ivZ9^!JzW?~gWb0o3`Lfc{X`yTMSMfMLOG*lV=oovWmi&vIX35B&HhRFM zB=G5G!|~n+;#_x{IDy3K@GQMp2Em>gW_80gz#8Z-E`V1T^p0y#u=;ChZJ?=M=60-; z4Ji}SvmB2tb9%9N*ZHPL7g|fEu90#4ok0 zoD4bL81j2kQAhhl6%SA`1bi5 zu1MUql>o@z(m3BiT_D7Sia_fd_=z$nb-M)=%smC0eKg~Bo?-~j{auX1xRU_LP29;4 zM&QqDjnxwame}~u<#Sb+r|A!33uJ{sM`D8^nrQoSpz^@x*3G8C#;4EDtB&~Vz7XV0 z-jtPpT|L@=0^9S63LmoUz4@~qS|(XQ`_0cMy>1qpcpkCUF=udalO6#RL=sI0ty|rR zLmw7@U!H)9b0IOv)iN`6oDk_QRC&n4Z3a>`G ziOP>71LS3^Xu+}&mR;BNN#0>36W5)2D17WtY}%?_Yay0FAh1{UXUSYVUJ>U*Oksfy z4h`BRY1y9b2-t1%Fla{rbo?lO(JEWBTww`R(HrGPMiUzi>~yzwjY< zyYbl_$I0PsDwpH|U)QRNi3FrlB&Yd`8=f5KjAMXHXtt|MnnywMR|}A&8Yn~Dt+pV$ zXt00-EPq~nk?YH+U815+YY-1$Y%hv`(@rMo9mOZCkj4i~Fx1PY)Fi@MU|#FpVQf7{qq&i3LR?MfOh# z{3_c3{TDWyTR74okndpa)%K>{H|9R**VlhE-IOtz-zET=KNCY!q>y4^#oiBp-z8H^ zXug6nbhs|`PxzJfuF$jGa?Rnlip{r3$2-2Q_pcv)7tPr8%E&K~!^T`RrATgEh2INY zV8jnRYBM>3!|IAxb2SR-Q`dn;HOu}dgqDzIY-trsRL}~uf&Hb$_TIH9>wof1r}mC% zRmPQ+%Qb}SvaeBFU0{^*`V{$pEu3cB?**vXO>;bOd1s4LFsz%N3pL(51-inwa-7kH zPF4`p3$IA!ms^P*3-DQXD5FnBK!3B;A*phdoSDP*0+{wPC#4Hi2!aC(uC z`%7_e2u#5mir8Td_b3@jeEpo;lk}J=1|qG40s+~}n?f+q=l}!+{PTid3LgQ{1W>n#1-0to6)mjI<0>v`H9dQYe;R`nW)-h{iDEic5ZcX>*< z{R*#alnp+R7ePXzyNKd{HB4h95Umh4!Avn!txzJZGz2E17|%Tns)ZC2g38UZ*^*nq z5qIIek(#ohhpOOQU}v~DUw4m2XuSaUYN%h1d;(S7*8X8ECDlYP!D7mv4k2E6n$iAX zo+f{z8)~zWk}N;hn&=`T>!1b0EU<@#_1%TcwLbu(5ueMiLrxlh&PH-Wh7q5mX5(~( z(oxVXT8Y_pz}W}_-pAr_QvP-Yu5Nt!Dt_&B0FKGF^r$Jl{xSG@{M=({_kd1#Of|ys z{l52xDJkE~Q+%!?y{yLf{#aYCZ!2Bn?6P^}L@tLPd||}-!NWwg3jcvpmL-lW22!4) zZs=g43@4Y6hG{8(2^iw<=lr>yaKF1j>^2>$mcQ3KuVer*QopM0(V{_i=S>P7j*)VdjKo>U3lf%$eXYRYk4f`(j%O{s3XYhbdRH|bj+RAg*|9?A%}V( z+X>Z2nU7kI3P>AB203L!bZ?QzPUDFMJS>HnH$qcjHz5L3Si{DzjR74m>5gJ9r1Pd{zKO}oo^x(q;goYq8WDss&V5< zgXBs0gou*-+yOfJ8jgPMi!e&?S(?$6tfh{?8Us!7mWdWO*eviRTNrQM{82x(yKm(^ z=CzsA?81qElm9~odB)7JZ6#8WPEy3Hx2p!1y`&9>UJ6x~+iaqJ6nXyQ*wyv}IOK{< zBGXwQXmrN;^q=6rGg>4^KG3Rq#G9^~9-Xyy2&qojXQ z%NyXB=pK0^X}fyiOf^s}#`3TMr&4`rv)Y-hODCOrUeD=*u>!6sBuKSh%Q?8w>nh`G zBBTL-yipR;a;u8b|`hoQg@oHmG2=WTt@*!_xaKeo|!QELxxn|EUeo8bhx+` zpxEaWpU(Yw`(AHYPh8OG!Bybq^sfpe%z@HpZFv3aP6)lSn^;WFO4muY56a+33tyXB zy^Xw4ku~RvFvbYv^DV0)AsI*)X+c^mb=W$8& zY!q6t^<;E4Gfez@FSME-cjxE>-TKFs2qPWn`Nrx`6XOww}=*^6~` zFaSP!0oGvc8hj4OqY~jy8TvWOlL6$*(K8g0W?+-80K zS0!Lg@N{!Ko@k`(B@=ev0Dv?W^53N7 zhDqaYc_^(O21?^69g1+cIrdD99)8|4lSo-JZ2O{ zB1nkbOeog@^cW{+D9Xzd4!Rb2!OR5G0gzROIXg*xTbz7peX|)WbpZc=&sAX`^K(ev ztX6rLa}PxZ!+O=!<;i4uaiS*Pj3Xhc=FZf-Ca-|5r;T*#yyZGlSiKpo?b=C;7q2jj zD6e<1PDt?*?JU*t*y{Z0b4&i~ll1qpFKCz%1S*Gy4K-d!rF_{~QIVL+Ze{7|>iTVk z*1ev#_wB7tL(yqPr!4`087$Bonuf`Lca|7xfmkfixI;8skl%(m(5ezIjQDHY zhnJ~a^vpTx1Mb!+#qvHD8A`koCT#fh&kBSnUKvhkX9TTI>Sq@|Wi6QvjzqLS?bSI7 z3K0|}KLZuz@_8CtOqcE{K>+_I>?-R90!gj1#*t4odO4lv1cggfsDXPpXy^x`$DzPEqr=VCES;Kqnyq+-fjLiCCS(taH~pLbZR9Bex6H^vsRj8wY* zF)G??zNTZF4cMW7n_SA#E!!oPt-H7gXr3OxUR3wV_xwOHPMVoSjz-Aa_1O(FO%(DX zyn@Z@m6O}D1 z5vqk7CLrhy#vtNNknSY750D33zo(eH+RT z(u&W&dFbF!P9T^ntPiwf9-LUnFzxmVBNrMN@f!1NM(qqo>e_(e9${KEvV6cvbytur zQ9q>w3Y4OMr%jbNQoVw(Y5jT9_6YJ``D>Cjaemq15eXmjznMB`>gjc+9ga?|H0T7f zxD=CNuE6d|$2uJvb>UKY4P_;|4^P=rB-?vV(p^sm3na`#f)6gh9%jWISqTCDP3#;B zzBL5(pr*J9pW#}@F5fbuzL9~RtmVbPr5ChzMaNBlr+58fU;LQE=%AOB^xWH0&3fuG zllUgxOZ;jUrfY@pyyWV2-7pUC?!66Rj-AsNTi6LOo6^hrN=NUfu{gDwxm_clB4^{6 zvP2w@HO{#7MvJur0txmu3kL8l_Qs^oOR+=Tnnibbsm_DN>I4HhbN3D5J?%zI%?#^( z!*3LS%)DH@vfX#12|zW;p>_v35`x}F%?K6!ZO8lwa#g7<)yV z41nG#94DWx_wD2*Wsbh;m6(s((An$Rv8GWbo@cKNqK&O$6m$YQTa}02+o5~8{T(3u zgaeplWqH`9^J609`IpG~lv6_~KU|`D67lSRZpKxiJl>+IYpLj_DIn(NUX2NG;O3f? z-rbooT@9|CyewqxqV=~-yWQd(UmQHwI>)r>3>>^i(tPuinqE!3HFXPf-pAuU#qsr; zhninW6qsTTUegqD4UGh$t-(r>o+PNI%YmVb8KEG4X@v$q4m8MkJ_r4)zo`?D@moZH zFU#CWxn7R$Q}nJfbjxbo9!C`Ei0zQS!g7J;^&Dv|CHW_}8;QZE^}qrgrOWy)mduRw zB%HyX#NY~3s(PZm_nUJkjRrW}BPy3ffJVx*api$P^7LW7$3;p?0uN2X` zkwA~o7%XGyz?wu|k(DmnxuU&6-*vMyLFfDPx7awQo-4qYgp72V#{NwS|Lw4JBT!2L l0zU&k00ICG0Jw8-R85sb362*4065u`dKyXw(iZ>#005C!`wjpA diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.10-compact.zip index 9d8e4dfdfb146cda26eb817fabfff164e5c87244..e21a9e5c0f500168ba217af602e31377b7f39fd8 100644 GIT binary patch delta 7131 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 R0H^+w>ljJ~zZ(Dm001UghwuOZ delta 6368 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.11-compact.zip index 403b3aca9cb333c689063925ed5121b51e84fb96..61d5760ce7fca51104f083d7f501e25c441ffb8e 100644 GIT binary patch delta 7130 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 N@EA%4yBh!i008NK(wzVR delta 6373 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.13-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.13-compact.zip index d0f3c1b4c3869fe762972a723aec8613e5bc4586..015644b041d321732bd84774c5f5f017393a98d5 100644 GIT binary patch delta 7118 zcmV;<8!_b1GNCvdP)h>@KL7#%4gh+8hgNxR4^eX)002M!001VF5E&_vL@9qU^+P_6 z+Z$mK0g+maPHU8a{$#J8tR~ z(IYbZ`e`up#qzSG+@mQ133M7uz~c7Q+*1mQyV9lR)vJ(lhin{LLBL2NH`PDKZ5F!( z;B0$(y8u>*4|d&Rlz`~{ZCrnK&p(c!jB@KJ=K^GK|I6EXwDRsFNU74vqdIO1T3EX=8$R^)ItENaTNPOW)fv(}#f#^h|Y-Oqy8Yan-#(@`W)!4VU4&nr?N`gD~3F>2Rg4 z)vOmFNOh)SGk*C3E2ILp)rH>MGFFOMB=p6X3T>>=A1DF0ND6;pykz;x-Y%;l@M|w6 zUyS(WeYBl1Erm8G08aKdW5~Up@_xT& znWOR;+C3J)aOBT%ClfzqpfAoSl1_Kgoh3)ln#vXoGg}L3m7}S0t?@jFf!2WsN+B4U z{cV)BIBc#Zy1Rc#r#!bwa$-o!9+%IfJq{`LAh!`U8;sZx+2TF(jfFgd0j#kUw)DDE z*M|vg{Qyd2=`|5v_mR=-RS)*IJc(<@;YT>Sl zm3GOPTzTVp0REjjTikVdb=73=>|vdlPF%-s0`GdrW(A+s2q6T1x!M%a^zn%l7H+Jw z`}AAJAWPC!1yia#CNj{ot-8#u!(W%yQC9e4gDya3I%!wqpIpl5+Y{vEq-|fb!YQn_ z(a0P1=!<`^Jcw?GT|ps1$jH4RPdJpfZ(3GIgK>sB6M0{A-p%)G`-cv$Jh;l%qW0xJ zg_L?9v)BGm-kIadz=znGeAugtIoBeSEWRNE<1=wDXBe9gx8g_gfh~~l4N^j)U`UIY zZrOVlzn(4UYARYAE|+mrpisq&kT!hRS>d@K`sRO_RZsuJ#PasP829sA%mt~a@#wIb z$8?#_EC93awRK?5#6p)tfGN?W2CjMJs73Z@;@AUz{wu!=??;GRt-EUB|NAbX#JmUlOq$OddALICmPrLm zW8{CMs}KItDWR*eGa^bTakcyVDjA4~tz~ru;x>z^8v-U&1y$EN+E-zA^URrB+SM7u zITp?2aQ_$r{BWHMulTyt7!gS|JWw~#UgInVΜ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 delta 6393 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 H00000{UL7| diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.2-compact.zip index 97a2ded43d8fef1977765ffb973b6737fadd98ee..c6ebabb42c639a12c02c31620122f55a10707e86 100644 GIT binary patch delta 6873 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 K1`!wl0000(1@0&S diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.3-compact.zip index 76a266d459ff2f0cd4d94d269f9a4f8b636bf42a..877ab7c58cc0eae5e3c1aeed72744b7747df8876 100644 GIT binary patch delta 6862 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 I8UO$Q0MeL0tpET3 delta 6188 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 U8UO$g0RfYH7)b{C8UO$Q09gZx-v9sr delta 6256 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 aRDJV>i5wUJ0KMA)lN1|C24ENf0002t?J=AH diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.5-compact.zip index a35d6db5843cd7298e25b35217bd7a6c8dd37ca7..01a12fb78ebf02f1ef3a08442f63d32def3c9303 100644 GIT binary patch delta 6967 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/trycatch-0.6.0.sol-0.8.6-compact.zip index 69687eddd81f81ce6dd6429071c7addb9a0c5ee8..82b60acffcba94e23f64ace3c675d149a073e8f7 100644 GIT binary patch delta 6956 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 delta 6392 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 aRB^T9c(E7&09xAsli?dl2K5*K00025o@sIb diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.0-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.1-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.10-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.11-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.12-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.2-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.3-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.4-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.5-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.6-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.7-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.8-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.6.9-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.0-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.1-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.2-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.3-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.4-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.5-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.7.6-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.0-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.1-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.10-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.11-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.12-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.13-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.14-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.15-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.2-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.3-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.4-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.5-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.6-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.7-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.8-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json index 6099f6be4..ec0954baa 100644 --- a/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/trycatch-0.6.0.sol-0.8.9-compact.json @@ -3,7 +3,7 @@ "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" }, "C": { - "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n20[label=\"Node Type: CATCH 20\n\"];\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n}\n", + "tryCatchFunctionCall()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: TRY 2\n\"];\n2->3;\n2->5;\n2->7;\n3[label=\"Node Type: CATCH 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->7;\n5[label=\"Node Type: CATCH 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: TRY 7\n\"];\n7->8;\n7->10;\n7->12;\n8[label=\"Node Type: CATCH 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->12;\n10[label=\"Node Type: CATCH 10\n\"];\n10->11;\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->12;\n12[label=\"Node Type: TRY 12\n\"];\n12->13;\n12->15;\n12->17;\n12->19;\n13[label=\"Node Type: CATCH 13\n\"];\n13->14;\n14[label=\"Node Type: EXPRESSION 14\n\"];\n14->19;\n15[label=\"Node Type: CATCH 15\n\"];\n15->16;\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->19;\n17[label=\"Node Type: CATCH 17\n\"];\n17->18;\n18[label=\"Node Type: EXPRESSION 18\n\"];\n18->19;\n19[label=\"Node Type: TRY 19\n\"];\n19->20;\n19->21;\n19->23;\n20[label=\"Node Type: CATCH 20\n\"];\n20->23;\n21[label=\"Node Type: CATCH 21\n\"];\n21->22;\n22[label=\"Node Type: EXPRESSION 22\n\"];\n22->23;\n23[label=\"Node Type: TRY 23\n\"];\n23->24;\n23->32;\n24[label=\"Node Type: CATCH 24\n\"];\n24->25;\n25[label=\"Node Type: NEW VARIABLE 25\n\"];\n25->28;\n26[label=\"Node Type: BEGIN_LOOP 26\n\"];\n26->29;\n27[label=\"Node Type: END_LOOP 27\n\"];\n28[label=\"Node Type: NEW VARIABLE 28\n\"];\n28->26;\n29[label=\"Node Type: IF_LOOP 29\n\"];\n29->30[label=\"True\"];\n29->27[label=\"False\"];\n30[label=\"Node Type: EXPRESSION 30\n\"];\n30->31;\n31[label=\"Node Type: EXPRESSION 31\n\"];\n31->29;\n32[label=\"Node Type: CATCH 32\n\"];\n}\n", "tryCatchContractDeployment()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: TRY 1\n\"];\n1->2;\n1->6;\n2[label=\"Node Type: CATCH 2\n\"];\n2->3;\n3[label=\"Node Type: TRY 3\n\"];\n3->4;\n3->5;\n4[label=\"Node Type: CATCH 4\n\"];\n5[label=\"Node Type: CATCH 5\n\"];\n6[label=\"Node Type: CATCH 6\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol b/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol index 68899e4a9..2c1e1e939 100644 --- a/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol +++ b/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol @@ -32,6 +32,14 @@ contract C { } catch { actualBalance = 0; } + + try ERC20(msg.sender).balanceOf(address(this)) returns (uint balance) { + uint c; + for (uint i; i < balance; i++) { + c++; + } + } catch { + } } function tryCatchContractDeployment() public { From 85095f936509964522a794a498f9ec8b570ae4a2 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 7 Apr 2023 16:45:16 +0200 Subject: [PATCH 036/105] Remove unneeded argument --- slither/solc_parsing/declarations/function.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index 6b1846107..917f7a886 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1145,14 +1145,12 @@ class FunctionSolc(CallerContextExpression): node.set_sons([start_node]) start_node.add_father(node) - def _fix_try(self, node: Node, visited: set[Node] = None) -> None: - if visited is None: - visited = set() + def _fix_try(self, node: Node) -> None: end_node = next((son for son in node.sons if son.type != NodeType.CATCH), None) if end_node: for son in node.sons: if son.type == NodeType.CATCH: - self._fix_catch(son, end_node, visited) + self._fix_catch(son, end_node, set()) def _fix_catch(self, node: Node, end_node: Node, visited: set[Node]) -> None: if not node.sons: From 99cdd1f72a4386208e92c5d2318815a6727afcd9 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 7 Apr 2023 16:55:48 +0200 Subject: [PATCH 037/105] Type hint --- slither/solc_parsing/declarations/function.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index 917f7a886..7438a7bb0 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1,5 +1,5 @@ import logging -from typing import Dict, Optional, Union, List, TYPE_CHECKING, Tuple +from typing import Dict, Optional, Union, List, TYPE_CHECKING, Tuple, Set from slither.core.cfg.node import NodeType, link_nodes, insert_node, Node from slither.core.cfg.scope import Scope @@ -1152,7 +1152,7 @@ class FunctionSolc(CallerContextExpression): if son.type == NodeType.CATCH: self._fix_catch(son, end_node, set()) - def _fix_catch(self, node: Node, end_node: Node, visited: set[Node]) -> None: + def _fix_catch(self, node: Node, end_node: Node, visited: Set[Node]) -> None: if not node.sons: link_nodes(node, end_node) else: From 0a6197560156e6b926eb480bc8e943e56b8da76e Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 10 Apr 2023 08:37:12 -0500 Subject: [PATCH 038/105] address reviewer suggestions --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 686ded908..6e76425dd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,7 +47,7 @@ A code walkthrough is available [here](https://www.youtube.com/watch?v=EUl3UlYSl Instructions for installing a development version of Slither can be found in our [wiki](https://github.com/crytic/slither/wiki/Developer-installation). -To run the unit tests, you need to clone this repository and run `make test`. Run a specific test with `make test TESTS=$test_name`. +To run the unit tests, you need to clone this repository and run `make test`. Run a specific test with `make test TESTS=$test_name`. The names of tests can be obtained with `pytest tests --collect-only`. ### Linters @@ -73,7 +73,7 @@ How do I know what kind of test(s) to write? - End-to-end: functionality that requires invoking `Slither` and inspecting some output such as printers and detectors. - Unit: additions and modifications to objects should be accompanied by a unit test that defines the expected behavior. Aim to write functions in as pure a way as possible such that they are easier to test. -- Tools: tools built on top of Slither (`slither/tools) but not apart of its core functionality +- Tools: tools built on top of Slither (`slither/tools`) but not apart of its core functionality #### Adding detector tests From ea10acad827b7a80085edd1c3020e66fa464ff17 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 10 Apr 2023 11:49:02 -0500 Subject: [PATCH 039/105] Fix missing import --- tests/unit/utils/test_code_generation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index 99f8689a4..ee70fee87 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -1,3 +1,4 @@ +import os from pathlib import Path from solc_select import solc_select From 89fda0667e57bc541e99644ddf1733052ee66801 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 10 Apr 2023 11:49:51 -0500 Subject: [PATCH 040/105] Pylint --- tests/unit/utils/test_code_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index ee70fee87..3684b10b4 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -24,7 +24,7 @@ def test_interface_generation() -> None: assert actual == expected actual = generate_interface(sl.get_contract_from_name("TestContract")[0], unroll_structs=False) - expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code_not_unrolled.sol") + expected_path = os.path.join(TEST_DATA_DIR, "TEST_generated_code_not_unrolled.sol") with open(expected_path, "r", encoding="utf-8") as file: expected = file.read() From 27bcb2c269fd9b0645eefc358cb122bca5bb953d Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 15 Apr 2023 19:16:18 -0500 Subject: [PATCH 041/105] fix wiki link --- slither/detectors/variables/var_read_using_this.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/detectors/variables/var_read_using_this.py b/slither/detectors/variables/var_read_using_this.py index a2b93a7d8..537eecf8a 100644 --- a/slither/detectors/variables/var_read_using_this.py +++ b/slither/detectors/variables/var_read_using_this.py @@ -17,7 +17,7 @@ class VarReadUsingThis(AbstractDetector): IMPACT = DetectorClassification.OPTIMIZATION CONFIDENCE = DetectorClassification.HIGH - WIKI = "https://github.com/crytic/slither/wiki/Vulnerabilities-Description#public-variable-read-in-external-context" + WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#public-variable-read-in-external-context" WIKI_TITLE = "Public variable read in external context" WIKI_DESCRIPTION = "The contract reads its own variable using `this`, adding overhead of an unnecessary STATICCALL." From 97307cd1f0ea9157d15a6b9bb9044420cca55e94 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 17 Apr 2023 14:39:14 -0500 Subject: [PATCH 042/105] Only include 'view' in func sig if not 'pure' --- slither/utils/code_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index c22a72526..b2da93764 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -118,7 +118,7 @@ def generate_interface_function_signature( or func.is_receive ): return None - view = " view" if func.view else "" + view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" returns = [ From f8794a39583e410acd77d2ab8ba7a95eef1faa11 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 17 Apr 2023 14:57:29 -0500 Subject: [PATCH 043/105] update CONTRIBUTING.md to explain compiling and adding snapshot tests --- CONTRIBUTING.md | 10 ++-- tests/e2e/detectors/test_detectors.py | 66 ++++----------------------- 2 files changed, 16 insertions(+), 60 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e76425dd..7017c7802 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,10 +79,12 @@ How do I know what kind of test(s) to write? For each new detector, at least one regression tests must be present. -1. Create a test in `tests/e2e/detectors` -2. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` -3. Run `python tests/e2e/detectors/test_detectors.py --generate`. This will generate the json artifacts in `tests/expected_json`. Add the generated files to git. If updating an existing detector, identify the respective json artifacts and then delete them, or run `python ./tests/test_detectors.py --overwrite` instead. -4. Run `pytest tests/e2e/detectors/test_detectors.py` and check that everything worked. +1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. +2. Create a test contract in `tests/e2e/detectors/test_data//`. +3. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` +4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. +5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. +6. Run `pytest tests/e2e/detectors/test_detectors.py` to ensure everything worked. Then, add and commit the files to git. > ##### Helpful commands for detector tests > diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index 26ea93743..37c1cbd69 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -33,7 +33,6 @@ class Test: # pylint: disable=too-few-public-methods """ self.detector = detector self.test_file = test_file - self.expected_result = test_file + "." + solc_ver + "." + detector.__name__ + ".json" self.solc_ver = solc_ver if additional_files is None: self.additional_files = [] @@ -44,6 +43,11 @@ class Test: # pylint: disable=too-few-public-methods def set_solc(test_item: Test): # pylint: disable=too-many-lines # hacky hack hack to pick the solc version we want env = dict(os.environ) + from solc_select import solc_select + + if not solc_select.artifact_path(test_item.solc_ver).exists(): + print("Installing solc version", test_item.solc_ver) + solc_select.install_artifacts([test_item.solc_ver]) env["SOLC_VERSION"] = test_item.solc_ver os.environ.clear() os.environ.update(env) @@ -1638,26 +1642,12 @@ ALL_TEST_OBJECTS = [ ), ] - -def get_all_tests() -> List[Test]: - # installed_solcs = set(get_installed_solc_versions()) - # required_solcs = {test.solc_ver for test in ALL_TEST_OBJECTS} - # missing_solcs = list(required_solcs - installed_solcs) - # if missing_solcs: - # install_solc_versions(missing_solcs) - - return ALL_TEST_OBJECTS - - -ALL_TESTS = get_all_tests() - GENERIC_PATH = "/GENERIC_PATH" TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" - # pylint: disable=too-many-locals -@pytest.mark.parametrize("test_item", ALL_TESTS, ids=id_test) +@pytest.mark.parametrize("test_item", ALL_TEST_OBJECTS, ids=id_test) def test_detector(test_item: Test, snapshot): test_dir_path = Path( TEST_DATA_DIR, @@ -1681,38 +1671,6 @@ def test_detector(test_item: Test, snapshot): assert snapshot() == actual_output -def _generate_test(test_item: Test, skip_existing=False): - test_dir_path = Path( - TEST_DATA_DIR, - test_item.detector.ARGUMENT, - test_item.solc_ver, - ).as_posix() - test_file_path = Path(test_dir_path, test_item.test_file).as_posix() - expected_result_path = Path(test_dir_path, test_item.expected_result).absolute().as_posix() - - if skip_existing: - if os.path.isfile(expected_result_path): - return - - set_solc(test_item) - sl = Slither(test_file_path) - sl.register_detector(test_item.detector) - results = sl.run_detectors() - - results_as_string = json.dumps(results) - test_file_path = test_file_path.replace("\\", "\\\\") - results_as_string = results_as_string.replace(test_file_path, GENERIC_PATH) - - for additional_file in test_item.additional_files: - additional_path = Path(test_dir_path, additional_file).absolute().as_posix() - additional_path = additional_path.replace("\\", "\\\\") - results_as_string = results_as_string.replace(additional_path, GENERIC_PATH) - - results = json.loads(results_as_string) - with open(expected_result_path, "w", encoding="utf8") as f: - f.write(json.dumps(results, indent=4)) - - def _generate_compile(test_item: Test, skip_existing=False): test_dir_path = Path( TEST_DATA_DIR, @@ -1733,13 +1691,9 @@ def _generate_compile(test_item: Test, skip_existing=False): if __name__ == "__main__": if len(sys.argv) != 2: - print("To generate the json artifacts run\n\tpython tests/test_detectors.py --generate") - elif sys.argv[1] == "--generate": - for next_test in ALL_TESTS: - _generate_test(next_test, skip_existing=True) - elif sys.argv[1] == "--overwrite": - for next_test in ALL_TESTS: - _generate_test(next_test) + print( + "To generate the zip artifacts run\n\tpython tests/e2e/tests/test_detectors.py --compile" + ) elif sys.argv[1] == "--compile": - for next_test in ALL_TESTS: + for next_test in ALL_TEST_OBJECTS: _generate_compile(next_test, skip_existing=True) From 6d28c51022946f91060d811f0731b6988b736033 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 17 Apr 2023 15:06:27 -0500 Subject: [PATCH 044/105] lint --- tests/e2e/detectors/test_detectors.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index 37c1cbd69..e6b87d530 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -1,4 +1,3 @@ -import json import os from pathlib import Path import sys @@ -8,6 +7,7 @@ import pytest from crytic_compile import CryticCompile, save_to_zip from crytic_compile.utils.zip import load_from_zip +from solc_select import solc_select from slither import Slither from slither.detectors.abstract_detector import AbstractDetector @@ -43,7 +43,6 @@ class Test: # pylint: disable=too-few-public-methods def set_solc(test_item: Test): # pylint: disable=too-many-lines # hacky hack hack to pick the solc version we want env = dict(os.environ) - from solc_select import solc_select if not solc_select.artifact_path(test_item.solc_ver).exists(): print("Installing solc version", test_item.solc_ver) From 3cba507cd8e49edd023ebe0c63d42f867f8402bb Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 17 Apr 2023 15:02:35 -0500 Subject: [PATCH 045/105] add detector for uses of encode packed that may allow for duplicates encodings --- slither/detectors/all_detectors.py | 1 + slither/detectors/operations/encode_packed.py | 104 ++++++++++++++++++ ...n_0_7_6_encode_packed_collision_sol__0.txt | 15 +++ .../0.7.6/encode_packed_collision.sol | 78 +++++++++++++ .../encode_packed_collision.sol-0.7.6.zip | Bin 0 -> 6125 bytes tests/e2e/detectors/test_detectors.py | 5 + 6 files changed, 203 insertions(+) create mode 100644 slither/detectors/operations/encode_packed.py create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt create mode 100644 tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol create mode 100644 tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 9722b8793..1a4121083 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,3 +89,4 @@ from .functions.protected_variable import ProtectedVariables from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity +from .operations.encode_packed import EncodePackedCollision diff --git a/slither/detectors/operations/encode_packed.py b/slither/detectors/operations/encode_packed.py new file mode 100644 index 000000000..ea7b094df --- /dev/null +++ b/slither/detectors/operations/encode_packed.py @@ -0,0 +1,104 @@ +""" +Module detecting usage of more than one dynamic type in abi.encodePacked() arguments which could lead to collision +""" + +from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.core.declarations.solidity_variables import SolidityFunction +from slither.slithir.operations import SolidityCall +from slither.analyses.data_dependency.data_dependency import is_tainted +from slither.core.solidity_types import ElementaryType +from slither.core.solidity_types import ArrayType + + +def _is_dynamic_type(arg): + """ + Args: + arg (function argument) + Returns: + Bool + """ + if isinstance(arg.type, ElementaryType) and (arg.type.name in ["string", "bytes"]): + return True + if isinstance(arg.type, ArrayType) and arg.type.length is None: + return True + + return False + + +def _detect_abi_encodePacked_collision(contract): + """ + Args: + contract (Contract) + Returns: + list((Function), (list (Node))) + """ + ret = [] + # pylint: disable=too-many-nested-blocks + for f in contract.functions_and_modifiers_declared: + for n in f.nodes: + for ir in n.irs: + if isinstance(ir, SolidityCall) and ir.function == SolidityFunction( + "abi.encodePacked()" + ): + dynamic_type_count = 0 + for arg in ir.arguments: + if is_tainted(arg, contract) and _is_dynamic_type(arg): + dynamic_type_count += 1 + elif dynamic_type_count > 1: + ret.append((f, n)) + dynamic_type_count = 0 + else: + dynamic_type_count = 0 + if dynamic_type_count > 1: + ret.append((f, n)) + return ret + + +class EncodePackedCollision(AbstractDetector): + """ + Detect usage of more than one dynamic type in abi.encodePacked() arguments which could to collision + """ + + ARGUMENT = "encode-packed-collision" + HELP = "ABI encodePacked Collision" + IMPACT = DetectorClassification.HIGH + CONFIDENCE = DetectorClassification.HIGH + + WIKI = ( + "https://github.com/crytic/slither/wiki/Detector-Documentation#abi-encodePacked-collision" + ) + + WIKI_TITLE = "ABI encodePacked Collision" + WIKI_DESCRIPTION = """Detect collision due to dynamic type usages in `abi.encodePacked`""" + + WIKI_EXPLOIT_SCENARIO = """ +```solidity +contract Sign { + function get_hash_for_signature(string name, string doc) external returns(bytes32) { + return keccak256(abi.encodePacked(name, doc)); + } +} +``` +Bob calls `get_hash_for_signature` with (`bob`, `This is the content`). The hash returned is used as an ID. +Eve creates a collision with the ID using (`bo`, `bThis is the content`) and compromises the system. +""" + WIKI_RECOMMENDATION = """Do not use more than one dynamic type in `abi.encodePacked()` +(see the [Solidity documentation](https://solidity.readthedocs.io/en/v0.5.10/abi-spec.html?highlight=abi.encodePacked#non-standard-packed-modeDynamic)). +Use `abi.encode()`, preferably.""" + + def _detect(self): + """Detect usage of more than one dynamic type in abi.encodePacked(..) arguments which could lead to collision""" + results = [] + for c in self.compilation_unit.contracts: + values = _detect_abi_encodePacked_collision(c) + for func, node in values: + info = [ + func, + " calls abi.encodePacked() with multiple dynamic arguments:\n\t- ", + node, + "\n", + ] + json = self.generate_result(info) + results.append(json) + + return results diff --git a/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt new file mode 100644 index 000000000..af7269fcf --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt @@ -0,0 +1,15 @@ +EncodePackedCollision.bad4(bytes,bytes) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#34-36) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(a,a2,a3,a) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#35) + +EncodePackedCollision.bad2(string,uint256[]) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#24-26) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,arra) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#25) + +EncodePackedCollision.bad3_get_hash_for_signature(string,string) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#29-31) calls abi.encodePacked() with multiple dynamic arguments: + - keccak256(bytes)(abi.encodePacked(name,doc)) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#30) + +EncodePackedCollision.bad0(string,string) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#14-16) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,strb) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#15) + +EncodePackedCollision.bad1(string,bytes) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#19-21) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,bytesa) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#20) + diff --git a/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol new file mode 100644 index 000000000..ab6648119 --- /dev/null +++ b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol @@ -0,0 +1,78 @@ +contract ABIencodePacked{ + + uint a; + string str1 = "a"; + string str2 = "bc"; + bytes _bytes = "hello world"; + uint[] arr; + uint[2] arr2; + string[3] str_arr3; /* This nested dynamic type is not supported in abi.encodePacked mode by solc */ + string[] str_array; /* This nested dynamic type is not supported in abi.encodePacked mode by solc */ + bytes[] bytes_array; /* This nested dynamic type and tuples are not supported in abi.encodePacked mode by solc */ + + /* Two dynamic types */ + function bad0(string calldata stra, string calldata strb) external{ + bytes memory packed = abi.encodePacked(stra, strb); + } + + /* Two dynamic types */ + function bad1(string calldata stra, bytes calldata bytesa) external{ + bytes memory packed = abi.encodePacked(stra, bytesa); + } + + /* Two dynamic types */ + function bad2(string calldata stra, uint[] calldata arra) external{ + bytes memory packed = abi.encodePacked(stra, arra); + } + + /* Two dynamic types */ + function bad3_get_hash_for_signature(string calldata name, string calldata doc) external returns (bytes32) { + return keccak256(abi.encodePacked(name, doc)); + } + + /* Two dynamic types between non dynamic types */ + function bad4(bytes calldata a2, bytes calldata a3) external { + bytes memory packed = abi.encodePacked(a, a2, a3, a); + } + + /* Two dynamic types but static values*/ + function good0() external{ + bytes memory packed = abi.encodePacked(str1, str2); + } + + /* Two dynamic types but static values*/ + function good1() external{ + bytes memory packed = abi.encodePacked(str1, _bytes); + } + + /* Two dynamic types but static values*/ + function good2() external{ + bytes memory packed = abi.encodePacked(str1, arr); + } + + /* No dynamic types */ + function good3() external{ + bytes memory packed = abi.encodePacked(a); + } + + /* One dynamic type */ + function good4() external{ + bytes memory packed = abi.encodePacked(str1); + } + + /* One dynamic type */ + function good5() external{ + bytes memory packed = abi.encodePacked(a, str1); + } + + /* One dynamic type */ + function good6() external{ + bytes memory packed = abi.encodePacked(str1, arr2); + } + + /* Two dynamic types but not consecutive*/ + function good7(string calldata a, uint b, string calldata c) external{ + bytes memory packed = abi.encodePacked(a, b, c); + } +} + diff --git a/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip new file mode 100644 index 0000000000000000000000000000000000000000..bddf0b7c54da68723a5e32ab06a27bfdfae68599 GIT binary patch literal 6125 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 Date: Mon, 17 Apr 2023 15:14:46 -0500 Subject: [PATCH 046/105] run markdownlint --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7017c7802..1d1a9497f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,11 +79,11 @@ How do I know what kind of test(s) to write? For each new detector, at least one regression tests must be present. -1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. +1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. 2. Create a test contract in `tests/e2e/detectors/test_data//`. 3. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` -4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. -5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. +4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. +5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. 6. Run `pytest tests/e2e/detectors/test_detectors.py` to ensure everything worked. Then, add and commit the files to git. > ##### Helpful commands for detector tests From 9809da2f6e5034fecccf40c022cd72f044ae3829 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 18 Apr 2023 10:19:17 -0500 Subject: [PATCH 047/105] Change arguments from `skip_` to `include_`, and invert conditions. --- slither/utils/code_generation.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index b2da93764..f7d0a8db6 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -24,33 +24,37 @@ if TYPE_CHECKING: def generate_interface( contract: "Contract", unroll_structs: bool = True, - skip_events: bool = False, - skip_errors: bool = False, - skip_enums: bool = False, - skip_structs: bool = False, + include_events: bool = True, + include_errors: bool = True, + include_enums: bool = True, + include_structs: bool = True, ) -> str: """ Generates code for a Solidity interface to the contract. Args: contract: A Contract object. - unroll_structs: Specifies whether to use structures' underlying types instead of the user-defined type. + unroll_structs: Whether to use structures' underlying types instead of the user-defined type (default: True). + include_events: Whether to include event signatures in the interface (default: True). + include_errors: Whether to include custom error signatures in the interface (default: True). + include_enums: Whether to include enum definitions in the interface (default: True). + include_structs: Whether to include struct definitions in the interface (default: True). Returns: A string with the code for an interface, with function stubs for all public or external functions and state variables, as well as any events, custom errors and/or structs declared in the contract. """ interface = f"interface I{contract.name} {{\n" - if not skip_events: + if include_events: for event in contract.events: name, args = event.signature interface += f" event {name}({', '.join(args)});\n" - if not skip_errors: + if include_errors: for error in contract.custom_errors: interface += f" error {generate_custom_error_interface(error, unroll_structs)};\n" - if not skip_enums: + if include_enums: for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" - if not skip_structs: + if include_structs: for struct in contract.structures: interface += generate_struct_interface_str(struct, indent=4) for var in contract.state_variables_entry_points: From 1bbf3f7cf888cb00ee22f0a260e307b4402800cc Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 18 Apr 2023 10:19:38 -0500 Subject: [PATCH 048/105] Check visibility in generate_interface_variable_signature --- slither/utils/code_generation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f7d0a8db6..1abc1c1d8 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -72,6 +72,8 @@ def generate_interface( def generate_interface_variable_signature( var: "StateVariable", unroll_structs: bool = True ) -> Optional[str]: + if var.visibility in ["private", "internal"]: + return None if unroll_structs: params = [ convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") From 7167abd51e30050b369232de70fddd9be46d43f9 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 02:52:27 +0800 Subject: [PATCH 049/105] Bug Fix: Contract obj is_fully_implemented Previously was not updating the is_fully_implemented property due to incorrectly included in if statement. --- slither/solc_parsing/declarations/contract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index f3202d00c..0f4aef11e 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -170,8 +170,8 @@ class ContractSolc(CallerContextExpression): elif attributes["contractKind"] == "library": self._contract.is_library = True self._contract.contract_kind = attributes["contractKind"] - self._contract.is_fully_implemented = attributes["fullyImplemented"] + self._contract.is_fully_implemented = attributes["fullyImplemented"] self._linearized_base_contracts = attributes["linearizedBaseContracts"] # self._contract.fullyImplemented = attributes["fullyImplemented"] From 4f87672be71c2a2ac95589479dc6c563a6a7d5f7 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 18 Apr 2023 17:14:40 -0500 Subject: [PATCH 050/105] Use inner function to clean up generate_interface_function_signature --- slither/utils/code_generation.py | 71 ++++++++++++++------------------ 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 1abc1c1d8..0699bb262 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,5 +1,5 @@ # Functions for generating Solidity code -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Optional, List from slither.utils.type import ( convert_type_for_solidity_signature_to_string, @@ -17,7 +17,8 @@ from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: from slither.core.declarations import FunctionContract, CustomErrorContract - from slither.core.variables import StateVariable + from slither.core.variables.state_variable import StateVariable + from slither.core.variables.local_variable import LocalVariable # pylint: disable=too-many-arguments @@ -110,12 +111,39 @@ def generate_interface_function_signature( Args: func: A FunctionContract object + unroll_structs: Determines whether structs are unrolled into underlying types (default: True) Returns: The function interface as a str (contains the return values). Returns None if the function is private or internal, or is a constructor/fallback/receive. """ + def format_params_or_returns(variables: List["LocalVariable"], unroll: bool) -> List[str]: + if unroll: + return [ + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + for var in variables + ] + return [ + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + + f" {var.location}" + if isinstance(var.type, ArrayType) + and isinstance(var.type.type, (UserDefinedType, ElementaryType)) + else f"{str(var.type.type)} memory" + if isinstance(var.type, UserDefinedType) + and isinstance(var.type.type, (Structure, Enum)) + else "address" + if isinstance(var.type, UserDefinedType) and isinstance(var.type.type, Contract) + else f"{var.type} {var.location}" + if var.type.is_dynamic + else str(var.type) + for var in variables + ] + name, _, _ = func.signature if ( func not in func.contract.functions_entry_points @@ -127,43 +155,8 @@ def generate_interface_function_signature( view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" - returns = [ - convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") - if unroll_structs - else convert_type_for_solidity_signature_to_string(ret.type) - .replace("(", "") - .replace(")", "") - + f" {ret.location}" - if isinstance(ret.type, ArrayType) - and isinstance(ret.type.type, (UserDefinedType, ElementaryType)) - else f"{str(ret.type.type)} memory" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) - else "address" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) - else f"{ret.type} {ret.location}" - if ret.type.is_dynamic - else str(ret.type) - for ret in func.returns - ] - parameters = [ - convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") - if unroll_structs - else convert_type_for_solidity_signature_to_string(param.type) - .replace("(", "") - .replace(")", "") - + f" {param.location}" - if isinstance(param.type, ArrayType) - and isinstance(param.type.type, (UserDefinedType, ElementaryType)) - else f"{str(param.type.type)} memory" - if isinstance(param.type, UserDefinedType) - and isinstance(param.type.type, (Structure, Enum)) - else "address" - if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) - else f"{param.type} {param.location}" - if param.type.is_dynamic - else str(param.type) - for param in func.parameters - ] + returns = format_params_or_returns(func.returns, unroll_structs) + parameters = format_params_or_returns(func.parameters, unroll_structs) _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) From 1067dc2e9e8e14d1b059bd218229cb0a1266c908 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 13:40:45 +0800 Subject: [PATCH 051/105] Remove legacy comment Co-authored-by: alpharush <0xalpharush@protonmail.com> --- slither/solc_parsing/declarations/contract.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index 0f4aef11e..74a1cbcf0 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -173,7 +173,6 @@ class ContractSolc(CallerContextExpression): self._contract.is_fully_implemented = attributes["fullyImplemented"] self._linearized_base_contracts = attributes["linearizedBaseContracts"] - # self._contract.fullyImplemented = attributes["fullyImplemented"] # Parse base contract information self._parse_base_contract_info() From 2a1d7d59c2e3b273a08f0e032b5eb535e3d06760 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 13:50:28 +0800 Subject: [PATCH 052/105] Add new test for concrete contracts Concrete as in "all functions in contract are fully defined" --- tests/unit/core/test_contract_declaration.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 776082935..59024f87b 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -27,6 +27,25 @@ def test_abstract_contract(solc_binary_path) -> None: assert not slither.contracts[0].is_fully_implemented +def test_concrete_contract(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) + assert slither.contracts[0].is_fully_implemented + + solc_path = solc_binary_path("0.5.0") + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path + ) + assert slither.contracts[0].is_fully_implemented + + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), + solc_force_legacy_json=True, + solc=solc_path, + ) + assert slither.contracts[0].is_fully_implemented + + def test_private_variable(solc_binary_path) -> None: solc_path = solc_binary_path("0.8.15") slither = Slither( From 0a19a5536f3b1abefe493f35e7e367590da1a387 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:06:42 +0800 Subject: [PATCH 053/105] Create concrete.sol --- .../core/test_data/contract_declaration/concrete.sol | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tests/unit/core/test_data/contract_declaration/concrete.sol diff --git a/tests/unit/core/test_data/contract_declaration/concrete.sol b/tests/unit/core/test_data/contract_declaration/concrete.sol new file mode 100644 index 000000000..80a181f66 --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/concrete.sol @@ -0,0 +1,9 @@ +pragma solidity ^0.8.0; + +contract SimpleStorage { + uint256 public value; + + function setValue(uint256 newValue) public { + value = newValue; + } +} From 94a499983b913d9f40460f02c5e600ad0463b2a7 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:14:42 +0800 Subject: [PATCH 054/105] Name contract as Concrete --- tests/unit/core/test_data/contract_declaration/concrete.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/core/test_data/contract_declaration/concrete.sol b/tests/unit/core/test_data/contract_declaration/concrete.sol index 80a181f66..602f50b20 100644 --- a/tests/unit/core/test_data/contract_declaration/concrete.sol +++ b/tests/unit/core/test_data/contract_declaration/concrete.sol @@ -1,6 +1,6 @@ pragma solidity ^0.8.0; -contract SimpleStorage { +contract Concrete { uint256 public value; function setValue(uint256 newValue) public { From 23b13ed692dead349f698b674c801aab528e584e Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:29:13 +0800 Subject: [PATCH 055/105] Use concrete contract for testing --- tests/unit/core/test_contract_declaration.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 59024f87b..6b0a52295 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -29,17 +29,11 @@ def test_abstract_contract(solc_binary_path) -> None: def test_concrete_contract(solc_binary_path) -> None: solc_path = solc_binary_path("0.8.0") - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) - assert slither.contracts[0].is_fully_implemented - - solc_path = solc_binary_path("0.5.0") - slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path - ) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc=solc_path) assert slither.contracts[0].is_fully_implemented slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), + Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc_force_legacy_json=True, solc=solc_path, ) From 80c47c370c944ce653c0dd0225ff605b27a24f40 Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 19 Apr 2023 10:07:21 -0500 Subject: [PATCH 056/105] Use a more legible inner function with list comprehension outside --- slither/utils/code_generation.py | 47 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 0699bb262..bb8344d8f 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,5 +1,5 @@ # Functions for generating Solidity code -from typing import TYPE_CHECKING, Optional, List +from typing import TYPE_CHECKING, Optional from slither.utils.type import ( convert_type_for_solidity_signature_to_string, @@ -118,31 +118,30 @@ def generate_interface_function_signature( Returns None if the function is private or internal, or is a constructor/fallback/receive. """ - def format_params_or_returns(variables: List["LocalVariable"], unroll: bool) -> List[str]: + def format_var(var: "LocalVariable", unroll: bool) -> str: if unroll: - return [ + return ( convert_type_for_solidity_signature_to_string(var.type) .replace("(", "") .replace(")", "") - for var in variables - ] - return [ - convert_type_for_solidity_signature_to_string(var.type) - .replace("(", "") - .replace(")", "") - + f" {var.location}" - if isinstance(var.type, ArrayType) - and isinstance(var.type.type, (UserDefinedType, ElementaryType)) - else f"{str(var.type.type)} memory" - if isinstance(var.type, UserDefinedType) - and isinstance(var.type.type, (Structure, Enum)) - else "address" - if isinstance(var.type, UserDefinedType) and isinstance(var.type.type, Contract) - else f"{var.type} {var.location}" - if var.type.is_dynamic - else str(var.type) - for var in variables - ] + ) + if isinstance(var.type, ArrayType) and isinstance( + var.type.type, (UserDefinedType, ElementaryType) + ): + return ( + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + + f" {var.location}" + ) + if isinstance(var.type, UserDefinedType): + if isinstance(var.type.type, (Structure, Enum)): + return f"{str(var.type.type)} memory" + if isinstance(var.type.type, Contract): + return "address" + if var.type.is_dynamic: + return f"{var.type} {var.location}" + return str(var.type) name, _, _ = func.signature if ( @@ -155,8 +154,8 @@ def generate_interface_function_signature( view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" - returns = format_params_or_returns(func.returns, unroll_structs) - parameters = format_params_or_returns(func.parameters, unroll_structs) + returns = [format_var(ret, unroll_structs) for ret in func.returns] + parameters = [format_var(param, unroll_structs) for param in func.parameters] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) From ae2d16a9bb451b0ba99d4200e98867e5f8b7591f Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:38:22 +0800 Subject: [PATCH 057/105] Update tests/unit/core/test_contract_declaration.py Co-authored-by: alpharush <0xalpharush@protonmail.com> --- tests/unit/core/test_contract_declaration.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 6b0a52295..25809ffa8 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -32,6 +32,7 @@ def test_concrete_contract(solc_binary_path) -> None: slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc=solc_path) assert slither.contracts[0].is_fully_implemented + solc_path = solc_binary_path("0.5.0") slither = Slither( Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc_force_legacy_json=True, From e42c746896bff2e74b9382fc9e55d0f907925db3 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:51:02 +0800 Subject: [PATCH 058/105] Create concrete_old.sol For 0.5.0 pragma testing --- .../test_data/contract_declaration/concrete_old.sol | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/unit/core/test_data/contract_declaration/concrete_old.sol diff --git a/tests/unit/core/test_data/contract_declaration/concrete_old.sol b/tests/unit/core/test_data/contract_declaration/concrete_old.sol new file mode 100644 index 000000000..c291e19af --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/concrete_old.sol @@ -0,0 +1,13 @@ +pragma solidity ^0.5.0; + +contract ConcreteOld { + uint256 public myNumber; + + constructor(uint256 initialNumber) public { + myNumber = initialNumber; + } + + function setNumber(uint256 newNumber) public { + myNumber = newNumber; + } +} From b60eb9ed57aa89db251df1100cc4d43a2f559321 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:52:03 +0800 Subject: [PATCH 059/105] Run pragma 0.5.0 for the correct (old) contract --- tests/unit/core/test_contract_declaration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 25809ffa8..28d0fae55 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -34,7 +34,7 @@ def test_concrete_contract(solc_binary_path) -> None: solc_path = solc_binary_path("0.5.0") slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), + Path(CONTRACT_DECL_TEST_ROOT, "concrete_old.sol").as_posix(), solc_force_legacy_json=True, solc=solc_path, ) From d15cc6ad142513e6c09eca58ee3361fb9b69b602 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:05:58 +0200 Subject: [PATCH 060/105] Fix custom errors type hint --- slither/core/compilation_unit.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slither/core/compilation_unit.py b/slither/core/compilation_unit.py index 4550ea894..6d24786eb 100644 --- a/slither/core/compilation_unit.py +++ b/slither/core/compilation_unit.py @@ -13,7 +13,7 @@ from slither.core.declarations import ( Function, Modifier, ) -from slither.core.declarations.custom_error import CustomError +from slither.core.declarations.custom_error_top_level import CustomErrorTopLevel from slither.core.declarations.enum_top_level import EnumTopLevel from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.declarations.structure_top_level import StructureTopLevel @@ -46,7 +46,7 @@ class SlitherCompilationUnit(Context): self._using_for_top_level: List[UsingForTopLevel] = [] self._pragma_directives: List[Pragma] = [] self._import_directives: List[Import] = [] - self._custom_errors: List[CustomError] = [] + self._custom_errors: List[CustomErrorTopLevel] = [] self._user_defined_value_types: Dict[str, TypeAliasTopLevel] = {} self._all_functions: Set[Function] = set() @@ -216,7 +216,7 @@ class SlitherCompilationUnit(Context): return self._using_for_top_level @property - def custom_errors(self) -> List[CustomError]: + def custom_errors(self) -> List[CustomErrorTopLevel]: return self._custom_errors @property From 637b8e2a9d1ea417d44b31c9ea55c1228f5a6bf1 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:07:04 +0200 Subject: [PATCH 061/105] Expose the custom error --- slither/core/declarations/solidity_variables.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slither/core/declarations/solidity_variables.py b/slither/core/declarations/solidity_variables.py index f0e903d7b..552cf9e7f 100644 --- a/slither/core/declarations/solidity_variables.py +++ b/slither/core/declarations/solidity_variables.py @@ -201,6 +201,10 @@ class SolidityCustomRevert(SolidityFunction): self._custom_error = custom_error self._return_type: List[Union[TypeInformation, ElementaryType]] = [] + @property + def custom_error(self) -> CustomError: + return self._custom_error + def __eq__(self, other: Any) -> bool: return ( self.__class__ == other.__class__ From 718e51160b19f63e207e01a54e2c79a8fd3f5d74 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:13:09 +0200 Subject: [PATCH 062/105] Improve handling of top level usages --- slither/tools/flattening/flattening.py | 43 +++++++++++++++----------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/slither/tools/flattening/flattening.py b/slither/tools/flattening/flattening.py index 67b3c00a3..7603f5e93 100644 --- a/slither/tools/flattening/flattening.py +++ b/slither/tools/flattening/flattening.py @@ -11,6 +11,7 @@ from slither.core.declarations import SolidityFunction, EnumContract, StructureC from slither.core.declarations.contract import Contract from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.declarations.top_level import TopLevel +from slither.core.declarations.solidity_variables import SolidityCustomRevert from slither.core.solidity_types import MappingType, ArrayType from slither.core.solidity_types.type import Type from slither.core.solidity_types.user_defined_type import UserDefinedType @@ -24,6 +25,7 @@ from slither.tools.flattening.export.export import ( ) logger = logging.getLogger("Slither-flattening") +logger.setLevel(logging.INFO) # index: where to start # patch_type: @@ -75,6 +77,7 @@ class Flattening: self._get_source_code_top_level(compilation_unit.structures_top_level) self._get_source_code_top_level(compilation_unit.enums_top_level) + self._get_source_code_top_level(compilation_unit.custom_errors) self._get_source_code_top_level(compilation_unit.variables_top_level) self._get_source_code_top_level(compilation_unit.functions_top_level) @@ -249,12 +252,14 @@ class Flattening: t: Type, contract: Contract, exported: Set[str], - list_contract: List[Contract], - list_top_level: List[TopLevel], + list_contract: Set[Contract], + list_top_level: Set[TopLevel], ): if isinstance(t, UserDefinedType): t_type = t.type - if isinstance(t_type, (EnumContract, StructureContract)): + if isinstance(t_type, TopLevel): + list_top_level.add(t_type) + elif isinstance(t_type, (EnumContract, StructureContract)): if t_type.contract != contract and t_type.contract not in exported: self._export_list_used_contracts( t_type.contract, exported, list_contract, list_top_level @@ -275,8 +280,8 @@ class Flattening: self, contract: Contract, exported: Set[str], - list_contract: List[Contract], - list_top_level: List[TopLevel], + list_contract: Set[Contract], + list_top_level: Set[TopLevel], ): # TODO: investigate why this happen if not isinstance(contract, Contract): @@ -332,19 +337,21 @@ class Flattening: for read in ir.read: if isinstance(read, TopLevel): - if read not in list_top_level: - list_top_level.append(read) - if isinstance(ir, InternalCall): - function_called = ir.function - if isinstance(function_called, FunctionTopLevel): - list_top_level.append(function_called) - - if contract not in list_contract: - list_contract.append(contract) + list_top_level.add(read) + if isinstance(ir, InternalCall) and isinstance(ir.function, FunctionTopLevel): + list_top_level.add(ir.function) + if ( + isinstance(ir, SolidityCall) + and isinstance(ir.function, SolidityCustomRevert) + and isinstance(ir.function.custom_error, TopLevel) + ): + list_top_level.add(ir.function.custom_error) + + list_contract.add(contract) def _export_contract_with_inheritance(self, contract) -> Export: - list_contracts: List[Contract] = [] # will contain contract itself - list_top_level: List[TopLevel] = [] + list_contracts: Set[Contract] = set() # will contain contract itself + list_top_level: Set[TopLevel] = set() self._export_list_used_contracts(contract, set(), list_contracts, list_top_level) path = Path(self._export_path, f"{contract.name}_{uuid.uuid4()}.sol") @@ -401,8 +408,8 @@ class Flattening: def _export_with_import(self) -> List[Export]: exports: List[Export] = [] for contract in self._compilation_unit.contracts: - list_contracts: List[Contract] = [] # will contain contract itself - list_top_level: List[TopLevel] = [] + list_contracts: Set[Contract] = set() # will contain contract itself + list_top_level: Set[TopLevel] = set() self._export_list_used_contracts(contract, set(), list_contracts, list_top_level) if list_top_level: From b76eb8cfab1145630d42c654415ca792abe015cf Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:07:23 -0400 Subject: [PATCH 063/105] add bug-revealing tests for issue #1846 --- tests/unit/slithir/test_ssa_generation.py | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 4e26aa54d..cf351e59b 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1048,3 +1048,41 @@ def test_issue_1748(slither_from_source): operations = f.slithir_operations assign_op = operations[0] assert isinstance(assign_op, InitArray) + + +def test_issue_1846_ternary_in_if(): + source = """ + contract Contract { + function foo(uint x) public returns (uint y) { + if (x > 0) { + y = x > 1 ? 2 : 3; + } else { + y = 4; + } + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + node = f.nodes[1] + assert node.type == NodeType.IF + assert node.son_true.type == NodeType.IF + assert node.son_false.type == NodeType.EXPRESSION + + +def test_issue_1846_ternary_in_ternary(): + source = """ + contract Contract { + function foo(uint x) public returns (uint y) { + y = x > 0 ? x > 1 ? 2 : 3 : 4; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + node = f.nodes[1] + assert node.type == NodeType.IF + assert node.son_true.type == NodeType.IF + assert node.son_false.type == NodeType.EXPRESSION From 3056a9e2d07b9d4d228b0d0fc4def20fd1883260 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:07:51 -0400 Subject: [PATCH 064/105] fix #1846 --- slither/core/cfg/node.py | 15 +++++++++++++++ slither/solc_parsing/declarations/function.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/slither/core/cfg/node.py b/slither/core/cfg/node.py index 5138e796a..2a48bd235 100644 --- a/slither/core/cfg/node.py +++ b/slither/core/cfg/node.py @@ -620,6 +620,21 @@ class Node(SourceMapping): # pylint: disable=too-many-public-methods """ self._sons.append(son) + def replace_son(self, ori_son: "Node", new_son: "Node") -> None: + """Replace a son node. Do nothing if the node to replace is not a son + + Args: + ori_son: son to replace + new_son: son to replace with + """ + for i, s in enumerate(self._sons): + if s.node_id == ori_son.node_id: + idx = i + break + else: + return + self._sons[idx] = new_son + def set_sons(self, sons: List["Node"]) -> None: """Set the son nodes diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index 7438a7bb0..fa165ea66 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1396,7 +1396,7 @@ class FunctionSolc(CallerContextExpression): endif_node = self._new_node(NodeType.ENDIF, node.source_mapping, node.scope) for father in node.fathers: - father.remove_son(node) + father.replace_son(node, condition_node.underlying_node) father.add_son(condition_node.underlying_node) condition_node.underlying_node.add_father(father) From c873427d2a624461e9fe67d8c2c4c0201cb3b10b Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:30:32 -0400 Subject: [PATCH 065/105] remove redundant code --- slither/solc_parsing/declarations/function.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index fa165ea66..def68a8a3 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1397,7 +1397,6 @@ class FunctionSolc(CallerContextExpression): for father in node.fathers: father.replace_son(node, condition_node.underlying_node) - father.add_son(condition_node.underlying_node) condition_node.underlying_node.add_father(father) for son in node.sons: From 3a4cdbde0a0687d79ab6772b493b68c9fe01c5c3 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Fri, 21 Apr 2023 13:46:59 -0400 Subject: [PATCH 066/105] fix broken test --- tests/unit/slithir/test_ssa_generation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index cf351e59b..62218e41a 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1050,7 +1050,7 @@ def test_issue_1748(slither_from_source): assert isinstance(assign_op, InitArray) -def test_issue_1846_ternary_in_if(): +def test_issue_1846_ternary_in_if(slither_from_source): source = """ contract Contract { function foo(uint x) public returns (uint y) { @@ -1071,7 +1071,7 @@ def test_issue_1846_ternary_in_if(): assert node.son_false.type == NodeType.EXPRESSION -def test_issue_1846_ternary_in_ternary(): +def test_issue_1846_ternary_in_ternary(slither_from_source): source = """ contract Contract { function foo(uint x) public returns (uint y) { From 1fdb17529b04844ee887e0861fb300e0328dff4e Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Fri, 21 Apr 2023 21:17:40 -0400 Subject: [PATCH 067/105] update ast parsing test artifacts --- .../expected/conditional-all.sol-0.4.0-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.1-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.10-compact.json | 5 ----- .../expected/conditional-all.sol-0.4.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.11-compact.json | 5 ----- .../expected/conditional-all.sol-0.4.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.12-compact.json | 2 +- .../expected/conditional-all.sol-0.4.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.13-compact.json | 2 +- .../expected/conditional-all.sol-0.4.13-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.14-compact.json | 2 +- .../expected/conditional-all.sol-0.4.14-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.15-compact.json | 2 +- .../expected/conditional-all.sol-0.4.15-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.16-compact.json | 2 +- .../expected/conditional-all.sol-0.4.16-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.17-compact.json | 2 +- .../expected/conditional-all.sol-0.4.17-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.18-compact.json | 2 +- .../expected/conditional-all.sol-0.4.18-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.19-compact.json | 2 +- .../expected/conditional-all.sol-0.4.19-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.2-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.20-compact.json | 2 +- .../expected/conditional-all.sol-0.4.20-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.21-compact.json | 2 +- .../expected/conditional-all.sol-0.4.21-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.22-compact.json | 2 +- .../expected/conditional-all.sol-0.4.22-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.23-compact.json | 2 +- .../expected/conditional-all.sol-0.4.23-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.24-compact.json | 2 +- .../expected/conditional-all.sol-0.4.24-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.25-compact.json | 2 +- .../expected/conditional-all.sol-0.4.25-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.26-compact.json | 2 +- .../expected/conditional-all.sol-0.4.26-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.3-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.4-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.5-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.6-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.7-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.8-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.9-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.10-compact.json | 2 +- .../expected/conditional-all.sol-0.5.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.11-compact.json | 2 +- .../expected/conditional-all.sol-0.5.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.12-compact.json | 2 +- .../expected/conditional-all.sol-0.5.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.13-compact.json | 2 +- .../expected/conditional-all.sol-0.5.13-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.14-compact.json | 2 +- .../expected/conditional-all.sol-0.5.14-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.15-compact.json | 2 +- .../expected/conditional-all.sol-0.5.15-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.16-compact.json | 2 +- .../expected/conditional-all.sol-0.5.16-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.17-compact.json | 2 +- .../expected/conditional-all.sol-0.5.17-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.7-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.8-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.9-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.10-compact.json | 2 +- .../expected/conditional-all.sol-0.6.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.11-compact.json | 2 +- .../expected/conditional-all.sol-0.6.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.12-compact.json | 2 +- .../expected/conditional-all.sol-0.6.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.7-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.8-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.9-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.8.0-compact.json | 2 +- .../expected/conditional-all.sol-0.8.1-compact.json | 2 +- .../expected/conditional-all.sol-0.8.10-compact.json | 2 +- .../expected/conditional-all.sol-0.8.11-compact.json | 2 +- .../expected/conditional-all.sol-0.8.12-compact.json | 2 +- .../expected/conditional-all.sol-0.8.13-compact.json | 2 +- .../expected/conditional-all.sol-0.8.14-compact.json | 2 +- .../expected/conditional-all.sol-0.8.15-compact.json | 2 +- .../expected/conditional-all.sol-0.8.2-compact.json | 2 +- .../expected/conditional-all.sol-0.8.3-compact.json | 2 +- .../expected/conditional-all.sol-0.8.4-compact.json | 2 +- .../expected/conditional-all.sol-0.8.5-compact.json | 2 +- .../expected/conditional-all.sol-0.8.6-compact.json | 2 +- .../expected/conditional-all.sol-0.8.7-compact.json | 2 +- .../expected/conditional-all.sol-0.8.8-compact.json | 2 +- .../expected/conditional-all.sol-0.8.9-compact.json | 2 +- 146 files changed, 134 insertions(+), 194 deletions(-) delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json deleted file mode 100644 index 6ef3d40e7..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json index 6ef3d40e7..01b7d5fb7 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file From 0dde4cc1f848672dfef8bf8c72dea684c8f8a720 Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 22 Apr 2023 17:25:32 +0200 Subject: [PATCH 068/105] Fix abi.decode with a UserDefinedType fixed array --- .../visitors/slithir/expression_to_slithir.py | 6 +++++- tests/e2e/solc_parsing/test_ast_parsing.py | 1 + ...bi-decode-fixed-array.sol-0.8.10-compact.zip | Bin 0 -> 4857 bytes ...bi-decode-fixed-array.sol-0.8.11-compact.zip | Bin 0 -> 4875 bytes ...bi-decode-fixed-array.sol-0.8.12-compact.zip | Bin 0 -> 4870 bytes ...bi-decode-fixed-array.sol-0.8.13-compact.zip | Bin 0 -> 4870 bytes ...bi-decode-fixed-array.sol-0.8.14-compact.zip | Bin 0 -> 4862 bytes ...bi-decode-fixed-array.sol-0.8.15-compact.zip | Bin 0 -> 4868 bytes ...abi-decode-fixed-array.sol-0.8.8-compact.zip | Bin 0 -> 4856 bytes ...i-decode-fixed-array.sol-0.8.10-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.11-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.12-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.13-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.14-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.15-compact.json | 7 +++++++ ...bi-decode-fixed-array.sol-0.8.8-compact.json | 7 +++++++ .../abi-decode-fixed-array.sol | 16 ++++++++++++++++ 17 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index 90905be4e..d55dfb589 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -10,6 +10,7 @@ from slither.core.declarations import ( Contract, EnumContract, EnumTopLevel, + Enum, ) from slither.core.expressions import ( AssignmentOperation, @@ -405,10 +406,13 @@ class ExpressionToSlithIR(ExpressionVisitor): right = get(expression.expression_right) operation: Operation # Left can be a type for abi.decode(var, uint[2]) - if isinstance(left, Type): + if isinstance(left, (Type, Contract, Enum)): # Nested type are not yet supported by abi.decode, so the assumption # Is that the right variable must be a constant assert isinstance(right, Constant) + # Case for abi.decode(var, I[2]) where I is an interface/contract or an enum + if isinstance(left, (Contract, Enum)): + left = UserDefinedType(left) t = ArrayType(left, int(right.value)) set_val(expression, t) return diff --git a/tests/e2e/solc_parsing/test_ast_parsing.py b/tests/e2e/solc_parsing/test_ast_parsing.py index 78aa8a291..790f947cc 100644 --- a/tests/e2e/solc_parsing/test_ast_parsing.py +++ b/tests/e2e/solc_parsing/test_ast_parsing.py @@ -428,6 +428,7 @@ ALL_TESTS = [ Test("user_defined_value_type/in_parenthesis-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("user_defined_value_type/top-level-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("user_defined_value_type/using-for-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/abi-decode-fixed-array.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("bytes_call.sol", ["0.8.12"]), Test("modifier_identifier_path.sol", VERSIONS_08), Test("free_functions/libraries_from_free.sol", ["0.8.12"]), diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..b65e511efb24373d3157a32071cdb114e9b73141 GIT binary patch literal 4857 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 G0Q^7kpfbe( literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9a78fceafc83990aa8d7df96d3f808a8e85035e GIT binary patch literal 4875 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 YgDO2uJpBK@u>Moa|7`Yu$O{1YAIe@ZKmY&$ literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..1b69e8e3d5d10acd501881ea862de234b4eb0006 GIT binary patch literal 4870 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 K{C|`S0QevDwlub~brpV*2Eq8cv@WhGF=9 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 VxOo44Vg098|Je`!u`U4Me*mviO`QM$ literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..d574a7cb8486ac0764de875611abf38c434d2514 GIT binary patch literal 4856 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 G0Q^6wYe&HV literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json new file mode 100644 index 000000000..070b687bd --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol new file mode 100644 index 000000000..14a59b5a2 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol @@ -0,0 +1,16 @@ +interface I {} +enum A {a,b} + +contract C { + I[6] interfaceArray; + A[6] enumArray; + + function test_decode_interface_array(bytes memory data) public { + interfaceArray = abi.decode(data, (I[6])); + } + + function test_decode_enum_array(bytes memory data) public { + enumArray = abi.decode(data, (A[6])); + } + +} From c08191b1c1c7f7d8bfcfc11274268c0f086a41b4 Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 22 Apr 2023 17:38:58 +0200 Subject: [PATCH 069/105] Remove assertion --- slither/visitors/slithir/expression_to_slithir.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index 90905be4e..741486fb3 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -622,7 +622,6 @@ class ExpressionToSlithIR(ExpressionVisitor): set_val(expression, value) elif expression.type in [UnaryOperationType.MINUS_PRE]: lvalue = TemporaryVariable(self._node) - assert isinstance(value.type, ElementaryType) operation = Binary(lvalue, Constant("0", value.type), value, BinaryType.SUBTRACTION) operation.set_expression(expression) self._result.append(operation) From 9d7ebb556de99cc3f2709b15535d5e0e7f141e2c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 24 Apr 2023 07:54:09 -0500 Subject: [PATCH 070/105] include readme in home page of docs generated by pdoc --- slither/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slither/__init__.py b/slither/__init__.py index c709b144c..c8c3a9cc9 100644 --- a/slither/__init__.py +++ b/slither/__init__.py @@ -1 +1,5 @@ +""" +.. include:: ../README.md +""" from .slither import Slither + From d8f2b9d868b6662d86a3c98111e1c02c6142030c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 24 Apr 2023 07:57:52 -0500 Subject: [PATCH 071/105] remove newline --- slither/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/__init__.py b/slither/__init__.py index c8c3a9cc9..dd9b8a1a2 100644 --- a/slither/__init__.py +++ b/slither/__init__.py @@ -2,4 +2,3 @@ .. include:: ../README.md """ from .slither import Slither - From 5afb9355be417f163e7c420d9a7e556a676b1070 Mon Sep 17 00:00:00 2001 From: Simone Date: Mon, 24 Apr 2023 21:13:37 +0200 Subject: [PATCH 072/105] Improve tuple analysis --- .../operations/unused_return_values.py | 42 ++++++++++++------ ...turnValues_0_4_25_unused_return_sol__0.txt | 8 +++- ...turnValues_0_5_16_unused_return_sol__0.txt | 8 +++- ...turnValues_0_6_11_unused_return_sol__0.txt | 8 +++- ...eturnValues_0_7_6_unused_return_sol__0.txt | 8 +++- .../unused-return/0.4.25/unused_return.sol | 8 ++++ .../0.4.25/unused_return.sol-0.4.25.zip | Bin 3212 -> 3637 bytes .../unused-return/0.5.16/unused_return.sol | 8 ++++ .../0.5.16/unused_return.sol-0.5.16.zip | Bin 3223 -> 3651 bytes .../unused-return/0.6.11/unused_return.sol | 8 ++++ .../0.6.11/unused_return.sol-0.6.11.zip | Bin 3116 -> 3540 bytes .../unused-return/0.7.6/unused_return.sol | 8 ++++ .../0.7.6/unused_return.sol-0.7.6.zip | Bin 3039 -> 3465 bytes 13 files changed, 84 insertions(+), 22 deletions(-) diff --git a/slither/detectors/operations/unused_return_values.py b/slither/detectors/operations/unused_return_values.py index 93dda274a..80be98b45 100644 --- a/slither/detectors/operations/unused_return_values.py +++ b/slither/detectors/operations/unused_return_values.py @@ -3,7 +3,7 @@ Module detecting unused return values from external calls """ from typing import List -from slither.core.cfg.node import Node +from slither.core.cfg.node import Node, NodeType from slither.core.declarations import Function from slither.core.declarations.function_contract import FunctionContract from slither.core.variables.state_variable import StateVariable @@ -12,8 +12,8 @@ from slither.detectors.abstract_detector import ( DetectorClassification, DETECTOR_INFO, ) -from slither.slithir.operations import HighLevelCall -from slither.slithir.operations.operation import Operation +from slither.slithir.operations import HighLevelCall, Assignment, Unpack, Operation +from slither.slithir.variables import TupleVariable from slither.utils.output import Output @@ -50,13 +50,18 @@ contract MyConc{ WIKI_RECOMMENDATION = "Ensure that all the return values of the function calls are used." def _is_instance(self, ir: Operation) -> bool: # pylint: disable=no-self-use - return isinstance(ir, HighLevelCall) and ( - ( - isinstance(ir.function, Function) - and ir.function.solidity_signature - not in ["transfer(address,uint256)", "transferFrom(address,address,uint256)"] + return ( + isinstance(ir, HighLevelCall) + and ( + ( + isinstance(ir.function, Function) + and ir.function.solidity_signature + not in ["transfer(address,uint256)", "transferFrom(address,address,uint256)"] + ) + or not isinstance(ir.function, Function) ) - or not isinstance(ir.function, Function) + or ir.node.type == NodeType.TRY + and isinstance(ir, (Assignment, Unpack)) ) def detect_unused_return_values( @@ -71,18 +76,27 @@ contract MyConc{ """ values_returned = [] nodes_origin = {} + # pylint: disable=too-many-nested-blocks for n in f.nodes: for ir in n.irs: if self._is_instance(ir): # if a return value is stored in a state variable, it's ok if ir.lvalue and not isinstance(ir.lvalue, StateVariable): - values_returned.append(ir.lvalue) + values_returned.append((ir.lvalue, None)) nodes_origin[ir.lvalue] = ir + if isinstance(ir.lvalue, TupleVariable): + # we iterate the number of elements the tuple has + # and add a (variable, index) in values_returned for each of them + for index in range(len(ir.lvalue.type)): + values_returned.append((ir.lvalue, index)) for read in ir.read: - if read in values_returned: - values_returned.remove(read) - - return [nodes_origin[value].node for value in values_returned] + remove = (read, ir.index) if isinstance(ir, Unpack) else (read, None) + if remove in values_returned: + # this is needed to remove the tuple variable when the first time one of its element is used + if remove[1] is not None and (remove[0], None) in values_returned: + values_returned.remove((remove[0], None)) + values_returned.remove(remove) + return [nodes_origin[value].node for (value, _) in values_returned] def _detect(self) -> List[Output]: """Detect high level calls which return a value that are never used""" diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt index ec28fa9e5..2d70ddd1c 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#31) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#19) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#36) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt index 0cf04d283..5a651712e 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#36) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#31) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#19) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt index be0a8c687..5f1d751b7 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#19) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#31) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#36) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt index ec74a9458..4780c7905 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#31) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#19) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#36) diff --git a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol index d1c189598..ef22b63ae 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ contract Target{ function f() public returns(uint); + function g() public returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol-0.4.25.zip b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol-0.4.25.zip index bfe469a89abf4895a2d531565516f73cb9def65c..8f64587ae63b2629918c62601162154b7f26daf6 100644 GIT binary patch delta 3527 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 F001Tf2>}2A diff --git a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol index d1c189598..ef22b63ae 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ contract Target{ function f() public returns(uint); + function g() public returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol-0.5.16.zip b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol-0.5.16.zip index 90d77686955906a58c0d3cdc78f60a622bd82581..13d0d7a3237383a7148422b90c85faf13a7ddc0e 100644 GIT binary patch delta 3534 zcmV;<4KebU8N(bHP)h>@KL7#%4gkBRm{#0i?t7OF000wnkr-8f^+P_6+Z$mKi;1jb1=*y27Vz=tPXd?18Wr?*qL{RwzK`Feu6l{SWHaDAIL##UIzEjLe8NwZ`3*Ap<5iw^@?ATUUWeT`5Y z{X_F0d^9)SSxp!*Npl&7GqIh7^fewUeP#R9Gy3G5b*N(d)XSor;ORgFOSE zgboMb7Ol2GucTF60?#6rACD+q3?Q&)8J5ibGHv3s<$EGXNeMNq9hsh5#Y+hqeLa=E zU0QL15KNg{&oWYoNUzqpQuRMWyoPNKkc&iYp4-Wg0+@Gq`xNz zq%nuU>Q&Z%6OTYs?X?PSEg_neQR=xG_>59UQDK!)uWRYSY3Ljelw&6@b8@LK4B6hp zAo5_28c+Wr>vpdiMGT++ggOi!ii5H>LQ% z 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 F003#d{7(P? diff --git a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol index 08d0eb3a5..279ac627e 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ abstract contract Target{ function f() public virtual returns(uint); + function g() public virtual returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol-0.6.11.zip b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol-0.6.11.zip index 5f04b6a004272faa5ec877d604f9918a52156b31..30ae730404a451514b5337af4a27929e64888887 100644 GIT binary patch delta 3429 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 H00000t{9gJ delta 2995 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 pP)h*w0LM;~g$+pt!wUca005Zqy5ax; diff --git a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol index 08d0eb3a5..279ac627e 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ abstract contract Target{ function f() public virtual returns(uint); + function g() public virtual returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol-0.7.6.zip b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol-0.7.6.zip index ac668ccc923fd53f8f875d8ab49578e6bf687e0a..08ecd82e6a2d57b269fc16e1d584da2977283575 100644 GIT binary patch delta 3353 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 delta 2917 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 POOrYcNd|Tc00000CghU@ From 34f0e671f552aa398a5ac6b42212959a6f063dfd Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 26 Apr 2023 15:21:46 -0500 Subject: [PATCH 073/105] update super-linter org --- .github/workflows/black.yml | 2 +- .github/workflows/linter.yml | 2 +- .github/workflows/pylint.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 1730f4334..df51a3ddf 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -42,7 +42,7 @@ jobs: cp pyproject.toml .github/linters - name: Black - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # run linter on everything to catch preexisting problems diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index bc9177802..f972cbcd1 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -43,7 +43,7 @@ jobs: cp pyproject.toml .github/linters - name: Lint everything else - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # run linter on everything to catch preexisting problems diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 06958a10d..983c176a9 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -37,7 +37,7 @@ jobs: cp pyproject.toml .github/linters - name: Pylint - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # Run linters only on new files for pylint to speed up the CI From e51cee61b37127921de14ef456ac4e92bf415dac Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 27 Apr 2023 14:45:52 +0200 Subject: [PATCH 074/105] Add test --- tests/e2e/solc_parsing/test_ast_parsing.py | 1 + .../negate-unary-element.sol-0.8.16-compact.zip | Bin 0 -> 3106 bytes .../negate-unary-element.sol-0.8.16-compact.json | 5 +++++ .../test_data/negate-unary-element.sol | 5 +++++ 4 files changed, 11 insertions(+) create mode 100644 tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/negate-unary-element.sol diff --git a/tests/e2e/solc_parsing/test_ast_parsing.py b/tests/e2e/solc_parsing/test_ast_parsing.py index 78aa8a291..f038e0d0a 100644 --- a/tests/e2e/solc_parsing/test_ast_parsing.py +++ b/tests/e2e/solc_parsing/test_ast_parsing.py @@ -451,6 +451,7 @@ ALL_TESTS = [ Test("yul-top-level-0.8.0.sol", ["0.8.0"]), Test("complex_imports/import_aliases_issue_1319/test.sol", ["0.5.12"]), Test("yul-state-constant-access.sol", ["0.8.16"]), + Test("negate-unary-element.sol", ["0.8.16"]), ] # create the output folder if needed try: diff --git a/tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c18e5091b01d8c4902065e03e68dfeb4563f1b36 GIT binary patch literal 3106 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json new file mode 100644 index 000000000..8381c16f7 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json @@ -0,0 +1,5 @@ +{ + "T": { + "a(int256[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/negate-unary-element.sol b/tests/e2e/solc_parsing/test_data/negate-unary-element.sol new file mode 100644 index 000000000..b3f03c48d --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/negate-unary-element.sol @@ -0,0 +1,5 @@ +contract T { + function a(int256[] memory data) public returns(int256) { + return -data[0]; + } +} \ No newline at end of file From 4f676309902a9e144bd75af1fa1db0770f0b9ec2 Mon Sep 17 00:00:00 2001 From: bart1e Date: Thu, 9 Feb 2023 19:39:58 +0100 Subject: [PATCH 075/105] Detector for incorrect using-for at the top level added --- slither/detectors/all_detectors.py | 1 + .../statements/incorrect_using_for.py | 200 ++++++++++++++++++ .../0.8.17/IncorrectUsingForTopLevel.sol | 94 ++++++++ ...TopLevel.sol.0.8.17.IncorrectUsingFor.json | 124 +++++++++++ tests/e2e/detectors/test_detectors.py | 5 + 5 files changed, 424 insertions(+) create mode 100644 slither/detectors/statements/incorrect_using_for.py create mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol create mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 9722b8793..21374a38b 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,3 +89,4 @@ from .functions.protected_variable import ProtectedVariables from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity +from .statements.incorrect_using_for import IncorrectUsingFor \ No newline at end of file diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py new file mode 100644 index 000000000..7cc18deaf --- /dev/null +++ b/slither/detectors/statements/incorrect_using_for.py @@ -0,0 +1,200 @@ +from slither.core.declarations import Contract, Structure, Enum +from slither.core.declarations.using_for_top_level import UsingForTopLevel +from slither.core.solidity_types import ( + UserDefinedType, + Type, + ElementaryType, + TypeAlias, + MappingType, + ArrayType, +) +from slither.core.solidity_types.elementary_type import Uint, Int, Byte +from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification + + +class IncorrectUsingFor(AbstractDetector): + """ + Detector for incorrect using-for statement usage. + """ + + ARGUMENT = "incorrect-using-for" + HELP = "Detects using-for statement usage when no function from a given library matches a given type" + IMPACT = DetectorClassification.INFORMATIONAL + CONFIDENCE = DetectorClassification.HIGH + + WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-using-for-usage" + + WIKI_TITLE = "Incorrect usage of using-for statement" + WIKI_DESCRIPTION = "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " \ + "(`using for `). However, the Solidity compiler doesn't check whether a given " \ + "library has at least one function matching a given type. If it doesn't, such a statement has " \ + "no effect and may be confusing. " + + # region wiki_exploit_scenario + WIKI_EXPLOIT_SCENARIO = """ + ```solidity + library L { + function f(bool) public pure {} + } + + using L for uint; + ``` + Such a code will compile despite the fact that `L` has no function with `uint` as its first argument.""" + # endregion wiki_exploit_scenario + WIKI_RECOMMENDATION = "Make sure that the libraries used in `using-for` statements have at least one function " \ + "matching a type used in these statements. " + + @staticmethod + def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: + """ + Returns True if contract1 may be implicitly converted to contract2. + """ + return contract1 == contract2 or contract2 in contract1.inheritance + + @staticmethod + def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both uints. + """ + assert type1.type in Uint and type2.type in Uint + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both ints. + """ + assert type1.type in Int and type2.type in Int + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_addresses( + type1: ElementaryType, type2: ElementaryType + ) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. + """ + assert type1.type == "address" and type2.type == "address" + # payable attribute to be implemented; for now, always return True + return True + + @staticmethod + def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. + """ + assert type1.type in Byte and type2.type in Byte + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_elementary_types( + type1: ElementaryType, type2: ElementaryType + ) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if type1.type == "bool" and type2.type == "bool": + return True + if type1.type == "string" and type2.type == "string": + return True + if type1.type == "bytes" and type2.type == "bytes": + return True + if type1.type == "address" and type2.type == "address": + return IncorrectUsingFor._implicitly_convertible_to_for_addresses(type1, type2) + if type1.type in Uint and type2.type in Uint: + return IncorrectUsingFor._implicitly_convertible_to_for_uints(type1, type2) + if type1.type in Int and type2.type in Int: + return IncorrectUsingFor._implicitly_convertible_to_for_ints(type1, type2) + if ( + type1.type != "bytes" + and type2.type != "bytes" + and type1.type in Byte + and type2.type in Byte + ): + return IncorrectUsingFor._implicitly_convertible_to_for_bytes(type1, type2) + return False + + @staticmethod + def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return type1.type_from == type2.type_from and type1.type_to == type2.type_to + + @staticmethod + def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return IncorrectUsingFor._implicitly_convertible_to(type1.type, type2.type) + + @staticmethod + def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): + if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): + return type1.type == type2.type + return False + + if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): + if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): + return IncorrectUsingFor._implicitly_convertible_to_for_contracts( + type1.type, type2.type + ) + + if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): + return IncorrectUsingFor._implicitly_convertible_to_for_elementary_types(type1, type2) + + if isinstance(type1, MappingType) and isinstance(type2, MappingType): + return IncorrectUsingFor._implicitly_convertible_to_for_mappings(type1, type2) + + if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): + return IncorrectUsingFor._implicitly_convertible_to_for_arrays(type1, type2) + + return False + + @staticmethod + def _is_correctly_used(type_: Type, library: Contract) -> bool: + """ + Checks if a `using library for type_` statement is used correctly (that is, does library contain any function + with type_ as the first argument). + """ + for f in library.functions: + if len(f.parameters) == 0: + continue + if not IncorrectUsingFor._implicitly_convertible_to(type_, f.parameters[0].type): + continue + return True + return False + + def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): + info = f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " \ + f"{library}.\n" + res = self.generate_result(info) + results.append(res) + + def _detect(self): + results = [] + + for uf in self.compilation_unit.using_for_top_level: + # UsingForTopLevel.using_for is a dict with a single entry, which is mapped to a list of functions/libraries + # the following code extracts the type from using-for and skips using-for statements with functions + type_ = list(uf.using_for.keys())[0] + for lib_or_fcn in uf.using_for[type_]: + # checking for using-for with functions is already performed by the compiler; we only consider libraries + if isinstance(lib_or_fcn, UserDefinedType): + if not self._is_correctly_used(type_, lib_or_fcn.type): + self._append_result(results, uf, type_, lib_or_fcn.type) + + return results diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol new file mode 100644 index 000000000..5b173e7b5 --- /dev/null +++ b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol @@ -0,0 +1,94 @@ +pragma solidity 0.8.17; + +struct S1 +{ + uint __; +} + +struct S2 +{ + uint128 __; +} + +enum E1 +{ + A, + B +} + +enum E2 +{ + A, + B +} + +contract C0 +{ + +} + +contract C1 is C0 +{ + +} + +contract C2 is C1 +{ + +} + +contract C3 +{ + +} + +type custom_uint is uint248; +type custom_int is int248; + +library L +{ + function f0(C0) public pure {} + function f1(bool) public pure {} + function f2(string memory) public pure {} + function f3(bytes memory) public pure {} + function f4(uint248) public pure {} + function f5(int248) public pure {} + function f6(address) public pure {} + function f7(bytes17) public pure {} + function f8(S1 memory) public pure {} + function f9(E1) public pure {} + function f10(mapping(int => uint) storage) public pure {} + function f11(string[] memory) public pure {} + function f12(bytes[][][] memory) public pure {} + function f13(custom_uint) public pure {} +} + +// the following statements are correct +using L for C2; +using L for bool; +using L for string; +using L for bytes; +using L for uint240; +using L for int16; +using L for address; +using L for bytes16; +using L for S1; +using L for E1; +using L for mapping(int => uint); +using L for string[]; +using L for bytes[][][]; +using L for custom_uint; + +// the following statements are incorrect +using L for C3; +using L for bytes17[]; +using L for uint; +using L for int; +using L for bytes18; +using L for S2; +using L for E2; +using L for mapping(int => uint128); +using L for mapping(int128 => uint); +using L for string[][]; +using L for bytes[][]; +using L for custom_int; diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json new file mode 100644 index 000000000..9321baa9c --- /dev/null +++ b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json @@ -0,0 +1,124 @@ +[ + [ + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", + "first_markdown_element": "", + "id": "000067f9a866a9e43f9c82b9b70b3a7657545318fb4d3334b39f03e47b63e50a", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", + "first_markdown_element": "", + "id": "09b0f0c08a3f0fe4ee75eff34f9c4718a5f729814eda9fa21c2ba30a01e1de0e", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", + "first_markdown_element": "", + "id": "1a051922964f790736e90754dfebf381c6e078f957ab8e7eeedf9d79ef9d56e5", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", + "first_markdown_element": "", + "id": "3b1d94dc870c0f03b4f43b34b6278adf6669b9e30e245ae21247d3839445366c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", + "first_markdown_element": "", + "id": "6d993d086c6d6fb8cd005acd124d7d165b38e85cc23d781a8c99d9efd0d2c25a", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", + "first_markdown_element": "", + "id": "6e785ac39c18c840fc9f46fc066670776551a98bfd8d2030ee523a0c55bf5eef", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", + "first_markdown_element": "", + "id": "90efff9103e8469dcd2d251f27bea0ab6875f0f511fe8aedc093532cb4a52aa5", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", + "first_markdown_element": "", + "id": "a36393040b3e588bbfb6ff945333997a967bc50e1f9d703be020a1786514fb12", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", + "first_markdown_element": "", + "id": "c8be02cb293bf4e4b5bbe3def377356d8761ed34c2bc3259f7073e7840eec6c6", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", + "first_markdown_element": "", + "id": "e6abc32f0e370622f8a17cbc5eb94340b78931210ef47269e39e683cc03a34d3", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", + "first_markdown_element": "", + "id": "eec4404d65776c62a3053ef34081ca8cfdc4c32c571e543c337c5af1a0c11c9c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", + "first_markdown_element": "", + "id": "f5cb90eb9284eb3935980052fc2ad410058acafa4478ebd3109cc9520510095c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index e6b87d530..2088ac214 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -1639,6 +1639,11 @@ ALL_TEST_OBJECTS = [ "LowCyclomaticComplexity.sol", "0.8.16", ), + Test( + all_detectors.IncorrectUsingFor, + "IncorrectUsingForTopLevel.sol", + "0.8.17", + ), ] GENERIC_PATH = "/GENERIC_PATH" From 5a450a07e04626f590ac303aba47db72cfea9c3b Mon Sep 17 00:00:00 2001 From: bart1e Date: Thu, 9 Feb 2023 20:03:36 +0100 Subject: [PATCH 076/105] Black run --- .../statements/incorrect_using_for.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py index 7cc18deaf..4df0701a2 100644 --- a/slither/detectors/statements/incorrect_using_for.py +++ b/slither/detectors/statements/incorrect_using_for.py @@ -25,10 +25,12 @@ class IncorrectUsingFor(AbstractDetector): WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-using-for-usage" WIKI_TITLE = "Incorrect usage of using-for statement" - WIKI_DESCRIPTION = "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " \ - "(`using for `). However, the Solidity compiler doesn't check whether a given " \ - "library has at least one function matching a given type. If it doesn't, such a statement has " \ - "no effect and may be confusing. " + WIKI_DESCRIPTION = ( + "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " + "(`using for `). However, the Solidity compiler doesn't check whether a given " + "library has at least one function matching a given type. If it doesn't, such a statement has " + "no effect and may be confusing. " + ) # region wiki_exploit_scenario WIKI_EXPLOIT_SCENARIO = """ @@ -41,8 +43,10 @@ class IncorrectUsingFor(AbstractDetector): ``` Such a code will compile despite the fact that `L` has no function with `uint` as its first argument.""" # endregion wiki_exploit_scenario - WIKI_RECOMMENDATION = "Make sure that the libraries used in `using-for` statements have at least one function " \ - "matching a type used in these statements. " + WIKI_RECOMMENDATION = ( + "Make sure that the libraries used in `using-for` statements have at least one function " + "matching a type used in these statements. " + ) @staticmethod def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: @@ -179,8 +183,10 @@ class IncorrectUsingFor(AbstractDetector): return False def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): - info = f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " \ - f"{library}.\n" + info = ( + f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " + f"{library}.\n" + ) res = self.generate_result(info) results.append(res) From 32d4bba9efaaffa72b36bca448e0fce2c01b0abd Mon Sep 17 00:00:00 2001 From: bart1e Date: Wed, 3 May 2023 18:01:22 +0200 Subject: [PATCH 077/105] Tests updated --- slither/detectors/all_detectors.py | 2 +- ...TopLevel.sol.0.8.17.IncorrectUsingFor.json | 124 ------------------ ..._8_17_IncorrectUsingForTopLevel_sol__0.txt | 24 ++++ .../0.8.17/IncorrectUsingForTopLevel.sol | 0 .../IncorrectUsingForTopLevel.sol-0.8.17.zip | Bin 0 -> 10081 bytes 5 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt rename tests/{detectors => e2e/detectors/test_data}/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol (100%) create mode 100644 tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 21374a38b..324c97052 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,4 +89,4 @@ from .functions.protected_variable import ProtectedVariables from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity -from .statements.incorrect_using_for import IncorrectUsingFor \ No newline at end of file +from .statements.incorrect_using_for import IncorrectUsingFor diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json deleted file mode 100644 index 9321baa9c..000000000 --- a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", - "first_markdown_element": "", - "id": "000067f9a866a9e43f9c82b9b70b3a7657545318fb4d3334b39f03e47b63e50a", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", - "first_markdown_element": "", - "id": "09b0f0c08a3f0fe4ee75eff34f9c4718a5f729814eda9fa21c2ba30a01e1de0e", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", - "first_markdown_element": "", - "id": "1a051922964f790736e90754dfebf381c6e078f957ab8e7eeedf9d79ef9d56e5", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", - "first_markdown_element": "", - "id": "3b1d94dc870c0f03b4f43b34b6278adf6669b9e30e245ae21247d3839445366c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", - "first_markdown_element": "", - "id": "6d993d086c6d6fb8cd005acd124d7d165b38e85cc23d781a8c99d9efd0d2c25a", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", - "first_markdown_element": "", - "id": "6e785ac39c18c840fc9f46fc066670776551a98bfd8d2030ee523a0c55bf5eef", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", - "first_markdown_element": "", - "id": "90efff9103e8469dcd2d251f27bea0ab6875f0f511fe8aedc093532cb4a52aa5", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", - "first_markdown_element": "", - "id": "a36393040b3e588bbfb6ff945333997a967bc50e1f9d703be020a1786514fb12", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", - "first_markdown_element": "", - "id": "c8be02cb293bf4e4b5bbe3def377356d8761ed34c2bc3259f7073e7840eec6c6", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", - "first_markdown_element": "", - "id": "e6abc32f0e370622f8a17cbc5eb94340b78931210ef47269e39e683cc03a34d3", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", - "first_markdown_element": "", - "id": "eec4404d65776c62a3053ef34081ca8cfdc4c32c571e543c337c5af1a0c11c9c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", - "first_markdown_element": "", - "id": "f5cb90eb9284eb3935980052fc2ad410058acafa4478ebd3109cc9520510095c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt new file mode 100644 index 000000000..4a85bca5f --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt @@ -0,0 +1,24 @@ +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L. + diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol b/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol similarity index 100% rename from tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol rename to tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol diff --git a/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip b/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip new file mode 100644 index 0000000000000000000000000000000000000000..9afc56d39e442ef3a41f3541db7a05857656332c GIT binary patch literal 10081 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 Date: Thu, 4 May 2023 10:14:25 -0500 Subject: [PATCH 078/105] update pip audit action to pypa and bump version --- .github/workflows/pip-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index e334ff4fe..20367787d 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -34,6 +34,6 @@ jobs: python -m pip install . - name: Run pip-audit - uses: trailofbits/gh-action-pip-audit@v0.0.4 + uses: pypa/gh-action-pip-audit@v1.0.7 with: virtual-environment: /tmp/pip-audit-env From 2d65116392d6152e6c747012ddc51d9099975d71 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 21:45:13 -0500 Subject: [PATCH 079/105] reduce false positives for incorrect-equality on struct fields --- slither/core/declarations/custom_error.py | 4 +-- .../statements/incorrect_strict_equality.py | 14 ++++++---- slither/utils/type.py | 14 ++++++++++ .../0.7.6/incorrect_equality.sol | 24 ++++++++++++++++++ .../0.7.6/incorrect_equality.sol-0.7.6.zip | Bin 8237 -> 10221 bytes 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index 7e78748c6..8ed943d94 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -1,8 +1,8 @@ from typing import List, TYPE_CHECKING, Optional, Type -from slither.core.solidity_types import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.local_variable import LocalVariable +from slither.utils.type import is_underlying_type_address if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit @@ -46,7 +46,7 @@ class CustomError(SourceMapping): # pylint: disable=import-outside-toplevel from slither.core.declarations import Contract - if isinstance(t, UserDefinedType) and isinstance(t.type, Contract): + if is_underlying_type_address(t): return "address" return str(t) diff --git a/slither/detectors/statements/incorrect_strict_equality.py b/slither/detectors/statements/incorrect_strict_equality.py index bd34d61b1..ae06d7bf3 100644 --- a/slither/detectors/statements/incorrect_strict_equality.py +++ b/slither/detectors/statements/incorrect_strict_equality.py @@ -31,6 +31,7 @@ from slither.slithir.variables.constant import Constant from slither.slithir.variables.local_variable import LocalIRVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA from slither.utils.output import Output +from slither.utils.type import is_underlying_type_address class IncorrectStrictEquality(AbstractDetector): @@ -77,8 +78,13 @@ contract Crowdsale{ """ Comparing addresses strictly should not be flagged. """ - addr = ElementaryType("address") - return ir.variable_left.type != addr or ir.variable_right.type != addr + + if is_underlying_type_address(ir.variable_left.type) and is_underlying_type_address( + ir.variable_right.type + ): + return False + + return True @staticmethod def is_any_tainted( @@ -116,7 +122,6 @@ contract Crowdsale{ ): taints.append(ir.lvalue) if isinstance(ir, HighLevelCall): - # print(ir.function.full_name) if ( isinstance(ir.function, Function) and ir.function.full_name == "balanceOf(address)" @@ -133,7 +138,6 @@ contract Crowdsale{ if isinstance(ir, Assignment): if ir.rvalue in self.sources_taint: taints.append(ir.lvalue) - return taints # Retrieve all tainted (node, function) pairs @@ -155,10 +159,10 @@ contract Crowdsale{ # Filter to only tainted equality (==) comparisons if ( self.is_direct_comparison(ir) + # Filter out address comparisons which may occur due to lack of field sensitivity in data dependency and self.is_not_comparing_addresses(ir) and self.is_any_tainted(ir.used, taints, func) ): - # if func not in results: results[func] = [] results[func].append(node) diff --git a/slither/utils/type.py b/slither/utils/type.py index 1674999aa..916cf42b5 100644 --- a/slither/utils/type.py +++ b/slither/utils/type.py @@ -197,3 +197,17 @@ def export_return_type_from_variable( return ret return [variable_or_type.type] + + +def is_underlying_type_address(t: "Type") -> bool: + """ + Return true if the underlying type is an address + i.e. if the type is an address or a contract + """ + from slither.core.declarations.contract import Contract + + if t == ElementaryType("address"): + return True + if isinstance(t, UserDefinedType) and isinstance(t.type, Contract): + return True + return False diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol index b2e4c2f14..58b6b593e 100644 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol @@ -134,3 +134,27 @@ contract TestSolidityKeyword{ } +interface Receiver { + +} +contract A { + mapping(address => Info) data; + + struct Info { + uint a; + address b; + uint c; + } + function good(address b) public payable { + data[msg.sender] = Info(block.timestamp, b, msg.value); + if (data[msg.sender].b == address(0)) { + payable(msg.sender).transfer(data[msg.sender].c); + } + } + function good2(address b) public payable { + data[msg.sender] = Info(block.timestamp, b, msg.value); + if (Receiver(data[msg.sender].b) == Receiver(address(0))) { + payable(msg.sender).transfer(data[msg.sender].c); + } + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol-0.7.6.zip b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol-0.7.6.zip index a7fbdc6b68cb2bde137d455418999079da2d40b7..99de07e26a1870ec4bfdaaa471a8fe3722aa684a 100644 GIT binary patch delta 9990 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 Date: Thu, 4 May 2023 22:01:08 -0500 Subject: [PATCH 080/105] do not detect incorrect-shift when rhs is constant --- .../assembly/shift_parameter_mixup.py | 2 +- ...xup_0_7_6_shift_parameter_mixup_sol__0.txt | 2 +- .../0.7.6/shift_parameter_mixup.sol | 3 ++- .../0.7.6/shift_parameter_mixup.sol-0.7.6.zip | Bin 1468 -> 1557 bytes 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/slither/detectors/assembly/shift_parameter_mixup.py b/slither/detectors/assembly/shift_parameter_mixup.py index a4169499a..5bfefb4c9 100644 --- a/slither/detectors/assembly/shift_parameter_mixup.py +++ b/slither/detectors/assembly/shift_parameter_mixup.py @@ -52,7 +52,7 @@ The shift statement will right-shift the constant 8 by `a` bits""" BinaryType.LEFT_SHIFT, BinaryType.RIGHT_SHIFT, ]: - if isinstance(ir.variable_left, Constant): + if isinstance(ir.variable_left, Constant) and not isinstance(ir.variable_right, Constant): info: DETECTOR_INFO = [ f, " contains an incorrect shift operation: ", diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt index 08fdbe1c6..1c4206ea0 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt @@ -1,2 +1,2 @@ -C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5) +C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-8) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5) diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol index 89a9210ad..11a2af9ae 100644 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol +++ b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol @@ -1,8 +1,9 @@ contract C { - function f() internal returns (uint a) { + function f() internal returns (uint a, uint b) { assembly { a := shr(a, 8) + b := shl(248, 0xff) } } } \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol-0.7.6.zip b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol-0.7.6.zip index 7f833af857b0e8cac358ec9a83882debe1d333dc..e1cce4a17341c1df74817f1d973dffc2c27c7e16 100644 GIT binary patch delta 1239 zcmV;|1StEw3zZBQP)h>@KL7#%4ghDbq*hW?iU3&!006`mu^0sbf7K!=V7QoD1pOUb z;#`h#`LjS|K8Ti2v6Xb+^&SF-rsAN-J}fdQ<4ehp*pt$_!8Rl7wfsJ>uMaKn4`>@Z z)x=k#di^mxeF%4dss_}8dX%CJ8fW)2?60M*%dpX?JCOpS#1mq1pXZAt$#xU?bjN6% zAR82oz?L$Hx}uMhe`aU5Jf8p~Ra^id__c>#XlB6jgtgQn_ZLs>$w)xHB`&YX;xeaq zr@#3D9U8dI-(gY94QRE;M{$1dfBtqZWzgH0yy5ljr)D~;qS_kRy;Pg}|0}bM@B=jzLUaeC^CG4*V9IH~eV-T( zV(5#(w~F56f~035Oh@)=o3YG(yUuYK=!IC%+_<#_#KID(2(M2k`ll-x7ZpgYZar+^ zG~*wM#THJCk3HG1c;YF~^FmQ&D*z2%|1l!oe^@Ubo$-x9|EK}D@-7pJTTb~w(#)r^ z0o1kN3+e57wpj2$yI<;>EFOhHPxA3SV!C1C!99geeEmW=3T&&L2vp8;OrcA)vda+! zpZ(xizHF1)K!sqzRr>~Av^0_U?PU)8I{%xNeBm6-{~Ff!sTSw?w+_m(wIvT$^(xHN ze@n|?oH|TPWP&X1zq7fgsdPup-(!vzi$l6bjMM+i3AQIdTT2bs{9Fp5;18Jlh<_0 zE;*uKvarc~H74YKd8fx;?Qi%$?PZu*y`cT8xx@o~_#6hCZe{TqIY+BWlJII7Ds(?k zsyHBV$|jAFfBbMavQSF_0zU&k00ICG0B5hHR#H@o09ge90K^uPWd%_Nqy+!~003A( BS3dv% delta 1155 zcmV-}1bq9I47>{)P)h>@KL7#%4ggAxcUDg-taJbc005N|001qM&jm1%OVWSTO;SK| zzW27RLDuq%fajjF(oVr2i>rg67g$U?`hvVPUjS}-#^k2c+iH0wnWy*{+EuOVwk8m> zVbb$tf-Ug4%lkTz7(>ZMTBZ&k;F|b3w{~shPKnJW;~y3b#kO?LN-J)_^qVDw1Ve=% zru0P9*Xxndxk4cDU&oq*(nWvqVH?}!flD{6OZSc6Yv<+9T*lXCVCRd9SDPaK33|() zUo(VdWn`ZDfK{FLrGnq?w)Veja*FZToxnIBMNBUGF(G z(L-mv<;*9lUW!#2haumA%kn1rAY4PmF8x-b@{kx zZIznx0x>FX+$1q}DwE@tFBJ~xJRtc#5Wj1FM{|_w*f`oF$h?EjQKf3_5E$r0Nw_Mj z4=_F`r1@+0$>rCUFhqY9Z?s>`5%LA*>hYtVlVr!3RYDUUU+^s8QUt_2;JxfdH2vTC+Qq*v1EI0(7Nj7`l3FHqD}mkb<=*AhCNQydz6x|R@z-^8(lE+y z*kwdhWy64@$w7|AcRF$$Y1e?6X;CadLl2&=_npUS=UcMq?od zxbB>L*H0EK|1LWcry}&lh5wQJsgHeT<6E3|a!Szv3F+}8jE4AdtY`4vzPmz+^a?8g zcv)TD<@K_%7;9TwpP}qKA)7bM;^f+|KI8kE!7vLO7YjU=ngSMtweh5+iVH~Mgg5xu zi#8>Ay0=#JDn5Tv(Fw^jsJ?*rRC!kP9qNt%7`wIDSH|kQ?F;{~g0|1jCByL}QzMly zy|bV^qom6gCrWplhj$ZcD8mUCa-OxWwsYH&T`4ijv5fvqO~aX?q@sM?Hv0HSyzyT+wA zfS|EO>y*;c*HbAwoyD)i0cqT-vb^0IHIrhxd^y*&68*Mo@&W$gF_X+>SH z2?2&LN>YDgje|=r-vhXsT;mTh4eek21Yg~HiwKp0=;)di#MRvrRAY@Xqc>Ak@g-TV zFC>3E$vxbns(rRsW{q$vaX-+cX+u$ Date: Thu, 4 May 2023 22:10:19 -0500 Subject: [PATCH 081/105] lint --- slither/detectors/assembly/shift_parameter_mixup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slither/detectors/assembly/shift_parameter_mixup.py b/slither/detectors/assembly/shift_parameter_mixup.py index 5bfefb4c9..1f6a878e2 100644 --- a/slither/detectors/assembly/shift_parameter_mixup.py +++ b/slither/detectors/assembly/shift_parameter_mixup.py @@ -52,7 +52,9 @@ The shift statement will right-shift the constant 8 by `a` bits""" BinaryType.LEFT_SHIFT, BinaryType.RIGHT_SHIFT, ]: - if isinstance(ir.variable_left, Constant) and not isinstance(ir.variable_right, Constant): + if isinstance(ir.variable_left, Constant) and not isinstance( + ir.variable_right, Constant + ): info: DETECTOR_INFO = [ f, " contains an incorrect shift operation: ", From 92b2147cbea9ae995325f2b53ab6e4c9aaf89fa1 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 22:11:28 -0500 Subject: [PATCH 082/105] lint --- slither/utils/type.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/utils/type.py b/slither/utils/type.py index 916cf42b5..a6b640202 100644 --- a/slither/utils/type.py +++ b/slither/utils/type.py @@ -204,6 +204,7 @@ def is_underlying_type_address(t: "Type") -> bool: Return true if the underlying type is an address i.e. if the type is an address or a contract """ + # pylint: disable=import-outside-toplevel from slither.core.declarations.contract import Contract if t == ElementaryType("address"): From abcef3015ad90c76830912965212d2e188b5e848 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 22:14:28 -0500 Subject: [PATCH 083/105] remove unused import --- slither/core/declarations/custom_error.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index 8ed943d94..234873eac 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -43,9 +43,6 @@ class CustomError(SourceMapping): @staticmethod def _convert_type_for_solidity_signature(t: Optional[Type]) -> str: - # pylint: disable=import-outside-toplevel - from slither.core.declarations import Contract - if is_underlying_type_address(t): return "address" return str(t) From 2002312b9fce061251cf1e6f7b6ec61f1936169f Mon Sep 17 00:00:00 2001 From: daog1 Date: Fri, 5 May 2023 12:39:09 +0800 Subject: [PATCH 084/105] fix abi decode --- slither/tools/read_storage/read_storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/tools/read_storage/read_storage.py b/slither/tools/read_storage/read_storage.py index 387aa619a..2947081da 100644 --- a/slither/tools/read_storage/read_storage.py +++ b/slither/tools/read_storage/read_storage.py @@ -441,7 +441,7 @@ class SlitherReadStorage: if "int" in key_type: # without this eth_utils encoding fails key = int(key) key = coerce_type(key_type, key) - slot = keccak(encode([key_type, "uint256"], [key, decode("uint256", slot)])) + slot = keccak(encode([key_type, "uint256"], [key, decode(["uint256"], slot)[0]])) if isinstance(target_variable_type.type_to, UserDefinedType) and isinstance( target_variable_type.type_to.type, Structure From 7fc4d8714c5dbb48a725b3c56799b5bb151924bc Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 5 May 2023 09:56:47 -0500 Subject: [PATCH 085/105] remove modulo binop from `can_be_checked_for_overflow` --- slither/slithir/operations/binary.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/slithir/operations/binary.py b/slither/slithir/operations/binary.py index d1355a965..06eb172a7 100644 --- a/slither/slithir/operations/binary.py +++ b/slither/slithir/operations/binary.py @@ -94,7 +94,6 @@ class BinaryType(Enum): return self in [ BinaryType.POWER, BinaryType.MULTIPLICATION, - BinaryType.MODULO, BinaryType.ADDITION, BinaryType.SUBTRACTION, BinaryType.DIVISION, From fa8087ab0651acb48e5757390c9be7216cdfa74c Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 6 May 2023 15:20:57 +0200 Subject: [PATCH 086/105] Parse assembly in modifier --- slither/solc_parsing/declarations/modifier.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slither/solc_parsing/declarations/modifier.py b/slither/solc_parsing/declarations/modifier.py index ea7af00b3..c4c5c7177 100644 --- a/slither/solc_parsing/declarations/modifier.py +++ b/slither/solc_parsing/declarations/modifier.py @@ -87,6 +87,9 @@ class ModifierSolc(FunctionSolc): for node in self._node_to_nodesolc.values(): node.analyze_expressions(self) + for yul_parser in self._node_to_yulobject.values(): + yul_parser.analyze_expressions() + self._rewrite_ternary_as_if_else() self._remove_alone_endif() From 6e781e1c58a25c3b38126faa3c526cd3404ac305 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:36:09 -0500 Subject: [PATCH 087/105] update slither-flat test cases, run solc out its output --- examples/flat/a.sol | 10 ++++++++-- examples/flat/b.sol | 13 ++++++++++++- scripts/ci_test_flat.sh | 10 +++++++++- slither/tools/flattening/export/export.py | 2 +- slither/tools/flattening/flattening.py | 2 +- 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/examples/flat/a.sol b/examples/flat/a.sol index d252e04ba..4fa9c7549 100644 --- a/examples/flat/a.sol +++ b/examples/flat/a.sol @@ -1,3 +1,9 @@ -contract A{ +pragma solidity 0.8.19; -} +error RevertIt(); + +contract Example { + function reverts() external pure { + revert RevertIt(); + } +} \ No newline at end of file diff --git a/examples/flat/b.sol b/examples/flat/b.sol index 74b4d78ce..edbd90225 100644 --- a/examples/flat/b.sol +++ b/examples/flat/b.sol @@ -1,5 +1,16 @@ import "./a.sol"; -contract B is A{ +pragma solidity 0.8.19; +enum B { + a, + b } + +contract T { + Example e = new Example(); + function b() public returns(uint) { + B b = B.a; + return 4; + } +} \ No newline at end of file diff --git a/scripts/ci_test_flat.sh b/scripts/ci_test_flat.sh index e3a837a03..b47dd510b 100755 --- a/scripts/ci_test_flat.sh +++ b/scripts/ci_test_flat.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash +shopt -s extglob -### Test slither-prop +### Test slither-flat +solc-select use 0.8.19 --always-install cd examples/flat || exit 1 @@ -8,5 +10,11 @@ if ! slither-flat b.sol; then echo "slither-flat failed" exit 1 fi + +SUFFIX = '@(sol)' +if ! solc "crytic-export/flattening/"*$SUFFIX; then + echo "solc failed on flattened files" + exit 1 +fi exit 0 diff --git a/slither/tools/flattening/export/export.py b/slither/tools/flattening/export/export.py index e9b4552ef..8b8ce7355 100644 --- a/slither/tools/flattening/export/export.py +++ b/slither/tools/flattening/export/export.py @@ -15,7 +15,7 @@ ZIP_TYPES_ACCEPTED = { Export = namedtuple("Export", ["filename", "content"]) -logger = logging.getLogger("Slither") +logger = logging.getLogger("Slither-flat") def save_to_zip(files: List[Export], zip_filename: str, zip_type: str = "lzma"): diff --git a/slither/tools/flattening/flattening.py b/slither/tools/flattening/flattening.py index 7603f5e93..55e1af21d 100644 --- a/slither/tools/flattening/flattening.py +++ b/slither/tools/flattening/flattening.py @@ -24,7 +24,7 @@ from slither.tools.flattening.export.export import ( save_to_disk, ) -logger = logging.getLogger("Slither-flattening") +logger = logging.getLogger("Slither-flat") logger.setLevel(logging.INFO) # index: where to start From 6e08172e8bcf8973dbf4ec7810a14c1b0851d754 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:46:52 -0500 Subject: [PATCH 088/105] lint bash --- scripts/ci_test_flat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci_test_flat.sh b/scripts/ci_test_flat.sh index b47dd510b..0d9185171 100755 --- a/scripts/ci_test_flat.sh +++ b/scripts/ci_test_flat.sh @@ -11,7 +11,7 @@ if ! slither-flat b.sol; then exit 1 fi -SUFFIX = '@(sol)' +SUFFIX="@(sol)" if ! solc "crytic-export/flattening/"*$SUFFIX; then echo "solc failed on flattened files" exit 1 From 6649f14dddba1325ae698c2e49d6e13d4183b45b Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:51:28 -0500 Subject: [PATCH 089/105] run markdowlint --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7017c7802..1d1a9497f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,11 +79,11 @@ How do I know what kind of test(s) to write? For each new detector, at least one regression tests must be present. -1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. +1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. 2. Create a test contract in `tests/e2e/detectors/test_data//`. 3. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` -4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. -5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. +4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. +5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. 6. Run `pytest tests/e2e/detectors/test_detectors.py` to ensure everything worked. Then, add and commit the files to git. > ##### Helpful commands for detector tests From 92c06c4f4a0299ed6a374e91aab3a5ef71b71af2 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Mon, 8 May 2023 14:08:27 -0400 Subject: [PATCH 090/105] add tool slither-interface --- scripts/ci_test_interface.sh | 93 ++++++++++++++++++++++ setup.py | 1 + slither/tools/interface/__init__.py | 0 slither/tools/interface/__main__.py | 105 +++++++++++++++++++++++++ tests/tools/interface/ContractMock.sol | 33 ++++++++ tests/tools/interface/test_1.sol | 20 +++++ tests/tools/interface/test_2.sol | 19 +++++ tests/tools/interface/test_3.sol | 19 +++++ tests/tools/interface/test_4.sol | 15 ++++ tests/tools/interface/test_5.sol | 16 ++++ tests/tools/interface/test_6.sol | 18 +++++ tests/tools/interface/test_7.sol | 16 ++++ 12 files changed, 355 insertions(+) create mode 100644 scripts/ci_test_interface.sh create mode 100644 slither/tools/interface/__init__.py create mode 100644 slither/tools/interface/__main__.py create mode 100644 tests/tools/interface/ContractMock.sol create mode 100644 tests/tools/interface/test_1.sol create mode 100644 tests/tools/interface/test_2.sol create mode 100644 tests/tools/interface/test_3.sol create mode 100644 tests/tools/interface/test_4.sol create mode 100644 tests/tools/interface/test_5.sol create mode 100644 tests/tools/interface/test_6.sol create mode 100644 tests/tools/interface/test_7.sol diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh new file mode 100644 index 000000000..04ce8ab09 --- /dev/null +++ b/scripts/ci_test_interface.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +### Test slither-interface + +DIR_TESTS="tests/tools/interface" + +#Test 1 - Etherscan target +slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 +DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 1 failed" + cat test_1.sol + echo "" + cat "$DIR_TESTS/test_1.sol" + exit 255 +fi + + +#Test 2 - Local file target +slither-interface Mock tests/tools/interface/ContractMock.sol +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 2 failed" + cat test_2.sol + echo "" + cat "$DIR_TESTS/test_2.sol" + exit 255 +fi + + +#Test 3 - unroll structs +slither-interface Mock tests/tools/interface/ContractMock.sol --unroll-structs +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 3 failed" + cat test_3.sol + echo "" + cat "$DIR_TESTS/test_3.sol" + exit 255 +fi + +#Test 4 - exclude structs +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-structs +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 4 failed" + cat test_4.sol + echo "" + cat "$DIR_TESTS/test_4.sol" + exit 255 +fi + +#Test 5 - exclude errors +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-errors +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 5 failed" + cat test_5.sol + echo "" + cat "$DIR_TESTS/test_5.sol" + exit 255 +fi + +#Test 6 - exclude enums +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-enums +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 6 failed" + cat test_6.sol + echo "" + cat "$DIR_TESTS/test_6.sol" + exit 255 +fi + +#Test 7 - exclude events +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-events +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 7 failed" + cat test_7.sol + echo "" + cat "$DIR_TESTS/test_7.sol" + exit 255 +fi + +rm -r crytic-export \ No newline at end of file diff --git a/setup.py b/setup.py index 27213481a..c2dc8dcfb 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ setup( "slither-read-storage = slither.tools.read_storage.__main__:main", "slither-doctor = slither.tools.doctor.__main__:main", "slither-documentation = slither.tools.documentation.__main__:main", + "slither-interface = slither.tools.interface.__main__:main", ] }, ) diff --git a/slither/tools/interface/__init__.py b/slither/tools/interface/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/slither/tools/interface/__main__.py b/slither/tools/interface/__main__.py new file mode 100644 index 000000000..e56c4b3eb --- /dev/null +++ b/slither/tools/interface/__main__.py @@ -0,0 +1,105 @@ +import argparse +import logging +from pathlib import Path + +from crytic_compile import cryticparser + +from slither import Slither +from slither.utils.code_generation import generate_interface + +logging.basicConfig() +logger = logging.getLogger("Slither-Interface") +logger.setLevel(logging.INFO) + + +def parse_args() -> argparse.Namespace: + """ + Parse the underlying arguments for the program. + :return: Returns the arguments for the program. + """ + parser = argparse.ArgumentParser( + description="Generates code for a Solidity interface from contract", + usage=("slither-interface "), + ) + + parser.add_argument( + "contract_source", + help="The name of the contract (case sensitive) followed by the deployed contract address if verified on etherscan or project directory/filename for local contracts.", + nargs="+", + ) + + parser.add_argument( + "--unroll-structs", + help="Whether to use structures' underlying types instead of the user-defined type", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-events", + help="Excludes event signatures in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-errors", + help="Excludes custom error signatures in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-enums", + help="Excludes enum definitions in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-structs", + help="Exclude struct definitions in the interface", + default=False, + action="store_true", + ) + + cryticparser.init(parser) + + return parser.parse_args() + + +def main() -> None: + args = parse_args() + + contract_name, target = args.contract_source + slither = Slither(target, **vars(args)) + + _contract = slither.get_contract_from_name(contract_name)[0] + + interface = generate_interface( + contract=_contract, + unroll_structs=args.unroll_structs, + include_events=not args.exclude_events, + include_errors=not args.exclude_errors, + include_enums=not args.exclude_enums, + include_structs=not args.exclude_structs, + ) + + # add version pragma + interface = ( + f"pragma solidity {_contract.compilation_unit.pragma_directives[0].version};\n\n" + + interface + ) + + # write interface to file + export = Path("crytic-export", "interfaces") + export.mkdir(parents=True, exist_ok=True) + filename = f"I{contract_name}.sol" + path = Path(export, filename) + logger.info(f" Interface exported to {path}") + with open(path, "w", encoding="utf8") as f: + f.write(interface) + + +if __name__ == "__main__": + main() diff --git a/tests/tools/interface/ContractMock.sol b/tests/tools/interface/ContractMock.sol new file mode 100644 index 000000000..e37303543 --- /dev/null +++ b/tests/tools/interface/ContractMock.sol @@ -0,0 +1,33 @@ +pragma solidity ^0.8.0; + +contract Mock { + + error Error1(); + error Error2(); + error Error3(); + + event Event1(); + event Event2(address param); + event Event3(uint256 num1, uint72 num2); + + struct Foo { + uint256 bar; + address baz; + } + + enum Status { + Active, + Pending, + Canceled + } + + Foo public foo; + + Status public status; + + function function1() public pure returns (address){ + return address(0); + } + + +} \ No newline at end of file diff --git a/tests/tools/interface/test_1.sol b/tests/tools/interface/test_1.sol new file mode 100644 index 000000000..d306edeca --- /dev/null +++ b/tests/tools/interface/test_1.sol @@ -0,0 +1,20 @@ +pragma solidity ^0.4.18; + +interface IWETH9 { + event Approval(address, address, uint256); + event Transfer(address, address, uint256); + event Deposit(address, uint256); + event Withdrawal(address, uint256); + function name() external returns (string memory); + function symbol() external returns (string memory); + function decimals() external returns (uint8); + function balanceOf(address) external returns (uint256); + function allowance(address,address) external returns (uint256); + function deposit() external payable; + function withdraw(uint256) external; + function totalSupply() external view returns (uint256); + function approve(address,uint256) external returns (bool); + function transfer(address,uint256) external returns (bool); + function transferFrom(address,address,uint256) external returns (bool); +} + diff --git a/tests/tools/interface/test_2.sol b/tests/tools/interface/test_2.sol new file mode 100644 index 000000000..661582608 --- /dev/null +++ b/tests/tools/interface/test_2.sol @@ -0,0 +1,19 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_3.sol b/tests/tools/interface/test_3.sol new file mode 100644 index 000000000..a1be364bc --- /dev/null +++ b/tests/tools/interface/test_3.sol @@ -0,0 +1,19 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (uint256, address); + function status() external returns (uint8); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_4.sol b/tests/tools/interface/test_4.sol new file mode 100644 index 000000000..063168287 --- /dev/null +++ b/tests/tools/interface/test_4.sol @@ -0,0 +1,15 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_5.sol b/tests/tools/interface/test_5.sol new file mode 100644 index 000000000..9328a1107 --- /dev/null +++ b/tests/tools/interface/test_5.sol @@ -0,0 +1,16 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_6.sol b/tests/tools/interface/test_6.sol new file mode 100644 index 000000000..5826543ee --- /dev/null +++ b/tests/tools/interface/test_6.sol @@ -0,0 +1,18 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_7.sol b/tests/tools/interface/test_7.sol new file mode 100644 index 000000000..621273d31 --- /dev/null +++ b/tests/tools/interface/test_7.sol @@ -0,0 +1,16 @@ +pragma solidity ^0.8.0; + +interface IMock { + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + From 3861ea3e0439e246bf240e60b998d4dce38e7975 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Tue, 9 May 2023 09:23:23 -0400 Subject: [PATCH 091/105] add interface to ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96a0a59c2..09582eed9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,7 @@ jobs: "etherscan", "find_paths", "flat", + "interface", "kspec", "printers", # "prop" From 279f1cb61cd8b3a788b8929ac613223bb1e28e96 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Tue, 9 May 2023 15:29:31 -0400 Subject: [PATCH 092/105] resolve pragma version causing tests to fail --- scripts/ci_test_interface.sh | 2 ++ tests/tools/interface/ContractMock.sol | 2 +- tests/tools/interface/test_2.sol | 2 +- tests/tools/interface/test_3.sol | 2 +- tests/tools/interface/test_4.sol | 2 +- tests/tools/interface/test_5.sol | 2 +- tests/tools/interface/test_6.sol | 2 +- tests/tools/interface/test_7.sol | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 04ce8ab09..05859eb47 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -4,6 +4,8 @@ DIR_TESTS="tests/tools/interface" +solc-select use 0.8.19 --always-install + #Test 1 - Etherscan target slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") diff --git a/tests/tools/interface/ContractMock.sol b/tests/tools/interface/ContractMock.sol index e37303543..208e6f21a 100644 --- a/tests/tools/interface/ContractMock.sol +++ b/tests/tools/interface/ContractMock.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; contract Mock { diff --git a/tests/tools/interface/test_2.sol b/tests/tools/interface/test_2.sol index 661582608..ac383459d 100644 --- a/tests/tools/interface/test_2.sol +++ b/tests/tools/interface/test_2.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_3.sol b/tests/tools/interface/test_3.sol index a1be364bc..87b26e6af 100644 --- a/tests/tools/interface/test_3.sol +++ b/tests/tools/interface/test_3.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_4.sol b/tests/tools/interface/test_4.sol index 063168287..06525c5c0 100644 --- a/tests/tools/interface/test_4.sol +++ b/tests/tools/interface/test_4.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_5.sol b/tests/tools/interface/test_5.sol index 9328a1107..26704c862 100644 --- a/tests/tools/interface/test_5.sol +++ b/tests/tools/interface/test_5.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_6.sol b/tests/tools/interface/test_6.sol index 5826543ee..d05d1fc2e 100644 --- a/tests/tools/interface/test_6.sol +++ b/tests/tools/interface/test_6.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_7.sol b/tests/tools/interface/test_7.sol index 621273d31..4e362f804 100644 --- a/tests/tools/interface/test_7.sol +++ b/tests/tools/interface/test_7.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { error Error1(); From 1a369523498a26650af1b576adfc96bf0b164a7b Mon Sep 17 00:00:00 2001 From: Simone Date: Tue, 9 May 2023 23:21:01 +0200 Subject: [PATCH 093/105] Add test --- .../solc_parsing/test_data/assembly-all.sol | 9 ++++++++- .../compile/assembly-all.sol-0.4.0-legacy.zip | Bin 998 -> 1195 bytes .../compile/assembly-all.sol-0.4.1-legacy.zip | Bin 997 -> 1197 bytes .../assembly-all.sol-0.4.10-legacy.zip | Bin 1050 -> 1212 bytes .../assembly-all.sol-0.4.11-legacy.zip | Bin 1065 -> 1218 bytes .../assembly-all.sol-0.4.12-compact.zip | Bin 1202 -> 1428 bytes .../assembly-all.sol-0.4.12-legacy.zip | Bin 1187 -> 1383 bytes .../assembly-all.sol-0.4.13-compact.zip | Bin 1205 -> 1425 bytes .../assembly-all.sol-0.4.13-legacy.zip | Bin 1188 -> 1382 bytes .../assembly-all.sol-0.4.14-compact.zip | Bin 1207 -> 1432 bytes .../assembly-all.sol-0.4.14-legacy.zip | Bin 1190 -> 1391 bytes .../assembly-all.sol-0.4.15-compact.zip | Bin 1206 -> 1431 bytes .../assembly-all.sol-0.4.15-legacy.zip | Bin 1189 -> 1390 bytes .../assembly-all.sol-0.4.16-compact.zip | Bin 1220 -> 1441 bytes .../assembly-all.sol-0.4.16-legacy.zip | Bin 1205 -> 1405 bytes .../assembly-all.sol-0.4.17-compact.zip | Bin 1220 -> 1438 bytes .../assembly-all.sol-0.4.17-legacy.zip | Bin 1201 -> 1400 bytes .../assembly-all.sol-0.4.18-compact.zip | Bin 1226 -> 1447 bytes .../assembly-all.sol-0.4.18-legacy.zip | Bin 1208 -> 1408 bytes .../assembly-all.sol-0.4.19-compact.zip | Bin 1229 -> 1448 bytes .../assembly-all.sol-0.4.19-legacy.zip | Bin 1210 -> 1409 bytes .../compile/assembly-all.sol-0.4.2-legacy.zip | Bin 997 -> 1197 bytes .../assembly-all.sol-0.4.20-compact.zip | Bin 1229 -> 1449 bytes .../assembly-all.sol-0.4.20-legacy.zip | Bin 1210 -> 1410 bytes .../assembly-all.sol-0.4.21-compact.zip | Bin 1234 -> 1450 bytes .../assembly-all.sol-0.4.21-legacy.zip | Bin 1213 -> 1413 bytes .../assembly-all.sol-0.4.22-compact.zip | Bin 1261 -> 1476 bytes .../assembly-all.sol-0.4.22-legacy.zip | Bin 1238 -> 1442 bytes .../assembly-all.sol-0.4.23-compact.zip | Bin 1262 -> 1476 bytes .../assembly-all.sol-0.4.23-legacy.zip | Bin 1239 -> 1443 bytes .../assembly-all.sol-0.4.24-compact.zip | Bin 1262 -> 1476 bytes .../assembly-all.sol-0.4.24-legacy.zip | Bin 1240 -> 1442 bytes .../assembly-all.sol-0.4.25-compact.zip | Bin 1263 -> 1476 bytes .../assembly-all.sol-0.4.25-legacy.zip | Bin 1241 -> 1443 bytes .../assembly-all.sol-0.4.26-compact.zip | Bin 1260 -> 1475 bytes .../assembly-all.sol-0.4.26-legacy.zip | Bin 1237 -> 1442 bytes .../compile/assembly-all.sol-0.4.3-legacy.zip | Bin 998 -> 1199 bytes .../compile/assembly-all.sol-0.4.4-legacy.zip | Bin 999 -> 1196 bytes .../compile/assembly-all.sol-0.4.5-legacy.zip | Bin 982 -> 1172 bytes .../compile/assembly-all.sol-0.4.6-legacy.zip | Bin 984 -> 1170 bytes .../compile/assembly-all.sol-0.4.7-legacy.zip | Bin 1061 -> 1248 bytes .../compile/assembly-all.sol-0.4.8-legacy.zip | Bin 1063 -> 1249 bytes .../compile/assembly-all.sol-0.4.9-legacy.zip | Bin 1052 -> 1210 bytes .../assembly-all.sol-0.5.0-compact.zip | Bin 1247 -> 1466 bytes .../compile/assembly-all.sol-0.5.0-legacy.zip | Bin 1244 -> 1446 bytes .../assembly-all.sol-0.5.1-compact.zip | Bin 1248 -> 1465 bytes .../compile/assembly-all.sol-0.5.1-legacy.zip | Bin 1245 -> 1444 bytes .../assembly-all.sol-0.5.10-compact.zip | Bin 1246 -> 1463 bytes .../assembly-all.sol-0.5.10-legacy.zip | Bin 1243 -> 1444 bytes .../assembly-all.sol-0.5.11-compact.zip | Bin 1248 -> 1462 bytes .../assembly-all.sol-0.5.11-legacy.zip | Bin 1246 -> 1443 bytes .../assembly-all.sol-0.5.12-compact.zip | Bin 1245 -> 1460 bytes .../assembly-all.sol-0.5.12-legacy.zip | Bin 1243 -> 1440 bytes .../assembly-all.sol-0.5.13-compact.zip | Bin 1245 -> 1462 bytes .../assembly-all.sol-0.5.13-legacy.zip | Bin 1243 -> 1444 bytes .../assembly-all.sol-0.5.14-compact.zip | Bin 1248 -> 1460 bytes .../assembly-all.sol-0.5.14-legacy.zip | Bin 1246 -> 1442 bytes .../assembly-all.sol-0.5.15-compact.zip | Bin 1246 -> 1462 bytes .../assembly-all.sol-0.5.15-legacy.zip | Bin 1243 -> 1443 bytes .../assembly-all.sol-0.5.16-compact.zip | Bin 1244 -> 1463 bytes .../assembly-all.sol-0.5.16-legacy.zip | Bin 1242 -> 1445 bytes .../assembly-all.sol-0.5.17-compact.zip | Bin 1247 -> 1461 bytes .../assembly-all.sol-0.5.17-legacy.zip | Bin 1247 -> 1442 bytes .../assembly-all.sol-0.5.2-compact.zip | Bin 1245 -> 1459 bytes .../compile/assembly-all.sol-0.5.2-legacy.zip | Bin 1242 -> 1437 bytes .../assembly-all.sol-0.5.3-compact.zip | Bin 1244 -> 1457 bytes .../compile/assembly-all.sol-0.5.3-legacy.zip | Bin 1241 -> 1434 bytes .../assembly-all.sol-0.5.4-compact.zip | Bin 1241 -> 1459 bytes .../compile/assembly-all.sol-0.5.4-legacy.zip | Bin 1238 -> 1437 bytes .../assembly-all.sol-0.5.5-compact.zip | Bin 1235 -> 1447 bytes .../compile/assembly-all.sol-0.5.5-legacy.zip | Bin 1235 -> 1427 bytes .../assembly-all.sol-0.5.6-compact.zip | Bin 1234 -> 1451 bytes .../compile/assembly-all.sol-0.5.6-legacy.zip | Bin 1232 -> 1429 bytes .../assembly-all.sol-0.5.7-compact.zip | Bin 1235 -> 1453 bytes .../compile/assembly-all.sol-0.5.7-legacy.zip | Bin 1234 -> 1432 bytes .../assembly-all.sol-0.5.8-compact.zip | Bin 1236 -> 1451 bytes .../compile/assembly-all.sol-0.5.8-legacy.zip | Bin 1233 -> 1431 bytes .../assembly-all.sol-0.5.9-compact.zip | Bin 1247 -> 1462 bytes .../compile/assembly-all.sol-0.5.9-legacy.zip | Bin 1248 -> 1445 bytes .../assembly-all.sol-0.6.0-compact.zip | Bin 1362 -> 1586 bytes .../compile/assembly-all.sol-0.6.0-legacy.zip | Bin 1259 -> 1451 bytes .../assembly-all.sol-0.6.1-compact.zip | Bin 1362 -> 1587 bytes .../compile/assembly-all.sol-0.6.1-legacy.zip | Bin 1260 -> 1454 bytes .../assembly-all.sol-0.6.10-compact.zip | Bin 1354 -> 1587 bytes .../assembly-all.sol-0.6.10-legacy.zip | Bin 1254 -> 1448 bytes .../assembly-all.sol-0.6.11-compact.zip | Bin 1357 -> 1583 bytes .../assembly-all.sol-0.6.11-legacy.zip | Bin 1256 -> 1446 bytes .../assembly-all.sol-0.6.12-compact.zip | Bin 1356 -> 1586 bytes .../assembly-all.sol-0.6.12-legacy.zip | Bin 1255 -> 1448 bytes .../assembly-all.sol-0.6.2-compact.zip | Bin 1370 -> 1595 bytes .../compile/assembly-all.sol-0.6.2-legacy.zip | Bin 1267 -> 1460 bytes .../assembly-all.sol-0.6.3-compact.zip | Bin 1382 -> 1609 bytes .../compile/assembly-all.sol-0.6.3-legacy.zip | Bin 1280 -> 1472 bytes .../assembly-all.sol-0.6.4-compact.zip | Bin 1382 -> 1611 bytes .../compile/assembly-all.sol-0.6.4-legacy.zip | Bin 1280 -> 1473 bytes .../assembly-all.sol-0.6.5-compact.zip | Bin 1383 -> 1608 bytes .../compile/assembly-all.sol-0.6.5-legacy.zip | Bin 1280 -> 1472 bytes .../assembly-all.sol-0.6.6-compact.zip | Bin 1381 -> 1608 bytes .../compile/assembly-all.sol-0.6.6-legacy.zip | Bin 1279 -> 1472 bytes .../assembly-all.sol-0.6.7-compact.zip | Bin 1382 -> 1606 bytes .../compile/assembly-all.sol-0.6.7-legacy.zip | Bin 1279 -> 1470 bytes .../assembly-all.sol-0.6.8-compact.zip | Bin 1384 -> 1614 bytes .../compile/assembly-all.sol-0.6.8-legacy.zip | Bin 1282 -> 1477 bytes .../assembly-all.sol-0.6.9-compact.zip | Bin 1356 -> 1581 bytes .../compile/assembly-all.sol-0.6.9-legacy.zip | Bin 1254 -> 1444 bytes .../assembly-all.sol-0.7.0-compact.zip | Bin 1333 -> 1546 bytes .../compile/assembly-all.sol-0.7.0-legacy.zip | Bin 1227 -> 1404 bytes .../assembly-all.sol-0.7.1-compact.zip | Bin 1332 -> 1545 bytes .../compile/assembly-all.sol-0.7.1-legacy.zip | Bin 1227 -> 1403 bytes .../assembly-all.sol-0.7.2-compact.zip | Bin 1334 -> 1546 bytes .../compile/assembly-all.sol-0.7.2-legacy.zip | Bin 1229 -> 1405 bytes .../assembly-all.sol-0.7.3-compact.zip | Bin 1331 -> 1547 bytes .../compile/assembly-all.sol-0.7.3-legacy.zip | Bin 1227 -> 1406 bytes .../assembly-all.sol-0.7.4-compact.zip | Bin 1330 -> 1547 bytes .../compile/assembly-all.sol-0.7.4-legacy.zip | Bin 1227 -> 1406 bytes .../assembly-all.sol-0.7.5-compact.zip | Bin 1332 -> 1545 bytes .../compile/assembly-all.sol-0.7.5-legacy.zip | Bin 1229 -> 1404 bytes .../assembly-all.sol-0.7.6-compact.zip | Bin 1337 -> 1548 bytes .../compile/assembly-all.sol-0.7.6-legacy.zip | Bin 1232 -> 1406 bytes .../assembly-all.sol-0.8.0-compact.zip | Bin 1333 -> 1504 bytes .../assembly-all.sol-0.8.1-compact.zip | Bin 1331 -> 1502 bytes .../assembly-all.sol-0.8.10-compact.zip | Bin 1343 -> 1533 bytes .../assembly-all.sol-0.8.11-compact.zip | Bin 1345 -> 1538 bytes .../assembly-all.sol-0.8.12-compact.zip | Bin 1340 -> 1533 bytes .../assembly-all.sol-0.8.13-compact.zip | Bin 1340 -> 1532 bytes .../assembly-all.sol-0.8.14-compact.zip | Bin 1336 -> 1532 bytes .../assembly-all.sol-0.8.15-compact.zip | Bin 1341 -> 1533 bytes .../assembly-all.sol-0.8.2-compact.zip | Bin 1350 -> 1521 bytes .../assembly-all.sol-0.8.3-compact.zip | Bin 1347 -> 1526 bytes .../assembly-all.sol-0.8.4-compact.zip | Bin 1357 -> 1536 bytes .../assembly-all.sol-0.8.5-compact.zip | Bin 1350 -> 1536 bytes .../assembly-all.sol-0.8.6-compact.zip | Bin 1351 -> 1538 bytes .../assembly-all.sol-0.8.7-compact.zip | Bin 1352 -> 1536 bytes .../assembly-all.sol-0.8.8-compact.zip | Bin 1333 -> 1522 bytes .../assembly-all.sol-0.8.9-compact.zip | Bin 1344 -> 1534 bytes .../assembly-all.sol-0.4.0-compact.json | 5 ----- .../assembly-all.sol-0.4.0-legacy.json | 3 ++- .../assembly-all.sol-0.4.1-compact.json | 5 ----- .../assembly-all.sol-0.4.1-legacy.json | 3 ++- .../assembly-all.sol-0.4.10-compact.json | 5 ----- .../assembly-all.sol-0.4.10-legacy.json | 3 ++- .../assembly-all.sol-0.4.11-compact.json | 5 ----- .../assembly-all.sol-0.4.11-legacy.json | 3 ++- .../assembly-all.sol-0.4.12-compact.json | 3 ++- .../assembly-all.sol-0.4.12-legacy.json | 3 ++- .../assembly-all.sol-0.4.13-compact.json | 3 ++- .../assembly-all.sol-0.4.13-legacy.json | 3 ++- .../assembly-all.sol-0.4.14-compact.json | 3 ++- .../assembly-all.sol-0.4.14-legacy.json | 3 ++- .../assembly-all.sol-0.4.15-compact.json | 3 ++- .../assembly-all.sol-0.4.15-legacy.json | 3 ++- .../assembly-all.sol-0.4.16-compact.json | 3 ++- .../assembly-all.sol-0.4.16-legacy.json | 3 ++- .../assembly-all.sol-0.4.17-compact.json | 3 ++- .../assembly-all.sol-0.4.17-legacy.json | 3 ++- .../assembly-all.sol-0.4.18-compact.json | 3 ++- .../assembly-all.sol-0.4.18-legacy.json | 3 ++- .../assembly-all.sol-0.4.19-compact.json | 3 ++- .../assembly-all.sol-0.4.19-legacy.json | 3 ++- .../assembly-all.sol-0.4.2-compact.json | 5 ----- .../assembly-all.sol-0.4.2-legacy.json | 3 ++- .../assembly-all.sol-0.4.20-compact.json | 3 ++- .../assembly-all.sol-0.4.20-legacy.json | 3 ++- .../assembly-all.sol-0.4.21-compact.json | 3 ++- .../assembly-all.sol-0.4.21-legacy.json | 3 ++- .../assembly-all.sol-0.4.22-compact.json | 3 ++- .../assembly-all.sol-0.4.22-legacy.json | 3 ++- .../assembly-all.sol-0.4.23-compact.json | 3 ++- .../assembly-all.sol-0.4.23-legacy.json | 3 ++- .../assembly-all.sol-0.4.24-compact.json | 3 ++- .../assembly-all.sol-0.4.24-legacy.json | 3 ++- .../assembly-all.sol-0.4.25-compact.json | 3 ++- .../assembly-all.sol-0.4.25-legacy.json | 3 ++- .../assembly-all.sol-0.4.26-compact.json | 3 ++- .../assembly-all.sol-0.4.26-legacy.json | 3 ++- .../assembly-all.sol-0.4.3-compact.json | 5 ----- .../assembly-all.sol-0.4.3-legacy.json | 3 ++- .../assembly-all.sol-0.4.4-compact.json | 5 ----- .../assembly-all.sol-0.4.4-legacy.json | 3 ++- .../assembly-all.sol-0.4.5-compact.json | 5 ----- .../assembly-all.sol-0.4.5-legacy.json | 3 ++- .../assembly-all.sol-0.4.6-compact.json | 5 ----- .../assembly-all.sol-0.4.6-legacy.json | 3 ++- .../assembly-all.sol-0.4.7-compact.json | 5 ----- .../assembly-all.sol-0.4.7-legacy.json | 3 ++- .../assembly-all.sol-0.4.8-compact.json | 5 ----- .../assembly-all.sol-0.4.8-legacy.json | 3 ++- .../assembly-all.sol-0.4.9-compact.json | 5 ----- .../assembly-all.sol-0.4.9-legacy.json | 3 ++- .../assembly-all.sol-0.5.0-compact.json | 3 ++- .../assembly-all.sol-0.5.0-legacy.json | 3 ++- .../assembly-all.sol-0.5.1-compact.json | 3 ++- .../assembly-all.sol-0.5.1-legacy.json | 3 ++- .../assembly-all.sol-0.5.10-compact.json | 3 ++- .../assembly-all.sol-0.5.10-legacy.json | 3 ++- .../assembly-all.sol-0.5.11-compact.json | 3 ++- .../assembly-all.sol-0.5.11-legacy.json | 3 ++- .../assembly-all.sol-0.5.12-compact.json | 3 ++- .../assembly-all.sol-0.5.12-legacy.json | 3 ++- .../assembly-all.sol-0.5.13-compact.json | 3 ++- .../assembly-all.sol-0.5.13-legacy.json | 3 ++- .../assembly-all.sol-0.5.14-compact.json | 3 ++- .../assembly-all.sol-0.5.14-legacy.json | 3 ++- .../assembly-all.sol-0.5.15-compact.json | 3 ++- .../assembly-all.sol-0.5.15-legacy.json | 3 ++- .../assembly-all.sol-0.5.16-compact.json | 3 ++- .../assembly-all.sol-0.5.16-legacy.json | 3 ++- .../assembly-all.sol-0.5.17-compact.json | 3 ++- .../assembly-all.sol-0.5.17-legacy.json | 3 ++- .../assembly-all.sol-0.5.2-compact.json | 3 ++- .../assembly-all.sol-0.5.2-legacy.json | 3 ++- .../assembly-all.sol-0.5.3-compact.json | 3 ++- .../assembly-all.sol-0.5.3-legacy.json | 3 ++- .../assembly-all.sol-0.5.4-compact.json | 3 ++- .../assembly-all.sol-0.5.4-legacy.json | 3 ++- .../assembly-all.sol-0.5.5-compact.json | 3 ++- .../assembly-all.sol-0.5.5-legacy.json | 3 ++- .../assembly-all.sol-0.5.6-compact.json | 3 ++- .../assembly-all.sol-0.5.6-legacy.json | 3 ++- .../assembly-all.sol-0.5.7-compact.json | 3 ++- .../assembly-all.sol-0.5.7-legacy.json | 3 ++- .../assembly-all.sol-0.5.8-compact.json | 3 ++- .../assembly-all.sol-0.5.8-legacy.json | 3 ++- .../assembly-all.sol-0.5.9-compact.json | 3 ++- .../assembly-all.sol-0.5.9-legacy.json | 3 ++- .../assembly-all.sol-0.6.0-compact.json | 3 ++- .../assembly-all.sol-0.6.0-legacy.json | 3 ++- .../assembly-all.sol-0.6.1-compact.json | 3 ++- .../assembly-all.sol-0.6.1-legacy.json | 3 ++- .../assembly-all.sol-0.6.10-compact.json | 3 ++- .../assembly-all.sol-0.6.10-legacy.json | 3 ++- .../assembly-all.sol-0.6.11-compact.json | 3 ++- .../assembly-all.sol-0.6.11-legacy.json | 3 ++- .../assembly-all.sol-0.6.12-compact.json | 3 ++- .../assembly-all.sol-0.6.12-legacy.json | 3 ++- .../assembly-all.sol-0.6.2-compact.json | 3 ++- .../assembly-all.sol-0.6.2-legacy.json | 3 ++- .../assembly-all.sol-0.6.3-compact.json | 3 ++- .../assembly-all.sol-0.6.3-legacy.json | 3 ++- .../assembly-all.sol-0.6.4-compact.json | 3 ++- .../assembly-all.sol-0.6.4-legacy.json | 3 ++- .../assembly-all.sol-0.6.5-compact.json | 3 ++- .../assembly-all.sol-0.6.5-legacy.json | 3 ++- .../assembly-all.sol-0.6.6-compact.json | 3 ++- .../assembly-all.sol-0.6.6-legacy.json | 3 ++- .../assembly-all.sol-0.6.7-compact.json | 3 ++- .../assembly-all.sol-0.6.7-legacy.json | 3 ++- .../assembly-all.sol-0.6.8-compact.json | 3 ++- .../assembly-all.sol-0.6.8-legacy.json | 3 ++- .../assembly-all.sol-0.6.9-compact.json | 3 ++- .../assembly-all.sol-0.6.9-legacy.json | 3 ++- .../assembly-all.sol-0.7.0-compact.json | 3 ++- .../assembly-all.sol-0.7.0-legacy.json | 3 ++- .../assembly-all.sol-0.7.1-compact.json | 3 ++- .../assembly-all.sol-0.7.1-legacy.json | 3 ++- .../assembly-all.sol-0.7.2-compact.json | 3 ++- .../assembly-all.sol-0.7.2-legacy.json | 3 ++- .../assembly-all.sol-0.7.3-compact.json | 3 ++- .../assembly-all.sol-0.7.3-legacy.json | 3 ++- .../assembly-all.sol-0.7.4-compact.json | 3 ++- .../assembly-all.sol-0.7.4-legacy.json | 3 ++- .../assembly-all.sol-0.7.5-compact.json | 3 ++- .../assembly-all.sol-0.7.5-legacy.json | 3 ++- .../assembly-all.sol-0.7.6-compact.json | 3 ++- .../assembly-all.sol-0.7.6-legacy.json | 3 ++- .../assembly-all.sol-0.8.0-compact.json | 3 ++- .../assembly-all.sol-0.8.1-compact.json | 3 ++- .../assembly-all.sol-0.8.10-compact.json | 3 ++- .../assembly-all.sol-0.8.11-compact.json | 3 ++- .../assembly-all.sol-0.8.12-compact.json | 3 ++- .../assembly-all.sol-0.8.13-compact.json | 3 ++- .../assembly-all.sol-0.8.14-compact.json | 3 ++- .../assembly-all.sol-0.8.15-compact.json | 3 ++- .../assembly-all.sol-0.8.2-compact.json | 3 ++- .../assembly-all.sol-0.8.3-compact.json | 3 ++- .../assembly-all.sol-0.8.4-compact.json | 3 ++- .../assembly-all.sol-0.8.5-compact.json | 3 ++- .../assembly-all.sol-0.8.6-compact.json | 3 ++- .../assembly-all.sol-0.8.7-compact.json | 3 ++- .../assembly-all.sol-0.8.8-compact.json | 3 ++- .../assembly-all.sol-0.8.9-compact.json | 3 ++- 281 files changed, 276 insertions(+), 195 deletions(-) delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json diff --git a/tests/e2e/solc_parsing/test_data/assembly-all.sol b/tests/e2e/solc_parsing/test_data/assembly-all.sol index 0a0efc63a..174ed06b3 100644 --- a/tests/e2e/solc_parsing/test_data/assembly-all.sol +++ b/tests/e2e/solc_parsing/test_data/assembly-all.sol @@ -1,5 +1,12 @@ contract C { - function f() public { + modifier a() { + assembly { + let y := 0 + } + _; + } + + function f() public a { assembly { let x := 0 } diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.0-legacy.zip index 28941b5b90dea7dad7b14881aa32362d410b891e..91d6a134dc250f216d6e09919ba78cc3a1bebae6 100644 GIT binary patch delta 1067 zcmV+`1l0TH2dfDfP)h>@KL7#%4gj0Esa7S)h`|8_000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq2u#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqieFi7#o*&hw-U$1N0ViwUtosLo%`=P@bRV-W2NXhp`X zJO*6-St87=U?P>TvXUt3Ax)IiS`4PgB0PjgeTcU=+i}{|o_w++F;5zr04O%Gm_{wG z-9aF2*{43e`eHGc!F!NG7!)lN+}~`9DR>4Ma^uP;bXO#Qu3JBClBG0~68R%3-X(NA zC~&BU@}6{=rsz9l^jx5RPNHBAKKqx7QeqYyg@N3(+l`LRfok%AeY&^tm=8dpFw{{` zz_a?lgJ&K{n^tdcKZ~X~J5Pd`rN0n*T?Mn4dyl^feF3l>rDy&f!Xcx~J#!t+;NlH^ zXwBCbQ!plfhfLD$x}HkwLTxx;3EtS~!(-rB<**z#^~BYusEjgoub<1>9xC|H;WY-o_Vl;3=06aUPHOsq}4j;?%25EtXjRp zqF${8jf#6Cv&yk;g(OD9zavGX0w#|>4J_yI{EqS&XdAu*Gyo5(+<~)KXz4z67*2bz z=3As<%HRqj&LKY5srgJbeZM8Jn7W$8KiJyV7hSw!!JHG;mBW=~`Bzvg1#gwL?qjZ8 zq~i2{!)ryWH00RhCNBNs#pP`WY*GLOH~&?2@^W)QD3{I9)t@JOl-hQo!PIsr4gHzH zUF%Lmw?5N{0!)oEYwn=->Pi!+4im$+qGTa%ZYAEKs}K`zyW z`hmu%r4wishQGeeoVB_g+CF!8{CCkMrBt(nOv+biJvg7=8B5~MGE*)bn6r~71uwJq zp$Qo|bYtT}{MsB|5EgD;={&O?bJJjBG-OAO!Fq8^@ctnfz3vW?c<~DX{-xF!P)h*< lKLbAi0ssyGo4Ki0CCP}v0R#X53J(C2nFB`#Lj(W-001te{z3o% delta 875 zcmV-x1C;!$3FZeIP)h>@KL7#%4giI5a8#pCR-QZq007zw001PDZUiThLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF!~b=HP2p*Usr&MXPiwdShX5D;uf%J7?V&mU zZ?2Z8_M_usvM3LkiuI@cN7jE^C$n}?TDn_DYJ4sg>$;tH7g(tkN|-ZkaesoAJlWNe zYEo%DB_g4L&;}d)j81uf>YI{ALLi0wp_c!aiUQ~)#1Ro5>#Zw+VOyrDH9({{$hq$| zGc;bx+vvA^$F%p9W%sx)obhj3%ov{^FTHHiGvgFrS|RPfZP@$ACmw$#C>U&nV=Y47 z^J5(40U8&o15iEWNj?_8prUM0e0|NaP+FON7y?8!gaCRzV7$$r23Q_(sE>2TXYLHj zhgXPsKK?p>aoUs6J5XAfHq3CB0^gU0{*ZTqVHPhkmvy+g-LyMfsJ!+zxfR~APlv;Q zOV)aX@8XzIwX^4cIMRPTn->Kryxi}qS!b5h!;9_!n38h#D0!iYpO|~bdeETC;Z)}8 zF%A-<_Z&Tcrx}ZrU*Uu#Y%IJj{yvM0Mol$+IlsDqCa>PxipSgOA;plQeb>VXIQ1Ji z{Es88aM^nh{i~i97ul5|(Ul|3oosNj2Rr?0;>?yzfkB!Z5JrESE@sXdHSN4JbJL@x z(_6}0W@7bz!p!c2gEk0A`7y(4O6(ZEA}qiH!ksu%b*9eRa{|`t`1r=%|1Lx;)M5S{ z{)5c%?l}eg>gPt?!R}H?=Ar_S`B&ytnHo;kro}nU7MFC8mKEGBwHpXEP(86Ivxr_B zb5;oLnm=~L3;KU<8617`*o6ndC>a6UL9=b%Nj$(^T{FEEG#m85HUkap?ZJ~V25t#0 z`yF_G323R%h{PwKedO5vXDdG+_U}$Ih;u}j%w%oG<%ZVl<Y30C*ae)W3zR)KCDK4%8 zft?qi>}|Q_|BuzE08mQ-0zU&k00ICG0EKaIRHIH-o;(8p0NM(ZT?9x5eggmi005!L Bt0({f diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.1-legacy.zip index f55fa211ae095e3219101bbde9247471237843a8..b9d9d2076d9a543d9a606bd5787a5fd5b550f70f 100644 GIT binary patch delta 1069 zcmV+|1k(HE2dxPhP)h>@KL7#%4gj3Fsa93}%!LC4000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq6u81Clx9`$Bhun3x zLi~j6r9V`XKGs@)O6GztNLoK|=!c9dfhyls)0Jay-uy2$e9E{R^Fz**hKOA0lsQ~v zrP*C$)+uXt{W2YbLJPKsXL#ptWXEO12JQGO5ZM4gX{mJlczP1F^k&kETfut(uU;!w z6C90dxc|gT90tm#6j()t@yANMutmAqp(+_$6Ul>6Ydn(G`p zfF<}rpbp%BeKw}#_Pm-{F%@)o4 z#9@R$%U0^Rh$EgM$X6745({oq0wbqAx4qLT1LWM*AK%yVLnTR7Svxf|y}Hcbzb6STIO=p|lG%Ojm>bL?6_83ZhfSW5!! za-mln#JQxOjc&(_ru_IHJmMV$)(5f(fd2ZVrx?yG4)2#|Y^HX@iWZDzjboUt%XHWF zi5&iaQ99a*+K%Baqbv{Dmu!MUIU_26%cSDMX@g}F$!20SaQOdS8i`DKzPR7$=c-ho zabw6aX`qHef*Sgbo&wuFF{1-4Sj)4$7|=6siDn<>>?(cyDdrkXn2?rbXxeRi<%2j1Fpu3lrWBy;2F#Z zW4chL1`FdPp^d#JNgE?y8c9)s8A>PvnYnxl+UXB@iwVJ4>;WApe{X-NB>$=@Q!-FX n0Rle*KL7#%4gj3Fsa93}%!LC4000UB50jSzNCrg&00000TbKOI delta 874 zcmV-w1C{)(3FQYHP)h>@KL7#%4giI5a8yt+oXR@`007zw001PDa0DljLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#3wcoADsB@EYccQLdI-h?SuSi7X=2v4K8D1 z>y_jj&DZ94VO)-bx8*sAd+UE%96!H9=1V7XD6n)ReRH{uyDP&$5=hGQ@uwaa3XTEP zO(KSgTZ^H=h30^1@eNi$BC+cyumB~J0XDy!rt2aqb)GyLC{C*4Ip6zz8YAN+Cs55> zcO4U-L0lxFNUZ9X<`_oEGz8TdENKX@%)=L#F8I*oAgg9Lfa=o)s>6TBnru8{D1;7P ze*(FlR+eUR(t_(Uj_B;t^jm`4PC0&S9@MbQ|DRR$sZ_jO`1T9g!8* zx?{|@3PXGzWup5i8=0|&h8Y;p1GYd&Uhwxu7kShvRW(F;otZtj^oO#KYh}isO7Pdn zPh1DER8#augMhhq1V9WeoJ=TIPCDDH&iuEsf3vSRqnlti6HP%)g!I|Bd!+6t3j1V{#b0{{R306~$M A*#H0l diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.10-legacy.zip index 801a9992152fbbd834d298cb9953a4483ea5a007..287f7e555cca19c09713b0859c2a5dfa16582421 100644 GIT binary patch delta 1091 zcmV-J1ibs22)qd!P)h>@KL7#%4gjXPsaEZAt(+1B007$#001PD-2*3)LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#ud`s)U;icu_ zPhAM0%c;4D*Tz+iz|-%+@ygVBx9-_ZOUOM;*Q&2)F}Hz+PA`F)scSxDey>0q-9Vgp z3JQtqDe-{=jFR_u|1wHvuQ>#{;hD64P6CwW)hVB(E*FOPd2fWpr`3OE$SWV=H^X*J z!(hx8VtuN|hkMbdHyIu7f??~3K-oN<+2uR0Q%?d;tiBkTjT5Empu)$=w%p9`%v2{i zR4w<7JU-eVyk;xZ$Re|&5Tk6esD7*kP9UFpjY5-mt4BO`uu9K>Rp_zS8D51$03Puw zV{y380Up$U2fI)OBF%sQf*-=9oZk~*rn#I`e?MaGYuW^5BR)KHV(p*)S6APQ_ec6b zfwG9E3iiv7_|oC3=~qHB1iE07CLiWl z@wztH`nLKlbUhjpCv=_!I*@CK0?YA@u^$FRJk0%g$An@P2sM8R3Lu~;f6x$_Gg@Q1 zHP@t;w5r4u(@>RVf)TiO-J^DSc~KuRao@DC7DbO&$rrMe=cxF#KQJv(w zq(vGv)hFQ2+Eah&iI}o%;Hp@O1StG!dM~*Yz0DnLX^niNQnv%(-JX*+0j9gz=?hJD zuWV?eU$%5+__|Th;4s)!!y4@(8Yp5$@NeW{92t{Bg@a0OJ4V$^QK7_W*^{oq2N@pRmfSz^?Nxh}bHIiL^_qWHl~)ZX!>Vl}`Jy^c@thE$;ysEF&9wRS}1UT~L)I=JOn{EfRO* z8I)}=?Zt=TrtT^t-1!{fF^+#h^6oSWE?};&n>?Z_={4|VD`lfGE9)<}nx~L;8R${rQ1?kX>L*OyQ|uK_$+x;?HGWy z9PO1<6#YJ~uok&9@KL7#%4giL6a8%=|%ouP3003AE001PDe*`CyLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#1qG4)KkA-T@TNnEhhbIeh1j((45_#O&Lz< z@A;}4+Z*K}KZn*d>=_BQ|K@*d`unaaD^<<<`IS{pBTAarFK0)BjppZW+wA7pFtk=# zec0|7v`OAJV(tdfg zT(hRs+stAp$ZbUorDGGE+6VaxrwtHRP^zy{-xnSh|BVRTcKMWd%P;z-TROAzE8*t1 zOHwU%jhu>9YC}PYk*j}ai?yv`>bXtOM5BPGV?NO8<9{7n%z#2RN)tZ&S_^_JAA6Z& znTGH(QtgdPot{OcjgJ9LAjF!O{;|DBA9|5QyQWf7{FHw%`x*LDXGU2$59{oLv|wS~ z;0Yf<^F#~D^lUc*g5*HEvN5i7GI#!&3~3E08cthAjK1-xS!#dl!SPSUJQ4z&=-V`$ zHfNX(ttJ{iRO|f?`$|W2Sia@Ay8X6o-oMo}ln#+F z{7hc;yWueiftG*D7YGq>UFSh?x{W1S_!A!n3~I>()dEHIBYjL*Wr#RPwxFM)tw&>} zPq!4@N3g3}c*rj-jlz)Qlq$ml2}hE*594w}ssUNfvJ#-J*>pwlK#Ey*^_CtnU!Yw) zC}w;qUCujI)36AyO{hPWwGn74(@2=qlCz`$*`#bih3aff=A2Yg|5>tK1B4-10~leP zr==0*9hbA~SyvM`0$X9FmYL3MgX~OI<5ny$`w?U)sSJ&z#lBRpk5Tw3;(2|i(9@;_ zVd%sXNRm>b3H*4;R!~a;0zU&k00ICG0ETgJRO6}47;pms09Xr?ZUjgMvI77B001!P Bx()yU diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.11-legacy.zip index 5d2ea6db8e2d6341bd34ab217c8201a0ffcaecd7..431138261b409993aca8e5c093dff1be5057ba87 100644 GIT binary patch delta 1097 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-legacy.zip index e62ea14b01761902869191ab1d25160ef07f7e1e..e1e5b3d796ef2088a67a666a1770a04d54800227 100644 GIT binary patch delta 1256 zcmV@KL7#%4gjaQsa6%&G(f!s001}>kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4s7x5P$eSSR=GZNB zf2bahfETTD4ky%qiw*IJr#?OX<|}Za5{i@YD~Th%Fpu{E>8LLx+uL zR;u0sFP10agA35lH+Q5%|*$tGYL%!#U^qV8h^Bv5r zi4_t0i&W z;RD*$P_2xAJE~0UY&>Sh-~XjkRXTqo#W9YgB4K!bLK98M1ox$47OtDgK6kP`*4+9i#se@q{bLtWKP&!KS!&1yeEWVnYA zN5{c`?YW>6aPTd`RE~h*t$Bxuf%xk8%b${Xom+tJ3uZMK9RZc4w76YN90*6#0Zh&= zL23K+p8}%sq7L{~r+~AAWtz7+SI?7CpTn_FBF8=co@T)ee%^4>K;2|sKLDbZM9jD; zb@2n*Jq}f}QpWB#%}t2D8}3RRQ7WS&@Ki2;0Jd($GX7qSI|8c?a8FE&xzT6v0%(i5^K-2v+tinW35FTMroz1oGNh~w;OXJ(rCFt0w+92 z0U1Fu<%m_9frR0Sw8JcT|CrJ8ZhI_GPVUGyP_l_#Xnfn2KcVL(VB+dG^rI%)m(UsS zviwxXOi-7t%TPEu5Lhd0P6J32k2nQ?F<%4GPTLoHvohT2DgTd76gRYSi4gg4!}GR* z9N!V|U|x`k6ooj0GCdo&)i~}{V757Prrhhxt0Hs^38Zu9ZEj02z4&g5X0H_BK#Usl zz`%t6t6uNdtUeg7@lq1DR43Q6h=@$?pmB*3MYUTmLYQqG-tzL&*Ak$ezn(Qb#tar( zobn7f&ryQKZg5cs?10taOQlT`#r2LA*A0002Ac3;8( delta 1067 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 R05}tqRs=`}{saI30028@ZMOgb delta 1067 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 asaE*HrkTYA0024@lUM{u1_uQI0002@L1)AO delta 1067 zcmV+`1l0TQ3Z@AdP)h>@KL7#%4giL6a8&pyu*CcW003|fkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6wgKHJ$|lPXOTo30eG! zhS?Oo9YlY2D$jm@wG&^WOLnzoWu6A#llS(wInxUgSd>nySFqvD9grjd%RBTuL6LSP zmYpVPwh?$Nmn<8(m(xGeP_Y$Iya1~U^sA5jW3a7rX~*(k=M{v*S#hw8l+V!j`b z1VTm0g=;K2{iEtUV&T?loZoO-5Pax&LP*GU={lVb*M75qp;zI}-*t7!rfm|}7Zes% zsb%HOOO)(%J{^57@QHFWv3u^`<}as9hce(1f>3iEjm<( z1efbJVH>)!Q3Y2jE`>v$d9?*C6{N{F%^%)M>Eh3|I6SlOd0rKbMP zhMh10PeYx5S%lDS=jb~^5?l-&u|xisi8BL}R^(YazhL$HorxUOR;;{iKh+LuT!?+4 zR-VtQsF*6daemfBq&Wciuruc)0uG^AaT=0F*9viaKh>Mkj7%tMCnRYwW&@Y5u9w`& zkV7)iZ_xkfJdSZ5UY&?4fi^L}$s0ACDeJkySiq-$JLVC{uFE5rVXrP1OzNUHEs&@v zHnzqUlvKJJ*0@2#jU{}7v@`8p&T!GU3aG-;S)44zf+HgOz;cJ;;!z#6q1dYR)32Qe znZ|e^ed|JQODkBNFn4HbP_X-#R`6f*JgqECcF@?(>qY(?sK>$ennQcPNJNs%j;x|C zLe74F87?Mc-B#X@&27S0Lo%Mzg*NToDRfT&FSMzZn=V_2_qEe{a{%hVpG#!*P2Sy6 zhBUC!XRJi-IqATd&=Xnrbz-f{_@XGpQ=35H#<Ey zym}2UZSo8YkfSlbRW|I@KB#Lr@#IafwcCLgCG1QZ2of`;{$G^Ad*w)YcIlrC`wfEs zMsmeg569wvdJ6fVYdUyjgE27Btqwf{TWrxVZeim+knML1Hqigy{<6tXO928u13v%) l01g0#ad1@lDX_%+0{{SU4gdfo0001!Cj~+VJ_G;&004b71{VMT diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-compact.zip index 3f79ed597568392601b240a56138213eecd11de1..98bcf050b6709660b3ad9ee6d32e00bca331444a 100644 GIT binary patch delta 1323 zcmV+`1=RYs36~2PP)h>@KL7#%4gjdRsaBlZ&6w>3005^Fkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4wNt)_(PwpKj+3aI zsS{Ym@pL%IF5N4Cgx}b3B`6g&jbHuFMFWTiT4qcfGpM1NBGOgjW)2%Jz)76uH62rl zM~EIE9~)f)C^CSXBOhvYTgA$Aov+ep^*{ZY+{EgpP!oCZ$|&|kjw<_-)VSHU!xooZ z0bK<8t5RZ|V4gGpIaosK#?nH*`1#={LfQ6mUzaPzWsUrQF_wG@=j@5wCX-a1_i^O1 zNADIVcCNZKF&gXriR_NOY=&}5fFh_GrayjIFP;%9T5&%C-4+HQTH4#af=d&H?AR`` zcFx2H@+S=^#e`PSXZC~Q&rP0KGNl)iciBxQ81=}>Hk9Rur z=@$O!Y@l&}#EYVWF@mqSX?0QfX0w3Fk5wpTB88&=guOI_-I}LV+P2)zw^ZkEgGLIm z*s!MXU!}aR_|$r-k?n^Y(~9LNR&4s^dH%3#th2sUS6op3vZDSW;#8%YMC8VgvCIH& zW9t#nPkG)byu{>u^y`kAjjHvBX(P0xbv-mi7Zg)}0orb$=gv^L12EO3pd_aN88I^X z&&YwLDN2I0_TD+UnM&AcTJ>Nrx#CmbSytWFpeXAQ`}@?rT=Z|AGr+9tjZazG6qtQN zVD>{j+@QIaFLFrpA;`T{+&|08O?kyGngKUwV*Y_8o$i;(75FLrtaPqe!8FU2R8c2*e-9N#(D-AU(g#h5+TVomV1=3bfhn%Yd zpmeNIei&$a72WX&jCbh}!~G{>PYjxMWq{qE7E_78rj_3KGHJgwz_)EYWY3JNYHB#7 z?oPmhWC7o)-k=-^p*A7^?|T;_*(cL>M<6bLrBI&(E)9DkBnC^aFo!-#+?!b6I92t%rVLVd`~rLOYtoGjb?{Gl+JR%b;KZd`2HTPsiBoT;MmNt$AIQ5 z6o@g3Q-6+uBFcjT|Zp-XCOs5a|Q_8+lad#b28?1p9s-P}t`APUKLJ^35JgYT+ z)i`gdNxn!N_H&hz!`;QYUnOUpJO31Pl)J`tI6j8iS$IfCWhX3<^Iw4R?0Rle*KL7#%4gjdRsaBlZ&6w>3005^F h001Na0000000000004ji0001!djvHGF9iSq000x#ew_dS delta 1078 zcmV-61j+lC3$_UuP)h>@KL7#%4giL6a8$4?2rLW)0083+kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6CdwA zqqhieMqp{#sU2K@?H|zJty29eaQFYF&CK>Cj`VOgrw%W87y;bk5rVxYJ;D^$KuaC||Jx zKxt%v8Eq5Ca&8iUt52x95$n?hf9e$8tCnMy=6`m(UI)W(Blhd} ziK;q|3G0xB0e?UsgQX*Sd&uCo4D8G*a3d{Qx(bz5#uoYpiOrtmZF@v)pe9%_k8k&v zy^AW(F^Z0V#&TgxHg`ncFjhk!Tc@>WmRCkT*St-0mYu8tSyUj_6I5@rI2)1IizkWFp2XHbkBj+{87l|o>IN=V1kVuS-grD$D%p4)**t*7pzgT_wHy?t`G+{LU|(^sSTumRB>1}SRP~b!5pQyQCiO*fA44Ksy{K>`o~O#KQi5eD`r~#U4@E^>JPJwB_`Du* zlV_CY-FJyx;ZlX>WARhuZY1II{+}&+Q~_4sBdhpM0E$Hmj8vs{A`8(bZ}!Y+d_nea z-R?SY-~4+A%>0sM=VI0}jr%j8d>)+AkbFH$ w^nd^7Z{BQBO928u13v%)01g0#ad1=$uq+5H3(^b diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-legacy.zip index e6be05ce3a7604c99ead2897d6fa4d218d3ad116..1ba7ede7f95cb822d5a6e610f21f1070e9e6c5e8 100644 GIT binary patch delta 1263 zcmV@KL7#%4gjgSsaC9qN7lpy0024@kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4wNt)_(PwpKj+3aI zsS{Ym@pL%IF5N4Cgx}b3B`6g&k*<=9x=*P$<dtKr ztjE%R-_@R{>iWsxD5Y`G^{JtAt)$!Q>n;{P^@{;;!-T--xyPqEh3xmZgTv2Ce0wKv zZ*eQE1)Oz3BrE`nLOMfsd=y_;;SIux0QpjbHw4=OP8^+o$O^liLU^VDZWEX7;%RFj zcdSFmMaWqiKrfa-%6-(J@iCRULEj%&bQqn{0~nDIjt~7PXJZfGeH&%GF{s)<8sQ%W z^d;qF`LQ%DwV)PVhQa0O9bHv?zxYML2kFjvZ|GI46%vsm-l7Ac)f1gy3RRMqLm$Vj zq`RH7P3`1=&N}rqca+2yh4mC#11nV^2!4p5QtCzyD_&eG8}#tw?9$U4i^F&958!YN zEd25QpaMQs$<+UxWHc-!Z`? z{1~a-_C9stt!SV%F_~%k|7h>K1jmLfMx1gVw=fESi0$@;@R>hnty;XUg{c4DLvvxe zcHmOS)Z(2y-Z!2t+s*3mF-W{R68+7poINgEg1+{RB%#E}BnwQ?sm_t}RH*L#m9cDd z)$ez{8YXrJsGSQ73YU=9I9k{DJ_+)=m_`| zW%G-FDJ~;T&IwBzT(*pP%(plp<)6ggm``adGpP2U>XHzt7O?7aVAq}L9cnK_gAcI! zJYKpLBn6=Cu+?}`j3x_#JGes3IR0GRY4--7eA`gy8-1tCD%kNYFAEBBqq^Pl8`8b^ ze2eHAppe<90EvgI-j%F{mJNLhQjjc;LjsO}fQ6^_wfvwW=Z@E-CI*Ux&5bEXiIwO0 zRh4{xR1M9YKCU@U)_19j=sveR|TmYE;?tO*;kRqCJY|SMq(~VA}=i8Xi(%}sI`r2`Y-5maZ zZ%r;l^<49>UWD;_ytinZ2#ov2@xwC!>RJreb*o16PX;Y+BMN#^k3&&EM*imH-px67 zzgnRU>Dubl87T^y2M5vH_3!qNaqH1r~D8vb=P3-1g-L{sXBL9Fi@Ilv;^4V2j z7kl{6SKyeGV~)7|^lF zrbkg9D7V;JPkYo=8&=&m>uiQ7{EQ`s1qGgCQ3zqm7E z;QG}0KTV7o1p?~siT)IcvY%rIreo&nmr!ACvbPh|ef*RgDo{%S0zU&k00ICG0I9jD ZR;-6d*2Dw=06G(sR|H4~1_b~B0027GYKs5> delta 1074 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 K23!OH0000%4H%jL diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-legacy.zip index cf1c5c9fb3db5de679eb304373d7cef8eec3b04e..8f6c8053bbb8674e026ca93b5bb86d74f2df618f 100644 GIT binary patch delta 1278 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 delta 1073 zcmV-11kU^T3b6?oP)h>@KL7#%4giL6a8xNI2HOV&006rVkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaA%D0(e}mm)gLJ z5XGAYuG(|0G*(%El#(#mx?RwKPvszIACXZD!{1!+`O&D5{e^P_f__2HuQY@*xh;R% z@}3|)pEdc>8!LEoX954-f&{xMWqI9M9to&IQf<+`=9-OcCEF`-cX`G`6MqH6=mHZ?$KC-t7ffV-;DV1D9YEQL41d zjP8GN^3N4aZa;JYhJ3~~I!E6#vR@>G>6I6Pey4A5ReX_KQ#@0kj_uF{Ly*`PShfPL z>rcsVJ``uJKFx;p$lz3sY^8%gVL26Jg@7xaNf$jhp>8sYKOf&C46IHbKO)`DKpemN4kbbO)kq$)g}cNSn759MLrj?9NQ2p z=2HGS7;Wf1zhOIR-t3QzxY9N)5!Z;J`|`2dSDGPTUTn7Mlu=oFcLZ-)?BtM^K~va) zOEDe8sam=@3OI7@;^PWm!LDk5LhIYTwEJ#kEs#KeZ_*8o0fpp_{BpISjl4eJ^p_7p z0;;#v%jOj@6#2F$1u$p^2@@+v_H~q=MKVq< z$uVBeX~KXj403L5YxHi|(&@{foMZ8$p$~qEz@n;rmvFWY)<5i8qUp_fVa7iicEA65 zFFaj;W0dEd8a}?7dH&l7)TIvDt#}M57rn^cTn1*8&HdMZnN8!~yo&}2R;3yRfHkE3 zD96X29?;b{76VopdWl?f!O++x?kXYFRFL{&_)5C0XJlG*&8>1 zE&6_qryU&CrVEkUHP>Nh5-7m;7ifbkc=}7Up5U?vtVJwrx^QiphD0B{3fwrW*tFVZ zLP8E}#8+B^KgSRm66SSC8i$}GqF#GOGyY%KXH+GussW2}N@a`Scy>-xUjxT5F#oXD r8az--0Rle*KL7#%4giL6a8xNI2HOV(1ONcL4wEVcNCrs+00000VCD13 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-compact.zip index ca31d31c302149e6b7430a481b6beed979833e2c..ed0e3aa7b3f4ac0167dc2fe39c2fa15132856e90 100644 GIT binary patch delta 1330 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 T1ONb34wG61NCssD00000DM$Wh diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-legacy.zip index 2a5fd5b7a5a25af134c4601bcfaf03da11af3e58..6c393cfa12e188f1dcb3ed36412ee6c3074f06b6 100644 GIT binary patch delta 1289 zcmV+k1@`*734se6P)h>@KL7#%4gjmUsa9<1Hssd?005d3001PDeFP_wLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#PEN|YDq<91KxR#0o&DmxJPI4w~{o})>G z1L>3l+m#b)*yVFZ@lM-Bm7|tM4-sW6X!1K`743_3I6k}!2?@;@=j~W^ir3-LcR>!; zD&0>V?f~flozj}0S%EK_241-kfcKct>~`PYA(tF72i2_1a~R?DodJI%6zEF=1gy$> zyi&#~`@!(Mn$Hz$9+Vq=85XOZE?6}CACL3k2!m9d(HF8qxvh}&D&3?lI#n*l=z=f2 zcXYaeu}@;5-f{tCPq;e%KKlMMq6ZtSp(Xl|1|p)CQQ37LvR^dWNf25HzKpO$Gat^i zXvFzt3Q-NZiV{R?O(lP++;(=xp~Ogr={VR*A3}6Vk@EWx*h})pgS-V0xO@4a!gk&> z&sH^>;~902b;dxZ8*dwX=Gnud3}tmzLzQ@28?St>wkLH>=-yU8>_ARj%FVFpYmcNk zA(8CtM(eX++^cJSR?GIP3Ug!9(AJ&&Z4M$Xs9Ifd^_l+l=kb3gIz6@%i-<5J&DzBf z;f%sDt~BN_^(XvWywrycur@a_An5|R%UgYD%7VP|98;x{hWUPRm|c9C2CtgURNJMm<{ICZ%l{S=WzLx9H)P8Nj*tM#gjS-%BYF-GWvg@ z%-a~Bf%6bJsqKH#&KUN@OMLCDxpAU8a|Ny~q5!}p0a%Vs#L4cir{5GDWF?VfKL=sM z>>($xs05w1;Eu#(UU%jEs96K%ds=dB+~$G`2Cvw7P$6mv@L6JO62iZxW1DULxM!6_ zS--O8b1#2)Fm+oaZAzXAd)Su4ZrJ?j4wYi^Z%Tod)!u}XOI1T70h?+C2|?Bh9!vRe zR|N2IZ>O$tn=iNER}g^HVz^x&CifpL3OjRhgOX-(Eun)O1q;YTx)w}{eb@K)@YRkd zL6oC#r|lJd%(FWP7oAy&bD<0T=aPvPLSm;@E^mJ_S}`?41DIe9sVETAiNe1MTcg#S zGTxQy5j3y>C2-9bcgoXqI0QO$EXYmMuB#@X56_LC)ma!l91}X_(_6+`Cbxmz5`uO?DzbQI~1>$JX_h5fP^K8y(9NVRov8I+hq;;Ti#Fae^W3WU>~)HRe3-c-;3>Rz5YJ+ z_Exo%jsgGjw!=_RO928u13v%)01g1Fxv5rc={Dro1ONb<6O(KNNCp`N00000<2`IL delta 1082 zcmV-A1jYM-3%UsyP)h>@KL7#%4giO7a8#1YC(IB8007|*kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6pt_0c$_ zIW3_2?^wtz$IlFZr8h6|(;%Bx3tkfboBVQi7RBWR#k>hw0-oIpSGK>-@FKGaD^kVk zx@$H;fyDR<5v}nBWqaQm+SV5D1=7?OgUM$(d~mF{$}?we0W1dK=gCs`Ul4XUZGg(m z7o&yIjkRQf`MujML#W`wF|T2-G$2RKiO**SgrG*Hgg%vj)%%mLimDa_TNdmLOKtE0 zdOyb409BxjU6?EOa3h4(A+ba~CPlt=*p_*i4_hT|%1${w=*Z(1Fn8Z1_ zG_b;R#ykNH^_SB<{&uf-4nXQgAR`otQMd~LA9 zAh+fZ!S?SUB==?Sc1@&jZ8lGKAbr%~|H3nJ)op}-ogTwO z(nPI)(bzkkFdlW}3DAV%JK!-|7(58MB6F0X7&Qpz>NEl2jUM&o*)_VyWBEPYtf&mA zRv14gEW7F@!_&i_T=Ms+SJBZDMq2|h<93sp4yt^N-;$?DKU=z3S&1fWWUoGK(Ku_i z0LUG%l9%+`<2~)cUI%F6CsZj0iTg)4Intkh$zgBZ3#Yf8+WpiavsWGcqpfBcl`)Zr zByJbq&_(wIrMr$3+p&hp+Y#W)h&J^9o$JmMw`2lC_`@hIeWcgue<`BMZPJnefb4EbAY^SxZ_Pa!*#tsPi(BY!nobYgT+wc&#k zxz9pO8RUHL_{oHAPuZjx`l@6oQj(ihkal8i)>H^wP#4W?G0TN;4b?b4gy)1&eT>h9 zco^lPITHW$!JFq$O928u13v%)01f~ShjDOJlFBE{5Ci}K;SQ5C1xN-`1ONa404Ayo AegFUf diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.2-legacy.zip index a6ba3aacbf6a9774fd63fe139682f41fec31babc..7c40089897e688dc918e5616ce23b14c82ba578c 100644 GIT binary patch delta 1069 zcmV+|1k(HE2dxPhP)h>@KL7#%4gj6Gsa8pX?QjDG000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqAgGw0N5|43K|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMVL0ScS!*OM^6>A>gQe+h+I>6YLWgZrr2w04Mhuj=W zyh)5b1g80Z998ZlrAC;z-i2yv-tl+N8SuFGyqGo3TU4!Iz<63c=|Gi3Szf{2Df%Zw zb5St|1QDk#o`d@2=RS%opwK59&touAr+?e4bx|FAYz6s$8jmkZrFI?ZXh6hX5FjIT z!^mZvZHpB9{YK=fb4KY{2@S;D&Vu60a}u-^SIPh2e24#sFoGr)fbxHwtb=Ia_%fQbmEWWp7EoFbD1!_Kf z2RGfhR8FEI0T$dY!nezzhPm-h4qb1`&=NVw)M<#`1sJdUZ~Xx}A&GmR=z7elZeAHK zLHcTv1*q~U=%{VJ;a0sYP@fm9)OnaFnF6U87o4Jh+8$|FBfZx6WmO-8T;0-wjZyR# zU96O(cX>1Vla{6k#T-2Vf`l1@}wr zZftXZKsQuO?0%G+^&rDy0vPWm4`WiB$IHcsEENpVkdT;=KIq*4l&6`m@z~tIWtQlM z^)21IV^#j-qwpP?>e&`-Vgx$zR*XXAq*--(ztCDiN3Y=rbs??oNGi1|h7kwb!fQe@ zB5>kxb3iv?5)O{@@W}8*kAim&ce1v86C-GUGRF8a?Y!Z(55ubNS(&t%_TL&+;IPCZ zKpie>xK92{j)Ghty){_ZAo@(yS`fBtPG`%IheET7RS($`Ki1vza(WjLm8$`eP|^aX z=Wzs5Mb9-7OsJkETv-lrk^StSf>yxW+ei>77D=m0@$z*;+U)K4;P!2#I(JJxl>sUyU&u3 z$SzWHeSp#rKK(HL<@wF5vYXyGa{3#Kl@ry0_yfc3FDL0D8$*dyupP=stpDi^MSD<7 n0Rle*KL7#%4gj6Gsa8pX?QjDG000UB50jSzNCrg&00000;3N0| delta 874 zcmV-w1C{)(3FQYHP)h>@KL7#%4giI5a8&UXu5CL5007zw001PDa0DljLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#7$K_;@T>oA805S6c2iiQqF8K8Ofvpg(2Rt z9{76WvhCxAJv);f(1C#E!p?t0Q4%d|6PYh1?Evzce5M>UCnk_`fjInMDOHe=vnA89 z>x%MiOc6!y>Ax=L&J~~*eRndM3(00G=gR9~k>&NSm}Y(L%PSSZ-P?`zx!td6P0SEU z+DKsdp@LyB!D`?);oDwgYHuH0=B(FNIv*P$X!`dp&<-#-&dcY`c1H z_0Ga+1$NMF`vYkQDq&>`<00#y!&lDyS8Lm_-Q*cZIIp5?3ZTpej9F!{gtDi?5NZOZ z)MmWy>4C;`ll1@Y2x?9>->$~?W{nwc2&IXLe8WOEMcr&br^6euk9%+h&HpIZ9DU>xK|c4#<^=u78QOPgX{ z4#|p;Ojj|t0G+6Z2q4QzehYUE027z|Yx>{OzrK1H523-(#=g&4aea)Ha%wbV>^PI&2*#Hayp3Jzmz5O6vq8wt{yXlt6%#lo zowZt*)j9X3Q|J@HFdUs@~ol4Zix z4vb!L_e61}@#A3%n5i2bUyGj3W{P;*Y%G?1qc$$aTfw%plF~dUL1lHCO2S=BEe;J^ zt-@CZX#f+9)${*VT%7yCBzoYYqC2x#m-oKRC>Ay{TH-geC{qy@M(%~^sjfamkNPNw zO4N)_BDWv^UFQb?P)h*i6H@fEIZI|Bd!+6t3j1V{#b0{{R308f6U AaR2}S diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-compact.zip index 8b8f30dd6e6df12fb50d646808925e61c29633e8..4d610d341050fb2870535a757abf90174364676a 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gjsWsaAY;6T$xk000LQ001PDkOU`@LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#-#*&yT2>W#hbk%hvp1MdisAQKKF1@H5-cW`5P&rKKOf+e&MU-v$W$}mN#DPwUBLT zw`GF+jX@^Mc}#Yk38gd_wo{y1LsjE?_m3c~{8lk5!S%j>ZbfGCkZA1jUA9Q%l}27M zkN-SWi(qZguHD+$;&UEuPnR2AZMv^>U{J72ZiJ1l@=-$ZROhg*x*mUCZcV08QFZhx z(LiI7W}WP7csH^XT9#vJ$$>?;6Zuyt|>FS(AcFbZ{CsD@psxcvPM-kq2&n?dSCTM{?+mIaybiNfoW;cSWmh z9N%yBK6Z9BhpP0>h@5|YTaCKczI=fOr%2!uO##h<4P=w1*6@hcF9sa|?l&l7ABbPr z$b|lqAhxekm_54+Nrw#@0~vR!1qECeaYRcIpR`n8qZP;rsGzUf@J+D)a_`5*s4KXQ z782eb+0H*Qk)2(E4N{;)U7d5hDku){GX4yakKO$~>mZu8?wEh7yfRH^XJ0jaiYl3P z#1MA{zP|tFI}~y%j;JI3vI5#&f=`BajCwv{hr5O-^Gm39VTmhmvU=G%90P9+(R~ zkHg^>E-qnPVLWU>{Tv(v1{%qs==667zVyq4B*9raJv^MgjO@~3=`du=X-F`ViXqeJ zo3Mn)Ed|l?130Ak4vnhbQe-Iy(~q$cl}%Mob|T6yVEunV`Ke~-4pSqv@I@L4(+d}= z@WH9f4PQAg>Z7)-WpUHoTz^+V8Q3F68j7FuWMxva3gA*x3SN(#%8SRG!hP9?1zgmmP$&4o`=1z5Nyyf zMP9{$?eR-9_`*s2_s|iQ%imX9F~}ytb^G=iR^PZANO%J;KTu5oIvMqMW8&uH*jm?y z;=Ti~n(O(#Uj1!zt;%ni_rN&Xnuq&pcf%WLI-Y-QaENk>DbvV#(Y7xMI+`)R3U%6$ z_8t%Us6KS|Yk|o5yeB{_dw!ni;i3Gm)F*2{uTuSdXLS*cAafPitl`hbR!zOx>mWz^ z>tp5m<7Dy|cC0Jyv~Eo70@Qyrq$1&OE~3 zVTXUeAyyEv1ONaB69AKd1V;uz1poj50ArYlrT_o{ delta 1108 zcmV-a1grb03(W}|P)h>@KL7#%4giO7a8xbL7H1;_002}D001PDYy~HgLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#5#O`)7ZZp1(Pk@mqh1LizZ3<2Umn+vHkFj0iBAWHD;M4d{i# zHKN_hFx#;VKzNCjVKU?kUNwb`QvN#$octOAE95RIr+~g;b#$qc?;VATR+8;h3wcZP zlHs%d&EU1#F!iw5NJ02D-7y!%%;Ok4QY|b^cJeZWf-<(F4do(-QYnA?zj&!(oOnx^ zg7cnz7v$U4S;-L4y9-6~7^#~Xt0aVrpDLAj#p z<8Sl+v+?GbL^X|(Yd65G~GrYs(VqQzUa7em}&;d;u@ zg&{EmUOPAl8Np?f`_6w$<>T^dsxoP5|7LzHi?lyrXlx!PjmS#?tNa>YT|RZ4e$F(8 z3Ob}pFM#M%Unbnh+_)*7Dei%;V4CWR2kL*Wu<*j63);A%qC|*C zOEq2*!qa>nt}1Qt7c1dD2@)kP2cPPnRDDnzRVU~cu%|e)6T<&5Flw*LF!DUjg`nN+8y4t2 zGvbynn#oyT7-fHw$D1LKsgG)@T4VZ<@CW8KfY{3FyEj3wYM08c_MB7c%-;-ZZV_{n zv4{M)zH1r5=FK>Sh;r@E=9%@Wb~(qICieKyYtTK3+WTG{rl7zsK6OHgN`jCW7$7AP z)JNiTa}I182g|9pzoF8?(N@&fc)K7lunoIWkz(HZwuf*TG z+#MhX7EB}_SR{^O@Sg`uDNEx$n=5#l<1HAOx{UHq12E9;rU3*GPn?SKe9pC zxWOsjgYy6xV3-Y7%C_yUi!OwVZ=8g?*SSsU_i!P8?*Hund*V<_0Rle*KL7#%4giO7 aa8xbL7H1;_002}DlUoHy24w^Q0001JF&&!# diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-legacy.zip index 2d9d88bcbc5a197cb1055e3fa87fab6a5a8718c1..5a1a08c04872bbec42fe253e26e8ca13909ccff0 100644 GIT binary patch delta 1290 zcmV+l1@-#634#k7P)h>@KL7#%4gjsWsaABK_vP3G005d3001PDeFP_wLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#-#*&yT2>W#hbk%hvp1MdisAQKKF1@H5-cbjHB(6h70rT?D(+=!rNIxhIr4{3PgDR zp^#^szX;usW%vO+$`<{#?aM5rcvg9`C7aIsCBv*I?Jna=1Z;QTf>bFK7zkBnNbpdX zcR+-qeeu(&euMr#W{62z3Fl!GH0#8xtlkd5MEIFqq_%WWztJ7iTK0bgjj7n2DTSkk z8o6{T1020Ht~%wi;4&l9bniH;#(o+V8U2UXRQ^Y(?E5FCo%jTQc1QSvDkuN94PnfO zfnX(t2&LW0SLVusYbb=fN-k4{8vgM+MJ9G!eW(NeVKtc06IgAX9RSNi(kG(^`-$TwV~0Ia5^ve%`2gpkKQOjUW5F`!c#E zq3anPB!wD18>d_AidM^Laf>l!LOjz{sY5~{P&3&T-0yE)Ir z{%!srWRkn;!`4?PCdxzLAw3dK$h_F{<*3T!w6e0yakq}g+HHTi5EY>VeNd=F98)D4 zPD>mb!II6*5siyv?mJ??Ikisy9tAKKhHk3J@I+=KD#ZZEdrN@|lbkKQUpq`oFZ2)$ zA=o*kzE~tA2Bl7$c-z%uXoDGNyl>Qa$Qoe6~Xn|sH`u9 zcIFj8<@@XeEsaUqwb@|g`e~cLE8r`)e%#LM9zZN_@p}@eiD)lcpBZ5V@UIWqu9fUW zl>-EY2&{7^NiiZR8Us-Ld;;1^DY>Y&JbQb)7w|KJf zvQQs=xf=Pj_*V2pIqL_FCjS7PwA46?W}$EjMilLLc1uvXO4A@$qh04sC#knhRO{LB zkCyg56t<8 delta 1082 zcmV-A1jYM;3%UsyP)h>@KL7#%4giO7a8x(WSnLo4007|*kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6Ga$s zLVpQ-_1A|XR*#>5ZbLD6g03L=3-D^W0b-YG ziFAN6UGV55O4wya9}e3==0u4ppS5RWl#>fc9-n-*&ymxc#zAsyyaLIG#E-*M6s}8E zm7VMfGlDeXsO@qJ9Egb?L4WPz;o85dsbfARaA?;E%^+7c3Qu%d%5ruZ<*63Uo^UCd5Ddu&DNl`sE z{pou_n&A4U70E9`fiWVpK|)(21pY7-_76Fi=TNS69rE@48Nej6zCgybc##WCH+!(XXSamtWjObwsuO?#Np>tQ?q56Y zp`v%%wlLh#z!gREtU<{5A^LY&HNutREw2|7+E3it>bahPKChu=osc%~MjSfIY**@F z8o+t}668(C+@@I@Skwy~{yhaQXeu$}O3fI57&J4W^gdm?yD8!$ko2ATw^m)|$Q(2{lJwwwq~@Oh&`jo$c~2 z!U(((V~~|xY2(xUjYJ(BN{jph^6}N0^;jw=K-2$3FLH2kc2T#bcnF^>yrFTJA4ePPygdg=1v-jh# z&ybS^@RF}M%$z-sv_ZDz8tlk6qhufM7UO?G+!?~YwJ^xe5Ci}K;SQ5D1xN-`1ONa404P!o AX#fBK diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-compact.zip index 42254f393cca8bf97443ba83713f34eef9c46f20..0de398c7a1110b8d51ccd5228f951a0e69ef9e09 100644 GIT binary patch delta 1323 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 DItyt* delta 1085 zcmV-D1j74;3%v;#P)h>@KL7#%4giO7a8&u8Z~GGj008(7kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6NZ*MoKP!$`{{kfSQwoe~6ERA5eLjV7o6L zMnSi7rU~VlS1BIAOt-c_u z+R88Uk{j|dmg5E zXiqxiV)q<>EgJ?{L?oWVd`)d|%H>r}9KiqIjMJrf>r+=a$Seg5>%n@Y|04iZHI(Gk z>3hOLG6d;fjrC>8c8?AL315ajnjYXNsOPrA{1sS``lT!anCEtyMMo>QPAdiCRa(kd zq*R~qmG-o#kMC+#2>5q&ogt(~tU8Z+vyf^LCe!$T6c*I{0Rh*Z&n0^re#*3-_Gn+d z?mx`IJR%z$;9&ve&&KW4ER00hTk7WPobEJgiE81-B4 zfY+&4S9YLtW0mG`Lvx-ZGW_FJu7@)spzVTooby?CB5RhdjcwnZ+u_VzaP#wa z=0FT@#Og+^tz}kYEZ205Iwg zFdM@WwA|G6>NDhx+hHWPm&oi~@)L27frp}B+qK*lwAC7^KCdc&)OQ!7+T1^{rS7z) zWrVB7V*o!*(EsZZXckaQ0Rle*KL7#|01g0$ad1@mo^SgT1ONc|4wE+pNCs5|00000 DfgK!k diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-compact.zip index 1a8e80479b0f2130fac58332b1cebfcb73ffbae0..658acc2b7ef452e6897bb941b0247b62b2ff4ae4 100644 GIT binary patch delta 1357 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 delta 1110 zcmV-c1gZO?3)Tr3P)h>@KL7#%4giO7a8%Tl&A}`L002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6bUB{%?TPcj!=iU! z+cxQEQ-5~SLp~v~2o_!u0M!ade)sXJJszQ}I?Ua_-U&7m6mTC^-*^VK)F2*2>^Fxw z7>Bm;ON|jaIM`pu$$w!Gs}jraG%)imNFNB+Z7|cE`O^@89hx0jsHq|cHDDX!e(y

pe;ujNs7fyxIwOId2pMlG(2w{}FEjTWFj8XPE6=E&mx#C9>cN=wEm#`IM z4n$%2NwFh;7^G{a#2;#qAy~xJ;ZTWj7HibyfMq4l?njx)mDvo@RXl1)s>;o7t(wy9 zonOSR_XS5dm{21WqF79pW=Tti*eXzZQxtP9+GM)DLI#nYBpvV&j1Ci|aL%sO{`LW@ zZ?3^*9^V&Q2B;xoqAIQbLId^LMC3{2zvlBg&A*I)KBiWn_WnK(-~Db@`)kjpUToi9 z=mMLEJxK+j{f4=s*(K%OQ&g-Yy-B;R6dk47(>d?IXM#6-vt^HwQv)9@(q=m{JdGuw z3_m)6j@R{8sp}gUtnGeO*2+sfL}&la{k8fK$VdeK9L9hr9aG8&j~B0Hai<{;m(+ns zUlt920AF!b*rAhpSpg+SZl1J7A@t`fRs+GOQx^E%NNMDTtJfA5 zT@IW8ID*6l<#Dr4o6{Yikpofgi8vM8?x6SY7lDu2HcEZ`t4JECb^~n+HLAOl*5XD$ z6iI2(NR`jy5qw*@@f}j=IZoi+Z{Lq4CQQ+P6?jDtLWE!Np+o+>f0IfjO8WT$fUl5&6seDvR4j{gbov z*0x0XB8)))sFjI0w>rxXKOqZBGra3R0ZAvqjS4fLFZE?yh-N~`G8re}0LG{sobkth z#ja0hUD8#6xcDKsAB@KL7#%4gjyYsaEX)RtOpe004y(001PDu>>cPLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#zaOQCr?MAo{6 zDeZ`@1B><~rbxroJDemWKG=YW>Xi#*A_=Q{m%)RFHRZ}VZoq-dlr}TP<3q40vk~0) z;UjY^x&YKal1X*o4B#PTji=rd%2f26`=!fwzy=n6a`I46G|m0PD7GZZwH zA}wWOII_+aM%!oT?=+Lv0AX@VZ{o>_6`{#j>vv{Q5-^wS13$N} zW-6R*-DRi!lF7rGAt9R_N8LZ@Igxn;js>))2A49t8z`8Ze>w0+cT;&#upCFuC6MV( zn312ATWMR@A;0&qk0^f@7#GlN%rlLgjOgwWIOdKe7Vm9WZc&c6y|r(U z2mZ~Lp>-O9-DiIur*TAs)(kJW(;7k*(|suM;I*-xzVH7|inAfNA6S*pB@R&f)D4ks zE!Zw=m_A*EbWP{DOuj<0sr_%(hGB_7H*1&>XEfSyuh3^F>yX`fI7qZ?4~f!|enHZ= z<>bc*jv0aMvX$rk9z(@cz6@QKn2(D+ibU@_uaVuG&31nbEZdJk$l)D_oXD&hbnZl2 zmJ1+XBQ2D=i^9dZwy&LZhI?xsMPBqtb{?ro^GDZJ&vjyfU>o(q5(dRz=q7?e9Q(CC z^nVW4`G%S1^|6nSAz{;|=xjiRpvofhLSxZB;)Xc<*_hL*$y8OTt|6ANCsR500000JUEBW delta 1134 zcmV-!1d;p13+@RRP)h>@KL7#%4giO7a8yT-Vdg{x006iSkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6|y7B{N0tN$iBQLl|6z1X@6td{h9bceWBj2tfI~-by&~d^n1r{5s2yks{a4Ni^MVz=GvpW88 zg+}EHeG^W8{fk+sXekTET7^=~I)>kf;e@{DS<#%OL?W~-41sy317fI|tV3WU4-_J- z`Sn1i5JjB|Am%WM@!ndTd{Yab?6?HZ>n%u5Z~YHgss2GP*%&%A`Fy1=i<>Xv+o~gS zuo<`tT?^QMwabmhfAO0H2DJ~Ax9z~2la0u{3ae?=_w%jN07e}5G4kBK!sR`d{UwYZ z#0o1Oe4pJ2E8=<`+lo6}b73K_*;wVPQ6DFqOIO(v=#H~AN?HOLb?|stzoIdkqai-{ z9UY@nw>-D#cL3Q8*}OGyD0&IRZ-dDNXp!wJO!#?!WZ}V9<@>h)G{Cw@2KE>~TU?*% zq4)k+D9*t)ZmRx%wZD$FUp*=w`RV?uH{wU-+`7anf)&Co3OvGZ*Fc7p8v~-i{Xlg6 zzvA|@+F^p^%P4el(Md7LL;QXV0_`_V!?H1{EJ*d)3dIcGdjQT2)9l-u8`8Xn@0HhqBEg0#l=YGv5M>|h^ zKBog>h%`o&u15~0=Q>cZg)3C?wz6mP+G^I1fh<~?t+^fc>CdA*;Qq74E(`pib+<)- zA-Hs84>HQG-RIGqg&?{C>l}7O863sAL-K925d9D~;`dQ%!%K+ynhe!FFqIQCr1vR% z#W@16Y{C9YZX-1Q{mG@ZkvVqUqXht&tuiD)nh2=**n<#Z|Ji>_>qgtD7o?zuQzmP4 zgp2hRWr-;g$a9xhO52VCaOp60hNB}wd;(aH7Nb06++u$GXOAjl&E)A9uD+gxW{QXG zqi*JAn6@KL7#%4gjyYsaEGAS+w~C000yekr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq8kk>ijMOb=w18kNA zNHyMQjy;gW%7hVrC@LikI=n^&LjTK=y|45iu3v6YI7~WJNoUp^uce*z(Om&iM2~wo zz>Igj3iqY7o&EIkB-v05#6Ds2*gQ#(`CQ`&kvTh0zF{txoRX(Hh3xmZgTv2Ce0wKv zZ*eQE1)Oz3BrE`nLOMfsd=y_;;SIux0QpjbHw4=OP8^+o$O^liLU^VDZWEX7;%RFj zcdSFmMaWqiKrfa-%6-(J^RcIVOUf%+XzWebA|)#2!eQSnvNs9$2#U-H4x3I*YAC0c z6B29%VP0F}`ZbxbU2W~|(eWd)c09Ggac-agNC_(N_p;lcw&JP?iRRf0UOSXi3rxgq z!|h>+Z9OJ`=`RX~&aI=v`=d`E>hC+YnLh3?>5G5WC2$yx+& zZ#MICCv`kypRc6L5MnZa;GUI@O8E_%HUQE_$$*uvAmtlnsRj;;>=bOf58V}}Q*(lJ zskr7QXwzIocawOk(}S{4v_mTzZ+YIT+MEo;7nH|K4k~20R`2**qPS z-*Yg3%QxHr-23hJLP4v~I|>-Y9MlsifXB&mKz?BV5OA4~$4p;b59L7B{QL?q6k*C1c4?U1{ku#PNNrLllFp65>BYNGWmqasPnMyMn_1g<4?3}p&&t9C3CeW~&Tgx^GbvpQzWJ?7TEkYiCAUxm3RlaHrP;xkb zw|$RIlz*0aKfgP26=PmCgFayxP?6weD3=PQObAoyl1aDdfU#fkRAW&Z*l^F zNg6%N#Rf{SMlnXLCy6LSypr|Jaa3fP4+%M0Rle*KL7#%4gjyY hsaEGAS+w~C000ye001Na0001!kOV;nI|Tp$002rmcnAOh delta 1111 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 P6O*6>NCsR500000D@=P& delta 1134 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

yhMXdjfmQ28|eZis&r6KbbyLuUa75R zrdBkh!I}XQ(V?_+qO=DOUF=HVEy$kiT=&iJfdYRovenasS&#@+;8a9&gG-kW^N(@S zgR{K>F@@Pc|G@kILz>_!xFWwP*Pf~L8$z^{YZ@mK-u|tc#;7dcfUsk%!C+FqYjHrx zv_xvAdb@h%{@}Cu;tG?8n=0GxF%ppn7h&Es>BN2=;3oqteUnnez+R zj3_~o7Vy1ZYQ-p|iMmJ=mR2k61wfE$R)P`H>*0U_o8V>`y5%t^|J|ElXi!T50zU&k o00ICG0I|8LR-D;#$N2;R02CAe03-ka005Jc1VIKn1poj50RHEL0ssI2 delta 1113 zcmV-f1g86=3)u-6P)h>@KL7#%4giO7a8wq?1->r?002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaA%D0(e}mm)gLJ z5XGAYuG(|0G*(%El#(#mx?RwKPvszIACXZD!{1!+`O(Ed9-Hu_ANAC#CR30!YD~w1 z4NA*p)P(?Cu93UgwsD-PYGn5~NOxowyDMs2j|$S7l;+T4F+Qd_R_6RogiP*`O)9Pc z1~(6I>(eJ*n~H4!I?JT}52l_VQq!$?>v{F2ke(QOec)Yx99vffv%lLn(EYOcM*Y)C zx*Z+T11kD5NkV;=v`EevMPO`x!t&}+MwI2cICN|9Z2I;B=acwW0XoV2n*>&GY>jEt zUI7!Pn%|wRUQ>9%2XkVd#C>yM#Pd9C4BoRS@JE%<;tslBtSt_6{$uYyy_|>o0)1M$ z1fjdqlN^PA?VTw7YNgC?F|1YdylzNute#LDi&f-|ht>f&D+i+k99X~{5Qw_jU>+_| z=oRIT&4i(b(**>fg@C>pz@in?wl35{Q!k-J|Ehgo68|cBp$IAlm!TE*jCnzblD*kH z#fVdtu9=C7{noFT7u5in9laMwLtxLm-Rs=b5uMt9n2W|5u0si@zL>ICa$#6Te!b>M zT_%k}M$Qwj^zpm*r3Qfm2j_uT;{fGDtpdD00)amC&`CjT*;l8>d#sBNc)@=tNa)Kr zDI1dRLv4N5H_xcDU+J7fINU5`U}o3D&8XL{J&S+bu7!D!K9mC`2bw( z8|rOI#@%oUE_Hb7pJ>+t)v&4;@=Avz8TjCTA%DLCxKd#@1`+D{=t(aAuB=8=Rkpgk zZl7q8h|)GNX|SqN$Fwb>?9GMBZupW_JB-3?6E)M!w9j}y>>iOtL0H5{UkaRQN|C>8 zJ8R6c{$}+6nvmB-GDDU59jc($S+Gdrhg~N0ClU+ogagMx?PFrFDK1b~?!SaqUZ~!G zXp`g3+*9``Dti;I9fEX0Zld_%_Y!};{LsuFK^OV+g$VugC^G(Vne)Q|F(&QQnMJe{bjX@!a%lg~4TFwQO928u13v%) f01g0$ad1=?#s$7F1ONa<50g~|NCt5P00000hKwXI diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-compact.zip index 4cd36ba3f6a1447b7e9de748191ff6778da6355c..9665f99587fedb246e751a59faa529cc76dc4075 100644 GIT binary patch delta 1356 zcmV-S1+)6>3BwB;P)h>@KL7#%4gj*bsaC#cB~cj#004y(001PDuLLKNLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#e?QO?UhA9jMn+<=$6I)D4vytkE9c;CqvmT!d z!sBwZGk0%$-{;J)2Eak0FfnSsd^kur2GJFf zWs0l*#^EY22o9Hz)yNM5rZ@nDtF)oZT{I2>dsyPwQUnu86Qx>cH`Z9TL-`oV%PEtt zbs#Qh?|5z;RaAof7@fzZ)@7gjx^EDP@0jG0N&>sD z&5V~^g-is9qwd+fgO`7wV8adjCf(rka=Pq!`6Z`i&B)F8jz}G_3|Sca+GC@R0;2`A zi2ESWOfvLyel8nDVtG|)DUHzK{g-~qpTRa(n=+b*84aOi`hBe%2n~Cer0Q#(w;4Di z!SyVzd(^%o5!q9wb%C7ae-Djiu+V?Sy_f}l$QmW=wb(+b znnC_;!wJm|SrC6rwanbZAx6xBp^pr)Z3|_X{0K9M8bKvt!tla)J4ki9Bw=w6bjQR8 z9_kRX-DXcd-;aIC^0<;R|07Oq>*AAVUBUEfFcT&AA^LK)v`$X8u^E3FrLExsfk(1W z?8H5mDoKKt4(flWM@sU$(>Qadh9<4>Q>Lp_6ke9NpYge9|H3^P<}s|&1dXUx=^J~1 zxHi?BJ@y~;sjpAYI4M?#@5COW+ah=<{LQ5=Fsuh-$I$9qih?=DlOxLsn zxcsWU?kaz0u{mA}bMc!%(e!tXF|l4{&jDU>i(?k?JQs>JJDS?*BT{#FWzEEiJCL6- zYO)2W8ATxSY548{aEu3v=$jWA+AePEJI^?ZENqOh#j(!H#f(tv#07h*6T*c7&<<2i z)C3|Ufv^($WQrf(>FMbg$f&j;3m2oxm{U6!W*dLD+#X|{YQ{^FH7Q6`u;tuF2iXSQ zQ3jD}SMi;~WA;B&q7ofxQUB%c{*2nI>ab~V?&}gI?|;lGp86r8&BYRnyeK~Mrv&v1 z=C+}{;C?dTJVs$mLrH4YYi_IY)0c_q=@NOMw9Rlw>lf2xTy@Rt;l4xj5LSd}2OGmqSbEhjUFn?h*q1ghVXU&d+kTnXGpuZ%?1 z@LC=zje@KL7#%4giO7a8y}nB5*Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6=rTBm@!8$}`f?6nr0Z9oaw?ImH_RYh-!T8}*<&Jm z6w&&{q;*buUD_N7XE?Y`U05^<3nt$v9dJ+^7`hLB>{-u$_{}bxwnxOW+$+QhHXvTJ zCrR(2kxzG_Drj1RXA`1=Xr|?5tAcOZ+q^`TzsXUAM10!ZHXXkpn4jVxUGWsq2FGcW zkaj#PQRWmr31pj)3fR8oSXpN1(z^7%S25T?Ch5#V?-eNsQdiYJ2k-jeAFqL9^VM(z zdDlM$NF?{6qgwnYQowaY52i2DT8@X2{hO$T^7@!@?KrmfBU*FYZ& z!&|^(PsOU*bqxAhOhnd?ahyeaJ0Q+|_n(z!#5(cd?F9r+msg6kFB&dC-jx+4kaYHe5p*eF--;@21X zljazI2ql^~{GAJJ|iYeDmP%6x&_)OK@ zC|&#Xt5ZR=^O0#R_FWtlbuj{~Adku-oQ+PdFxB&2mfZi$Ia~px6L8Cn=Kd!o&k$47 zh@YHMP>Bs3$)y=()lM3jIx;E_!>=MgeBB^_(y7g+7zRPK+96eeVqHx8W|{~m<-q>( z*z&CuXe6Qo53gickjSwGVoR9^I1Mw#=#aximkFB)#7t42hZ_al72}r-dw<`PX(bY^ z!oyYV)HMlI1AqVY>Egku(nUf9f^^XdroSH<124>$W*7RNZvH^Reqy8A9#Z!#R=Tu* zE)J`>w{Bgn1>{IF)DjSlPI+BBjq7%vfwz=%#8B9-6-vNcCyJ~n!5;8r zEgTzlo$}-0v|+SdLen0;kbN|axhlC$SJx@FIgbQI}^ yf>!I^g#Y;#5Ufy30Rle*KL7#%4giO7a8y}nB5*@KL7#%4gj*bsaEy9mizbw000yekr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq8oo}SF7KB1Ig&U5jI_=i6>^n`AGo8VC=CY z47V9Q7I1`APE-xD8F%?QfeIJYuockA&R>tjoB#dAs8Ff7@9BOjY~I?3a9}r{zbv7IM7jffR6~0QU{wNtYU(2<=utbfMr0M9oxd55 z8B3_5)|S8gulCL8>+IL}rf+S#>Iyh-5-4iqD^QenF7>P9Y)Cmtx^o$8qo#dR%Obl^@~f>HCQr27sPmN?a+&AYDV>)-00z*xT^TWvC9s% zcoL-1`oh|O$twWBU^<+0evvGfr^!VN`ERLuk{%V|1bBSV!vgpP3cRwh#@0@4%4?J9 z!NlMy4t@NY| zB|;hU+D#wQn3;N4l85F3d5iAs|IaF2*~BqLQH552`i<8Fot$@jn&pD7mer(zv6?h& zodF5e0%g*6EUCD0d1Uj71Ht?!h>b)S+WojR-Y|}`aIO@*G3DwglBZ4^#nrY;4u zN$J!h6UYwCvLk2Nn78U#38|Ul4O}9|ng2!=hZl#zm*UBs2g8JlnVG%+truG!Z3%3WBJd!(O-pHU3n}`|8hz1zPL^qbi*% zAjKB(=lJOvY6wWIw=76srd7}<7}xzXI7BG(JO*-tNR;mv&`Pad{MUiLz^mkU%8?2J zjKeUo31#XGEX3a;uy8 z*=~vV7K7iBxFjvu@MS@0PyF)Lu(ut)xNGkOLl^86F+NCn;jNzexe=psZ@4A62XVvjboA*()eWp2V# z=Oz4@rs{YM3~$O@Nf-j#AV?OiiiS>xgzaMtfn>8Fv@FiMS`%$r+wXl2=^hh*i7`f^ zpd6S>ghK&BFwd3LQM9GPE1)Y7ckLlp&D~0D;_OS9e(yc}$gg|250L$}GK0O0ee|BX z@-$A!{7+474*WL(_Je5le&X>17mNknytPBE=!YMN|Bp-}X;4c60zU&k00ICG0J6EM hR`tD>`}hO^02CAe03-ka0001!j|4ylIt2g#008LEc@qEt delta 1109 zcmV-b1giU@3)Kl2P)h>@KL7#%4giO7a8$kbgUl-g002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6)oD){n&(vr?DW)ijtebtFiB@NQ%DvZF#ce; z*mV#PL^a74Q-}!mnfl@= zd0dS2tDcm98yvx|7zTK(D(7vc`}m&6v#2m2p@`=QiLqj9`{Ij|UC-!NgI$`^2# z;`o5SZ@O-_L*dxdF(#GjC)pq1VVShs|IZw(?c^eV{;wVO)P1!zrcFkm?vf+t7E6mZ zunrw?HL5!$_ZVXXhbZ_o^@Ztx=km^bgCoYr3e)U;p25aGVk{~3cXT1qRB3Z?g{}r) z4~jw07B)lhRh$x2+BgC11O;_(xbctq_<&?Ma4Dkv3$5U9nlrB{`D%+ex5(DehPwL7}xwKJ=wYa{u4}r~JlP5B+=hDb4X{bB|u43j9 zRGy#KfkDsUL!9{93^$_}20Ze!X~ITM;}OWFCU4=D!R3actaGD`s>lxH-Eu=rf(wQm z(;im{}@yK6;JO2>>@p$E^$?$LLRUtwFnqgb1!~*#+vfF2L~F>lQK*YojI?Q29%L z7R+)3^aNkSSkiuyh@LK)pBKiImFa|kco{jI(aG)|B>E$?J~-U-@xw|qimwMjj!y@LPsZO928u13v%)01g0$ bad1?<_k+wU1ONa<50g{{NCs^L00000kRTq~ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.3-legacy.zip index b7d8e5f03312a091fbc16e1e04da8192611bfef4..b0023845fb6524b95585668e7840e719de085b4d 100644 GIT binary patch delta 1071 zcmV+~1kn5D2d@bjP)h>@KL7#%4gjFJsaCeOQ;!7%000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqEPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMVL0ScS!*OM^6>A>gQe+h+I>6YLWgZrr2w04Mhuj=W zyh)5b1g80Z998ZlrAC;z-i2yv-tl+N8SuFGyqGo3TU4!IzdJPUP|+X9{X4QLaXE&5tB@wScF8wy~+&T$c~p@E&@~lm>hJ ze-SeOFDNE>_YTv#8ocYtSKCaVu~vwsDa&N(tOvjR0&tSBBL-MJ4k#1fV7BUKGcYh6 zSl8XQqAa**;cI!6-w1|pX7XMX=lFsS@i+4W>Wd@FwA3fJ)L=2svfU&W+J^w#7G)kHy=ZVIg^J+3_B)5zlH)F1S?H%wQVz*=nL&qMiqd`7v}g8E#C2P@g6*`?>)LsOxbw@f)#>YvOhe7y zY1h!@028tS%e#3ma-yPl&fIvw=t^r(WR34KZdE^j4dr`hZ5okVq!CFPSTDJ5>t9;I z>3$Xbz08L1)t$*?G1=Oz-V|=GEt>bX9IOY zw@ea$dwv8_+O+-w=-?!MamSNh0{vo?ZBC8D*+XG2)&-Wx5xUPFZ&tGsxw_0I`94HZ zCq0N<9nqs=-BfZPA!O7c!R2c8Xp+DAn?_dAURmIfd?B+H zm008v){@nlo delta 868 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 C?xoQH diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.5-legacy.zip index 1c7d60be0e52cc55f08a59b6e28e18ff4f871c67..ccc91e217eddfe4983a54d823182d86a32ac365b 100644 GIT binary patch delta 1067 zcmV+`1l0T12b2jIP)h>@KL7#%4gjIKsa8L*qz>u>006-bkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqMThPmYs3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0ki&Fev9agg}gCQ~trZ;4IA7UkUAKQFRl68UA3>T0* z$KFoE&9d&h5!||4{BZFjqcA?gn&YG%+qW0S2piwCzj5Iv_>)64w%=n_#Y`PrA7_;h zNDs9OX5<*CY1F0D_LrWcW(wri9RE$*QCh+6itIcxU@B{WzcjlUI?snvF72Ggb8O~v zE)G>@-C9HfTLUV!SJ0qdtkyqqJW3}5k=!c1&aiz0D{it*Pu!b%=aFrKz}{=68`oVl z=6*lHe6#+$5q0v}8CWDvoCJ7CN?Rs>iiIsmd~*SjE{ud5CoGD#l_hCN*ChqyR&2lQ zDMMBcTS}vU`CoT_fW5O8V0`d31GMLTlfme5MLiR) z$NXUiBPgtrGx{>^*}%OvY%A<&`h9iWr2|xb!5K?&UdU4y8A6#(WFw!DJ~7LFbyo;> zxJuUJar|OS)%{FTQp|D|#O@72J})D)3I`{97R-Eq(#8j9x&+h%YaeCjF+?)?B=`4< zx7w=w#|seKB>TC959ez5&-VW#^Ni;)Z@S&u(I^KsmqsT?|1u4;lN%%`NCt(?VgXOe zn#;aPSP{*oWhLW`Ty~CN++D5ymsvOlVTXSFYMjSxkuX1jMdaLqjY7nj8(G~kB|5fR zE*)flFPsrHu8;X2|8DlMVwnWWXX#Ml*c37YYjI|8@5z-1a6hUrmbp&Zi`y@CCfr&Zs|Szb|;QSmEtXnPtfc6aftp-{g356do;N zXp;YDo8OCD{bCPHzAGK3!_djwtz2K<1DmaX3JXKsMUkFnIklKI@ji(KT&BUJ=#9-C z4Bj7DX|)6}lcn67{@+YgH(Zt6*=(u_%r@pkj_!iBh}O304&7}_-Qp&b|7(TEGJ76q zJbXYrmAW*f!a-5ACXt4+HQ;`Q!>~yzt&MFNIMk+8Ip9gEz)+&UmMEY*AK^Wv%h#TN z7KcFk%nHO*D9r~4m-)J@%NHp_zqZ|xmP~Ypo%ul8`7~7krX!_7ucLB@L{>+Vrd9d{ z6~}baj3XLqBl^dR<6XAT{eMW7|K@KL7#%4giI5a8yN76A~-~0062Akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6hZEy>x0#R_Z{F zY&lvW;r??}0L==Oa@9#LvM_<9;1XLIs4YSIXQ8(@Mir2oWC!ZRh5n7{Mj zwe5;lewEE16HJwrzAswTaxkyu1^0;oYp=3}_U6lYO=2#zmO1t1%8b*IE!;C;UA?R! zU`evENa9(;O~nc1mjxN8K!PAoQ2RQg0u=>=*pTJ5!nH<ZGrUcYvyPIf1gIua!4ju7@WANf&xVZ;CL<%X=YF_~b?Ly6gCVK#0zWA}oHR_j1dZLZQQS<0e9^#Q+0Ls0+Ht?_<{rlvU+U$sRY~WciMA zHYxOM$1T=T;>I zyq()?+~Z(!mJP;ykW=W{21#sTUh7QcTm14Uzu{_t%q=h<;Q!IFUL#OT0Rle*KL7#% e4giI5a8yN76A~-~0062AlSTwc25tiY0001+Kcw6M diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.6-legacy.zip index 4e338b468f5237103b449c29f33558fac0b61102..dc8b7ac3184fbfa22966ae58a927be3506ea710a 100644 GIT binary patch delta 1041 zcmV+s1n&FT2a*XGP)h>@KL7#%4gjLLsa7dB?9u20006-bkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqQGJmQ2`pNFNr%N5da)%BEC3Ptad$&`w%PrJ z`QZ&xz8@$B@{U13Yo=}1QSJf*w_e)}LaGz&|9^rX3Ow^d5ZkGZ=zH6P zoku^wLpL5(W2Szx9=nxJdtvuPW{{&gc;S&q?s15Hl;S{{4?zy zs$ck-H|Z`h&#WUR)JkXQQv2487*%w{COv=;33R*UT<9GY%sIL=fl#}kg7p-8Xe(fc z=ECtQU_!Gk#$E2Wz^F-2WkCkAUtbn7{8&jGw$_gcMus}?%Lt19e8u28nSESi*xkUQ z%gk$Xlyppg)w<;==EIiUndKl9X8K(mw-Cl-Knk@;7C6i4c(U zf{@iXCyynZWU}Crh_`Qe691cVVsmnauP%gN1LiL8iEo(RgqvNQ;#H9z>qkv#F;iL0 zCoxRx<)Mn95H(5qF~1L}iY(i3m++#&BoWk;spGnT7@CMY%zW%V#olGfY=7iCIH+Bk z+Vfd&Mv~sZc*pa2==D zG@H&wmpEv8_`tq@eFJD9y~YZ}8Vr~hqa3gM;AUu*-p5-x>jgp3Xm|o_1BKE3P#K|+ zJ4Yoh<$i-I_yx18Uf!qvKH(XeFbo&dEUO%U#EJE$J?U>*ab$d~uD=eox+bw-U%z^R zi3LiTbzzekO0yWvcnLykqElnaz%zO;S}<8I#Nr&QY+i}?`0aH5fP#g5E=tz}$yp?9 zU9w~6QK+Nlv%1RzvQfF}05#t^jokD2=UHUkBqLK4zlW&JIleLF`R3JJRpmlu zvKkn%(HzAfGD1cUJ-14EuJ2+PM~8QQb`PEq#aeTMx&1zI@`B?!c0orS7Hc3X>R1C^ zFrG*bmM+Jx*b}d?Q<<3}BHsVwK1r-lO928u13v%)01g16xv5quH|){q0{{TQ4wH%l LNCqkd000008ISS- delta 854 zcmV-c1F8Iy3D^f1P)h>@KL7#%4giI5a8#cc9M>)b0062Akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6w6*8{&P3m5U#@rU$m{9F?TXN#If+NJX=c3#`s#%1YhAjc+8z>0 z2 zEGh0ah{ddfC-D*OOsnAMyu*4a!O0~YG%G_!cwp#If=!rzXSmO|kVynJ%_Jw0V1zq3eEzMhPFNzMdVkATpP1DfF zO`3qPK%1g}_~1+aP9QH3PtxlW&c%(^Ghy4$xK3MFP@QavG$7v`0_TFaK+AGyZ*Uv@ zr!110*_mx%)Q;{z{n5{_x^jrxvUPE@7RD?o8`!@tF#jWG%ege(<%8*{38W!xMFP52 zut{Ny%bZJ&1g-$P7X?T09}K4oMk#ph05&C0t`6~kmVQQ0ImQfehr5xw!Jwz%odjrT z%wpX>y9%PCkzFJP0N&oCFBW@?Z83qu9JQWR|L-yIv1Rs%QBL}>?dmunb*y*rzL+bs zaPI!mHXiUU0PNLS_I{vz>j3NL%mV-X;jEqH^a7X|I!<8B+H7q~OJnJAq^T#=F)g)v>=aML&pQcFg3MN+yAa~jnuG*+n!WUlWLW!R$r_p{d1P)h*i6HpBEh0E&~7nstS`t1V{#O0{{R307+Amq5uE@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.7-legacy.zip index 0b49cdd184afa7949a4688a1950e7d31da6fbc2e..af48a0628e035ad9c1790ef19dc7b651496e576d 100644 GIT binary patch delta 1120 zcmV-m1fTn*2;d1AP)h>@KL7#%4gjOMsaDwTB~ms7005T{kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqT|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%BEC3Ptad$&`w%PrJ z`QZ&xz8@$B@{U13Yo=}1QSJf*w_e)}LaGz&|ANG&VmAv0;=mequEI$B z7POjs{UI|*_T!I1KLy-ev6F->3)1s9OE%3nb_QG$PC^uaoHd#`zZ$)Nb*NMln%XgR+z`e!r%-yVa7TbQC*IOE?3`Cobel4$tt_`Zw;%1qcv@+_)eQEZ z+hj=EPdpl6-MEo$T^?@?)D2Q~^7nCxkTny|pUVl%&m+C_Aehj&JyvF&MkHv3CTQI?&WiL)ji3{OtZ*PsW|*)SEojQT$wIUQj+oRb3|cZW{G5*Q*3?6 z75+AP)9jdEFDnvXw3_u8@HLc&$3xg2Q6>yMV|(pu@hqGbU>5;YIxsR@`Tyyn;aRHmBopW2>)fAQ7%Ro%9%_VQL>-J5XEv;FG7PL{*Zos!=&0XAZPfiBvzk0tw;To!75(Q0EIbmS@X9Fuel zC`(%Osv2^b==(lC?(Eu-1!K7(VK%bOj9#0aFf1%9E$L!#ewt$OAtTri%N^R1tbZ)S zfXyo_`@32KV5aQgfiKRIw`f?O%<6k7KF}@&Qc70=*2&*q*$ktuFQ5mxTsw+GrC9QR zIIp%7Tp5G<^ptpVHaeDC#E?ez;m zVlq@VlWM!;%1FgGt+HrWUr9BbbHL9uFxZU-^eKtAIbwo&R#SxLcNN-j3YYvhFuzbs m0Rle*KL7#%4gjOMsaDwTB~ms7005T{lh*@C26zMj0001!Obzb< delta 939 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-compact.zip index 86d8eb05cfb71530e4b8dc2c0fc198c7ea46a9fe..412fa29b5d0184bf8c6d8386d0d322dbc51fb97b 100644 GIT binary patch delta 1340 zcmV-C1;hH^3AzgyP)h>@KL7#%4gj*bsa8YqdCL$5002}Ikr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4Eu#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqie3?oiimw)b9jFcm&-IE%KLd6TdZ2nI_lUg*ju{8phS zKo#nfIXqIr)evQOxdUy{vLv;b6t_C1;{g+WtK{Ujv&AAB-mknLucITfvYqCr9&9OZd-ptTfE<{C#^mIGd>i|i6TA&;PSuVv0ekcr zwA(=uEQ{B0ts~x2qMdgd7hL{YAyEvV82?_d5S$^{O0q!+q(PcWR2ZHjgmf)M?^AED z{9%U80k-Vm>G$dKtG(o@6WVV(UO7FsA+YRCk}ic)kAYoG``(T*&${(2xsgh+Ciu`b z#mhZ8Gd;|ITEhd|Un7KpiF%6TN>biqhLP_~R+Lzue{9lr`3F-Y0RYL!##8TIwzkO` zg6?D+q;4?SepV-82EvbE3sp_$`_yzWaQMdTlzc&)Zb6HUNfr~91Qo_`*LzMeMNsZ3 zeZ(5)3^UqP8*NC6@HLs2<@@57saHq3NJS3ohTfNd8*hXrxXMG1ByuB=4dFQzT``2r zTJ{QsOx8Bq#+rK!W5mTPdCU@oq_M8U3yWXjC_%%Z5_R5LQZ-it5PcWJvBVHkLZnfR zLPw9-_hjkIvlldsb-|wIFH$PSAMiR%=m%S- zf4m-l;sr|(LV++|JBa_3<)PNG?isndYUb}(2<_DY(u(C2-qiU3WoYnjym|jT#nf&y zhVdo8nZGp+k{;j)vHY0zrHdT#$>HI1iSZxL?c}DLf%LrD|Iy;xA|8Y+g0%FbnLq0D z$(@JdplA-+*HXqD?~a<~0SMRHqdA(-co>m?IWTn0nhqHiQ2sHRUG5FAHd?d%DY-tt z<+nZDa&juAAAm#F?%?^PbG)Uxp)0%YQxW=-PjvN&#()3<`J?23Dx!En#JsKhVhQwa z!%&P0=g^INaaYL(@qIw)6Nm-N@g8w5Y5CL@p3|&< zyvuQ1AQ`5{ZW^pMXAvEL={TAcdwyPt2!UAR}9>6Mi`DD1oV7I z3A|}xw3ES1$;b%|MqeO58PIF`TNf3~c`=Xdz${%P@dsXvKjGAL(#8+_^vY6?OOSur znju*(-6Ghj)xeouN$$`kP$pHu^d>NWX-E(HKxTuN`bvNhqZju%Ie6rPuRLLZsZ>f^ z4U^NT`V44NN=tNU%*eVi$-bj(Ohsk7d`8zpL~x!Wef8iQ^RlQP85$MSOD^W;$BkF8 zyMZQDb+Q>g9M}+w927hP1y6OwAK)(9;{kSc$$tf{u{nK=em!l zK#?OwcI#y|`=^K-gJ`o!4346khqObSKXqAe0aH9J=xOen@dh%abuGf}PqB4XZJ*P0 zW9Qa*&4xYDLTXzEUPq+#TI2|Tef4ynh7wL%UEtRoS$~#chW1cy^v_0uso@6zV0Q}) ycXpE<|MTp$T~JE_0zU&k00ICI4gj*bsa8YqdCL$5002}IlaT~S22uq80001!8;N}Y delta 1126 zcmV-s1eyD~3*QMFP)h>@KL7#%4giR8a8&SRQxr7>004&$001PDeFZ0xLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cj`bTwwP2p*Usr&MXPiwdShX5D;uf$s&X95-H zsdWQapnXr%1OL}qkk$~;UFUy`L_LJ*zWYBU6R`*0oGYKjSK}Q6O{(r3RozFeRQvs; zTGTl%l)R&jTN_Jl;QskIFB#GAS#Yz6rqJ09FWv=^r_&y)&DhptW^sQff-`D}gW1%986=;Pi1yoDLJ2)XVQ2|+g#_$+8J&C!z+|P-92HCo z-c`k8_}-})S+GiiySD&R!=KUE7Apg<(Hc+iz&HPlonE?qHHUnTDBf>FUo||`aXADoP_op;Ey=*-IF>tXT6UGo$h5 z(JN86e%UqE^8@3k2v)i8%7`DD|5vP7l#$zTe0sAM(bFhy;8K5UHJ$uHLkc$cLAnXg zq%8kqQ^N$JrWy4=%FQHroBWjyQ$hQb)8FAXkWshy1xHc8b|#YBPrPckUB-ln&e}U< zlobyco{d}m4ny?GT^@ql9ZiDV@C#w7rED24A-YKOKh6BCB~`)wSq{ZYbESY5ofA$Y zG@@ZrndJyOn+kvEzr^2<*m25-IJeA$5cgwzwk>+WzlJ&fm7PtiL|+SulOW@<&E9`ph~OI)efDCE-^wr79pke8;p#lT<)J~6~YZOy3% zLCWA+0V97s1p|6Sga9g>a_zMp&;-3bW^OP%JD@DZrn7l2|Cxfx?Q3I!(0x+Q;8bLj zB30v*v3RKvo2{%BKIc!FxrGL#{~=PdT3(W(5|U^AIj?jkW9frnW8!qY&W+{x^|@zt z`+DTwZ8mwG(4r$N4N2z5Sec8rMz~1|E?1nk?B6q7{U`a}#H{BQHqHUS$Z-*D(p4u} s{&{%GP)h*i_@% diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-legacy.zip index edb60bb67f4c3d24b5b2e7426afb9a130f1a833f..5ef78458fcd2ca9f172be77a0f38c4951ae6789c 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gj*bsa7;25oY`Z0006M001PDp9Ck7LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#R zn-1ylbTfrJ>tAn0e+TS4>=l1%C@X`rMY^Q-1&t{8Wk<>Vhs8ze)XkM>!cyI|4#eh|61os{wIfnNr2{7|srUYYa`| zlW1Mb(nvEVX5(m;g<;l9#5}UBFN>O(HdAnJu%!YHFRBStggT$LG=od zq0iMw&Oe7hVC`;J9%JUnt0elUEfS~DOV~UJQQvCQ`U{TIdHY{eiRA7|Vp_%4?DYD9 zo|?Iu_#IcY=Zw&?0Lb%M(wcA3CMp;btn8&UJ@lz^s5m2=p`d>>Th~g|)}b94ll#~- zHHY9iSyFIfVBlkiR{^+n7vVM|i3-GH$^vN{iE*DlzV?fKpN{TItZxvN7oHHvr030q zgt&Ap6q9R!fzZxI`1<3qTxcIA6vz2MxNz6h$Y}ZptbQRy2 z*~waiWRzE6NHccn$HJpS=gQUw%pXJ87@qNbHsx5&EI5Cd;3S!>eC(B! zdb1nx`^a+-(5P+l-0Z#ELu->naOuofy7gFf+QPj!)pUTZrdWp38_FoU%3x}y*#iAY zbIKaA4!nOk{d>&8#7L#@LUc$~vpU8@Z}V)baL8Isp8|YuLh0UQ?)C&#Oq#?-Dr;`i z=7ZHL%{}NO@Tog+Ln^vUv35fNmAq=Ic3kEu@z{ffTxFPP%TKiEaHVKpk)k2};>r-@ ztX0!6lCr_o>NQ69w{p@j6jkhA`WV}ifD-tFKy-gGHq-nOJf#$Fb%KdT7$U%{I)HDB z^!}cG`OxX?+MMr4kx0P_H-a4|ztv;g4R9yJgolK?QrImuF1K8?H^(uq6;DZ0{)D#& ztK%u@s(NeUR{-JO)>UQR6V%S_JIkHHdIaBkz3b!*6f|P>J3(JIoJNstHcs9fG{&_i zU73I6y@TcKO3MgQR(!^K=Fje&rak=xo6wpC)>}|D-4P<1uKpZ+evI@ii_@qnayoKn zEKy5h>Vz?2P#lXp237NSni#Z&Ha(H2lChP5l3M4({*r7DWkPqHV!>1X_+;VvP)h*< oKLbAi0ssyGvbm{NG$Rpa`~(010u%rMBmk3=1Vjct1poj50K80(tpET3 delta 1116 zcmV-i1f%<=3)~49P)h>@KL7#%4giR8a8$>bYh*G6001)&kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6{!}4GlpX|*g{HU`EzbsH-(gY(>P&NgXY)E$;VX7e0upG5acd+= z3sDp!xDZ{n67ed(=py}Mk8v?amzJwI%rDjGz!1hc0^mzl4~uwpW|-hg)}R32(nWK( zK5hHLP$WcIZvb{Coz}R~L(>kWNUx0~bmLbFA%Exkd4I&#pJBF`3y1NL-e_R03hL4b;_P_k_D6jav>I)j65C zMffYG|37HUXN8fKs0|d3jEjwT^IeiBf)2uL8zyQNhro|6o$V+Gu48ddIeuyMOU>=g zCHF;t^?%Jm=gb%WCEPaaq?Z#3u3CCt)hej@z{kr$1F^^M-5A7Ye2R$DVm){H^)^ni zHych#>S-f-WdM@1Ewb;oWHNub%QMa`X7`+uX5VRF^&>gJ3<5S>1*YvHkCa-*NL%e7 zG>$f#lJQi$VowBM{T*>#ZMPO_Ph#)XKVwRNgViGiRGL&V)P1CaEyP-%E(*CLfmKt< z-!(rVbIXJ#I)O=pThranwhi{(pu&UCUAXQ&^bCk8DAA3bNY|E7rR2)LbdjnjAcH+4~IK7sVeeAzvhE_>q=(R)lu_1CY$t78i&y z^D4E&9B4rUZ2dgSqD-;;MeU}Btwa*_4- z>K}G?E8_O=KRnAB*NJXIs9t1dS$}*mI>?bYh*G6001)&lUM~v26O}f0000YQWKZ} diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-compact.zip index 2e5be71710a7af4510fb2fa747626133eb66b62c..c1a178c347fb4aeec728872a307e9013e3a6c83a 100644 GIT binary patch delta 1339 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 delta 1117 zcmV-j1fu(-3*8AAP)h>@KL7#%4giR8a8!_LVtq3N001Emkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6fE*Vf>F~Zx z$CWw+n6VSa0W+|n`dfM|DQ+{-Hy|DA!_)@V*gI^A(0h*pMB3@>w|1fftjXu(OI!jp z`FVnfZ({rYx6HdzPs5_Zp)~1;q@Erdrv+AKharf7lkQ`GuJ91{JW*NNLV{lh=7L5W z4G1_%M>AN8Y}bIOUig2GlK4JJ_{;%nvj6_C`uS}HzbE+hXUrU|LCZ}{meQW#&)@Hc znPEW*lz}s#1)1!jrCY^j~OH(kQ^zT}=LX`bG3sJK|DtQ3N zi?cE}feag}lwm4z^ZuWX3(G&vUk|H&AEIDoDbdv8v<frTg=HO>B(ArCI!m4imE2O)B&@te9U!wvdXe%sFT`_FR1&oT# z&0jh%uJh$&bb;KSK0cv9BL&F+3jiga!qa}32UMGFV!lSXskxECuLXNN0%aEACvFzy z>I20$zby5I{k8yVvVr!sgToKJp^kATTeUyag8I)!-0gR+IuHT$qFt=(wDYi1UP4Az zj^Jy5G#*4w5z&=@sRRaBRhMVMEpuja>3pwsiSut^vRB06`JK1NM*2Z{VKr%YboCx{j}$-sl>uxgPeqh(Y1mW6k2 zo0D}OOzQkpPZdY+F;kcf7k3ewm-KF0;5!F@EY$LL`9imYo`c&+)o#%LC{Qt$ZK_JD z?ss#bw}(S}A4YZ9de@I2culUaIn8&tvr~|1%ub!7+izw%fkr|CnBX3r3{v#ktti+L zu1O5>ZLJ+9K$vYp`SsMaK^awbGh1xiq7Cx>YP#D~M_QN1&>$dd=h;3Xiqj>JcZN)V zZ(qb#9kR8WB5~LO{4T;cuk#F(fjjT< zy-^QFn<*FWOpj#%GK2t^4zEqH&C@KL7#%4gk5isa6SfOsfqA007()001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#Ehva zZGQPmQkh}axS$V;HYDsn%N5N&ge@jc>}Jp|0Th>zljT8NUMwVLItqV4GyHIj@2Sfq z{Y>qk0Mq9~+TZ^Tgh#?` zb7g1OW|;-Pzv>tP#fbp`=Jc|eR8~2|kwGDSj%LsWVbeXhXGnRP z_fPJ)52(~QDkbb+m#Q}==aG%;g#XCL8@%|8Q3fsFwiQB(*HiXSC_?=N`DN@i1P<1* z3gYwxREFxMp8);^H*cD%4H}5vzK+iuUr)tTS(AfH`vIgG6O39!4GB*Z^<*UR{jj6yr!Xjs?C&+|uz)i%9 zjE$K@2Y4BTd-tG?g4VZWwb#8Y0GN6jlfru+$)=~)`~!bM8^D8d51KUcIWP|28Srr%_*`8T*<#j zCq%hKe^QG7LM4XLb)K`U%?d#@ zyEPv-To~!WDWdp#uA-v1_#BS;v`@U`N=Xy>)Z0gZ&U!$%&(#p54%YU98ECa3`Xhvo zH35iOH%cxW-qPq!HKe8wQO4Qv<4iSTjphXZ!smY~YLxqavS>5&@z=s)GeQNtA^0Z8 zF8dYK$SN-t%{EcjLiZm!isn$kBpKk|3y{i~+*5pHpl?jj#{Fxy5mN67p79M9Sh|D; zt@>R8hQznE?kU0K@?Gt9b60~LjTmPrVBjk`T0BFcg*FM}pg%g+JDEp3P6fkUTwvyBLAj?=S+_Nk;??MN(n)pNv z=+q-0!H6Tz|8$M-08mQ-0zU&k00ICG0J#mhsa6SfOsfqA007()laK^R22TY50000| C?TP*X delta 1118 zcmV-k1fl!43*HGBP)h>@KL7#%4giU9a8&gx_&qcP000&akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6iri-A8F42;_rTca+ic=f3Z#o2T{8Bpo!;0TExL5x1~YR;o$b3=ZzFtjdNkt^-AqS zU$&t;Ra+dPtdXVL8kn>jr@H4Mq+z^UtdWZQP*Yp6(a5tDO!)kd$Jn7iU$dwX_LG8} zO))ZC!J#z4Z|bLUsX!O<-vFct_)K4hI?I9fF>?^KKfh>yJ#&PEhC4oqL}1%krWDljkdu;G19g~%4>dAgO;FF3#Y}?l?i)QL7$d3A(}6()YN-pXQX+wwG}XD zOsA_|)5qlIJ53GzqIkVveMiJ-36t~GaL-9^74T9tRmRLQ|Ki`QWIaS8<)ApbmYK^K5}I$=p60W~>*9RWR;dFWr-LDrBYxQwQz#fT1iR z(%W`_{en4X{VxU*eJsFy!$>zEJUh?2&E6C6P>7PIq7ypfeiuab53=_ErDr!Y&8mYb z;q9k0+d3+QwwFrr0Jdd6vC_KpUyV^X(%rRLdPZWqb<=!Ie&Q zZMblF%d*q2zv2_cmvrjt>f3i$wvZx;$$_PRQf&|O>9ZqEn?}Xp*)U$7z~bLiQh>da zQd!N8hQPXjx82>$KA59~z-(i%a3Na5Hq`ao={=kEAu@X~gs^VxBlk9lkTdBm!1ih+iewPeI#X)qc+`3XZ_h&4u|Ey6K> z;G>j9_j2Be9osQ)gb{Cvl0*d2=0lp2<&BVeV2paiq6Dtoa2xi0m-~N$NraN!cJB*vCxuK40hS}8QG{}n#0pVw0x1UI&LQYog( z1xz-;TZaX~#Lhu&neY8gywSoe4I)c2e!iQ=;n>z#g9^J2yY4?BhN+qV`2(MFP)h*< kKLbAi0ssyGiE(gL^(**2Gz0(u77mkX1xN;V1ONa408A1n?EnA( diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-legacy.zip index 19fb8284c6388dc2af33de27ea414852a012b13c..93c3f60689e2e852085c1f49f39854d8e6630058 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gk5isa7JivZeY2004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#x6I#YMO!MQ6$LB1=xiFd+ENPAdjF zdP4R!017j=US(FWBeAfun~*n8xn;cPMeB$NlM!jzDj>&LF2qEh6AGd;m_E}sc2KQ|mq~2Zo58f|j51F$;Y|kH{Xu+AHe3o1$$^b8TO9Z~nM=#d z$am9h9Ptg3o^D=iAAEn)-?I4Z58^?^AZ%@vO4lAZQGC*NgN8G2u9LGT{HRK}_`do= zu2&`oVuZZ-H*SyRVhL7Kd&PlzTA%`wNGyP@D+~!1kSx)hUVPIvGgmZUmurubyQ*Ji z00Sw}uNQW56yn)4pp&II5dTSI=<1g-1i=GsDvM#ewkcon@UwpfS}*-#uG}OkY~ZH_ zg+A1P4taq?5zv=7sCRsC;$LYjY~18v;Pgd!uiFe zL)$@LlXd+!C9&({Alt!q<1I=ju!fzn@MZC(3R}=>w(@^ek^feScJL4c6l=(b1n!c^ z-{)0^vHy8$d@`=GjP&LL!crwnvY>P=_Bx%O*#4r5D)woQh)X12#`5klM=i=AvT z6>KEoa(2+=G>~vw7;gZ~d!hgZx|U*t#4^-kQQOfYfBk`ox=x?q5b!n+=NKZOL}Z5! zXU{)s1!@V+J8D9HSl+r!YpNObaMkGO@G~>haov9kemtH^Q-Fsth@F5=?3p!t+6nL4 zC#Z~aj`G%PxPbvO3@@B8KTChxK*CD;pc>J%*yjSGzRRh$12wcFafKTAiv+k&a86S1 z>K!Afhhfqh%@^F)g3-5cpG@zN{ z95R3VZ_4#(HKhA}|MD^iU7#7Z#dfnyTH!2CLRolQ$JdO9WkuK(3}Z4Gb`*BBG!^~` z1}dj6+AC)Mp5?mVORSNhif_GVaXuj5$H9=I9|I369}-jetg0#_mj9%PWc5%>0Rle* oKL7#%4gk5isa7JivZeY2004>;001Na005Jd1VRQp1poj50Cwwn6aWAK delta 1115 zcmV-h1f=_<3)=}8P)h>@KL7#%4giU9a8#{eTgfp5006=ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj65L4Xv|}&g<0d z=nh0n#XPFETz~P`1>PuqE`yybeB4N6)tUpLHyabS_$0Kk`*GLgxsi}_TNGSxviXl% zA7L44_pC_PcNm49+LK1o3r{*l z(^cPwr%D`KIMC@=)UE=eQ?mUJnhnP5jH9^osl+yVM@(+^5e`}4C7Y*f4VSzB#P$&e z`uB_RGsP2s)-CgbFLFZd4fjQL5NVi^OEwU4JPy-72x?Dy1XbUC^;^fJ2kgB}Es6v- zXwzg<$OMYc$L1Bkr&EaabG-}NVW5KnPyhMuWQ=J_DW@+b+!>EZkU$lNXPgYpavo`m zFU?7>648IR*KTQcav7X2)9?)2BOZJC#e_Yq`cut+>Zo^iqz2MR7O_Pu@1AJ(R$c5Y zFo*0v_d=FO_%F0R+%AW>m_5k=4p7sM`$o1lk$a+ZnShMk?qxe+1RxAAo~vB?3GE!8 zmeuK69gdlM!?slp17dAhHuqBHy)w5f~5q>1{zEz7Wx&$4- z`d=sn{ehK6(GA^xrfbacr%_ooVDq1FTUMGdRpvita6=P_>YaX3g+bl7PnkAgu?Pf! zeim@2zxauShnS9wAN3es9b&xxXe~Nkv-e_uYJhoK#dnQsId>OJ2OW-`clJ!{fhdvB z(U&rG`(kS*X3jh*p?3A=)?#L8mXEq*zII@VbrAcpTTpuAzfG+hr^R`hj+E)-?cF_K z%w|a)@rVy`>yBqTg>*@fpE3>pJRu|dK2Ok8^i#O|G1&@T2M;?0zU&k h00ICG0EuyMRIOlJ$uR@~0KyKFRs~1~a|8eY003pB7IXjr diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-compact.zip index 4cff3247bea5a173d62fff64356a307e835a8802..b2aa46d608c60ffebbe0918a9c854bc2a1596d8c 100644 GIT binary patch delta 1336 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 delta 1118 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-legacy.zip index 695617f511fdef83c883e90b3f202195f072e631..bac3cde6e23fab9de68d620bef58ca281a6bb588 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gk8jsa9CpmJ;>^004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#BD{!F_ij(mxi7l^suHM@KD?^8fEgWY2 zk#uK6hmB`es@?%FmM7tbVmH*3l<>r$bb{tmgFkYw>@Yav!A9VsfjODvKPvNyOj$VJ zyQYK&`LH2j(>Qlbi(piafzb;xUPnOk9swMCH%wC^FfR3|g=+8d@b7Bb=e2;GBKd=3q;CSuVm0yIL0u8j8%YdSOrL7ZGxeXi zr|yDpGm8yznn4Y5L3mCCEqI?Q`eq^wblAao znhBo>cUi1N^>KsHgh7$Lt-F1I-h z&plzfLH!wL-kb8%ig(`!lby0y=p8it9Nm6oNN5crNVb0#!TKdMGjsg`bJgavIhjW? z5$Fd5@*fv6CHQR8uIj<-`tk0Wo$Tsfqkf0}1+aUn_Cv#hQEXt`VqJD!>4UO*tmC$^ z4_0{Ue7H<|HMNqIu&{pqW(T2dW}%W?zCqNx?W>oOzWTW%I|BUv=YNqyDYL`cq%WE8 zY=jGZlvRHS^_FntyM1|q58&YS1Wn;^3mn|0b82OfxN3ayKPXlaHWD8YZDF*fDH?gQ z1cqVS$U*fT?fTJKVz385K6MFLTpQ{2Zc0fyj4bTSP&HMl631h(L^H^$pCEqoi4I^q z&iS9TenhF{8fbBPE0T_X7eTMEhvs6@T%sf7Ce44fXaA?sN_Ky*FZ0cp?rra_J05KW zt<{858o&{y=7d*IV3M#~;xjPhd&+@q)9FV<$rYk|4Xi7Mz<@P`&l7`=bN>kf^;JaY zU%fbDb{rPFPO5-Lnn|`35m48F83-#}ckh1ysPPU~3a+9_*1f_hW_BG|SR^haxp7dm zykdW;qp(}e14Rio%WTNzoracm2vNj$syiVfa0?S1YIlQ$nVTL#Z2&`#oZbNJ(vSgj zTG*O7R6rjP<;-OIe=66Cci+^004>;001Na00000005Jh1U?2h1poj50A+Q0H~;_u delta 1115 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-legacy.zip index 1bfff04222c8c147e7b87da5225dcfdb6967a83e..6b575731c8c042f4d058050da65d34d787739a78 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gkBksaBs^1uFUk004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#BD{!F_ij(mxi7l^suHM@KD?^8fEgWY2 zk#uK6hmB`es@?%FmM7tbVmH*3l<>r$bb{tmgFkYw>@Yav!A9VsfjODvKPvNyOj$VJ zyQYK&`LH2j(>Qlbi(piafzb;xUPnOk9swMCH%wC^FfR3|g=+8d@b7szc%hn7!OecKfoK-1!XGo0WJI6}g3oZ0qmA&uLiAQo}p$67Cj!rt%^O za+e6u1T#$`Y&h|@r0{>s(5Of_TcD1Px(G2wvk0{R-{UHjXX;ThTpjPL6c&R5Pxa!& zNt9e4T;=i{RyQX>Ah^0M7r@6At|tR=ep)gayH*sxQPuCucOki3g8=rIe3LS=glmXf zpCW=#J=@uxS1&WM0}847d$QQ9pSX^yOc5T_EAs!95W|t8Ygd0D-}Q$y?sU&qpAL@t zf@(B`;SL@`i$IK!PCUaoR^Om~Jd>y`r%`;iUpW(&Khp95x|1c5ZB zzoJ#E;TT{?NNaziM!WN^^LTsDOobFSWU&UNXSTGkKyT%!8P?zaP=I98;2J>P?Atr; z&M_?g6}BlCi>4not-)%ST#}$ZaGg2 z5Q3IsmlSSOH})_}DsoX!CywcG0;&w z{lbcTsUpd2rgGn}D{6T0d6h8cS7bQxCy1L+_Qm&~qG}J=Mpfz7)UX6*c(04djGuMK zg<@4(0SUe**Pp)0u&Jf*?2^!bxxgdy7!ua(aXHUn*@;H8emwp5;Dz7yRI;#GHh~^5 z=Y>eKONf8!W~*OuiV`81qCHccc7E@YnKc<2N3&GE31%4~wCZj4(w0N0 zM{xv3Mv1(rAd{K+#)EWAM&+0!;VL$3P9Q>9jlO4iDu9|pAKq3AO7Z4r2G~R=>NT~|Y@tkNO3Ywai3HAb?6ryIzq zX0O1GeSAr!-t>%FJp)EhLfucORIPRyOgW=_P_H%;@}|)uZcxT0l>e1vP_9r*0Rle* oKL7#%4gkBksaBs^1uFUk004>;001Na005Jd1VRQp1poj50F2mzF8}}l delta 1115 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-legacy.zip index 7053dabc7a98546199c25dc848bb9bc58ac518ca..d7363b8cc6a1c5a894c1dcc0607ff282774b9d95 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gkBksa6c4zzO&S004>;001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#^C>1r4u9AzoPpLQM(H;p<*(KzD&!pzK9!27I ze)TEp&TS5?$I^b^)t;y7`pMuZrE$>psiAYNq}%K3E*3uZive)Mguv*z$EP}l?Dx2X z!_P{5dna#iaVx9^oOMAYEC7o_Izx7R6kk~34Z?{4`BH;71ls{l9G!p23cH;`c%}hv z6PNAcX=@;NtV75}$XOadFP1^debk`wF_pSQtc()c^8)}O=uTj7Nq^q3 zR4Td21aQ10`VhEt_6a64u`LNcuE0NW(_1r+z;DbKsFfD&uf(N2yB$Kg3&Zq1p zM17sp6!y$>OC#g~|V$Xy`=Q8_?ZPOq7j zYO(M}JuE$=?0`zyqSN}@I$6zon)T`%V`BWkHPL-_7YJ_PCNwNA$0c-GURM?I~+$^K>an$?O(MpNvBTnMktNT%t?Pi$)ehl@2OMY)0hU_ewO0{ zy;;F%XUSbJEg>JjHR(=p=ZOOduI}f)LZK{)5OW0iK;d-j7yFI&Wm>F4KgrkFe~l$e z_59tYs(2$O3;B8;5`toVxtDA-`-Y2B>=nfrx+-?&{*c$WOF>@m59~$bb9le1Ts*z; zb)psF;fsI3mbR-wH;1_PcQloWXk>$Cvz!{+MsG|VRXkk-(4s2Etf}k^X9=kiik`(3 zn!g+kZ}sV+FA}lfbgYLQsi~GfB|;BD`ipJAhs&!wtYhGduZ~oNFYozIZxkrsDu>jIBr}2agz^?9@QjKf~K`f!#YRd@d zNzWBko92sNNph<6t%e%2y~rZ_?or1+T92!i6ihd&aRzVRK*db|AdYtcP)h*@KL7#%4giU9a8#9BYM?X(006=ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj657(vo;Na# z6?E)d{ps-*e=;L~0Q?$;hPe~s!Hx!P(8YRrz5iA}PUGPKGVn=mL$xAf=SnBi#R=~p zKs3eFI@h`he=3?9sRCzx7J-I^9_{X1Lg@XRvgS1y_%C+-j=7wCy-F;BXl=~UhS>xC zU?I%g30xlH!eu13a2t{J)>^~8nu$|X3>DG7;L+?&S)h7}Mwj_buK^JZ#u$#eP2DqJ9jZ3l-%h@J_nV}DkhfCYfKsnzxtow2wkVHC?0RV@ zI_DU+ZYlNa#pD=JyGgm4&3X2X_B4Mt)>!{>zZ5Xe-T1qSKz|VxnBF|=N!vO7ugDi! z&p@GFtnQJbQAhb-^x!1ZK>ISzkvFZ{g+zQC?CeK9Ni)eu*3AT383lZkO{8u>P37yV zlN+FaLIA0T-vTJxHN6J)dWo9XT+s5l&Ltf_BaNzmBvDN<)v^#X`endsHsW5q6oYRd zi9bCnfrG<8FeZJsq;GUcUhf;Rd{w|C<#;5L4Q$~p9~{jey+0Mi;RcCf1bOzm<%>%Q zoJo(Z1>6KhoQrQJdkuz15&8Oi$pA{r9SLoJ`1K3XYNfrUtJPA5zG>p*6vgy_nz4?9 zYd%@O?(mAskU4|}mXs-XaWz@Ic4pm^c^hvfbl)=mQ-$u^9>5@gm-ODKmAV8Q6YuGP zo+epGFM?S&|Jrz~Ht0k^vIGN7w~8u_4HAdc;I|2``1`@i7DCh+;CpUe#Vfj%7)Ks| zHGjYo_xrqMR~Y`x5UpzMx4>3U%gH|Jop-w)WUY=IJP}S+xGuYTo`s9lLI=&93!L^C z>&07`&_a6~Wg@E}e2}a7OA-@_*s~=L057Xp#&iXpFkg_}R$*?(#?^_nvk8rBbEF^3 zp)z}nQJrqiJKs9`h?{3s2zo#qNt4DhdGyRP5$bM9E-bPUdUY^8pd3*_{f#w&P)h*< kKLbAi0ssyGiE(gLm0N0{Gz0(u!VZ&E1xN;V1ONa40OSZ0iU0rr diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-compact.zip index 091a23323d0b456ec592ea8b22aec1e5b20e4d3e..3abf2b29840a089f42838d340599c79076427b23 100644 GIT binary patch delta 1343 zcmV-F1;F~=3APIxP)h>@KL7#%4gkBksaBpRh++%{007()001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#;QQqO`^QB1uQU8-NQ;jI*Y{on8qvb8_f9TH0+!Fr?I$Zon%@4t z`_MWu!x|~P_bh0ZT{&@)Dxz4u>l&qh;di&`PXO`yB{N`X#^VzA987;mfV_82xB*-} z$U-^2K3NxVTjzVXZ33+-4k^_m%{KB53a-XP$roBjz=)oUgj^|DZuC9x5JV3Y57!lO z+SqtV!5BYMPxUn9CY}S_rkBXcXLjrj<(V#eZ&S3}k}Uv&`7GR7DeEl*U)1jW51aRa zIB0ktcl#fUxsg66Uod|W%5NXO`X~*Bj6cM!i>^OHC6>4~6Co{1@72;dDWuHS3r=uN1ME@d;Z)m>De zp1I322Wl}5*56Mg)CRiDKdw`r$2o*x@o>*5ALMs5RBsrsFOH)7MWhRbU{${0?(5$k zi@N5bKf?`F`M;37vp}#P9J2$D|LxJqYsnVuUv$Z!;$vY>JmS^Y$xWX1k_#H8LP{E1 zG-IuETfJxWcvzF)8rJt8Nmq3eS=>>!hwo(*ftQHl#UBL6JOgcaJ6+y%K1v)B*=+I zERCXmWpoN$C)%eVB%3gi8l{XG(?&k_&JKL8PGx_()QaL8fQ_5qT##`ZC6zhr(pzq# zm{4G)V%4IOtpUMRziEmQ!x`2H+V!E4SOY=g-EMtu%ide8lqsiGvIb7n26igfF zuibxmrexI(lttQwMkk>>3_h$mk?yrZRfLXwkDonF{CbOl!ihZg%g!HP4N`lw zmhrRurlgE>W{jOQ743kAK>xiC0av-E1A5MCD2EIa*{x2&<{EHuqM`X*F+8-*$^$A3 zm<>QAEx+&o+-~Z8P)h*@KL7#%4giU9a8%DjDR49d000&akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6wgKHJ$s!d^>-k$fWwh z{sBJo2K?SISRXKdm!)A{YvQVKMa3i8L@gTnW`cF_VYj&OXVj;U3+8^O_?1Z6!Q4RD zU@spUJ58u9zL^2Vdx+NQ{D*ZR*ymL3z!#ggk1Am23yejU=W@Lji#`7Qx0Dz3!Z;$5 z$nADxgP?HnG6k0*9Et}SN1wRR^)JUG(8#7L%vwBnCyQr)ip0y!$+r%PJP0$DzQ$U2 z@nUbOF1qcjc+s!tldWvrfN`2Eidnr@JdU0+>8>x`t`P$?+$*}?-t~WZB{2P|D8VGx zdMH96(yPQC=zBwpVOt($)aoARZws0%Tvyi~*2o~!RKAyTvY?i%LcYLdn+Y(emNFxs z5h>6d*(OJSu(hhNr-u^v+I9se(#r0=<3U-eC-ab9Z~)@#qYH-4DJZp|-T&vy+N7v6 z?Zp9cF_?qrl<3r=mC7~L2xG8d1mn=Wrl@>w{%Nb?Z`+G5UGi)|OcR*_{*k)4UN}_{ zb8SCweO`k%8R0U#0%Xl@_?%;WMPp`s?GTQZn~! zMH!lZ&job&eRo3kUMB%i!3||w?U5jMz(`6WvdAm+%EfB**=C0*w{IF(|BmIC+w<;gdUxr|@{F28nIXb7) zxL8}uo1LrJ%he`i??}>*le*9G5t~g5)X&?=rXx*k6B$i3yXECW0>s65=Yl>EX z;eomB?keH|U_(Dw^=Im}gTI@@Q%k(%fh+a}OnA)j?8a%yZ7vsZmKA~qW|2xK6l_H< z<=bouZqh#8C)AAh+_7QGyM0$(7bPOd?)BKZ>AQPSjq})Fr5%Fv#s6047Lpai-}!BP)h*< kKLbAi0ssyGiE(gL&qFD2Gz0(u77mkW1xN;V1ONa401{Fp@c;k- diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-legacy.zip index 0132ab493e5aa42b094d6a73d3f5f4c22431aa08..d0a6334d895fb6a11a659690b08d29fcbe564c4b 100644 GIT binary patch delta 1330 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-compact.zip index a93c136c7e0fc30de63ef91bbf81ccee2e5bb770..53d77d0a88b060a659a1ab99b404526ee077327f 100644 GIT binary patch delta 1344 zcmV-G1;6^-3AYOyP)h>@KL7#%4gkElsa6hTf#D4W007()001PDp9Ck7LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#DvGV}*pz!Lq z)6Ioq7$NK10gD$;>KT^4p;)xZ0tn5zGaWW)41N7;9w!}wW1(`44>$_8$Xxl(49c#A z@$k@(z^m4Vj-%ye#HxxpfXHF$AuCv~YwgcA`;D+GA!&B}0Pkfjz}tWSz^Uzm>(>=z zTD)92-NsZ;ZAo6PueXyoTgjt*8i2-r@f>cj8 zNrM6C2QI=H{dtVg`e2t&jzQQ5S~>m{a2Xc%bDJ=fkY_I(7v2$q( z$h&}iZ~D|6t7$83au=8!C`vtg*eq`b!r_tkUHwc}*q*K>u(1XYnmTvqxOCH2bMfu7 zO5h?Hv0)sc>TErdysj3@N_&u2*7%xQk)S$i-v40JKHqN!772eQC@M2SRGt75vRE&B zua7!pFtDD~`u`DmP9g%H2vS(_*ukdFqum-8E5u6z{Vo42hjnhj${kbn{@9*6DQ)n2 zO(-hf*!V z0>XQIdxas|C>?)P?eacv@1l}RJJbn?u4A+V(O+-l$MvUS(c|YH>L2cpLX}(CZvHNw zkcG-HJxc24Gl9#e+|eF_w&5bBley~nX9bD|HIXh(7-#91P9y6pcpBM;{3I_Lf0u}% zhENCd$Oj)3OykI-phck`Usi%lVp*g1hmfs#rFOyq_3D2Mpa5k$h)%P^l-WtA$}*8r z&w?B89;pQ+W^)Z;SLqe_d5=H~ZhPhBQsGvQINsw;wOYaS;RSadC8g*M{a2g8%c%=D z8w-6sr%D4@g}-NV*01N}C~1p8$m?_OWsUeZp#bBz?^OY3k)mOE@*$2-(z85Q0ZZmso}&F|Wj23xUQf z)|h`3K8jf|w}p%ImWL=CiZAYhkdSPT(CV%@`v>tboM-`%etKz?0+CN~rEB5T?JxUw z9+{7DIbaY3Z^}F2F;L*tkB>W#QKPp}7!xO>U`9qFOwUhcah`63It*b0t*+)wm zKMfAR+x<)|ZTs65e^5&S0zU&k00ICG0K5&ksa6hTf#D4W007()la2&P22TY50001P C_m9E= delta 1116 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 delta 1114 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 t=4Q*VP)h*hx0NfIjkpxHvO$7h|001P^l=T1r delta 1119 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-legacy.zip index 4f0b6acfc6204b69af65ff07a49e9519eb38f88e..50f206f869cc3a98ae5ab932f61f15b6f9d7612d 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gj>dsa6I#_=xia008b2001PDodhS5LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#L#yEa?sD@qHv^9`#?=7>sIr1Y5%`akfFC1_O8)D58T zBH$gI$LEouwS1cjYm62-P&R^cTUUwP(+(FVxf_Unc#B>DFlf;Qu7aAUIax(8<%_{I z-{j=yJ;hSu%7wfg*WHhpz-0QIbv1M$@n~D6BE+y`DAGt*j zL}!n5!VTesvSaYJStsA`okGypj={6nu_5Gi)RZ)a_U^=u)9fS&{KHCpnH#KEl*mp| z@TAU!jC_pNT@M_8T6OK&IXfWtj422p7@sUcUspb6K?$kF7#0#cjFQXV1o1J2b8!ep z9c6goU)M%RtsFpBumgWqA}>*~SjFwZ6ntT%zWo7dM-SxfMX%~~YKQr48L7$l#r{;q zY@*+}Ko8X&@%FqsFrFGkl9^Yrka2!?ot~-}-BIshSJ6VuHuPm!CT8jAIbM3e zQ?`g$@Q$k{mWd)&$x350e|VGTQ_TSbEGs=Ax#+m#jcoqtsY0IhKsxEl)@Q87u0(89 zwXW6wk@)56B_fDP`$t3YbMD!AdZy)@YG+_EPHw;O>2BhDtnI7HlfUu{$h_Q#jE2XO zJV##Z$W+TwMn8Z3c$$qobLw^nt?(}DfOdmpXeg4h!|Hi(X!~bGlwu+qRc}`D7oF;7 z5kZ5WA*9MJ8pDO9$N zD;r9Jb9nj+$?$2#a5E0htoKz|&FoZDcI|@2pTV7n%%n06 zEa>H_C3Sy?X;&y@E!;%6i*ttASHo4uUpPWi)^Mw_A3s6}3ZC)p9YmS(qpG6yYQOf` z4Nfha*8So=@9Lo9d>->0z5JWh4^LjgE&qA%B809<`NuXjn0qfq$QY!$Phc|P3^Icm z9#{a)dbbk}VB@*PB;~Lx7C>C%cw|(k>K1S2x}v%ZXoVypl@6y{JuX=EJO15f>pGJ5 zVb*{1fSPe*#yupVX0jT1STeg^hqCv|WhoXeb~kd+Y46?ifFMGcZjP-8aO=YzI-!lq zq_tC@0S*!X`O928u13v%)01g1O oxv5qLIrxb41ONc;6951t0000000000005Jj1Um*b1poj50CdTZ$N&HU delta 1121 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 delta 1116 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 delta 1120 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-legacy.zip index d0f8dea26aadab27daae129c42a19be5706a1d9c..262f42c6547d71366dac441e2c4c26b6b8950a24 100644 GIT binary patch delta 1323 zcmV+`1=RZ137rcVP)h>@KL7#%4gj^esaAUyemV05008b2kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4UFQGzzs3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}5PaI*8>@N)>|FEpwkoe6;^6 zNa~dGgby*zy(rl>lEuS#&>Y78PH`ldkikSptI8wVmQ)gdbr?p7QcL+)Y-M?|NeN1R?b(y z70k7&WT36z4$JAb$mSasS8a@?wBU)i==8RwT_wVoWd+u-0bBhTi#WO|SV_@5vED#8 zr|fT}!;oYu$>LUl1qJu5tkQ3<1wCtkmc|-;e}IF3vy?XK(2BASfr~9A{zK3i+rr@X z(&oroicW@OReOa1J|NH|UlL2g^&sLzLwj}l4nZ@jzddSy-M2dV&mYb<`1>IRR>@r3 zau10Gr;85vS=EhVAmt+iEX`fp2UiLNTv*KmITSHz1ItN%N@cor0t=@`=iwW12dt;M zjwNA#;)e2F+Rj@{pwT?rCPnUsK{qv)f!>`?tGjh`&g2_u-y%c@g^OkFz_#VWLzEg6Hjx(cK-vp|^j^fG~btaO}TE zt8qKC(!zqMeU5UuKH20=4s`t+-N~w9<3h}THUZl@tQj-tz4!X!qWMYpg*%ole&7+$1ivCR?ppyEe|DZ z=&f$vk2pM!bL_oqU3Wrm$4I18K@53%SL7&f=`*t&B1-7hPvSptecUwOX$c1H-7jc- z)x$9SI=QsYGlAs0Q-iLJCLlZKpCXkNvoa^sjrZ2#`epD-TRuQ{K9?CfnsQoEG z)Pe9dO4n#aoCa?#RCi`;w1pFA;_I*|EmH3a|w001Haef0nU delta 1117 zcmV-j1fu($3)Tr6P)h>@KL7#%4giR8a8yE-4w5Vc001Bl001PDU{1)1)aPUjIE*u~%Fy(#seI|cj`r(`;m;-|evb2l3qE<4ti6&1)M6GM=|Cn~B zd4b;~7w*~gXrQ-ff1GpzEoFbH3|`3naT0Cd74+G9m08cp9Fg;vC$ zmfT)BbDez18n*xUtmvK3=B6TdZ!sjTi>mzXqOuLOa(;53Mx{8SlA3jE-QE=kOmHYp z2d_y%6nx0a0$BIByL+8P-o|H)&eCF;P<1YET#CCAXz9ues}cVlaN2)YJ&*>~dllz2 zp&t3=wRRbh!D`cv>Y7V`P5gF4s@JO2n4m2A1$b)RR^@tBw3hMY>E0x&GzA41j}`N? zSYM^N-bmb5y(D0eU3$pcHxGduQ=cDlzqdKaC98brrA1o9N?LENzByw%|4Zs&_JMKm z(W$IEp|GYGYpDgnVI_aT(W(`$w$PiIgb;aU1uB0Krl>GD!5UNkOv zwI97$`qOyzcZbeej7DLT+9E`8gIM$LKrqB3glBW(r`YATG}CUWA{8cFf7UouxFm-z zyf2#^IjeW1C$@n!F<2{(mFX{Q7tL#I26F0_zCrqYu_kx5Ad||gMH5Q7Cg*W0 zh&EGupqjP-R}+6vx`>hFrv}|l*nN&D8u2A138A20d9n<#Rw%FFd+Sh*XrFU-lfPX< z8f7Val&vuOe1Nq~X=tXu#}^l!`5Q+a6MRAZ$8>m=x&HUIzxNE7_@RK}&z^QF7lEI9`G(LJI&4xl2Zi zgQ&IPo(1Jjo^>maL=fujunoSu40_qIrs>? zM1A7{hlakH!Mwc?v(5b%2N*eh)*2pG!+N3>^#m$aYbCZ+Zv*WVi6Z~`C8Ru1O928u j13v%)01g0%ad1>Zl@5|D1ONaa50g&?NCs{M00000OBD}7 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-compact.zip index 76a09f1a1e7ab91ece440fec126859450d6be7e7..c046f4207217c7bdd05c11546396d9280ed4e215 100644 GIT binary patch delta 1323 zcmV+`1=RY}38xDfP)h>@KL7#%4gj~gsaCIrC7%5R007Ankr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*{7iuD~(9)S0pd-9Rgw z`^z~8PX2hMNhVQ$c;X=4iIVjjes;ss6zWtOXuYQ}0}{+OboqPvT=2nbcxZDs`(hg+ zdqywM+~C7D@uEqdH=FFV_!3|R-=pPwCoU)AAIcYtQakTDv`P>FkRrj*O&_8O&k8g_xbe$u0J&b=WS^J9U6+7A@Tnxm^<;;e# zDdpAG6qn+ELS!7lL}O5Skk7QoSCK}WDC+(5j?1tt8b=S!jr8Og{UctWN)o1dC%sgF zZ;evtLX{yoWr098il!To?B#Iu6iL^rkA6iwguA67BjJtPu#`jCaVyoRhN#;+zgJF# zbuH}NQ?_8z>C12pUx@!eR!Kz1$7reISTePqZi{4pFHIa?5}^A;zZBD=E`)^R zPc<{(z4SObzQP4I2iPs2d#sp4M`RDw*oI2RWHN7qllf}eY>Au=OJJwf&2k|{S(sA+ zw%}q(lViArhNZ>#D}(SweHjjZQDRZI-dE1*)tV=($sJ-hM&rwq`5BHWz zY208t64bluXWlfifgIhNj>n=>WCXz`vCr0z2yW8jFWrBcYQpKqox)tsv42YFmR<1M z`L9zT8xTYL%Rke6xN+{p4N{ECMru`1mh4rk%>c#<3XimJb62c56>fV*qU2)*}3QzuVFKX{UPQUrw{$=5LR8i3?_GAlcPlEllFuxz?W#e z-_x~!jw(HesAkXHiwN0EeL4a^#SRbyV9ZmyG8FJsF8xdCyc_UjTPU~O$v;L^dIL5& zG_D0MGmy#fexr(#{v?vppVahfJ3lpl5har00iRlbil4R;hm0qL?OrB zBZO@4^k{%p^HEs({k1WmN#R+7$;>4Lk6L?>ns$vJ<%9uI!_^z;2#+7bS|pIA&Qk!5 z)<;JXk)bbP&Zm4WfH@Q9y9ujq7;#!*YPiwPsm6DUSTnJyRj(Ds{)=p4aR>B&=ruD) z3`>tK=`NK##0~@m2T$YGTfIr&9N&Cl_2p*P>jXHPll5~u*r?4yaKZCeY>6w;o?_cG z+M!JN3EXIwQ0>>bc#|xwMALhz8KB2QJ$6_+CEvXe%jtz(vj6Z)8zE3j0Rle*KL7#% h4gj~gsaCIrC7%5R007An001PDhy+CjKLr2)005~bgJ=K% delta 1107 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 h0000000000004ji00000VRLhnoCGljD+K@m003Esd-?zX delta 1107 zcmV-Z1g!g$3)2Z0P)h>@KL7#%4giR8a8zPT%CRW~005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6AF*U?`_`vT^TjuIBfBVvR?D?L9*B-tbw zbUwZC+U&b_S+<3eiHN7@bB~~_4Ian`OA5wF<^xpekI#JAZyIPxLW^LMZj31vNI;WJ zFT{v9uoC@$HE;nwyP<$S;rM#K6NwF81f(6ZHFnoY^xRCVW9#k!0(3XmQ}QQkfdb)b zz!ar?*GOs3vT=A`FSZ`SB%!o;2@UnATAT+bX|M@A__HhAp5whCvH`mn=~S8rhvZT* zIDP>WW?J1ChStoB`D{VC!cPNKtE-j-^JsvoM?2Yn+mmv44}0!6<%kD*Thi86gmeH& zGZCB5$HKW}FQZefAk&S>%HrQLd3M5!+dV7q$GaBmDHDus+k2aXjyImBuQ(?iChodN z$trmpF=?Y&DJ_^1jxPl?fJR0FH*Rmx_OQ6TWY0uEtxWGLxc8T;XYr9|G<FxMZtqnbRUTFDOY?$#@lnlt>h>0i2G4?+GE80qWeSLJAm& zS-AxoIcy?9F_)qf1}ajwb;6??HK1Vs!GgPgf%MjtHFiA(OL$Pieb-UoR!BxvAED64 z%B51P39W`BBv(A3iJ9hgd`hoh1vP9PI*jP%ov$`MjWJ$)H|9}dh??na(&mu?T^E)e zc(wqoOwnaglR4$F;!dn(@Z*H=oa1E^N7ThqCZaV|!Uo|*XpB-nGJ-DGKy-E!?M!ul zKTCw%Nk4H=)(Eqp1G)mjTZAsA9oc#Hv?>&!o1vv`9MMFmI(YXkrQ004rg3s?XE diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-compact.zip index 71f0136c07a8f7e9b480b59fde90e64a6278d319..e668e3f960c6809d3a1063bfeb69989c7702a343 100644 GIT binary patch delta 1325 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-legacy.zip index 514056024223ec0ad3ebd61cbca890d5d8996daa..236d2a22767b23b2c6b72f9b72e81331b386f7fb 100644 GIT binary patch delta 1323 zcmV+`1=RY`36%>NP)h>@KL7#%4gj~gsa6zM0Z;1$004Irkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4cGJmQ2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAJz0xQ7HIk#8HBtXJb*IO)SuEr{@cgs4z6ViTyEn`rw#HK;eScDbZI zcsr45QS#}x36iFEJZK#CWDRyY)L$2g3t6&{yS7-rH*DiIv4Tq(gfM&d>nt0KuWk!J z^%k9@l4Yms9wLEskjv1@*YA59=jB!k=3Qo510prl_|c6;R@tt~-aRR&tP z<$5b&sp)sm-p*%Lh_3Jo9^3KDY%Sr;!5& z%9eXU$xNOV*m73k?WhTORxN!^Bp2;D!I8?R$fUmlC-WQ+Q|c~jsLIs1*A&50BLRcX zG%icxRzKl-CoQ9qw%H1{KA73saFqiOq2vNqOxol+Buc(&TZ8dE0j3@9riL=6L`K zccQ6f(EJf~g3eq41YKi|NGtF$!LcoZxIwwb3jmV*0Pw@lYIkL`XPJFvfKfdIex4-; zfFsX$^c8(gPRLDqTRiMB%*O?vEDADiV5VF5o3J3Y>sn{$s8Tar(5a#WL5ZY)4v?B; zy30WDeZZ~TEL5PxNQ_gWo(v2D5EO}PfO2sl`&RV7=XgBgU*%a?)&L&1u=G;m&zYC_ z`OiY?sD7I1;e+ZC%IdM4wnn+|{pdt2P)h*jVG*cM|{r hBme*a0000000000fB^si003c=mjp8gEd>Ao007tof2jZf delta 1104 zcmV-W1h4y*3(yG|P)h>@KL7#%4giR8a8!ra7)vGu005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj64n(4`Vy%1)6`t7KzS}`e z@KPS{$$=51>34x;R!w!w^b@b`pV2u^M|WV^{H>Hz*e1w-FiB>TkCceJ$&z0O=7L5W z4G1_%M>AN8Y}bIOUig2GlK4JJ_{;%nvj6_C`uS}HzbE+hXUrU|LCZ}{meQW#&)@Hc znPEW*lz}s#1)1!jrCYT0{T9xWicz-H+IlYIg zf?hL82vVE8gqD-U4)cY1s>|LXo4->>Kk>y7HuldL-i!S#fuX9?3od7CO!kRw(n{-{ zcK@)JMo(x%6wHt=nPXI*g!!V7N7vPitt$#qHG}gIcEE+>APE) z7tWqHA<5)iB8QXgTnFe4d4mfhU3gQEQ z9x?~*QX(stgt`dQ3`;fV2Mx@kGxx>UP^XoM#;S{#JWPVMHzFQOTVr_lep*L#&lpl>%J z3TPblYC$ZHv&4<-0^DA=cZ$GX=@}R#Y=(&nKmV->vWiek0Rle*KL7#%4giR8a8!ra W7)vGu005~DlSc(e251BT0001hOc4wK diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-compact.zip index 4a6cfab0f631ea5e16c34cbdd3aff4a6a9b74924..aec323d997ca688584fc93221a2584b89349cc26 100644 GIT binary patch delta 1327 zcmV+~1@KL7#%4gk2hsa7ZWY`p^o007Ankr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4f|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0m96M#X$)qA@s-!9z)PS#`8g0H=SQ}unpWVIx{iP(OW6_FK4qdXsvp&wd77$}4IwO8k3GEM)-xk-p0BdOrKZ zD1e_p`w#90yOK@l$>m5S&CnNoyqtSMcgRkErQGtSh7!`|$Qt#TME({ztzraOE9ooQ zM?Awrp+8uETTkfC>YQ3zx{MAr%N_@gKUDo{9uSMBJDtxECRs}}VE;~1<(*EAQpJ6{ z)IFcP?w}^Wx6)y{N0Hs|VuzR=kQkKSIIVLhyK)reMj@!s#RfHy@Owq#>~t+a6-tnx zsBz*drmaM97s>w#(7M<5rg6;IH$q}?raipA(0v7eew8j8XFs!M(`R!k(qL3Lq*d;C)J=Bv z48P|k1DT!4@xe#!UP#}h#x004VpwU-92>%Ua&GHyNPyk#3tph5DYXNXbM&btzI~)* zc%%7$OW449Eso`2sL)3Gs)TBfS>Dyx!=eJVKvp}+Mg4^$#{H7@V5v318Z_bu2YQd; z5BNn%)N@8l-NpCp46TtR3#a+|tV%7?Pf-R;&L!c+G$k{doL9P7J@P~l4YNyr>1+;E zo#^EG1x<%#?I|lWv(D&O5#co`?w7zo;1@)HwebrlR$j|Sc5=i|OnO*lxW?NAV#7k@ zB6R@S4*;jS4YXoyREe_vyC;BEJL&%iMn+Bfg*xn9q;JW=fnr10((#NkhduM)X)t;n zhcau9bv2!}Cpz;b3VUfzN-s9oNMi*V+AHUv@C^{io~H_iOI<{d)2W5dond-MsLTC- z_q|dy6rR5Kv&A>flQOu`f~8F{PH|^;L31EN=kU>=wT=WEfw53^?#C4A7+^Bnp)9dE zjX$tQj}@)B#e^^Eht?GA zlRh^(n_~1=Y43@>ok}UEUEowd$<9AXxwQF zfs(AT&(*6zzhP>Yx>YsdN(D|r+(+0BQ@J=QXo;BJXxUl@NA5>Lt}B4`TG95I?}j;j>D#c)1FwN76zGSRb;yU^C{%gP)h*< lKLbAi0ssyGxVfoTC-`i=0|fvB0Lc=Qg#<_jMFju=007!}cWnRw delta 1114 zcmV-g1f~0}3)2Z3P)h>@KL7#%4giR8a8#jsnzJbc008|B001PDa0MrkLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cj`&S(oE4Bov62mOBW<`LvzfF~?Ww!1lVelR| zXG?jow@(GgE1%*zcU%EZ7uA0rX?(gh{Q?ra$-L~_GR>>`)Uta8jVPRD(JnhA(%~tb zspNquLmTRGeUkCbT-)+=KELYj8~60SmP=p?Y0FW*5X=xZqk|#;Le)4cK*^c}@*(2|e|?L6qvf9cNf$K$bPtM6#w2+^TRlRCuBN+` zysyr>7cP)+oz(%bp^|?Ijwt`k^~B`*{4owR{LVa%d`1+BvYp`1t#nn z&Ze#WFW|Y9kb06fim-# zTCv>RUo#QCDD!R(@0t9{!?PTqHx*ly)exOn;k;1?<5|cxS`>em0=pKqmr0(ZzE0$J zAN=Et+#k!PuWHj5AWR7l@-xDYa4DO<(dCFf=&;n7-ka8-UCw@fM@LszGj*Dds&Y&a z;6qtWSp8Bwt(mzc?3<;=nrCuTrSY2IrPQngH+6;5=^sUMqqSTKWH>_Dxe6_RW?p^g zG)mxLqRG456k~t6y?=aLi7?csl@^|h3_!>VRQpZexU9^*x}(5(kE{KCR^t07;?Gn3AQ*;>~yw?0+RIl;Tu0T?Gn}q-u{k^~fl~>(zwDI<+yb_tb z@3)=!vf2ZZHMZRde42{fTsV6g?tP36Pn3B|wyJgSI(>g-p=G@q;l3PS#289%%lNc5 z8e z|3@1S-9@MzT|5XIueKd`W0T{!o&)w(-xoRl%b5R7Ggj$nYQ>ZYO=|I(Qn=lYo!M=E zF0toQ+mwH3S^#CI)46q0GoIF?qOm>7ef!W*XP_Fz^V^z#C)^#wT&5d_(09!8zFWiK<$i21{e*fu0loJ6J^2v^d8RxAd*!4n z)qXw_Ts`&&wA1HO-f5%y0omk|{HOizyf2dQiCiaW8AksU@DseZ{zaOyP)h*@KL7#%4gk2hsa7|^j^6GB004Irkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4f|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAJz0xjWP0O9NTwh37XoW>+*!S z2VftH8BU*n#6o2zixJZ@p=`#&J6b&jgu~&LIX(-EyxlhtI=Cair*T&2Ph(o5Lw-tj z1Q@zb2+ZpuYCH!*y1dr+R!iz%soiPt0g&BQ+hoio5d}zx> zt41Gx^5g)62q8UKL5l_jJMvt&HJpH!2#}LuKzc31k0Y$t=WJPr|0Ifl#^psHsJ_EU zL|8$SM@~?RDkd*H)`{o3TYC}cm`!+UGqSZ0ejx>Z?c!?Rw~Oy~kGx@@CwBt0mLEDJc^98-WiV8!_7s-sHO2mCP^9 zr|JK?vETj(h!bOijByue{a7x_xgrh1>)+wq6yN#w&2Gv>!_X4$Y*$4MOqMXd3RAQ#yq)()Wo^$iz>x=CS6B-*vFHKGYiC+J+8f)Kv9|mj z`#t{dX0%lBgqYf?r>F;koSZ6F7X52&=)3g<#?xUmWtG?Ie`lfpfddM#8BsEA^dFE0 z2S3I6CZ=(D{OT!m%zJm zYp8R{8fmtJK?PoAkhu2CSuzKj2lnzi(MZiRHtR=rV$qJ1>#$}Xj21db_}6`Z8o6mE z@glZkQ_emny)ny(9QlvP_|N>IhAfp!qBhc-Qc|C9>=hj z4qEf;p!93hMno3^TT;pO0UInk7FGYQk$#|1O928u13v%)01g1Sxv5q+!H(YU1ONbc h6951t00000000000001h0RRA#mIO8iFa-br006b8fdv2n delta 1106 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 delta 1105 zcmV-X1g`s+3(*M}P)h>@KL7#%4giU9a8y=owrnQ^005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_~`*q`ne}fPi^j zls_?J>CpWI?cPLxYTOOT|AB`p1i)#KKgp-JIRTVkW0jDw`V9!SRgv9GTwl1TdnFJp zt#a%rSkMAtrkY<89z$tyHgus-=tWBKrY&O$r#opr9@){c`_*e$A7^G4`!t2va5RH?U@x zMaOL_qzK8a^#L6OonQk7$=2O$h$-v$ZBr-Z%|^)q}e?c7Hc5f3#!<5Yw0 zVIQhOCy8Nyx}45$89fR;@k#csrSA4Rzz#!#9r9VhUe47d=WZ?QZ+gu^tZr1y1ZJy5 zdz_*|c>K6+2v-lPM$SK)k8yMYid?4{uBGd+dUhPn6}6CQzTBGh)Y(=}vlQEiKlC-#(e~wj zMy}vzd<|s;l5lj6>ByO{98hI7hx>4)qA$!tXp6RG7jX5N#T5cq=4tR766uE1sJtmc_qV{V)CU6LA^a?>(rVmWoS=A7Sv|o zlsG>8ftY)^jiiO$Qyo)U67r)|S47j%&m$LqTM^#!IVcE3YD^a^mz()n=$6|!(k;Jqkn&*TEvX3=Wotc5CpJ!GyAx&Q;96Q#Qce#AFB^Zn+J zYzbDXs)VrBl5rggB{Q?JIS^2Jx?GzjbMR+;AZTa)hqdZZO928u13v%)01g0&ad1>t XY_@DC1ONc34wFd*NCs&H00000!uAP1 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-compact.zip index 6633774e8d586300577733146bfdaab6dc09d65a..084d6aac6c7c4c93950f01e83d95dad9de68edb6 100644 GIT binary patch delta 1336 zcmV-81;_f|3APIuP)h>@KL7#%4gk5isaDpql#vVt007$(kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4nWZ^J|XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE$h0Zk5A#tBEbmrrtwJi3RUt+f(CSsU_>c{Moj-EC#pQbmZuocB%%65& z{+a3>{(zMqX)psW9tG6XvvTW3QFw5%m|aoJ(Q+i?YR?5pDGgAc?L_cgdu+YCJ%K!C zm#73zN(d}XYgOx+bl8xinIZ$O0#n7t`J>R0orO)lIWFEURySKp)dyGP(7~9 zE=9dhf>^D;akH}KQRl@<(u&lC`(zRI2!};t+%(uQxYcu_3aM8;3a$ITKZ1b~4e2|RSL5BopT8O-Z%9aK4M$N8u&K%I!Iw2! z2#&S(R=!E#VP)b20!9HlVb-lpw}8o|Jl^7e$}O4BZS|o>DZ`=W*~#(Je*FMd{cjU= z_x)m5S;@}2Xxz)inJ?W+#^B$4w_;H0{e9CAvczUqmi?CiAb>)w{BhT&gif9C(~(6RE2$0pglc5 zsAtUv!4!O#d6Gm0Qwp0cT+W;bf=nv9DrI?lEJ89$2u& zMHKNr@U!STeg@udUb6bHIp@QzmN`@1G2xot+2F^%M&J#gLXD(x0SV~^Zo83xkxxHI z`g5zMGArZqeHdJ<>Z)*~Ot+kY!x>BKwwEXRBl7FZ7@-aG__opIX6~d? zS)9znI@k*gwwY!C1ovo5zybALe?uPSeK1wiNuV`31XHsC*_dvW2M{4#{QA|im4)Na ufBtv!(NIeP0zU&k00ICG0J*sgsaDpql#vVt007$(laT~S22KS40002&)sUP3 delta 1119 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-compact.zip index 64717b63c5fc0b6b342f24ea61aa9fb98d8ed87f..3058dbca6c82ffa7ea0eadd6a6de8ec52514c24b 100644 GIT binary patch delta 1461 zcmV;m1xotT3bG6sP)h>@KL7#%4gkQpsa9SDbI6DV003?lkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfUu#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqie3?oiimw)b9jFcm&-IE%KLd6TdZ2nI_lUg*ju{8phS zKo#nfIXqIr)evQOxdUy{vLv;b6t_C1;{g+WtK{Ujw_kcx_ z@eTP5F<-A6Q^ga(%Fo>W4_s3f%UI`WH)&mwolw%UCGc4X@ll^3K<|`+IL>6$)mn>e zxEpr%pEEyOExAvYtBZ!XMRNK`2_)ynek@svp0uq3YUu=ec~^u79MY$xkGG=D+pyYv z6dZL1&=E9$f>i2Y^P|kCMs89OKo=TYZ-0jjaERO6~{tii4`6Lc+)$i#D_Lw%z zS%YafX(3_ll|05fwb_kXY8{ad2K0#I-KHvb?N z|7g0K)V)j!V(V^7e&{U|dHm#-6t~-7L5-I9eAA(SzjdGR#y}E@3hC>L$H`Ei?4vI= zV3s3-=kCAge>1Pm4ee{~xM4?+ooUk}V}$(&-|U0uZCpAE0Ws>JgkZGkfvQYgI4-pJ zuWI1&hhH1pe;0+}!nr#CvenN#12p7&3u)8$B8UQ8B=GuT0m4-tr!uYV?CcJTxV&C6 z_T)N$Hs)eY*t0q2b#vJRr}1kYMmV%#dy?!gu1Zh5OiR^6{!Vm+kFgWwN2y|3i()S5 z-b|_c)OKYJNR)t&BTx^%9%v`zdwVKq5Afv>f8HmpO=gXi;KwYa#6)~1JbwKZ(Wd7X ztf?+Vu1wGO9NhGFxnMo#eY@;_m%|WT1dZW;WOzh$^CTHE-A@Y-a&aSKqVAd5;Fy1C zTg2G6(2)kulOQzf*I_u(yicL&&*3HV1lQEe{X3>KrjfbM;~w?m#B*Az{6XE-V^g_) zN7aRbl~p`oLPnLu!)|7IWwh#cIRPN&gzny+kf)bYm&eNJR~L)Se#3?ejn)l_<@%|A zrlwY&_t%@%5h0yN!S>bd>9FcSqOkYFkeH)Rg#k~uy#?t~HLO@LOg@UCM;mR~r*Tff zpaXcEfk(d?!dq&+MI&0CJ@_p7IcN#ifCD5!H;G4OhsjL43o6+|OS=1(+4M znx@699&$v50iM(-SRQV;Lr#1q{fy~84fAf>1;$#Z!yvTUb8HJ5&)!@N0lkoa2u%m1 z*S`X(ZfgdWi0w{_4;okCsBhDusW(uJCw%IX$$d6NK~W3$CQ}!lK@41nZ{c#-pG7;s zNH%h;;aJ(Fe_T z3yC2XARdGn`E5%B5ro|4#NWq%AH=^8SPus-^kttx1FlDCxuHxkRPr+V1;T^JG|B}K zHh0073#tW9tYf~>XGw)%{D8)=kU*n}pjX8@BA>@8`*U|EqNT@)9<&w#d zwP^YW#qHev@QUz%0`iA@nmF{|Z~uIcD0omy0Rle*KL7#%4gkQpsa9SI1aruU1pokU P7Lx=8NCwIU000009Qn*8 delta 1235 zcmV;^1T6cq4AKf1P)h>@KL7#%4giXAa8yZ3m2;>B003zakr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6Aw3vBona*-kcUUB9uZR$0jest4!)Tc(Aket#g@=Oc9?s z4*a>doE^#ckCm3CTW67wU?=Exo#^ZSH9!?Y$Y`ZqsQ3}qHV&d9VvEoiG-?3L{MhUm z*CkyjYEnugrnTUgwM*1vq)>YSjFxbF>l&}DUNw)TM7fB6-e1ag$STA?Gq@;uu1idH z&h@W7)jowwEg%f7xi_9|kQ7JH57d#OZjHG;2P9feVx<$4+WmV1yxflYi>L{K-pn$SJ0b=1Kr>Hq5d6qQN3ra_oYBi*5m5{=W zJXPg?R&*DC+;{V?q-98&&ZZW9YUsFG56w=WB4=G4LxzILhQ8TX#(PAk1{;OMxS^

jY!xjv?lTc;lF{1R2q@%;?jge@ca2Rnbk$ECj$Jl+EPK zqq7kRZY)9Q@iO2;OMnO%#~FKE525)(3RN3}7(Q8l-?oT<1@eqT`R6?>{y_ODja|Dj z3*NHEa1n$%oi^B2%*j~$Bf-7Je^T@wOk2+dcBH0_)xn+IWfs@XK-VbShdNbIdzwjR z7u||IeDEb<5VO1eY3m`j*uI{s&>8J?)$~i8I3S24gFE!TywWt&&iW-{mlN76zQ!4g zuYUM{OOETU0Ue&Ap#ND(IK>>)(3)sN+IVx4#>8(uq=jp&!gfPAj@0`!Xl`hs9zkTB z3|ph=Rc9U%!tR#$V4T~~JEs*MhcWEN+RXH)es!stUN9Yju(B+`DV>uwP~ zn{BTyz^?A(u}csstG@2Z`|k^8U|1=hovpAd;bP8A(X%s@+x(F5E1LEW{mb;RNUdTBay!BaKDt~^d-zUTFCLnLLWV2h4vRns2JxK$5Vss4*=C291m6rt84 zh9rGifaPenS3*g8c}yh@cZ}rxZ-8ZgqQxokP#b?gIb9WMvnE**DYvbly?Ww+p6)IV za#uq{M&dm%xMgxYoKxuF{Gh2Ei*!~U|6TH2vV11y5iZ+b4x?beeyDov3LZT; z9ylbR1wc|LW!^0hl}@omFmDoaKv}Ect1sMq_b7`?bZ;=8bKnKyOGk`mzPpeo<2L%6 xAh(lc|I#vMeo#vR0zU&k00ICG0E%&NR7pyebEpIW0BI1DI47)006?STZ#Yx diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-legacy.zip index 06cad84a84a1bb67f463a2d667a6a1531f9e93b1..ffdaefeb3abbcd59698e087aa07cb4ce66778f49 100644 GIT binary patch delta 1332 zcmV-41@KL7#%4gkQpsa6&E)?xt#007bx001PDt^_BMLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#R zn-1ylbTfrJ>tAn0e+TS4>=l1%C@X`rMY^Qa3n zTJY$s(2Ooy7;y{8lSw@?U+_)2Sp?Fxr6r8dBH9+L21fehcs|W0_Qj-Xcx@GHD8%YC z_g=jh0s4d;F+M%h6j*;hu%DM{QkG9(3<%~>g08yn0!SsnuJH8OV)DwG(IJS-)r+Oc zpNtEq<9@JigPpdSK7wckdp;c9M`Yu6L=*e5F6A708%Y&{mQ*lwwtdB^KAM9iULeU@hal6g;`VlGVG|#7>r+x&O6keSO7ektoj87HmQ3scubb9B!bQ3OCJmT!; z?c%UyqQ#R0Z8K5pZWO|pAnqVl@b<3S^4atRjht7TsOP@flYp-+*rmFlwiDE**}v18 zU}@I~F%x4 zL?|2SVm||w8aIvLE0zv$H}`W8TWL5#rSK>3rCqc;#9MzN#=N*N5JUg){n=_H%Fy4< z8BQZ3UP+M~TI+nxVuP{OZoqWaRn2_`51p`HZ0 z@`R^6jZJ^_jDF!2tos@Q4rFH}IeEhjU&~dQlG9a!_b*O-eV-lrIRlT@FIg7aCOETL zp|Nx;HS|YS07x?u+FV}a{oJ8&#KXxuSd^TLm4m9NpLp}*^ot-R?_cJlg%-WaLL4Nl zJ_4u8kUfVF^0`2^hOeucq^0?*0rXFOK*nYhi5Rf-L$FU-Zj`x%DD zSE#1sb9W_8$35vfm9*ZH2*mgMiOZxYX~*)ntOQiiM=k>2R18PTuZo(043$tpG zuBm@qZ?9!Ssh^wC@#>3c60yF-qk3f6mc269-}JXp!&AV4{{t??Qe1ha9S0d>J*j`c zm1U)`MULE$e(m-zX2T{vJ!1B2OG2abhb`kli^BpvP7X~ylbr-e215k^0002mgob4R delta 1138 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 QZWfaS1xN delta 1235 zcmV;^1T6cr4AKf1P)h>@KL7#%4giXAa8ynpxjm=^003zakr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj65FecQ?JUw7Rzk*XVC{qaXcq+cU&i(7ych)6!Xk=m zSTWaXM^-dU{+UgG1sTJH06bK4G`;=kewIO-72%64fd_a_crup2pjN;6)ojZS`p|C> zl;JFtp0%r8<7?m6Kmu!M(Dz-jOPx&qXgz@is}YDoI_wyD=!t|lTTGt#x&JJ>hSNTc zX<~*~9^Ct^bukQBngBVlLyAY18s?>klfVA4sj}g%V#6MP$#fZ!rV%aA^HE^=FlQ|4 zC*uw8B0b0R$b$776YWCWkO#q$Z{8uhL=OMy0F_1^BWTkG9Y|=$$VU^={|(DbfAx?A z<^474ERpg&(srFmw18?c`xRq_nHLS(;^;c4*V(_|?q*{w=?V*~v#W~$l={+ggQZ-s z{rU;4eWIp+pt*|Q`3eO8DJSxgUCx(tO+(>QmSBN0#>@y5Xjg9TRH-%1#eq8u2ds|$PB0MK7~AX z+J`NFYY$1p+kA+O=bwZVU>Ko)Ni28s0CK*}w4-SAC0(vAURrK(svZW` z!l*n-Wk>z>t8Tb~3dnC|yG(*>`ijumf~;o)Vi6a!xc8E`+;D)p@oOME8^j(w=R;gr!{X zap(TpENk7K#$HYyM;U_9-jk{e19rPKH&nDw6X-@SyYBmH|0tPP zvxOqY!V`hIys6Gc?rhs%vp~3)2&OvoTLKZK}^yf!7G#_WcWV23)NtRXQs{ xdT^fb|Ne75^-xOz0zU&k00ICG0E%&NR8AndJ*Wf#0BI1DI47)005|ETeAQF diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-legacy.zip index c0caa753bfa337d00b3a39d3e3527da8e5040a7e..2979631c434b58a19871fd22d4ed33f9bfaa3976 100644 GIT binary patch delta 1335 zcmV-71<3mB39btpP)h>@KL7#%4gkWrsa8+Ntv>_>007bx001PDuLLKNLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#{DkbKKU9)F)>?l`=7KIrT0dqCz7e#v5c{^9ZjUj8NK-t7zBV4+LALy0 z@Zf!C&dzg|d;5cE(fEDE=&*0LWoidlUtDnYlPqA0T0L0DGUO;~`-24`_xGTdpsaOD1MNjKNf(i7)CVcd{=H2|t#E$?!g>n|8MqPh zyqnc|7^W%S8Oyr9nAbE)V_+Mvh3l$2En8FmnMXmn6q@UoYM}2c(rg)(2-p*^13c=k zAd`|VO^Karv*%|ZQeN=V%<+I2XdszDe%rHX+3S!-<9#Eos|vS#TrM#VEOvq~TgzV} z>?0>9;Sk?k{4hY&j(2}eDSfBv6xw(;AemTAw3=#Xvf~XJy)CS|1L_H1323c&1b1D& zBdIqbs@%wWnT>ri#IAx^f&7l#OUmt>&y%?ICn{um1#UL`QK}(xeFqh-(v-tewjyU2 zd8WPZ<=pVqQmM$n%MF;L+wVN7JpM=9?*bIc5d8{(6Xo2{qkDgdQR(YnVaRMrfPBT5 z0gSpv*7eM4@%qsD9)$H2u~BSld&jx#J1dJTXa6A2ZV_7b|;N8A#-JZNHvsK`S>dgKTL&&$Q&`VHw`Y4-8urFMmF`j zOR_~0$9{h%Ff@PuEloKL0LnCN3~58%d*C``H$02h1{M$cC@v-{S()6E zYuusufVQBQu2}$2gg2C??8Zv85-~Kb(Jam}h4RpDYEVzto?2>`H)z z`C7Vxks#u@&oxQav@9jv8A~ppUo_n@&;o~sno<+s%`$H5NeU|}Mxq0er`pN_f|Fig z{$sG9k`E@GrSTgVqf=CW8gLv?AXB_wVAhY>nzZ6)htA$1#%kN;WRyZ18~l1G2EozY z568VNno)m_ygQ+@MPQUI29LwQ3QtExB`YyHKPpk0w3vn?|81 zB}#x$)aZIoxfYOJQRRh~4HikO0#nE|lU2nzv;#YSMsLtjcS$1#CiXst+ z%%N62O0c0c(bt3nm;zNWn3eW$WyA$PSpVcyM!0`F4=`-N&H*6JlO}ICXT&xuHZY_o zSxw}K8L6yiye4(SPWRCM@d;=f+jEJuPx-O}(Om`O%#faF5`+RQi^~|0`(DzKY{>SD zc9KdqL~LqKNWcf=zG*iOHBDpNzr4+MH@Aek(u3d?`4>_NhI?0R)ZOb*QPKqSD)oxT zVVQqtqfw_=u8Pd005vPcas1B delta 1139 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

6CvqBt8EQEorK(M+Jsy zL$jCqneeC+mdNE0D=<(r>Euh4H9O4^EbN9dKhMGndS?!Q(>zoDuERuW-GY%&LOt4y z)sn4DO~#BGD|t9t1f#ja(LPKFDV{jY+6vWYay_g<|9m`^eF5wUC-xs>m5;ecTn`;e z^$Yxdq%UFdN$)GOyi6p`R6gY|izyFFFsTB8D)=9y;NL7f_O}C-moQitOjmiB3lCU4 z_NbO6><99HWK4#$V=9wao%|TWU|@e&K+tKIEaF^+xWgVb2n$xJHNNCa6o%!QZRRBj zCOTV+ipN*^1)@iFr@Sep)4}L&iA@@bW$T`mmYVIJwLus=soWOjc*(kJFQR>wb5brn zD$c0oq6&Q{60%UEIi=3F0eaMXIcfb&`1=5!q+R`gPluhjdk>S9!l_oNl4XbdsD9)P zZH9NzL`HS4X*9_>@(7YqwyNL$Mul%Qj?52T`N9}~@<{VoHL7I!WRoqNr!s7e06>el zrB!daweHV!W6U~H|C}iHNZH^=Qr1W`mO9E(rwJDoF7er{iqbgDxj%y zAKQ-EMtQ7j;;Haqo)EDzg1u)PhZoQ>?w{~~cmpUBuKLP}$9K60*u!sGAN*#0id5ou z!~5lzGcFHE{s2X%+|Qgm)kDI2H_%eMWKC;WS2bkuWw~vW@ws83Je7EGAs=$1(itQ{r24@ZxTz7cWE{l(B=D;JqD#a*d$o= z7QB!#7m&0W$X-Trip(l#jdVW43ibMFo##d1*pN6ydctgdRaxPsK2i|)gBg&2M#3=d z&YiZ>O0oCQ=0svE~iK)7sT>s^olDvgcy8KXn#-tN0xREa3=jnn^^xaj9lO928u13v%) h01g1jxv5r(7OLC+1ONc`6952{ngm7$Km`B*006?TdfWg2 delta 1126 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-compact.zip index 4e58e91d0bbabb815bc13db3f9fe9a64379295fe..c5e01d83f65afed138f1806a6f5d319f0ce409a9 100644 GIT binary patch delta 1468 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-legacy.zip index bc5b6657f0ca6c222f4146472b672812b5414238..ff0c742c1e9d7cacc43c0246da46e5f51244e101 100644 GIT binary patch delta 1323 zcmV+`1=RZI38)JgP)h>@KL7#%4gkuzsaBjFg2Vm<008zAkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfWs7x5P$eSSR=GZNB zf2bahfETTD4ky%qiw*IJr#?OX<|}Za5{i@YD~Th%Fpu{E>8LLx+uL zR;u0sFP10agey4=f5A^Kzw8HE!X0@;7iN}p(+&7I_Tsq zYBw*RY-}l79PjGmjz!{2gIkLi9FazGp3IoNnj09G z1oDL_$dYn{2yb{lo2--hFmTA|MsW0qsw&eDg&tI4x0%0fBF0)x;LG$DS(@NmZj?}8 z(Q5hm!A-`0Q$sut!$!kG;sMl*U8 z4mvF%>pNRyl@KMaXzF@b_HB#ei#R+(pRb{LgI;GY&Y4LqvMZcsfD1X7M&F?{^8lm0 zh!B|61h0nctVC9PNw$W$DvIk|8R_$vs%tEN0VUQUUWo3+eDerbv)0v0Q2QJL=5~6Y z2l&byE5e|MZ%TuM5wgkn$in|3+j5I8ouM!DluR0SA%V-79BwW8rZCat^ z5PMUs^0*o!mH45M1-3~F`*(AYg4oYB8X0F+^{@f+iDZW|nVa6colk$W*mGMq(I2gU z4zSLqKiB!M86qOpH_GuM&WA#Lx0ZlqyQ#M>++9@;lSCUigDY3bQsK5#HhHlC3zYnd zNYtc5Bfp#NyN(DIepBN z$*Dkex}`WBz?Jjm5kuoWlQr>+iSg2ZH>Z$bpHmsVR)*+$c5hnxv{Z;LZf@7Wpf?B5 zN7f#jK<2#b$^M+xt-RpIsz}Psk!(8uvl5kge^d{3B8A|jr~C4B%ZBvcP~Uksj=|CI7tZnQ4n+_Mj4&Ktt>Eqln9Z( z$4yf+x=G3iGV|pTkp%j=P!+Mgy%FF@W`u_Wqc$r6Y_Q??tA~RjrgcgO928u13v%) h01g1kxv5s19fHID1ONc`6952{n*>G%Km`B*008aqfWiO( delta 1127 zcmV-t1ep7%3+D+KP)h>@KL7#%4giaBa8zB5sgXSd008d}kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6NZ*MoKP!$``R;nLkQRoLTNlH{32mum{C0 zQyWO~CK9e6pylMR=!&@iPerQ9`1d<*$w1bC6XQo!V6Gs8;*fLh=Qn;FSqvtvk^YGY zPDibKC2_yTC}JY@=_l2R(eamlg1{0p63gXGaiw4*&EMdExDaNAP@osAi| zxE>Lr64uSBFoy|O%#N6m&q?8$<>Lhp>R5SYPCbK#0s!ekgs5(~dTZS#l~nqEIy8$h zWhE)*<=v5j9MFV}@p0g>EM8|jAUlGm(>|f$tF4yr>9H3vng5BV!cc)G{ zaPTr@GMv?arP;mo>MT9e9p%8cKN%-qq=KyRa6<`uulIuex{Z;4vK=t~vi-p~764?@`47!4pY6FqtDIIQ z59lhgev%-fa|k3jN?X*_W|l&9p89g=Vl@ZKBh)jn4tfas_-HBmb}RA;F&01S&lT)} z?3(R@d+@uiz+&z``pTNWUQx05Ynr^4?(3pnJ{8Y+CCm1?(Za1gE8uZN4NUdk7Oy&g zdk>u&l?V2#T^mOnRINif(aPT#)c=O31*7xe`B*OjPuDai9^9^cRC2fP+NrgAsxTegheWC diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-compact.zip index ff8267acb0e6997d0ea8be70d8adcb49e758a7a2..875585deafc012ab5e00e872d0ae8f6b5efd5a84 100644 GIT binary patch delta 1477 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 delta 1139 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-legacy.zip index 63c058f5f55888ea756a91b3cfddc88f9f0a3657..fde27adef0e14aea47a60650acac386b68c56cf3 100644 GIT binary patch delta 1346 zcmV-I1-<%!3cw2(P)h>@KL7#%4gkZssaDeW=%5w_001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfgPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMKxbqFGO6G`4Sfuos4*EavjwNVR(9{i}?;_wGoX6*p zp|yOQ3TuoOIZ!r&a$8r4+|v#hCb{EqtKw-4`&J`r_<(|K5CYPMi|?D>I{mNA1jMXR zIyzF^Qo?@33_;QFq>Du3E5z6w#4rwl7B_Ph4`-EnwSahk-FVKb$Xy@DJC-Lt$WT~$ zZFcnIN0FXRkwS#%Bn`vICK6~GB8p=HksV=2->;&AJ%~otle7B|WhjC1e<9Q5$j=oV zzP!Zgbf75{x=i0Fh1&(~vVCzj+SD%JbN8hEa+VI&OsWy=p)407J@`M2+ct~$B zu3i|Qq)=FY>X4YV)>9r1=IU}*xnMU!qcGEV5fGgFD65b8bnLWQ5y^k>u6}@sQlSLHFZU3 z8G?=y>g2^6540qCczgW}C3pI>Jq;_(gluXXDhB6&_PL|=vW|~-HJ2Zxr3KU*i5T9@ zb8vFV^O3yqM_#j$LK63~OP^=}k zEA8A9?mN>GL0w7%tHPPiU^7H+jlQF$IZ1|1?fa#j2OkMlnlv*sE1eAwF^Q=iL^3J= z4Ozh4&-TQB$-Afv5D}9{QD<?n-+am(s`h=|RUP!GX%aVr@-!w}HDUN)8Kv=eIfi;TUfe=nanmu^z~n{&}M76gyRn z7p|ZX9XONamOyKQ>hOr2&KE}ZoeQUN{NVez2N`*{Rhcd8b!Xgl(l^MhGW>~4{V3Ex zD%_=@d~gasubcn)G+0@KL7#%4giXAa8$y$Jh4^;001Wskr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6jxpC4!_7ZeYAj#AESF&W8~7Qa++T|Mpe|6V_r z8z|=%VYxXQq7jaNU|oB6f#J1sV*r1Bx?2|T^Epu+QbZ;pe8$UmRl6YRKSO)du!8JbpwPh*$hs-m@$H>) z69tHFs@> z={iLkf|NLalIcvYs&Q$E|Jo=3+@G2wQ{n0Li6c(rrXdb`gqhtL{d4N(f00LXNjO-v z?6<+#ZdAHdbZ^$eeAbgT+Wr=0*<)qm0!Hj|shL;X^X8~v`2uQUv|}7>a(fiUrsl=j zMqi-RKKXhs{$#$DX0*FK@RKKsZX)B+Cz=B*!Vyn@nFr`|;#K6cz)OJuOJ)FZ1>?Iz z6lQBO$AD$!IH~+%o0+kr+>H7`vD|`oYOR4q^5IpJh;P6pS@OJ^>+4F#Jn^QlrETLpJ$DeNqoWn(dkUlh$W+V51L(NJBZH&C}J zu4B@F!Hm#44!EQ>#3l(jg8o9P+Vv@2iK3d9VgXz~0xa;H7$z&*o7nZBk9Ydd@A_J^ zj%#sIcKnZw*t)*2uN*X6EyJ?f%#4#zT!#FOmRxr>v=PK$EW_TG3cD%S*1WEYOPF;O zeWUCQu7WE7vhHw}P9FO(&0%G!z>_K^UBeK6j$zgHc4Fx-&m-pwo2#3&8WX$N5iOz7 z$n)p;C=6BnjeHtG4rNl*zq;2^+I~;$o&YG{XOvt-f-XJ+)Q$BNpr!QN@l0WsnPBWk zdyaiEYSNMzvj|QkFBq|+55h=|ewhje*^++NQ$7}}t2wHr_&sE;Fd~t$g^h_A;oO{m zl0yB4;CIu*n#S}gnO`Do)O1M%3rH3V02Cr=J-vygW=+b-8Rw#2vQr|DrA#V#L6uK! z&Pr2VEG8gRg zK`pNr1h5Loh$=hOyD?Em@mRRV!9Qs6lmG7%po>sT0Rle*KL7#%4giXAa8$y$Jh4^; S001WslX3+}2ABi@0001%G%=$9 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-compact.zip index 144830f762e721fb5bf5c27cabe573fe2d7c6df3..e09dc04f2313d94b343105d026d614d828d9068e 100644 GIT binary patch delta 1486 zcmV;<1u^>O3d;-_P)h>@KL7#%4gkZssa6pbg6g3K007Dskr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfk8sPb=z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0m96M#X$)qA@s-!9z)PS#`8g0H=SQ}unpWVIxAxbiu;fAjZy4mhT-1bZaU>+#=ocRIy)+b$e_QS^-Aew#I;wvHf( zSnXh$NTv^TqLjvVYH*_1`9({yliZTDMQo5Qj`&i42h+?>%9t%}U}kY1Ny-SZXw`%J z0Oa!N)xcJt`Kpo5ltXbTS?h!Oz7=!KUXC4bX6fgulWY+~tNRyh8?q{e5XP#A$jek$ z!SWMA4q)TZ&+|G*DQEJ}M5QHXw!>$+pP{&3c)aJ`#!o3YR}@OzjOqkpaa<$^4YoNM zl*nLzpMM@AzjVL+q8A5t1NyH1(y~XEd?>Ma8Y}^F#_gS)nC5v1Ir&eHlrxECqVn3w z)!iAt_dv1Jc8V~YS|Nt(dI*lF@o<6}v&5I!D9M=ojXE;TnTU)XQF={zzB&#Y!Yh6U z&i#v@L07mrR1Klhz&GvRRKndQwgB&zP01*KpXs|ZY#ckH)rmSQWE}4%Z9G{=gBfTe zNH3*S&1JPq?{GaC2AM$kxEe`ia`VhhK0rLbs#HcEJb%>?UdUS_YkBDH3;O`f82(IF zKm{-%Qd8*%k#^=>?*eV$U@l}>V#9@x#bO@GIi1GA#u!{u*+rh+wbM27#F9V5ag+If zz$cIJDlf<*{dzkNWk}5?6QX&+-<{o6zQek`o-=T?cHYm)*uYVPeKGSu*@}XY|=gMlj(@ z53V)ZrLi_w-l{O@fBLpcau+r-WA+>qgjf#4-TrJEe&|)PRt^xoO8C^wg(4iDOpEGj z>Kdvb8=3|mO>cXZm#BDvYt<4li@d)*z;th)%*2~cv!A?6P$Zu7$^C&{<`ETt?lCk3 zcwRYQOekd>inXb6Ocr}H%{zTSjWzyOX}mNMRg}Jvr}G|F+^I=>_%7P;B5};Yl~-nm zUu(SL-i_xDKF)OfE1M#$z(**96tdx9t`u!SBIX_uwHGCof@q6kY#yvkCZXH?Qi+_I zSpE=hcYj6Ggf(W?AGNf?Y5yL7L{_dT_B2(;yRBbhED{Dd(gCu;>LN+D!=f&J{<#)C zj9?Pr(01FG&lA?D%jxY9n<6~nD4;s7lsNXYa9HvFELCe`edm0=Ljz6O-D^QoR zn#O_ZK`IQG`sm^zIh7G{_IHF+5vIvU23}ti!bm)dJN=)Z4Lgo+*Ut_jt#ohy3Ea;B oP)h*@KL7#%4giXAa8$eRsEWJ<0065H001PD4hAQYLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?F)Y+t%eDll62mOBW<`LvzfF~?Ww!1lVelR| zXG?jow@(GgE1%*zcU%EZ7uA0rX?(gh{Q?ra$-L~_GTcg2-pDBDDP&6@sxy`Br8Ql; zv!I$H2tR}8y-v1a*(eh*SI!LhJ>+_LxXs6}!AACLU_c;Yr?M3S)wa*m-;-%?N7Z~Q zcp;MUXTnoWB~FDSP|4%+Ir-QNBR#k!bi*;*f$?D`=y!xp#sn-ks(XLs5*IHfTBF?R z`9mDX6K1Mh9Tbv&GLv4D&gyZQKDqCUE;I-hawryxF_9b;8z^zn7O}t17XKmU!K~;_ zz5|4jY^;FE>FR`Kf;j&$BLb?L1&E%(uABx87_g5F*Rva=!F52?}52;G&U|BYZU2 zB`QzNN4Ai=$jC&1a^J70AV5b<@npCcaqYEr{0)B#*nJ1Gz*D+#l$N51bsXi@!3YCy zt2g(}`&e@+u2rA>^fkvHYrQIZO=o@3Ruz3dCud{*Y5cF^pr?NVJ(k|p(}GOR&C5!4 z5Y(MI^M_dCVJk=S{%Hq98#b%>%Q^A*th0I(IXydbOJ1Vzqpg$s>i~AzAxC*lO|r1% z$H(_h<(TIQHasB5DegleEec9c*x;p5pUAIg8=3WRUsQfi7vRC=6l7hT1p!efal=j? zEsG^+>~pQ=Usr$hBAP<0J@d%==9ywk^1Dew3X3uImWp{A?2NU1GJ6Tir6#!$W;Uy( zOpq1z93-besV2k2&!@6|?Nks+j){k<8}A*>khfJ(dB7awZd{oK-{~#($QxW%seZFS z61?Ja$A0n!5H|d11xX#U`?;kMul$YIX;jM{Jtz>wb}fI%V8hO@7q?e4Y%%3}pt8&F z$R24NzwRNNeW>G)DV~ruJ#K)6;!x&3`X7<7guhJUrV6oKgCwJ^UcY}?04B;LHk581 z58RMcO(>Y+{#s7NI58?KZjRl4#&}wdXL)~%q7WbQJyOrjW8olCmX&02p{pa{b^_#TbYUhu39|^7{O+q3@0DqpNwcp| zVm8@x9ddAUW97Z;eXW>JS$Z+SH^zwv(@!2q)p;R@nU}gW}qa9GW8N=Q&-%iT( z7n`}>;7+`+6a~TfJr;b++n|DwU61bDZ;f&h%c_6cOLLsU#7u=nr8aUd6S1*VbTSrmfR6k!%3D%m4rY diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-legacy.zip index a31bb7e9ab821c688504c535f1c6e1112b673890..c1763bd599607558d64acf4add3be5f3e15102cc 100644 GIT binary patch delta 1347 zcmV-J1-$xz3c(8)P)h>@KL7#%4gkZssa9{1l^_=d001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfk8sPb=z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAS&mMJT76VW68jW6AFk8A|zwP za!w~7qy}pOiUuIl$SId@YqKc*CZk*#2{(~bgFS=z5b1jFjK)R&NFnK(2n+cv=TCi{zLjLm+QM-%?Z?T#uuw0c=0`7~sYWPeIY7TV> zafq;=5Nqpyi~x|JiX?wW0u4HE?vhTb1VwAhS$7}dF<$|cns*-0gOczg~YRX~vf1J&}orU|tnHr5=!q$Eb zn8TkM_*zP4(@$hWtkdiXVP!HDUQx1wZ8;L{9zbr?5YhMYdBQhhTA|FtY1PmmtWEHyvbB|mw zlk-4%UQfu*yHNags@An{J6e3a;m&2khqG+DWg<1XDPF7kpl~jXw+SL`?olBxc7`L* z3UBmLG+$ar1i0{A9eswZFs((ja)!vgGkjNnzD}?nZ@Zw2$uziP3{-+S^~uAy_d?Fm zfwu5QsETqS9(`D0t|0?u_J{-Uy1*y{g}fOTX}2#Kv2upCfMgb^r-fpK+Oh-FkilIp zS=1gc465*^ZT56&k3Z71${NwKs=&yFGt5N@$oZgw$eFtkG%Z~+j9>^PT`SG+q`D`6 zjqIj_Q33um*V(MjsOpyyac&RI=15MdLAu#<&P`@O87)$9j)p!AQnZF>ciOQ6!~6nz zZVQNeupni=4vgLxvW{h!=g){d4}}(S@g4A6$TfOlbp0-T@9hia=UnW~Q%Xv9z0H3+ zo_CWYJ|G>;pJ5rvMl^>wF(lEZe}vP2XMw9i{ohLtA#fWDkuppl0l2M6rjA~^=c^2l z`4~#{1ul~ZB+h)2$)D0G-uLMF#7SAzQ;u!|Da`&mX|1b~n|Bw29TO^-GZpWsr8+Qr zA684v2EhdIKNlEe5bt%xHQ~|J*laHCdiaXKmo)^o8!diuGRYrFJ|Yx|S_d_Mh^O)V zCE3**d;dkqOaG}l1bQ=7XCpRg{jbGcT+>GlUb{W@r-c4`^a6El`E|?%x6pjcmvHn| znGd<*VPPc{uogAx__7^*C1iYnuRH~I1Z?jA%SP)h+90zU&k00ICG0K>VdR&SA&AQuGy04@}hvIIy5Sp@(9 F007TIbtM1* delta 1152 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 S0065Hlllcn2LA*A0002**l$Jv diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-legacy.zip index 9f9e259d862b16ef260a475738db0cf0798bae8d..f5a82eb25ee37a7c4c6cf35e7983bc9c7a1fa778 100644 GIT binary patch delta 1346 zcmV-I1-<%!3cw2(P)h>@KL7#%4gkfusa8jKFJcx2001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfn=ji#Wz+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAS&mMJT76VW68jW6AFk8A|zwP za!w~7qy}pOiUuIl$SId@YqKc*CZk*#2{(~bgFS=z5b1jFjK)R&NFnK(2n+cv=TCi{zLjLm+QM-%?Z?T#uuw0c=0`7~sYWPeIY7TV> zafq;=5Nqpyi~x|JiX?wW0u4HE?vhTb1VwAhS$7}dF<$|cM3(iEdS-&u;nOvPs@GK)B2K|45VC(C65J5JP=pNJa5{i6~{W zaDDH);IE7$BBR6OUu>j>$AWYlEB`0}cr)^_p0b92?AHUQkzuC`(Y%_Fwo6o#+aWU7 z6q&-ix6Q3la~i?K;D#b~<}wqTu-fTyov~-3L;KNCjJp|I-IcmD#95)Hcq2mt>CW%o zLKU_&l59i26CNsXr%Sk=`ytUY4ifu?+LRcYpxvh+ZaeTCp8kmKhW!dzF3ZX)N#;S@ zQ|Qfqu6mpCAVVJxA7y=Cw>*?MgJ_<&3)zDE08GZ2T$X!)U$VZ+a_RHu>dOSgF=ZIi z14WY>cj^n3AQu|~!uN^k8aOVUMxT^@pep-B)~pF*xb1B52)i;3wk)4QKX_8|t>D6c z0sBv$13aJ(c& ze#0zUV6>5bXa$ni8nm-F1qp8C@xXj(eU)pTcumA$25}cCe_!JuRrEE|*)W?%_|hYP zy7ylu(awc0S~9%Zxz_lYEFlpQ={l+`gju;b2zUP8A36SId%_)~-8yYj|3YJoGP0oN z?Lkz7hynQar;Ps*aI=cht#~PQ1p-D=LN>QQG)9*FHN9EYn2daPI; z?}6(?Cuva(VAqHKUCl$Cm%)Pnqba+8Esvf|_6x5gVkM|Ha~~!n@kh&3E5?5Q^uK1X zYh5g;<(;#-I=(W9K^(WMMjV)xh$A~NU3V)UoHnX8Jmr=ZD~I{i;3D~d2c`s|-GZrf zg@xk_9=zKv>abFGYMrneH>KMt_`D`cxIx-a@W{c+tT^JPBSEAHx}xoh$=>gOX@KL7#%4giXAa8%MfLitt%001Wskr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6J4{`0GWA{67ZAu zNMBy`^-aV+C@ozkIpI&aW1bM4VrspY_g-8^?IqVV52K5(HVk7oNInE5mv@^JWTWnJIvh zw&Cyz){UQ$;wI--dl!scc2kl)DAwOwrR|gDkahZq>hwC$E);la1n)jDtv4$82|#j@ zb`a6DC^DUYT;ky@l;*NkVFL|WJLl>3>IbN{h1Zl-Z2cGRg*f9=Hk8e5WywEZJp@dc zMTMF3pW!w-iet{AvG3mGohXU+r7XcU|i#qS~LSza&remH2zkS8VJ** z_NBz(fG}56*9?Fo<2NlS z3A7LJX0B?s%%IB0bK)CNkVTCTyDX+?YTr2)-eGf}`D~=vZ|qHvE(Y#{A1X8(~%@=-FKc750x#e=vmwmc%oN%|n1m zKdodA`n(t<38tV8LfT!qok7w2b}nVGY2Q0OL!5FzUZxB_JUOtu%o|hQt9XkSlSz+% zN(1GM(%y3l1rw~=%v|;u!kI6Smv65bRa}x%6OmknvLo#yPUJoSuoGfYinY=Q^2_w> z7I55GmleCJWLRnS zT#?B$JnT7kMy9_ijqy=f1YuDi-1R6_fI^`!hwJ>A<$O>}0Rle*KL7#%4giXAa8%MfLitt% S001WslX3+}2ABi@0002!kR>Ys diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-compact.zip index 0a1a6be2c92d65b60dcfa29a0efb53bd6ac2bbc3..fbb76045d97a7a7221a72c61377fc6e36b271c67 100644 GIT binary patch delta 1483 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 delta 1255 zcmV@KL7#%4giXAa8&$PS%SO-0065Hkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6@h~Pd5H@SXYN*;f7U3#xd824 z@_V2*MvvSp!~K-^Gu)wmj;AFP4$wMOkMFb501VVBVDt!|_ze*%TnuLgxaJ{^N8vS0 zHM##w=j;e)ZAs*;tfdy|&JYRfs@IntpZnHPa`EmSX#k^thGXsfU@bbOoYu@H9vwa7 zaa5@;t1|ns+l8xhy=7YefN}Lj2`TONN4gp3-97u2K1mA_^Z;QP#64eRJN{^p0`NjT zZ1DqOd@wSDe~qxBZM;5DA(z3_x-%Zbu9X2OX=Vxm#tD-?qOcfEfYK}yrkRPmYM#X= z$7u(DlYo$a94M*r9EK)X&>Hp$TH8Qm-oA4iJ=L3HVPV@K!G@bR)a(AVc_sUFPa}2^V6NN2d(cV18J=rj7wOLvB}Yz zIbC*tFm1AtD^226Q;L}ylC9(2`fQHUr@FRy7ZNq_+O{oeKvC$s15YX1)4s&q3DEvc z93YkDYZPy@u4xu+BpT=-XN_ZViLKwPP}>|0Y$*$%PO{X!kAzkW7g22@YJg2*CC&$I zf7+syL70azaiTx*?ICRSEf=%muR)&oWOTWILS!H62d)N)Tks)lL??pJ4T}|qXQJUR zgTP<_cX(awjnp+%)GE)~`1(4$5>O@iOLbSVNKQ7bWv>m7FTe0{nXhTEXD6OU?O^|# z%S}3+c`@q3zD=f7@>yKCFqFfL`R4b3rj`k(31d7%C~a^Va2{0KR-F%TB;qP5FJ+B? z;!T_-=-5ChbX@8<@A0Z4#Z<&-M0a z)L9J3zzNOsB?Mm|SaRKXPsTIqtsD2~2=XPe)_Yo@I3WM;g;Vh+x-NW7@8F$u}mknlMH z{1n$?L9X(}3rW5vDhunr5X2L)l&Zw5Vk)cocN4S`n5mf!tKin{GQPE_N~?Rtv|*c( zNT^V%HU+lEGa4#I(1~b$v3=!t1cXQc+j4aV)&#|=X(Jy^qV8Lr=lv}YQ3Q8861^-C z-;9CJ>+ld7ef(4NkrVRgZN}Z8XXAt@|K=8I&QMDM0zU&k00ICG0E%&NRQy+2g1iI( R0ILv__ytG?{saI3005WmVC(<@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-legacy.zip index 54da87cbe340d8069b3e301ed0561b3fbab54f93..5a25ff028e04f496cb9b5075a7d727ca0a7b3fe1 100644 GIT binary patch delta 1344 zcmV-G1;6_L3BC&$P)h>@KL7#%4gklwsaBdeyV?{5001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfv_2&vnt2(8_qA$l% z5Hj8*UhWGv*LY!nh*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}DF860)LwqQqqU!e;Q8K5GWKPL+H6_uymOO^%Fx zg>i4&xn~&mu&BuU$s0#CVWQpWfaSA2g zX}p0FZZdwuA!;~(KKGe9Z7`+~Sh|~xAFbk^%~DW;h%H`TH*WafQFybDV-G9I(p*R1 z&g_}S2GdGsw!*EEB3VA0mrF-UFI(cft13B-;ooUxj;IAy_;sE19A=IJMn2iHsaXe1?5_4NgzYx&T2{h6x7Uwc zt&}Hb>FJBS9dnZ9(5^wqsGPx(Fvf9~T9m)OWCwX$a9ao3KDMqW|vb zp;|_Nuk%^6xoM3HZHGM>=dJJiN$}~=WNN=Gvu(S{R8Ei9uo_SjgPf8ALy>J$iU$?P}gk+>$dH4Kc z=?{!5KNw;*01VmFavfWn3ztMh7)Axd>BqX7sk_0n1r4m{nv!O@B~^6}dz>CjL; zoJ&E3_t97MVDq-GckLD#2WWfs+`BKTl9G3|IDet7( z%>ckluTDC23N_)@TKlXt*mKUh`@?a63*MyJ!RL`-N|Mu@LUW^kkGQRtzY~`h_kcSP zzdt*TTP;TYkkJW8Nmwkql}MH7#WM?wG5UvaMpB?(7m}E@;{{E`oX92u%(C~ZtCdB& z?48xdrFqzHj9y|1pDOR8G@J=)&pHqPj{*VRxj#!pdw5=>7}k6g~F?UhSt?+ z?~$?|7IYuDQRG(j4mt}z^gyA~dkKW|7V5O2R3vx|Ffs(}Ozf7IX*#cOq_d9)<*@GL zl~@0KsMq>*1@XQ_wbz0n{na0q`aAsMh7UQzex}5YHDN@z56=Ii*Vw++=FP^}MO;|n zrlo%ea4le;|LNUSbWlqH0zU&3KL7#%4gklwsaBdeyV?{5001r&ld%Ly237?C00029 CiI+(L delta 1158 zcmV;11bO?u3;zilP)h>@KL7#%4giXAa8#O@p$%08001Ws001PDfdwa#LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?F`~A5xdVd|`3naT0Cd74*3Ryw3zBAq9z50c zVS5aO|7)~fkF|3cr}mi?=R=BVPB`Gs8{h? zcSy}8AG3W=V95|wT1riLGNc!Bc_%<=kBdP(H0@y4 zV;hrT{uIudqvQiL1pc9r0$Xf9+*0|a+FPNx-$iE)RQyCEj!7;mf@k0g!9~sZ`__L*O@u9MBrQnohgd#DbyNz6i|-Zw zBco|ta)phd$uJm9J+zhgeTff{_X8?$%nX|8;XlK3a2&A;6`_9xTHbJ92kK6RNv5#< zZ&{s3y#MB1Fvb)X!jRh+5bFBCnBd`P2jrhh*uILAFZazeIPJnFx$l3j zrW9<&_YV)QQt^NHQflN9lel6CNYu@3C#$)J?&%+*H)PNyV(*pdIFn2{1s~HshnI&tHL4owsKau1 zf5&J~XAplBEv%i(T~*3XIo||!0eaa1ODE?3LSSM28c#Ni*yuacf%^M0XX_&J(xi0S zy)u~e>%{#e4BtV|_wnmG_@?Ab&0ilpFb55__yldxqzNLJvw#1?m&Pwb%C591fUi9o zX&e7xNQJYxufZBDDHlu3%_S@KL7#%4gklwsaCL>ytkwU007$-kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfzw=FP+XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE$h0Zk5A#tBEbmrrtwJi3RUibX+Ul+nOPIwFjHlGu#iGMn$Q-^GHNc(wKPO-!fF;>l7X52_8Tgu5A)QOS7vA*Rwwe zfK2gk$yNgzL{Lq5>VPVwU~=H*s>rq06=}o`*x>8Y+d(lmwB6npAH-CV9MY;pY4QOv z0-SyMn1f6>Pmpx3F7=QqyQfYa4=?3stzCH#UR|W7yc=-DipXDnhoi%zvY5wsOax|bfzf_{ zwJ}`fwkU>;0w7C2e zYFm_fIMD%+#GE(@KP|z2IXg7UcdN?Oufz8DmTUAzv_4oTdKRlG+e{&w18q!4KAl0< z2xu4Z@U#8N;8j5MD7PXHC(=9%e>dGISt5pF;^?gR0zq-ig$GRoX&B|rX^1cxL7 zA1x(aT)-PUFWx&Ua1#4iM85TVEZJ_>3w`u+HS(O6Z=_lupn~VGlz|n~9YX|v$_Fy` zOr0M@5e=g2$=%0jvap0LF#mk=@=&ZrUW9*pgz3=SHw{)87lUUfB0|?NKBy83{t`H9 zTpu*PJ8usAdo3Gbr9=V#&xxxhKdKOFC;|_{`t-b8l)C7SGnR~^ z_LS@KL7#%4giXAa8w*4Fdx1I006uY001PD5e6rbLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?F~}SQC;R#A28u_fugF=wXxbwtV?>s>V}Fe7 ztRbnc=k6gBn@}fs#Z)I}>;QirXZSUQuTlOX#U0njV!-J64Xj;{zxp)jOZ;FZ9Y?tG zmq79br@Sk?C*-HCz0UVHEjX`l=8X|p7owxaNTvWckQKF#I~HVtl-YZCKi&z^6WJ!K{>W0^$~(rKA^tBr<;kQ8RXvaG^7z zCM8P6)3%Rj7gyTVJtQ=}qIv;7;977f?2PU)P;7^GpX1*`!fsfuf~hqbkdIqZ-$5u3 zc3+xVEZ7~Rg)IvKT8JyyaS8#8lh z+V1d?tR}%Wu}_@;FgiI3e0r9AJjWUlZobztc5k6C4P~Sz(>i|uIxr2J5ZO(1_s~pP z%6+*$;^X-sn$c=5OlO8{8$N0D1?UjQf{P^gRO>3W5f{q2&yC1A0~!3X#_Fqe^H$YP zinH9nfQr6|e<0K;k?w;MXF`@uJ^J8lF|ZtlhKmDN+Nul4g;eibVI1qY673 zPt-PNL~cq85&PBRE<+Dj2U^v`7b)*ICiW?PG1u9x8!&$iRZ+0`ZiF{)w~`AGq(YJm z&XX$*n2eWPmIdmcmlB~o`<$^Gg0b2m&Oc(O8$UI`6!i?pZeW-g5X=HZ^M+8kB_q*} zNyW}$Ua7>%ex^e@Gzl5G9Yh}C)Zs}OwP(z-$WgR}5FYOQh!>{B3jFx&Hel?QU2HRm zR_a?_&%b|Ns!ikf*CD9lfe*TAJ10DgidJBztp9TXv(eOfHr)gg_GXH*+fM15wg_=~TAjU&(*#y6okg3EUw|Ay4vmD(iTwk!yiv zEO^S3?W`G!;zHZ=8hYVl%#WS~H{p3_g9UpGO3$OUjPk*|SMVV<4~QdnWVJOAs+5Ik zXCSw3O)RmY``fq)SK3m;$oN}=EUd~Z4i458rxE4ZAa<6Wa%W+%0jgiXD$pz^ zcbPqv?-5MvBG&|FE1ZziXQ?RfnDD7e1wJ$Qb7To;EdTRF+?r5J0Rle*KL7#%4giXA Za8w*4Fdx1I006uYk_Jcy00jU5008yPPmcfq diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-legacy.zip index db94cfdcfe033415fa87a4251891c684e893e9c9..53dc9b4299cbc56ca64b2856d0daa80befea23ef 100644 GIT binary patch delta 1351 zcmV-N1-SZx3dIW;P)h>@KL7#%4gklwsa8}FQ#cz1002J}kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfzw=FP+XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE(yvPuQ4_#9<^JY+ac=w{mP4PV?WM7bx1F0RysE5O zAfXBj%a_Z5YBT?VfqE0?%L|#6^%C@rqn;tALWsO$Y*HdtHGrr;`Tajm%<6(f=*>ep z3AvXW9}L?-VGta*zFYlWz%sOFyd_|I5F3T9q)8Py1*l zbK!W-!WC-ziUldp7U7o(+LeCrHoNr8*QIx#JeEV?B+EZ%vad^~X%w0^~mKnX) zWi{Pmnx`*8vIN4T@TZ=cNTnw99Q1ga!u|#MMgG=9pN&eay8Cx}OK-i4y$0DxHWlGh z`>Ft{fS)Vk`@|xGD_Js2WNi^5v|%7<`_@K(rk%6VUz4zbvh_;qL?BotyYKwj=3jE!@~M?z918E+2BOw((XO z2Tq74DSMbc1JjN_8Bm5tdvZGbC0lWu-LKVk1fu72Q^X5SxJX-JLBvJW@;I;ou0>6M z&lqsCAxZ6TU_gtL5@N;Y6?7BN2_+r2NmOheF_Zw*M1<@_aDbtIPkAmeUZ!yOcU@PS z2$RHa>REfQeOa|8nobg}NUdma3~#2hmb6#- z=3A0M6r3cSAEzM+mY#(l{A3FW`<};+*c3gNzyRy*+o6psFa&3$vd=_iMrlNU7bx|B zIPWhYZ}Qv*&wkbPKKv2X-QJVRkc$WjelWZ>f`coWlq7v`u&Y1_+>WFe-OQRdlZ@CZ z+sn}p4dX6D`#GVSigl_{_T+DKX4#c+#F=tNJ1xxhag~_upAjoDPT*?DfLvKhSmKYq zIpqP!9T-6$&ngoBFa8ey`7m7@7f?$90zU&k00ICG0LQthR#XsEI2#2306!Fyv;;^7 JT?GID0056Ke`Ejv delta 1154 zcmV-|1bzF(3xWz5P)h>@KL7#%4giaBa8&Bh*5+6Q001}-kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_~`*q`ne}fPi^j zls_?J>CpWI?cPLxYTOOT|AB`p1i)#KKgp-JIRTVkW0Y@T@k+f%@{X%4jXpY*-(cnG z@dGt`z#-kaK;Rum{z3;&ZtR)y#~eSS?;y&qFb^tWA{x6yhvHckL{F69D(9_REoE|d zEw7u#cT@jn%3vv%G_rw~>^1`xt*IDG062rqV5IJtO))8d{|pWA%yHHBlu3zzhb$?u zQrb0-yWa4Sj5yvZVGJJKrBT_ndE21DkB1#fR9$gDC8{{e=I6O4_;DfMK2g~tp`E{L z)n7@GbEOP-r33wwH&YG1(xqBVh4;}9!N+aGh+Wsm8^!lpb`al(*@sru&Frj|$`9o~ zRgHK8=Ba&u$TV@hLvfpt-kQ4PMPR%jK{s_bc&F9N~zHqbh~y>LZNt_Q{~ zQ*6ML!GrRsKr)gTilx=_2rvJzaLS8+0}WP;KtEuARSdo%GdS=@mbt9rMo=O7SDnqL z95I%5nPp?nCNsDgm3BGsGuMKxGiu0a*8VqF!$}w~yJ-mA2}6>vS!f+Jrm?wdlUqD* z@XI9N={QC2aju;uQ-stuXdq`}Y?hJ@M{c>qQDhUEhDCviLULYz zacEZ~R-0i+So)1{8na!yObR|)iD3uKDQY-fJ^DVR0-Ko}vM(3DaLa&1(h_>kYM{|m z66AgGZ7IiSXCak7B*bcuA8OO@KSxCH`z%|+_(ks5Oc?K#nzyE-HtNcDp0 z&_552>|?b4oNx*h;W#gIB@bVmJ7lY(1{~}E%Kl}tP)h*d@Ba USOfq7I1iI|1xN;(1ONa407YLV>;M1& diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-compact.zip index 10ebee8a2abe966aac2cbd6540fc63fd11e4dd8f..0068a87b4c47c34e072931fd0bff312ab95cde03 100644 GIT binary patch delta 1463 zcmV;o1xWhL3atzqP)h>@KL7#%4gkrysa924=>&rX005B|001PD4+STYLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#%jMDMT~L3XRWdtmF%7rKv?<&V^HB^e?^bQCLMoG0BQu?m>20Hx zFBS+%Uc*V$-;@to~v=uJYjRe}o(vA>zGEDK(6~HnZ@(_PVMKpQ%NKjj? z3Gv{YFLuK{dDk9xzt8TV$>@1;5+8_AfoaNBZQw` z^ePt3X$v-6%mpv-y)u6u|D)wArPwL^xGG12Be#IBY_JT5w|`2tNYYQ_>mn7C)5Gh0 zfhl$xp&4EJ7$g^){);`QlHRuGIp&)whRDvJWCIAFBb#^WuzkHP;Wtm96~(rectz$L zjnFje@}=gN56s8=+^@>$i8zB7KGOrI5#BZM_`92bjo{i1-OqnopKF(UmJ;u{j{|tR zh{N`RnkJlgO;kg3AdF%8-b;N4xna=!NP@`m3 z;T1q#O70YA6yJa0eoBaekov~oC`Pjno^K5s2cRWosm$D&0H_9E2(P=CV z`Zf(Hw{e+!CBI@*(g|01SXFHt9DGFsh{I!XI6q9e(jy>&3+iLnyOM=CR&ku&IF{ul zf*YM4R2Qd8K@v(n_vtPbKt(m#3L#^YG9&29(7Y%jXrF)BiS-Gv{M3=;-*?ilDdIqs zWjXPHnA&!eah7qDZ3pE5+g+%I7HF$;$yqLvi^S=WOX7FxQ&0fGXmc8z61u1Hhjt)} zDjI4}1=~0>lW8Dbp1u?G$vP4o6)zN>L7c6@+G--HK!tj6FNG;%YHG5o20JV{t8NGG zKIe>vDDi(A?0Hnm$!SicXzOq1JGWlWT}R4Y=Gf!xRzU`9ojEz61R_kFHoN*gw7{&r zb>^;uhYB0Z*x9u?3zU;goG4wlD9Za`=}mv3>UDz6DKiZ34lh}m^Z>5|U?jzXdbmF2^D|M5uW|6VUtI-xgUqHQ=wj%FlzcP z^UkAAS-fADOZ92`lcdzMszLw}L`AY1X*l(TM_8=xDplhS|+k<|1brR2<+&1TOyLy_T5w z;k19XSGk#>;AD5syL2vgZ>@AHSAt09IVf9>^J-!~s2?^H^P!>WbzbnG5$N$`2UQXY zL*cW04+IQn5!YwzWF+2N%JStM z&%{6$+$*ZZ{YWEvS#yxCBWQfSn10Fsn0wb?P)h*@KL7#%4giaBa8&1Gt*4>{0043j001PD@C7H4LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?G3>D1C;R#A28u_fugF=wXxbwtV?>s>V}Fe7 ztRbnc=k6gBn@}fs#Z)I}>;QirXZSUQuTlOX#U0njV!-J64Xj;{zxp)jOZ;FZ9Y?tG zmq79br@Sk?C*-HCz0UVHEjX`l=8X|p7owxaNTvWckQKF#I~HVtl-YZCKi&z^6WJ!K{>W0^$~(rKA^tBr<;kQ8RXvaG^7z zCM8P6)3%Rj7gyTVJtQ=}qIv;7;977f?2PU)P;7^GpX1*`!fsfuf~hqbkdIqZ-$5u3 zc3dV~m_S z<*jt6@~O#*4otfrfKb-5iCshkOT`Xb-V&^H3PQ#1nvRSgx1}mKb2E-bj7s}G>KBq7Fw6$5t6NiVQQAsxt4}$QE@`^!pzESC`~4|a ziO1YMhW8d#grwyNF#lkC2ET~IVc~=>a}_Jhb1E{}KzI=|34S1pV9gsDm z5g5&t`KC_`tSa&?iu^&SdR6cw>$E&QTcy)TMHsE1ANJX|X`D)#^HUYtb-e}YPZ?bQ yI;0^ozA62!)XGpx0Rle*KL7#%4giaBa8&1Gt*4>{0043jlivkM2IK?)00009kV_^2 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-legacy.zip index 20a034cb754088412cf7d005142102b272f24967..cdb2d2d02233a8b0c5cef6d2dc0ae06aa5642913 100644 GIT binary patch delta 1323 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 asa9>@qq1NH008S1ljj6T2BHN30002JU!+(7 delta 1213 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 q7 zKmxxqDXbWFX=YLG)P~!IVcDaLqNQ%fzj+WPd9YLGP2f!wfSsycm2>Ct!g7aN6I~lW z(+3w5rZhn$1cV*9ZkK?2EL$ho-kH1rEZH{foXEN%1wnDR8F>W;Skj4!O)U3;)Xo*t zyXxqH4|b+6&7!y+2~Su2^a;~sX}_<3=j@p=*={qs>bdfxb5f+Q6`!3CD4s1ZRy{n* zDpf3X`r1i&X^K%e7WVdD4<*IRW-y;z?3*{$(RmgT`CD&QMhU|f)#+E;c{Z5-RAHNc(nsV{ zsgxLW0uDS@Vn#Q_+Cq*q@`X|*)c?q6z}LBZOJKV1TKvaXd5^`B@{0F>cLp3bguSV> zaW}}AFwYexAu7V-oxV8vy-*Rz5Immv)6ZdJb~4FM>s}$zpyKaW|M0RApioNz0zU&k00ICG0L!_l ZRu1{rYF`Ba0P7W#<^)Ivp#=Z{002Fay8-|J delta 1212 zcmV;t1Vj6Y473UxP)h>@KL7#%4giaBa8xLR_U(!U001Bm001PD%mpWrLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLX9qSAADsB@EYccQLdI-h?SuSi7X|K6?R+wzTqjH zspNquLmTRGeUkCbT->R0XO1Y!ftjXny=uD&c6bItNzjF6bT7~nuw>2#E%;Jab<;9D z@sOpqa+ifQfsl?dSJu0k4gP)Q8d``ml&Rc^{UZ%PeO$}enOQx5&jxdywmJVB51--HCf}ZrVpwAnSKT`4vgR@*FOY3RQ0KbWWk0hy z-zO!OFrHJl_M~w5{2G6guh=vClJ&=cQ~jO0P>ZNE;)}^^@~ERZg9&-DGmw0nUmvJW z@6rRAegcQ=E*2*SkPCM|Ij>BgMQvQnBXv$yVF;)jdGZJ&$6+3a++CR^4u(!_lBDKc z%$2Wf4j{cbEhhLuKy{;eXg!?MKQoNrMiEHla?ik3SAn(J`GL2~?Y5etrF#`edx=|K>?2=(QsIDXr>+LAk)B+i0--hYg0_h1XYBBo?x_ut4Bz16 zp7{e)pUxs7inD(_Q=nP-jy~k+iZ}eEc~jD^{?e*2(iOJ^<@rY-K<}gT_RQgaIpv`t zO6_Zt2c5R_RbK5~>xh>B0eEv!aF+c(Ara=ZRA?HhD&wt4Kdzk7IQS#o+$0qhFjPO% zy0&2>>R&P=#7<;&Tw2EB(wDrHlp*ALh2+~{=C4lPLOy?8J_@Vb`!}+ZE&nYo?_&`m zTHp?49|~)V%xSjQlL~_7!I2@=ML>;=;F*qi^ZsaSJe7q#&LXnZR?-(y=zGz@r>orx zD1}s4s5FOD;t29bDE$N#C-Pgnp?eQsWqOZyx$wrO{79xGRURHJD+_# zVsB{0cras17XbCZO_Tt#UBm~1Dq&*dEtI8_Onn7zP#KmVWhA za*N+^2NtFfC8fI#^0>S=aV(rYlnS-bJLi6ZaI=4^2oMM=Ndj-K6?_r!7oc*yqxI8Q z@RHSAt_xnXl8i79hLTyjWSyh#$ZHoFfbQ%TFumpmHPT+)D`Od!^r$&ru|?kfbzg|C_E&z)(v80zU&k00ICG0E=;O aR4569_U(!U001Bmle+~-2FwHi0002H4Mb4@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-legacy.zip index f7d4ad12d06412cae76d1a6a774695416e8b7026..0e264b72e7e391acc1181b6f31e89e38e318ab75 100644 GIT binary patch delta 1283 zcmV+e1^oKU3Hu5gP)h>@KL7#%4gkx!saDfD?rYHm002=F001PDjsz!>LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#{DkbKKU9)F)>?l`=7KIrT0dqCz7e#v5c{^9ZjUj8NK-t7zBV4+LALy0 z@Zf!C&dzg|d;5cE(fEDE=&*0LWoidlUtDnYlPqA0T0L0DGUO;~`-24`_xGTdpsaODKPbz`Oe2nK^iYyo&q4n#Rgu^deJtjoX|i62W-5YBE~h*`UbEAoeG#;m96S1?CG9WH|+u#D@vo~i*_ z`Qyg(wOKY;Z>%rS^__&e&Krs}(pc>Yx?P>Cy%U03sWs!Dl7vbAhb`EXU+tvGFS)G;(C34~4+-gK!O#QuGZ z2sJY5tSYD)6`yfg&m5dfW{8jvZwo^Y-OVBVAWAjHL-T$*F7263$y4(a5l*}R^h1YT zd#BLn^(}C>B4Q}*0Awr-&eWFUm*bf=Q(*gP&dh&5sTJ|#d7MH9pP;3F*FkMp*!A z_H`W&YVNp8_h>a=5RhhQs74abd=ZOv$4Az5CBVE|H4{USk5(HG~xNw~lse~s(Xgq|__sulnkT2klcj~pqag-0Ig(5<* zy0WN;q;XQSC+*8xFG@Tym_=BTLlk(D&ikLf*O7lxv$=B$*XRqnB>;OthB;6LjHy!Jjzp?3o+gd0W7>zS8zn})1S z-K3gDsP*9GecG%jmfzzsA**=PYhhbqp%2vGqOH6Dy^O3NHHclB-~04mH26~$Ik*>- z^H5OQ*_YDx^LyRUcy#{mHWBTUMARPfNdg8^O;IRw_dGzlzwncJ8nF--YyCN8Db5d$ tC;YK7j8IDf0zU&k00ICG0L!_lR?|7|YtaM%08tZ@eFR7b69oVO005o>dQkuX delta 1106 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 aa8%2n=M5tS005j0lP?8G24w^Q0002$x*1^r diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-compact.zip index ea955841b93d2c679177dca89d4705edf2bc36cb..dd9bd2531f859bcb864ac1d8e7e63fb9f20cb972 100644 GIT binary patch delta 1421 zcmV;81#@KL7#%4gk)%sa6yDA!lI)008S1kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+g^wPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMKuBSrm5frMb=RXWz_H043-7rZ1z}CXbl^;hFpaaNk zCH+scNVo4c6ykxzw2oCDA3zEKU92_i9HN&y ztwAzjWwveW=E+!89_leZv5sjQwe?AT8|58fJFy_(>Q>Hw!!?60xTl58{pqH0=4G#P zcd|?F2U)@J3qNj+)sqi<`BGV@?=Rz6zW6yh+*_%?WiGD*-`&T4g|(@eePRuOy5i

Wv^P8&XOvXo%9K-d{Tc|1&T34>fivL(Oc^cS3NgHHM0n?5@YIgp6p^NWg zMi|5S(KPFSne&Nt0;nTZ5YlUVV?UDcb|@#Rh@=UFS3Xi(Hru?E4ZHhhm%+?z zQ9#7kWDV({(!tn6$%Y&0IDJ?!?ixKdaO-DaUZbafI)_%x2g%JeK@ zS)>c|xN_b@pEA!&0%(9I>pvn9sm*na0x(jL@H~k#YG{1lm?nJ?X1g5dgW1BVGs9cH zf-Zddd|QKyHmJDubcIIftF2ZF3@SpaT>t}r&8(T}g29vF_OLi&W%R&HSq8^0AlUWY z-G^O=lL4klhNHGITO|;^cAHQ{&XdNqIdw2JEYlMznv6WsT5bvKbqa}Uf4i!B@8_0c zQuc-aTIwIfLGGG9;|SB*i9w%}4=6^8bRlI@OON>0KKe=`++*CO->x-7vm%NXqQ--N ziQ0)r{UksZv1!6F$qZvaxa6sUCIty84zGEc?PF>&;=6^MW_K6T?42NwJy0U&R&}v! zZlpRW#AS@;w!23kb5-ZURjk(d&pfR9__BLT$WOf)3}KI564PvZ45RleVw*f!XkYb1yZmZPA)lPI{+zK>CZ@1}(= z`mxsXzKbW-TR4#NGU=cCVO%=m$SZ?bAF9)v`nMa;YgY&zDU~Ixh})Z?(zFt1hB*Ds zk?!dAE6g^->{q66FNLTQ1g6sRJh%}a>2~?voz%0h=Y_c-7!${8ot-fq_*Ha&9rd1d zx&PsQo;MsQ5^^=V)$UWjkjid)ZKPe#)A3$8*Ez3r_!=M>b`N`z(+T~e+KLj-EB_^h z&_J9Z$}3;QB9zz&I)#GwVb+eRU2X;s5Jv3Jdp*non78mTf<}6z13y8CtA~9&L5UNr z*e62jhO*C(%!M|vfcG%1ULBWV&vhIR1DdiLyDsfEx-nSIaa_~q&K3cl1IG9E2c89} zJ&OpCG#ui(_?-C5xN_b=qLm?5L;Hi-!WQSa6br24cKiQ&f5iY$O928u13v%)01g1o bxv5qY`5|Xv1pol+6_e!zNCu+?000001*WmV delta 1211 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 bxv5qG!_8!21pol+6_exyNCu+?00000RUWkG delta 1210 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 ZR#teQn_mS00P7W#<^)Ivp#=Z{004Wxz>NR^ delta 1212 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 delta 1217 zcmV;y1U~zW47my$P)h>@KL7#%4gidCa8yUDUA&J3001Bm001PD&jlxuLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLXT>(yI0J(Tvb2l3qE<4ti6&1)M6GM=|66!J z0@NE`!@eFm@??B5-TU)MNuz&fAdB|7(nXyTT_yE1wOyJkK_*A+F-F0*soTYz+pEP4 zqCS~k*|8>B8qD8N(#C|J72@9CLB-jBV1S*a*O)pA=N>v^zwLn5Kg%H7dErE6dbfqozOeiwXZQTa;06TOc+u0qoO7a`G0sC7# zHLB2GuqoN_r0g7(S?v>*S$lC(sw7?2E9ghD%0| zS8VJU=zEtBbvcaQN=N`O3OnYP2+_sbrB3pwso^UyAAX9Pm&HEQB?CDUebTodp!9aoC--pjI|V*MTTPaYcBrY(Q>qsvN*r59J!=W{rk`|d%gb4=j9WG?2kr~A<}<{j1Zrx z_oE;H30UK%J`_2($xX&iM_&W7QJ`^8!NS4YAF*CXmSca$z=_pCN=Uxu13a6kWwu&o z9CnF-5MB2;G*5-vi>5}pcUVjm3nEx$jg%7e@k5=N_dz`iU}Hp20;MFIfbiuLUft)9 zqJDPN)JAgqzg2!%r>cFyO>i!WFyD=ZghE`YXZ*yvsdikd6u#ajrZEY%4eG&xR6%GA z^Ls~47`cC(-^|_|Ug7iLBckg1FE?kxfS>nz9*^>+J=)-4Su4HX`1&H&m0RV1QhE?D znTcri&QgaAErlhslvr-e0|GE-qEEm6zxde|D@QI=?i-hBfQz%;8}_+Idx}6R!kjhv zn)5iVgibb6wUx<7(3cQ;RF}0HCCU25i%?tkaQ=U@>*F~()3rnWj`h+!9hT62@TzNM z6!iAxh*r!%#2F+6Yy%~FR&(1plA1{!kVr6s+GzjpXyl6~qDsOZp$c+QeJ+m9rlKkA zA#|Bf!m*!2ou(s)u!o|Fr%_bIS~sV+%9^q`uw~?$ls_z{QUB+8N5W7`0Rle*KL7#% f4gd~}ad1>et6jX01ONaa5R<+INCwda00000Aca+q diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-legacy.zip index 82b428f4156b9ac276423afa82328d57aba3a8bc..d5f277e75bad7d37811e23465e632fb291e762bc 100644 GIT binary patch delta 1279 zcmV@KL7#%4gk=(saD3t>{rwT002=Fkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+g^*$+xS2s3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}DF860)LwqQqqU!e;Q8K5GWKPL+H6_uymOO^%Fx z*!`$cV52wA2UqfRPHh_ZGg>={m>WnCHc&98Voc zOoX|^t)ZF`d7qLOS)N=t=89Wc>4bThp5~xe4n=C9TYC#Wa&J7x*sD=M<3~ZSCSnEF zp@S8a7@C`ZmF8)2T*$@v*;b2Fnjr_CEiMA4jJ?hksKLErE1*rMZNWUqdI&btzYJa< zKu*ryjYL!geAoaqn~J7c!m5&}5s!#JncL&H9fwwFa>w5e#2R_Z_xtFEoS8ozmS1C` z4?zbGq@S6G^jFw-;)hen@p1HVs~__fS@*29>t0%a0YS1L2s03^ucuvJU?*u$wfb|m zc)(=>Kyq(?qK6PX5vXd%-0j-0lszsok}tg-0T zA&-_!t^C40Lp3Un+QtX>5KXTrbznrDx&x!BQ6E4_Kjs$2-sNSIOg*nBW(EN2^huW&3oAtSsl~YnM?*JX290HzCjr4fp-4 z`C|KNhJNcn6W$jc@c3dVt|ma+!C!FkLVP$2&vg?a3m4Il*W;fK2ah0H@2ndUkE?~9 zIsYvYIvvjPi{0tP5*@D)RRkt0ycO7gW|d+GH3Q<{yL;4^LhZ|e2m}&U4C*X~vNIOH z9kt6)hhhUHdK7;%dKXV)%BUvrBHL%^?NC`65?g9Ufa>48-Lj@;DtW|);aBde0JxS4 zgBcXHiAH))37eqRoIi&oY{cVISX}P?pvwXY|6IWFTc|iH8wX!>XAOZHtW7*q_Z7rl z1$2OnICA)1v&dv+K;yO7&(I$(VudI6Z6jc68=*hevxjumP^sBbSJVUm08tZ@f&@qg76kwR005@HWU&AM delta 1111 zcmV-d1gQJ|3eX7~P)h>@KL7#%4gidCa8v@n!7U~P005j0001PDK?Ns~LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLXT>(yI0J(Tvb2l3qE<4ti6&1)M6GM=|Cn~B zd4b;~7w*~gXrQ-ff1GpzEoFbH3|`3naT0Cd74*3Ryw3zBAq9z50c zVS5aO|7)~fkF|3cr}mi?=R=BVPB`Gs8{h?&+gU0Kd!Tr*g!KNw z#Or4lmMWiDbc;?VUy*;JH-i3p<9w z@Md3=_$y{Q-VL+8nvdjM@rT>vFeCQ&TI89m3$U}%Mqz|9&?F_fNQuJut@O(fNvhi9 zJJ!)SJb)B3nl1`>9P}o{qLE3)M)p|eguPbQ0Y#S4>v~`xDVTqur#LnnMs+-AS>zsO z;Xf&I3dj9kJN@D~71x1g8r)K$MvdaL*>eS5d_!0~~;v}tYF$0wps>ifMKL=G;vArDL zQbka669|mT6G5PA$+}$#bM*5L4<9IO;{<%U8{HjH`|p4Ek*lCO2liMbeXx)@dkCKl z(I?cgh7iu*yn#F z_+B^P>E>fKw@@s|DiigQd`Sy2BmFf?#Ma~lTdE9?afuT4_i?UZf*A`!4qKW8P&zdu z_{}+8tPX#fi2%GSjSF{ggKqnpu`H}LTugWlh-)h=MGLn0pRcdSpdI`FEa20a+ydR7%ePsbg$b>GuV9I+l1lUt@HPaoG#gfJ)%>0_w zUNZ)ES(4@H#(kR!C|46QrkA*k12F>o{>~eW0{|o!$K1ArkNpdOKTt~n0zU&k00ICG d0E}^PR06-jEhYp20Gtk!Fa<~kXaoQN005>Y0xbXl diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.0-compact.zip index f6153c491ff50c591266cba68bb700f51d8d2e36..45c48a5d56ab8227c51d1a0b96ce5b47e0e694d3 100644 GIT binary patch delta 1378 zcmV-o1)ch}3g8PEP)h>@KL7#%4gk=(sa8GBPUbcR004Rwkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=f7LO2OCCl>O6aFhIs zL;E2ad#b;yrDFDfR&8T0ZPL1?*@XuAP^6hutD&Dm=e*-4>uGKJV1lmy5FM~ z61}0P_DyKfZ0g5R%d)cEQ6D%j8;%WCr@9CsFsAzMNT4m%wQNrSh2`E?M7}B-B?%yR zbrIL<6bEEpt9hqa2x*uC8h31J@mdil_Q`J4up{z((17hRef#cTap7nI`6VWLM^rzD z6_A)36SgIPiD~!U3?KQH*$JNK`-z?UV=0QP_npveA#D-JY+tY;Xk>;=K3GfaHmckk zXvS`Brnenkb}ueXlg!Jxb`9)1q`NmizZ~7kr`3nK==+EHXJ2Jb7(Wz#9&i*$D)v#v9!>lP?e1>N6x2o!cy-@qL*~z$s*R9*ld0vK+Z^v&z(+W*6Cyp02($T6Mp- zBkhd-OwSjya?bA4l`xrn@*N?7=l&93^;ro6UUW&Aqai;xu+Qr#0u77Yt)d+!#HbrN z@KXtY(F2#b9lZ{+RJ-EHPGFG$$8-dT9UyGkFX$6H$U4!LwV<;H9Fv&}fuQIQh>Yo3 z@&C0wwS4HxG38JNA@~BI##w^wS8}ZD3jpc*U~&`$Z%E0Fm?+6T_adP%_;#| ztO~7^0d(q(_kI%!x~uN~JQA!rR6AmSoKlNBO$QDxG)@$+S!D#(RQeBmoVAZmn`n)S z6jIJ*@?Jru>Lm5GnE+~B&R=ctJAFpLy#jm36(_C=S9U)*LO5lKEtq!?l0XijxYXkl zN9&rZFI_yt1yf;!43USzEWc#_vJdetn==aL$2a!9)D8F*%8TZ#vhX4~T4kz#3dO32 zf!*Ve>2 zxZY^{%XOu!gtj|NUqj%b9M>>5K4^l^31c+q)5i5OQ&1{cSjnajQ6vBVm>X@gP)h*< kKLbAi0ssyG(7CBrJ@KL7#%4gidCa8x;@erJmW001Bmkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6UOo)E}IUyjCaiZmY8wwv5ftUaazg%}Ft z=eCt`dzXjzpy^kC(Qw!Hl-(6IsY*py7MS*zhGrayE9j~ACxHl!vN?og+ zG1P#zW-4TMR1U`MN&H@)Qx5gTcpLtL6beRtupI&u!~}_dmG$q%2n4#4%7v&0x{n|Z zo>A@pxuM>sJf=~-y;sR}FpNq$JvLDVVW`2i3MuD(seCZ?IiU@Iywr8?nca}+re2e? zdBJ9zJeO*cj>DN(@Z>lGtAt@YaQ3zEW4(SYfAyMxsh~r`#(PTuo5D?M?H1kS+--h7{_yVa~`BL%uLjS$G)m{@O+ zN5n?TZXJ%b4KKAZFMI0q-D(#rt9p6`tO*V&h=nTOL(r?QyCho0hbogq`57`1TACy>dbr3foXsdln_^)mxM!0TWN7fd|Ix43WaFOy$$w_1&*34g4{% z+*lZY*Kw-XR@4Z^x(}vZV5jbdG#fVcn_i4fPE3VEXU;<(U@+Aj6nyQUqv5ofX zg*z@s3KeOiTIfFSq?IV3VFlp3T59__On2#fT>qW}qD^ z-q*tZ;|Oz)rg_6VC#}#mVLz2K=sdu;4R)h#SajpCN*QT(Iq7Cd&Ns2{+z(1>1qgYR0I=tUO#cUi^3F%6{_lLH7L~F+A)yn(v2HPc z_bnlN`L+Leet|){Rme*%rOorN5gh-PIASCqc7!V{Z2EHPAu1dHq&4Cxr{B zmV^*IB5&cOk=JU1>IS)fC2G`>2FhP2#i1-s4RsP_y20;{KU)Vjb@_F?MJ!k84rB7v zbKe!m%XQLXif3sP!uGTpI=D^Q*_+FMdLN|7UL5S?Bmfli6Gad{zYDCP)h>@KL7#%4gk@)saEk&W_C0M004Rwkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fBKR?Twva`vFa?HM$ zk5Xt8&8##-Imd2)PpDI7AFgBac^B*}Kdi5q;DUVE_K!04)0FTlcNa?bNW{S$CACH> z#DLGuD&Np#*{@ZcUMed-)m@J6>(~q+@QNzIU?D@7DsV?l1w30)+2p z!@SALNXA*3l%rkwaUXD+42Apb7S0s~c%+^L$sqsB>5cVEEwxU6n!VV;qgGyw!yU$_ zVBw~@uc}XfAEQ{n&OSmvHVAmu7d_iCzh5P-C~lY(0~O(iaWE5Jdn3W??1)0uzskyg zRM{~Kh(S7RqYC{RlqBO|93#C=YpzNTZf3SWWgLd<6Ik;>YKRr9ZI-vdH;m4;9VDW+~yP0yU^N8q<<(AJmg!`_V1B26l$POj1?8(g#=>W1^zD zD9o6D%VxPTih+=UA@<6!PYj`oK&rI!1cnY;XmkX6uRY0R=Y(4MWQEiSRi|GL&hLK; z%uYvA@ozP_MWio!eJR%1^iyh7(DXbyK&q$HVruY(Vi?qI1-o;~Z;nadMm=mc0Wc#s z77foOuw;8FhF`Y*-qdO{mRe;7ghWY%0o*8m`}rh}!w69xSfk1>z?vOH?_p+$K>4K?unsE=`5uGb64o@`e7(`8C~K#D^ClJ4HmfFumqkC?X-|)ce}y|%Co#9X z>Xf44H+&$WJ8dix3=Ojh!U{f2xG`Pi^UCHdqu!2VQ_V&AATu|_t8`HSSSyRGN<=Jw zBuUERpWaXTZOHZ1RlIuNWF3*rVGh#kdOn?ke9Le+kxmoF9TV6yiKF zEO!O=6Nr2>Bvh)R%9ZQ(`<9#U_`SB+j79t)Sz_onV-Ae5fa>OU+|qU*!@ZtaIKG&6Fb!PN!C$_aLo=C2@TOXH6jRq#L6d~ zix(}EdvW&mGWZG!E?WHZGZ{~IIBByjq&Iqg^_?9UDQCGo30lgtHzyq1C=#wD|68ip z{*OH`OcV0yRhDLr%ddRWu~{5A_+HHqzJh`4(6A^j+8K3?_imu7)1wV)$U=-pbRgrU zgJH?syEL|)#U{}ue3>jC?V)ruC_Mnj%`SXiB8QPjZ4@O7@KL7#%4gidCa8#Fn|51qq001Bm001PDp#>+ALL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dpzAcH$zmF08JR*5JO)ep+>vp!P`cJ(>N=Raa zG`G;<1b|A^=Iy{B`+Qb?oZf$o^O=smfk;n-*oxYo2*4$re3963JoO*UA-%x8IyHuBO_&E&Xn#%z3Eznk`f*X72t^g z#((JBNp{$l%HJAlU!T!S)C8HoM~hoI*8yD`#^dfXX#>P9Y!S5dEao@`C>jgV5uip|mJJO&!DYG%XS^-9FW5i20m z;ymSF!jXDtUS@ik11BiDwH6WRGI9u|%>vO!yHOMcX@k+aY=A%QX&w+ANh06PNuKn| zva^ZA=dQ8aov*0teXa8pX8j5B(C6YP_8Pc%zF#8do}ilxFdl!$6BR-3-{%}!8+O4G zF!8jU@KG!l?UWQEhfnKDRA`fkzUGGNiPW+XfEwT}u-|+X%M#7Hc&v{~_^8mwFWzHEq7JfI8 zYF96(koA+e$|GDUsHB8a9E?YCZ3c-ULA@kJchT#*XY~DnVK3%VXhArhgz%CpKs$Bl`Fl=O_AR)*%~1sExWf9RVyuOa9RDhT=KLKL5S|}{lXrcn- z$>j{zGW)*yPsptnin5%7hho)@u8k>g&3~{it#n`rZnZPFNbd7u%rlR|R0$K9?%A3? zIG0bJu%=5$#gYM>aMX$NMznxW`Mx1{W(vHdM9295@~#>(P)h*@KL7#%4gl4;saB97Or=u=005vAkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=f9FfD4m|BNI6UAXNb zO!%SJaX40O55LZT`Z2l*^>B{%g10c~Zz6i-xM2nACG$^rfn|eY3Fzh^rxXeylzRU7 zW$1{5z#fik*Ck)R|3x8!S*=q%$nue=iwmEC-8^<3L^-a67L!%FyrgbcV9Q%)yLd`#(7pJPIwaC0GJ=*Z02zgBO-Hj8#aQ<22<* zc}cyHf(>AQd_P`W>$Uch5)?tbv^cAWIpmcjB-ubf^JOy8bcj2my5l!LW$b`rea?9$9^;PmwKG;RZIK=uPYb zAcX)mB-h0%C)--aY8t_`UTTK=kr)vsp>8E5JobyufP9s>j@O8Yv2vVc>YxgdDvf ze*%XMku9LEMKU@@S$}1c;-P#lpL_DsPCd@AwS2wDCMkRZ)A_{4tT0>@37iiCvlb(5 zeIe|CG?XHlQ*5@EOdWpS!Y0oFF86PLzx2Y%G2!;rMGZnp20|X1XyDIZ)DPP%-ntP)a64(O7lt zV{<*Jq85-+4m>9f9jJHiyz|5OD1c;OMh{bfzL&-wk0(QM)%d2gno+^^CQJc;6((qw z%2i`}z9V-Lfz**V{(AMJMA>8pUrgHWwdIW%Hh;u)xV%&I-jR-Vwga@KL7#%4gidCa8zv?Ms<}0003zZ001PDzy&9fLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dpz8W5L94hw%~hU@Vm@8be% zQ?v*s`GVb2KTxE8ISd3TXmjm+RcNLmX$A4|-3mDrz^~JmCVDnnlaB492kg#+^dY^OR|^c!E9Zx62lgR zWygv+3D1i&;dfUjpa6dZ?;GZ&%46{5!pw4Xpgo(sU6wSjiz#*mm&w5lebEAhN|<~5 zo5Ygf)K|=zC5TF^Tu-<*q$U0)GN8l}jQn5^H;TA~>ioh6w7O5k)oC%#sY&%(0hqEh z`NTBE!3R#8d7XW|!rm+NW{i^%KhtHgNa>kiiJi3s$PbwF7Fd7p!G*(v;j`X1i?DlB z0BH5McgUkdYV-zd$5!RYnRPW2F)~V}p>lBN)_wMP&o*;uOu58F%L>i=T7#`yVJwv5 z;zXpHmrN=pRE@bRw59Ol;GY=f?a=^LI}a4oh1eWHU~mlfx!>3O`3)Rn-xRp)b-L~W zq|(@}Of+qMUx^M&Wzn;wM(MQ5U`2j%PGoL(CX`$*@M_Gx} zi7DA)qxP1YFS;DAZga#)#eEHf zq%`Lr=k=Y-#tsiN1fW}CsDlpbA+zbLDU`8%nFMnMn}mPQbM{@meldl4l+KiY5uecC z>?Hia7&Qk1AyE3yAWSh+nxiCM2v_5+iY%*!Bp!z=3x3p6DDn$6>BjdliUr!PgEq83 z7Z+W9&tEox@QXnguiGp&?gzE5V)QXp(atZDA1hv~g?ash8eR~?j&*!-UR%OLXV&>P zKdcZhH3NUMjj=-dTP)}A7=?PY=ejg%FstYxp;aA_NmH)F5%-mYGcg&1&2_13)L33r zBKtz29zC;b_%3vRm{soY!3z+M`{$i3=?h#7OtE=K(idnrX!J^vX6ydk)^sYP-BS8O zjC(y;_d2-)yMO0rZp?Hq*|G(?>WL)D8=bIeOO}6Tj_RLbhoir7w*XA6>B`(HQ@mhZ zxbMs#w`Qw_NLIcmYtpGEHda@Rcgzp^R3Z)X4gf1n(Z~huETRs5-cu27rjP_HS}fW* zx=wR^mxJ{*Haw1REv9S?qEk`%e%!qWhvL;br_fYtn;KBGg`bIzhfmc1^@KL7#%4gl7J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=f9G}olTIe<6(>g5Y* z`3l}dpf0By6?s#Cj1oz$n$1csV*)b$CjV|NFfn~kfHl}$h*VJBUS|2X}74KeSRY9qzW2a#Z0;3{q zfm*BODC;kv#hOX|S?ZXdPV*~qHf)_4Atk)%LW|%N&Bqddxl`Q}nr%hAkXkgbhY8`@ zD^H#Hy!~SPi5ZrjqACX-H376x3U)h0C2Q}_ElA=um11m$h9Jc%#j(mdb{z|r2;<4O zCHegsebD=AQS#ehKKXKq1EW+6I4pzdGHnKIh61+N*7Q$+FiPMGg&$*a%BPpkICn?T zJl?Qwp;;(@<*-RasJxCB#J>z}Z@Di8N7+G>_)uVx)fLQV&pqV7V4*G#(ou$_ulho} zuMA~vy7>aU;P}5Z1PFa&2Yn)jU}9*+N+sPrQQB2HCU0U&0`4V3xYvM)%IyMd?9*DO zl~5IYPPYb-xsoOhv5({mVWH?_Q}w#y%2x9faRrfn-S7z>}l zDHHSNIA2uBt4%fFSa#B*2T$Cf%7dO zCJlRksn3_OMx{c;wO@6)8a&ylSS(xRsLXExs8I!=xt{?St2;sZ7OW05;*5a!WHQ1J zmF5k#=Wxz<|8hYxQsX8OC)eQwsNyp#eJj{lrh!JB~@xm@M0wH|EMc9u+3z`?z0!2r`81q*ebbnnfehwZ!aB>a16czl6{d1J`MP zC(K^}+TiBk_~gH;g{7!eVmp%r~9G{%O(Z7JU{UNCzE5$P#Ke-7YQPMJ|RNXf&fdRpOJirB>A#Ej;}Sx zJpXfi7ez0Q0QoEE;aC~5>qeshd=o`~=G+j2xqdSts%}QU+btify`s$<`$L_p1r1;ooz4X;dcYvl09_*OrlbbFJkb z(U%P|E$;>E0B!jCLuN@gvF=&1Z12L&9%&}sp@Ogk&^<0EE(qbE6F%wH?J@X&R^1_A z>*8;KG$h&0=CnCWpRO!xqnxTFrHK#FGWYctO98HM?vC8}L^=j$CvmGv(VRDMb~3IagMJZ5@A2{lWVYtjYZojrPdr-K(W=91a9 zuir~q#L5N>hARztF64PP#blINt|X^X7-dh8G^FQESyOneXfeaij!k0e(a65--W(51 zG5ab-QAV>u9C4njdbvMSuSur5K@=r=uK)Eqs9I1<0Rle*KL7#%4gl7tL48aN*P)h>@KL7#%4gidCa8xzMjA54q003zZkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6-QctALM{)tc&UeoGQbwJQBAP+D;P zcEIAdsadk;tNB!a!q_O=xY6E222-7?2=8A-D92C|t^v$bl93IZT{-_GI8wFssV=Dc z(6SdIz6#sIb_zH}pV3W3b(Xd=w#OL`xUJ3jdhwW`jR%A-cdupUBobhku3$9`+VQ}QgtkKCek%rsb1nG?h;?^u!!A>O$*jG9?qBnQfIj=vmM$0+x}kJg zh7K#+v2)yq#Ifu^HiE@Fk;DO5t;n1-NL>D#nF36soR!{0Vusob+CY(ElaD}&_*REM zK(pNm4RE%1xv9Y~wbpFxij|IS|2WUO6~atGC15-I2I8-imMp{fon2FX%hd@h7AH=+ zRH^!#M+2&Vbg)XkvUEdaHHm?KG#1pebQqy(_kYI`VnCgv?=RwIn(KyK1z}WTPLmmd zKJCmJ`TC@!$gJ-4`uAZA8mJTSY&UHuJ$Nb@&QymTO&TuR)fp-+ey=IjcP=jTziwdw zXAM*x$aFR_{U!1-T#YZupP+i^r$OPX1Fa(&$}HV~C>lX}^Jdpi_8QG)4#nF1WF(zv zTQ(C5H1JDRBbNR3Grg#mB4jXe{>FC|h#xVgkikkq3;k;R+H;|p+LWoeFU3y8HoT*f z(Y%{dQ%`I0^o1?AXO6+!kgf5(;~@DAFB0`GBMoFfS1QnA$Y1t9z(!Vbs7?TkApC$anL{q9b$j0fIR${9v9O|Q zO9z%PItaUrR+vxY;M4h*}IU)(>|0iTiiT=+fvcqJ7R zPTPf2W3?7Ma$yRG&#D2c}`!Dg8hseUIQ!!PZ zGq)Ub(mgWskS)91$u`5AGwb5C7Kbnfk;wTrRG`xtbRBg(Y2k(O@Fg=hDL8$#-kJ0~ zNj%$QNj`DVXKx|I5@k8f8|A0%6`fIdr)onrR)qx#m*i1(>pdPejhKG;u|nkb3419+ z_BSZ~@h&=ZOFX;$$mBry1CfaUPkx(!i6xn>;o>>On_ET>pAg<15P?gR9x|9ntenuT zjD}CyZ79}z`jS%pL?a>962!^%fuIEb=`aUC`eju?f=$wD(hr5^EWri~uT$CQcpO928FKLbAi g0ssyGjB#*OHO7o#mjnO+X%CaM1xNV!Z diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.12-compact.zip index c6f3fc59ad32acdc865fe8fa7d2404d180f34614..fbb55e067f45643ae2b82c6c3668e730045eeba0 100644 GIT binary patch delta 1414 zcmV;11$p|s3jGTkP)h>@KL7#%4gl7c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#GT@ANPo4 z9;jRwl?jTP!B-V#hI_^RqDX&@g0DT)Zusgy?45R(oP)xx|GbfEN+Hc`KbbAFEinqA zf{Hq}jN(i?6D?|Qh@a$}ITQ}`ndznK&Of+CAdKm=JyA&^AUXnWNQZ&KL0o%ooX4#B zk$~)rfwpR=JytelMiDa;fL#d{cTnj%QfVrRo!}L*)9Dx50Gp$5M?ZfsSozGQRH9KD zveReFf7A6c{HtEs zFd)Skd+1iatbRH*L&$%alJD&WfJNi?Xy(nURc!QL$i7<`)#Pknee=l`w~yGaGD-Y; z7fAM{1bMl}H5UAw(wV`E(3W1FXF-d>4=XhkRp3FZl8#bM(4h7&cJZagnat<|!H!%+ z=DRWMX%LwRk^x_uH@;yw9cySYtA>NqW+OY2q$RsgC?@f*mX!EfU}brOdq zYdA+a9JWR1WY$q0l?2w!N}OleRil>Wp5dUK7#dl}_7U(;jM~mLAyJ)!Q1uN#qGezc z0QC)-0>V<)ac+Na7J;mflD>W~aDc9THMXaa)@+tXU9BPBzF{>l4P&Z4oKP@Z_qv`h zP!w9m$0M|GCf|TMW@|MWRD`?S`i1NPinb$8dGv4v`+~F(#h(@3_AU@>GRh>;Vv>Ey zjm)LIIT@ow?ZK8?WvB#5y^aPF`IwbWUmOxUX#F6-k*HSAW#t` z>67i4t%0<^OYLJ9w*aUV;7=2#jgMS~zR}({8a|-6m|HW}nAT|T0(X`AP)w>k|I~y) zN2SMDP)Cj~33;t1F&xVU?NS%bCFz$cu!}mZY>7?qw$|dZ+)

2^v2FG;cC2E9r(f zlN#XoSM_h9>ffN6P&wTLnN)E+%ZJVv5c`Sq-ll`ib!8t0qy@WwnAkU&h~AJ{Xp~q4 zI)&39e&W*qq1zz7;6XHFK-d}9Kxu~0Qj!(OqIiESz(7;Ig9aY>>mgdjK{4qHgaRzU z+1pF!L98W&rAH`}kFk7-sLTrE$GQgkfw`zbXcZ`9J*6?$(2xK1V9jx1oB7+DbU7N6 zlB(Mt>=13$h_srj5~x>8oPoYKFi-%pE_K_))7r03s{rM!SsF8qd?XB9*Buj-l(J$3 zpB;Z|-4J{^KFx12hmvNaG;>eDdGc>a2~km%Hi#fsPt2VRvNP1hu&_#2M?i_s!PWNs zce9ZYNQK)9fiGb8Qs85E96){8)IX5G#LNSsMoz8k%&};?AN_#4R!h-w%gi^%jq6xf z%#R%`$-p{8SZUeu1(mB0q`qRW>CqY&M7~q1+4fR@?8rrdUXEf-$~gjl;*i?j(^b delta 1220 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 H00000UznfD delta 1211 zcmV;s1VsD%3%Cj!P)h>@KL7#%4giZ}=2V5q7;KIN003_f001PDzXd0eLMeYTAFQ^kG{*Mb43b3y`Nx%=6}^V$j# z90z8%`TeJQ-Jjy?ZG**~k?uZcpV5~mGc-Y2+u*9KY>ffCr35fmgxPW8wy=Mv0{upI zb5S(9SBh6wv)gUN0F9(oROKY3)KbKkQ_I@I#)N}wE^Lw(mDlVPi677XtD$w9&7bn7H#{DY zZUBW*w%;&|pEWLb>!N)I*!NIN%SgAmUkC*tIpXASq2{Tlg~!UK9NvG@XS=Pm5zlGP zfL=fmEk?g=+<-IW{4<5REi*)ha@Uo;gPD{rBH zJuBY5R`q?#c+IZ@sjS?yS!y6e`iaQ#^Km*pXuEqX^1$cwcYLe|R-F>Dw?;z`br%;_ zl4d&wW5(hlt78PIvaEk)kyNL*oxyCP>PB6;Xd5gClB98n96s)qXC0X3(2VXkZPPvO+TM{pm6*YnZBVfr#*Y`6 z#KxPSl2<4}VoKa=9|E1P7#g7};FLSmDx7`5PQ%_!?vsm`RCwh{G!@3eR1H67W)~Al z+R^_XbVFQUbXb37BWgJ0EoUQa=a6Z4r=SP}d-iqtZH=L(sKLb6#k5PKanLiO<-zJG zn*X!%uNcv69rr`ciwTvEBneed*k&O@gHZq^<*LwdGj^JZI`e^#m_3 z=QV}ygyMd^w)RGnsMCIL9ppFc!>h7SK$axA3(4SJ6-$4U&<2;b)ljB9=1hl0p2#}m6f)GbZBU#U zqAU==ck(Z+ZOQ_xxjam4eh=n9!3fo)dTAr^=(YQPqVL`9XP^L5?ea`KSe42=CS$Tv zKf9Ri3;=Fr4F*hdMZk^$@aL3RgG6iEfuhR$<$i+y@Ro;>P)h*or~0B;YIt_4U2&;$Sg006uVR8Rl_ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.15-compact.zip index 30420079bc327ce36f0e13ad2b64b41a17d8d3e2..c1e1b9d58190372639f1e70a0134ae4e826805bf 100644 GIT binary patch delta 1408 zcmV-`1%LXz3jGTkP)h>@KL7#%4glA=saBo4qLunQz0c?C*YT^yhPvGVu5-xAn1r@^tzbB?%YQ`%e_yKFiEosDCw`hwuvtsKf{n!nG{h0TpA5jG!KPgB z3!#rM)*r0^ZuxJvsZi3QJ*I5_7QA87ml011F+t+;6PBP{C zYF44ZHMSo!bVYR_r2FcG%HU{EiEmgkN8Z(#hK(Nfm^q^*Q5<5t_W4)Sp zqMl)eQnCVprg+t>xr8gvEY!8c1oFYiYD7&W;9q!Bi>MvCzbtMRzMv-#OffOu@5HMkk{RUsa$Q4|T3SP%LEsCO=ufI`|N<^8yh0@u(!f%jpBwYUnvpWfsYFX%DRm|V$KYe?XP1% zh<|oc80dJeE$bgsQD#`QBQ2W-YYUNzxmI0x3y^=$yyu5FSM7f`vV{>Xl#$%72F;3i z!${hj`?->DxgZ&=OmAH6$?_RejF&sc-jSmmG%+uMF(N5XPGyjMj)v@)|LI`kU8Egw z0sM75nzt&qR{Z5L}Djm7z+d7G2hk8d{chq;r!;L&`c^k4~ zA>q5+oB{I1`eFR;a;(~<OHK)yq&z0Rle*KL7#%4glA=saB0000F-Kh}( delta 1216 zcmV;x1V8)z3%v>(P)h>@KL7#%4giZ}=2Xl96%>;M003_f001PDzy&9fLMeYTAFQ^kG{*Mb43b3y`Nx%=6}^V$j# z90z8%`TeJQ-Jjy?ZG**~k?uZcp$I=GGc-Y2+u*9KY>ffCr35fmgxPW8wy=Mv0{upI zb5S(9SBh6wv)gUN0F9(oROKY3)KbKkQ_I@I#)N}wE^Lw(mDlVPi677XtD$w9&7bn7H#{DY zZUBW*w%;&|pEWLb>!N)I*!NIN%SgAmUkC*tIpXASq2{Tlg~!UK9NvG@XS=Pm5zlGP zfL=fmEk?g=+<-IW{fR{zY1dyRAWp=6ou}kAZ`~2N)A8dLX!TN=&Ps zP368Twj-7W@#*xi1%!Xdrw9aTW4ZMOU(kU)XVTDVPDG9E@rAjPp?45?vz$M|RA%K_ z@@_SF;EFd25JEP0WmE;s{~^YiToK?IY*cvB$Tt;^|3e1_3SHCkR&)NFqH5c#e=`(V z_)vgG8*>$Ivq;a>k{qp>_v>!(aF!6Fx7lXGP9Mq#Fb4LaZ7P3%NhsygZ3mJ>xGZH& zEQ)F&++K_#qb0BIgomZOTXj9$3buX4TgU0goAc4^KK-jn+yy*+>WtGwjgE=?3K|OW zg`P+q@62JEP|VLZU6jKS2+FQD?A`c%OIWTIA&eP;-$$a*{pzcmp#@C4`;V^sE86=O z094TDUF*k2#teU{pOT6|_uSTiU0|gIJ~R${?Ep{0VKQ6tQQRgKo!;i-T_liMNiVsZ z7ffNK{IK(_U4}ty17mb$f2y+ki{AwTAJK*ujdm=N?H@P`S8NTZ>c6KM(se?Hx3wvh zJ*I9n{ZG5VI|!;m&I@H}U*zQ07L*FuCFW;C=LRmi>$6dbqD zQ=QK@?K^*!k-AhNS0c=pv;v}hISkzP1n~LdqGWB;svcqfK{Tr-g7Bn+De4=4jN;M003_fldlCx2Gs-r0001Qi%*XL diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.2-compact.zip index 1f97f78be76eb41b812992218f1c36a3c1bd7929..c67dcfeb1ac3be785575079d79c9b85b2b73fb68 100644 GIT binary patch delta 1395 zcmV-(1&sQ}3h@gVP)h>@KL7#%4gk@)saBP`V}?fs0077pkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fF6Cd=-1bEvuAg*dB z1A8b>oV$3y!=^fa?3VgDwgshY0Yei)PKFMhls;WarxW3AyLZ?^7%FT0+hed3n$l!= z(YIBmv$YQVqOk?Jfg&VDp$DWfe8y_8XW(=t?R{={Hwx{kWB6;C%pJiLgQnx}9l5pk zzBuAE{`msea+X2{aW$x(r1;wzQMuZA5AGgW2KBdvkd*b!ufY`PrYuH#W%~wXO#zv z1y zA}eWrMV$(_OoC(Sru6y;WZNDcC$UqAYkax8gk|qOU>#M*4ZG^WYNKrh8(Y3t9`32^SdvA%U;jxy6lm-Jv*AsFM+D32>R_g zP(@dN<243pXL#`-Bb=92k+I* zJN&D*MRAaD#L#_vg!|RS`?D5orPlJD4&jggFK~cp13~)oXiM>4{|&76-~V}BjC8Pu zpVxp3`F$0zBb2(s4%r(D-xjLH*Av~P`{rbSby1sd#ckP{0S#kaPeL|m=v`xYtj*P9^ zs~**)9{D2cn~x1}6DNM5hN8bfTss8`-XmA=Tw;B^6_R zkTw4z{=yi9)e@i}{0UEZs-XgOG|JTp8|YI7q-e*@@KC|P9DjOL1}3G|9FB8;AJ$+P zBDag!Dbgm!QOQ>$J|LDM2Q1rdhg7S7jU3r-x0t6Y$o0zt9jJV5XWdp>PJ4vWczf=+ zW4UL4{>|ZaobhB@qfxu}DXNmHnxwG<86K)4$K-3Y-fAwy`6Q%C+(!H7O2#krCa?>! zKTaJZ>iiFZWV`?#hh6HAajn^&EVLI>8n2jtWHq%r zUl#SNEBp}=i4@0rY}h7@Y(lyarK0~hX*4C%keT&XB8Z6T?%2hgw$~GJX8T)Yg~?M? zFTP%pgD_*$CNk_$Rv_>y4LqMnKx zjJ$OCyGfoUxl`rq^{YjcmHgmG3(FK@p}stXfwX~u3CZ%7KCf$?kKxl7Iu|M8Fb%N8 z4W)M-0C$o7@%`IiY*0%90zU&k00ICG0MWUrR+YMAhDQYe0LT@S_ykA>i3I=v006|9 Bx4{4a delta 1223 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 G0000?<)_vF delta 1220 zcmV;#1Uvio3&RQ+P)h>@KL7#%4gidCa8$y)2KSi+002`Ekr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6p&{)*Yu zjKett(aHDDs;9+VFxNOu3-0!nF*wytIc=EUV;a6Ur90X1pzG=4dQi0XxRv$d2Iu8Gz;IBppz-7m!YvIR-nqj)|Uoq4TRSE}OP`zUuCHu_}H z#6fm)wB4v|xvM)kerPepc8{`*5os5Y(|{2xMlTQ9p0}dI)cj=38~u1)RpgN|-$Cro z_@{pX@}R>{Yk?sh(DD*r57j=GRtE{zjN^4Qla(`n1}k*qEFZrh6<&AuXt5Rd$E-kS z{0;*c)Ly{V3H@cUt1I3=m{!4Zu`lU&K0!Ph@K4gP0b|=d1>#@_cme@)hZ>{7m>rS$ z{TP{gAa(r}q;6tD;YjbNkElw32rQA;l1=T=b-^y@Vl zZvNQ8*mif|U>t^YqfL^G0P#-H3lQmS10ojlL2hYk+C<;3(9{TX1{6G8AWLPEl*wN# zqQQf00=sF&Ac)0Kt6S3dG)j(g6{)pHjQ-Ebq=PykhST99hum%*L^$ z9dkoin?rTs1)+|#q}}DgrfP_#2u*t65-z?YI7BUEX()2tSBeNRQt4l#MyC$|J`GuI zVQhNgM~kW}cksZ60mque(=@t-N%#VhmcP;z{l~i-D@80!+#`-k8~qcr2~bNI0Rle* iKL7#%4gidCa8$y)2KSi+002`Elc)tq2HOMx00011i#|61 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.4-compact.zip index 9e3e978c0712d33a7fa69ca1e31f72fee1576e4a..6891b902bfab7bf7fb1f5e716afde98685f3a50a 100644 GIT binary patch delta 1417 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.5-compact.zip index 6470eacaa0b3cb35ef39952e5077c0eb9be9f945..b031ed0cdd57fb385202a604c81bda430ebcca51 100644 GIT binary patch delta 1410 zcmV-|1%3L)3V;k4P)h>@KL7#%4gk}+sa8Eu&_h-Q008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fQKzKS(Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4t}^;y&#w=UF(v zsR+J_Jn<%fWKy^1;s!i0X4zR`E-+EzA=Qv9P6?%ts=zmj(1byQ^>8_#Pg=r-a{@A> zT}6R5=K>^}KZd3g(X!XDunKmR_a{&i_<8vY2{=v!N;{MK)Z)8VBwTs`E-lmsot75_ z-B&p(>Yx3o`2C;4I71T$L95z#dW3K49VYrzn7`4^FX=0$RKiAAeSBmC zlf(BX$w_a@AAgeSD8S^mFoaj)OIV}X7GspOqFtpH7lgLW8(`*Wv%$jnM^v}f_`Clm zs^YGHmtP(n0+CdBCkyG`hs)MN-3o(G%YAU{8Sse5d-{~e1AlFdYFA4+Q_b%}7g<>v zT?^8J)wkMgKTgmaKRm9IQ5Zm0ERWnrOz$pTT)ce4q9SqCNy?!$dci)Yes8OMMLBO!;)?%xvV4uKvg>A)Q=*rRgY=sDDff?>28ROcrTg60uZ>Lysg(*t=3_ zPO)BZC=2L#&%m2Sd{=X5)AO5rFH4)tqaOD1LX}luALN0~LJ5@s=sDRI?P*1#_UQuV8&jZau2(Cn~th-4{z`o{=vO_V|*%*fX$ z?qlFgjk6zI3=0D9J6LXX;lHuoKm573(6X!bqV${Xq^dJhtg(lBna$Rbo__`J89tdB zVQbkGqyXJW&{1<9Sz;j!S^Q5{-8_C+O|}by>_Yu(R~vqyZ%ge@jD){uNb}|~zvYSB z*xV17Nhp9ZhkV-<11sT7SSOK60O>aV`gJ}pP)h*@KL7#%4gidCa8zS-B%PcD003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJKdO4ibH#1}MAXD8oHXykoJuzuliL4kO$X z`TW6--WE#{bE12Y{A4|ItkctWiZB>*YIDm{>YK?#9HR!z-gnbG?CrCu1Nf}HkGBph zDCN+IUI7P9Za#?2y1B^!9X+u@$W72~4G5qi6R?TX%P44n->mfkSrL@S>wOB*yG1^Q z+!a!%=e*;3T^hsMV@qyhYbb!->UhUl>tOmfF^7gsh+s}Qq1}H`=Z!O^`p=6!_`UE& znJHj$Cyb6=MQ-SRZc>Zt+7ZuCE}(Co1iw)@$t$l1^yTv~Z+|s*wW#u31{GUqyv?yiLGzvkyV@gt z@UjTM;730i^hU)89rIy299Y$@m~lhQSk;oW7(2PU#{w zY|#nFA|7(=aFnVA-X6GtSCb_gQJo0|z8B38khc?gP-dg1I044Jk&cxS-q1+IiXr9c}eP|23d8Or2JTS-l*Fjq8B7qN(U+xu|G= zVK^>Rza;{JURmyKTs#3Ob|Y-%mY`5NLV3+2{W2}W+WqaV_8Hsbn%MI+Xi3Vsq}E4q z`V0ZgA)-yuPpIhjEBFw&X@3lraS<`D+%mTONoC(CYsdRLa;ZROUj(Zk{Dm{)BkF{g zyeIk$Qw(g~e?h>qI1TuuIi?@(}LbY*b;{tp+KK|wPa3)_BqvsNzOz~T*q{Gu~ z^S{l1(o#QK<}>`-7eYK@p%Tk)f1Iia?6lh3AMXY=K|e`5=05>3cUb1XOQA?3!cG@` zfo{0(kYa={A_3Gpb2H`*L7dQz#ec#?Gt;dXS06P~r40(EDXeskv?;>>@PlX@)=*0U l0zU&k00ICG0E}^PRAY1`oty*!09+80vIR&6-UI*u001biRzCm$ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.6-compact.zip index 7eb28aaf812faae662e2f3de3a5b11a5fc8ab7a7..5951c071a98a341a5f29f8a601bd4a87fe7dfd5c 100644 GIT binary patch delta 1412 zcmV-~1$+9(3W5w6P)h>@KL7#%4gl1-saB#mu9jE@008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fT?Nbp@Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4oLj)q<(8nR(j_~Oxy;?~r z3pk57yAi8@z!C}RDn?~v@dh<@)dDmy!cbfc~_Y z7%o?V^1L38*&XJsZ49wD)sNQ=k*mi1^&E1^9p|xs|3cFt0%~udw9nEqKYGO`uDaEd zbwH?D8;MAUU#f{|_(8KrR~RCs8mHrK>i~fDJ_M)oWA$p9>DSL5&K=aTyrvq4D2rXy zplkv0OZ8m{j&T9)KxeR%YD92&x|YwuM7}_ECW^fHifC= z$KI!V{y>2WUnWHX0V+HhDMzHEcC zYk|tzLb?50{>3FNC+%iV%$L{qSjd`kkt1Axvmod{%uHcUlpy(i1A^`T25?+5Hexej zz*8ibm;uVRp1%`77thHOxq1FrC}SBOfY5c(IIq)34gRzX8#2-?VOyYbrlSe4(TJf` z!4zm};PB$xm zW?socC0iX+q+4zqelDaY_;RS%_$V;And2m*Ph`3&Rr#^^H5HC+^;MTw>WZudWsYzr|$|e&m0z|*b zPBAnkxOCV@^ggw0oM|BFx!fFJ{Cd##C1a}c>5{bpN-7@WB+KhTtVAiQh$rNv9rDKU z-OaK|4`r3w5SyY;ZjVW}!BANQqF$V-gwc&Le)y7V7^y=}v!{nsjP)h>@KL7#%4gidCa8wE`*{Pib003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJJ)@E8lv)G6P*w*8oM@$qli)zuliL4kO$X z`TW6--WE#{bE12Y{A4|ItkctWiZB>*YIDm{>YK?#9HR!z-gnbG?CrCu1Nf}HkGBph zDCN+IUI7P9Za#?2y1B^!9e7T`CWfTfYLW?-X~#U!oEW=*V%n@X0Sq38aiC^m{K2+o za?xlMXSn!pR1mM;5sXQcj^$5xaG3T5)(S-*UP?CUw;{C3rmTeI-#8xw;cOR(N(cZ& zq0w_+6pk|g(@;pj8uD~!Nh028akMIk(H+c}L-L-ja4&1}H319VimvY(hJ}OSMtr#y z-=5N;7dx4MKz3-dz`1m~c)j*K#^bjg_Y?=@oW(J`2Ox8=FxQW(a<1@zJIYIgYmQ-a_4hpGk&!578aE7eBCU1_gz@Zp66=VIDJU;)nv zD)I0y&~&*h_5{e>L`WF%x%vDEEa=V@@Cz?C>~(P(6;K)%SjUy!TTKa<)tggxgyuLO z{tPyM;iYmD>sjy6tE6Bvsi<_ZU8Tkrl!L;FT?aYQZNDp1S7!WhuV-fNx{j^!U3c9` zQHvv9KRl-mZS5PdoYPjP=6yIDy*0*J6!xq=AZgH;EeUMZUc89NXQ@WGIb^5 zNS}fbBy|=$A}-9OGUt>@P*Q&z)jO4bk}6FK63_!dzrQ4t(dWUNhi!KHlYIgC0MfaC zIOf-ARquHA2C*lXJttAcvsgzVZ|c8ewSwSHO9)}u)4uZjX_s5% z4I^rIF$}nzQal^x z!E~Q$d$1iO|I#hS_-`vH={TV`=_^A#(pUJyb7-@|s>J@F)3Yh#C->8&ZMZ$z>vw}S zSaPq=qJmj$1{ZQ=Rc~`nor24L-1C?c2nP0Gd!kb|+@jGTeJcd(QS8?B!TT*7d0tRU m0Rle*KL7#%4gidCa8wE`*{Pib003MNle7g$2Hyk#000267*16H diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.7-compact.zip index b280b071519123c8d97d3c498594c74a639f870a..c3e4a2a7dde800b9d25828be811ad58626700e52 100644 GIT binary patch delta 1410 zcmV-|1%3L+3V;k4P)h>@KL7#%4gl1-sa7i-@XuBS008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fXnlw64Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4SP-Qo)pS5j>JXq=K_(6z#|)NaDlyucnsyQ$MfSl+G^*!s5$MX(2E| zrVczL2QYeD4AErkjHbS!3>^#5Vq~DTO6xHodVdNC{KHAM(5`kI;>7!-bNv< zx`b(Ko)^1WqKJ&WSStAWmy;$xQP*{Q_BX0-qtju3v58};$LFbIHETA3evSTuGbJ`w zG^m0CC!}9NY^cIW3HnG>8K9v{g-rs`T$ExJ$qT|%hx;9!tm`jDs3Ft-aH+HTtCEqz z4s=+3G$@Wt5;?&(Um;>N>oT>A~?}%>+qZ^=n zz%c-S3{ETR9#OsUkwep&i_;W|wTC0^J&`zhy^>KK{^f^t` zC&^YT%J3X%hsP|*U#E?%D9%?u6RU8VJ6N=8Ps>uVu)!l;cHz^1PyV3G-V!d$ydv(tRphiVED^=Thn2 zf&Hl(p>S#|okok3TpU>|Dz&5q8^U%qryrIaL`kFW^c855XW@C(QWNJ3!X1R{9`_6e z4Bue|E|?;aE}YEskuoAU$(fy;*paZWZ2=!StHHfi!-{rDg%LNVa>vBF+-MdJM#++Y zFN8$zh^Q8Sj?@KrzDqmJU5n?MTzfEr3D2Ap9SP=vIBZ>;>olfGf#oGjTu#tMARy>| zyeyxRbyJ47-l2T$@F$odh-bMPJw`;)S&kPxS>n&f$01&m z{Zg$xX7tsesCD)b;jIBVIX{^+op4sw90RwDc`*s6&??B-JYMi)b<*T4M1Tk8j>^d)E|JXNKcfD3n7sx)81_9QMr|_DI|o9InLK8WM#hH+f>j zmyrqvygW;l4F7;?h{L7B{KOIx3hqW%{%hn1P)h*@KL7#%4gidCa8wE=V-B7K003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJJ)@E8lv)G6P%-&El>y%E&8E7+m_&9Tmk^ z0XV-b^}};d8vl6Dtsd>k9!D6xUEPCx&y!AirbWC+THB2Udh^$3)}I(|fianOWxtWo z!4mqvb*v^cW>T0HlE36$LYs3~j~L=BD*@7aRpUCuem%Z_qQ^$Jk(^mVF3>PTB`qOj z*>c?F&IJ~(1|>5_yZNg6Oa+Qd`B9bp5C>YcI3HgyaCVtc{*~cJyd@i1;cOR(N(cZ& zq0w_+6pk|g$|8&Y{ojpMQb;+#sSW{|T+S}#l08cmOTg~fs=>bWJMEsf13AnY{0|88 zZousU?R7AJz*z1+*I@obNuncFG}aDh73Sj$kDWrd*z?#o$ZU88wyAi|iMPCZ;fR`=HnQfZSr68l0b&TP z!2=7VUX}}0ld|G`?L{iHxG4XHR#o0Y^L3&Se>?7f?WdBC`63I%bwIcn<`^E~x2R4h z8`mk}Z63VJ>0*H%wwc~a+PMrZ(Gm?yf`fQc2$&efa22Vps$ryj16vr!r0g?r8aK~wfh(4RY}@)MAf6pfZaO%GuirUt!p z!3Ir2SPU&LmD$0p8<$taF#&!Nr{_L;j*KsVp4ajy<6#^>9W%>{8b!%(hXV4q;�L zI>q9ZI6kM!1C&MBo8@HI;|=jc9?D%sseuz}=R7>@MRH9@gTr-b^6Z!fU?QW~4b>;o$tQDy6g!IK9bejD||iGTNZ6AFeGs3Thv zsQgtt|K`bk$24Ad(IjKopCQuB`X~4azr&&;AKc40HhGPJ;x28blU&8Z1paAU@-=ZG zyt+O?5#6;EN$~?!L(e|kL^_LicpCqIt7KSdPig!CtC}q5mhWvK#cj#J&~UI(SVICS z`7abCFW|AN{Pc+E(SdL#ql?0TN^PJsO$x@{;GU#)4fcAdJFaOmYeb4z& nO928u13v%)01g0*ad1=$CSwks1ONbB5R@KL7#%4gl4;saEGB9T!Li004;;kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN-5~J1)n^d{F_qQ)jpIN zXPyY9PkPrw3WW}TlJPCF?%9GkEi^te8s;sQjf~yMMd_;9j+9B_f1fO<>5s`%p=ViM zsQUR_2|mxAF7$!JFOX7+!$At1@ZzbH*eZCZeu(St^QEUSE;>rkC_;@&Y%~yDVuNIP zxgA!1flwxCi$eAm__gvD--k1icF({|VwbJ!=i*zNcB$Wgw4c~7)~_{N0f9ea5_ySl zV2NFBDmB3dTG-9{-`W+r_7ii zBI)~ybS?RfcAcn{o`ILL&BGXo0eLV5LjNi!K1s8YWz-x<5=uZpHW(pFFgg+%ixbE> z{U=aqpe}2FxmhQnDD3%HB`Y^^i=1?g4FxYCp-BO+j_>oerKw5D1qIrfO+ujHy_XA6 za|kNkXRvgypJO(@k})~AI<2DfdN5~)%0*R4a&k4+WWl_`;0o}b7i=-_Ed{MD3Yay2 zzq5oq%Om&-l3*D9EPAf4>(p&-YkaW9DgBf5)sbUG`i&7>egKq|+vA|ZdS2Q7%2o4=l6i_b1 zRm=n_R8{8&;TLNuMlnp}0<{NiQ861WLLAvd)NIF4$GKUBTv6wdb)Wz{>fmhHgeT2> zX7gCY!BptT;@JU?(*S=_|C%r4dTif+cdAcX)IEFkh3tN-!VQ0wqC0UosV}^42QlUQ z6iphjr359-82(QL9Gc^cSAo-bTlv`CTWHTs@Hto9u!~@^SC+z=96QN>kN1!{ z)1V_bU>E|*Gqh@}62g>;)7hJqA(4C?%}>K;_?rvy^5r){qc)WxC()g`dMtK>VkXh_ z;j%6w(ZiE;lL;D01_ahABQ;Iq+$^Ib`s|?u+SiAnt@ocx1%nCwx$P?1kIDIjiZAZ( zs)vM6c1TT1e+UWEyGwi{BLRaih*J!lc=9^xA=n~;UW2uNXwTVS zl?;E7@vpo+w*P_G+i*}z0Rle*KL7#%4gl4;saEGB9T!Li004;;ljj6T28sm$0000< CDV>b~ delta 1206 zcmV;n1WEhy3$+RuP)h>@KL7#%4gidCa8!{qS4WEk002@Ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6BJ9@O?8`;t1Ju zf(vUk|N2wA$0z)MzT?6bfN(WXM%tgnnl9Ql!=<}gT{#H!oU9syhBIfQkZh5W&Vcc` zHhq{k*t@QrT?XEs0C4bTkd>Bz(dO*oFLAivFGoK~S0ZMfB}Ua+%Dm~JJ;124yoy;9GR;FbH+;ROlvt~JB)A#8$SS6Y_Qrr z8D48kc*EE|iZXgd$={KXy3rp?+w9V1Q_LV@R~t9-R8#T zJ=;_4O96c*3Y_;Nb^uH1oRAVjht^=*rEsco&V%>1kGO>4ZiZO=N?)D4-*$6&U1#*p zrv^=pPci+_xJu}1lXXy<#|CfJ_hj*ZalWG4FfE=Cz#H1q#)wBDl+BCNUUOi7a{aBG zv_9#lg;+XSu!hU2@2}5`ORR#He?}wR={z_lGa?L7?mUO928u13v%)01g0*ad1=$kuz6E Uiv$1wQV)})1xNpF diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.9-compact.zip index 86b3da2123a8b60ae4cc6fbc7e1c7df31e100ea5..8c37f7b8f5a2699361479a5ab642294f326be53f 100644 GIT binary patch delta 1408 zcmV-`1%LX$3jPZiP)h>@KL7#%4gl4;sa88WzwlHA005s9kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fg1ei;nevT8*WM8Ae z1^`jgW#$|AtZd(Sw}%DO)*I9LYsx6 zsz_`L+FvQ5HCb_$z=iQLai%CJKPkD>mSr{mN05LS$@V1*NwWl$0nT0Y<|q2aI4pe? zOyz}w8ga6WLy21Y%5Dd+?J_`o7-+~%rM6(0&t)Ri-d`{18^R)5e3vk&CfR}|Gtht) zw0LUz+T+82(7}BlUzyULjY-k(fR-DXHM8j9(EWd-l;B*n>~=(J@DjG+T`HAGh1 ztC(YUM$HQ)^AXwGrVi19k=`Tn$5`gTN_e>l1OO zmo4YwEuWR%4=gFlkE{yE0fyCf#+fSHiw57P^oMatOsRfT*^M>-g*GRz;Av_GK-5&d zVVBy~!Yy}&P(isd&=+F=1Y|-6D@(@XY^uI{W{VLd({5^X2iF^gc}9vl>eoi!7lXwtmRuKN^ju+#S^R36ZSK_1e~X z?;&kT@NwJ~G#W=?deWhzX~+3F0~FV2!XI^71xWlS;~A!aCxNSGH2aet^gP455tp1Y zIM^B!u~6&U7+{HN5P+Y-gSug6(xG;LZNuJ_ZNIq~%x)cgq_Aq|SbSIvkM*6|84W}!lEH$RoZb+~MTUvY$`2~gD#2?%Vy4#o({r!* z{AO;elV`^!)hjQZnI|h++TmPY>4nzBzRlJ9315}jWCh|~R5T|3f$V7(y~lQcQ)tK1 zQ^MUv!rs&Kh77I>XncQ0iyx(&LLA=NwgBFSbQLC`B8USFD=r$4ym+p^ZL)yJFG<0- zhQO4tH#q3~m_g$fzbyg+KG@KL7#%4gidCa8wy~^Ej3S003wY001PD!38IgLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dpzh8e{PTjbT>l$MBgw5CUG1%r1uS7&R6flc* zJ2r7Vh5M~_*?PX>9*z*4AtHY%Q^+d+Gs;Ydk?upKwbhn5s0_lH^iH`+72o#Qt7Vl| z%>Lp8CewXCodS}D5*|y9qZcenj;{0Wkv6+mBd#$V`*xh_O3}&Zb1x?E9pp1!0M!x! z`?t_!U=`617U$4A54G(y-(^ij!FM8PVR&KfQa`fuNT^EWct|?-AmD#nRhmo$my*A% zMCieXng*t%i!*FGkujAT?x;T(`~rMv*huiM!M_OPj>;?S z;z#)8NCQz?v=w>%?q|FMAd=xQMvw@KQYzDNzx2Y2WbokgdQWUn^KwJu$I;A%<&g;D zA4TFeSkmXS$PShNv5$YX96x&xo4vK%K2%jcx)>LwXFVfvx8{16Uip`1shd%HOi2;W z%^#p2+f;A@qjt~C6CN1MEbVsJu12GcrO(3SF*i>?al;J%5P9{WI7Wsb!y9s@K2f&g%*(l!Xpp98rYPpOtp4?J zG$j-R@!Fp&p~Qa@Led2-!W`MQ42)`uEg9>3L01Qt?;~|l7kDG&xGp8HH*~8C5O|mW z@OURATSbbfo(4)5Kbd-!nZbxY-T?M#qo1;PzF)T6x1vA$Hp9v)qtFtae0#PTA8s4r z$zAI40`bAB=gSeK>3;uAl4qEY0$P9Li4*Im7f8~PATfXQw0aFMrGTDn3hv=uh*!se zA$O~~LYPi9_pC~w;+!@NK0#Z--%Up)NyA6@{FO^zewN7hF1_Lc@L!%(%=Q#b?0fGf zMP+O>B+p~t8;3a_$$TdpDjuW_j8S1sA-bh{S4TZgJgty?~z_G5V4n_gQ>M-gBqz6 z(*FP!i^ALG2!*;}noeIvC>%f;SiHMy+evDCs1ARnq#q=`&?#k}G^Oa<3FJ=L@MBEk zzjaT?Kl#}<#OwI7LUd&;%|l}O_Y3|w<|%+ zaBoLXb5Mn*-~Ys04!6_K|FhFRyiiL4 m0zVZ4KL7#%4gidCa8wy~^Ej3S003wYlduIy2G|4u0001;1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json deleted file mode 100644 index abe08fbbc..000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json index abe08fbbc..bafe8a53d 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json index d0a1cb33e..5bfb159c1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file From 07426ef7a9e4c5030c8207a88b16074f0e40eed2 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 11 May 2023 11:47:04 -0500 Subject: [PATCH 094/105] improve reentrancy events documentation --- .../detectors/reentrancy/reentrancy_events.py | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/slither/detectors/reentrancy/reentrancy_events.py b/slither/detectors/reentrancy/reentrancy_events.py index 2d29442f7..ac9c049c4 100644 --- a/slither/detectors/reentrancy/reentrancy_events.py +++ b/slither/detectors/reentrancy/reentrancy_events.py @@ -29,24 +29,45 @@ class ReentrancyEvent(Reentrancy): # region wiki_description WIKI_DESCRIPTION = """ -Detection of the [reentrancy bug](https://github.com/trailofbits/not-so-smart-contracts/tree/master/reentrancy). -Only report reentrancies leading to out-of-order events.""" +Detects [reentrancies](https://github.com/trailofbits/not-so-smart-contracts/tree/master/reentrancy) that allow manipulation of the order or value of events.""" # endregion wiki_description # region wiki_exploit_scenario WIKI_EXPLOIT_SCENARIO = """ ```solidity - function bug(Called d){ +contract ReentrantContract { + function f() external { + if (BugReentrancyEvents(msg.sender).counter() == 1) { + BugReentrancyEvents(msg.sender).count(this); + } + } +} +contract Counter { + uint public counter; + event Counter(uint); + +} +contract BugReentrancyEvents is Counter { + function count(ReentrantContract d) external { counter += 1; d.f(); emit Counter(counter); } +} +contract NoReentrancyEvents is Counter { + function count(ReentrantContract d) external { + counter += 1; + emit Counter(counter); + d.f(); + } +} ``` -If `d.()` re-enters, the `Counter` events will be shown in an incorrect order, which might lead to issues for third parties.""" +If the external call `d.f()` re-enters `BugReentrancyEvents`, the `Counter` events will be incorrect (`Counter(2)`, `Counter(2)`) whereas `NoReentrancyEvents` will correctly emit +(`Counter(1)`, `Counter(2)`). This may cause issues for offchain components that rely on the values of events e.g. checking for the amount deposited to a bridge.""" # endregion wiki_exploit_scenario - WIKI_RECOMMENDATION = "Apply the [`check-effects-interactions` pattern](http://solidity.readthedocs.io/en/v0.4.21/security-considerations.html#re-entrancy)." + WIKI_RECOMMENDATION = "Apply the [`check-effects-interactions` pattern](https://docs.soliditylang.org/en/latest/security-considerations.html#re-entrancy)." STANDARD_JSON = False From d4b041a3992c0263f1c036c4b90386de4c1bad7a Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Thu, 11 May 2023 15:39:51 -0400 Subject: [PATCH 095/105] fix incorrect files in test error message --- scripts/ci_test_interface.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 05859eb47..42b2eea9a 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -12,7 +12,7 @@ DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 1 failed" - cat test_1.sol + cat "crytic-export/interfaces/IWETH9.sol" echo "" cat "$DIR_TESTS/test_1.sol" exit 255 @@ -25,7 +25,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 2 failed" - cat test_2.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_2.sol" exit 255 @@ -38,7 +38,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 3 failed" - cat test_3.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_3.sol" exit 255 @@ -50,7 +50,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 4 failed" - cat test_4.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_4.sol" exit 255 @@ -62,7 +62,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 5 failed" - cat test_5.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_5.sol" exit 255 @@ -74,7 +74,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 6 failed" - cat test_6.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_6.sol" exit 255 @@ -86,7 +86,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 7 failed" - cat test_7.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_7.sol" exit 255 From 6fbb366fe7dbfc7e503cdee11b7468564c6977ba Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Thu, 11 May 2023 16:20:27 -0400 Subject: [PATCH 096/105] add --strip-trailing-cr to diff --- scripts/ci_test_interface.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 42b2eea9a..de0defee3 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -8,7 +8,7 @@ solc-select use 0.8.19 --always-install #Test 1 - Etherscan target slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 -DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") +DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 1 failed" @@ -21,7 +21,7 @@ fi #Test 2 - Local file target slither-interface Mock tests/tools/interface/ContractMock.sol -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 2 failed" @@ -34,7 +34,7 @@ fi #Test 3 - unroll structs slither-interface Mock tests/tools/interface/ContractMock.sol --unroll-structs -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 3 failed" @@ -46,7 +46,7 @@ fi #Test 4 - exclude structs slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-structs -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 4 failed" @@ -58,7 +58,7 @@ fi #Test 5 - exclude errors slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-errors -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 5 failed" @@ -70,7 +70,7 @@ fi #Test 6 - exclude enums slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-enums -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 6 failed" @@ -82,7 +82,7 @@ fi #Test 7 - exclude events slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-events -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 7 failed" From e9add943fedd10ffca70e4f75119c0d41f55799a Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 11 May 2023 23:30:51 +0200 Subject: [PATCH 097/105] Fix pop IR --- slither/slithir/convert.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index 3cfddf5e6..8bc9b3247 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1363,7 +1363,14 @@ def convert_to_pop(ir: HighLevelCall, node: "Node") -> List[Operation]: # TODO the following is equivalent to length.points_to = arr # Should it be removed? ir_length.lvalue.points_to = arr - element_to_delete.set_type(ElementaryType("uint256")) + # Note bytes is an ElementaryType not ArrayType so in that case we use ir.destination.type + # while in other cases such as uint256[] (ArrayType) we use ir.destination.type.type + # in this way we will have the type always set to the corresponding ElementaryType + element_to_delete.set_type( + ir.destination.type + if isinstance(ir.destination.type, ElementaryType) + else ir.destination.type.type + ) ir_assign_element_to_delete.set_expression(ir.expression) ir_assign_element_to_delete.set_node(ir.node) ret.append(ir_assign_element_to_delete) From ac2142f3cd46770cdab2a0f3244101b041c2f6c0 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 13 May 2023 15:30:22 -0500 Subject: [PATCH 098/105] include lvalue type in operations' __str__ methods --- slither/slithir/operations/assignment.py | 2 +- slither/slithir/operations/new_array.py | 5 ++++- slither/slithir/operations/new_contract.py | 3 ++- slither/slithir/operations/new_structure.py | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/slither/slithir/operations/assignment.py b/slither/slithir/operations/assignment.py index 5bedf2c85..1f29ceb7b 100644 --- a/slither/slithir/operations/assignment.py +++ b/slither/slithir/operations/assignment.py @@ -50,5 +50,5 @@ class Assignment(OperationWithLValue): points = lvalue.points_to while isinstance(points, ReferenceVariable): points = points.points_to - return f"{lvalue} (->{points}) := {self.rvalue}({self.rvalue.type})" + return f"{lvalue}({lvalue.type}) (->{points}) := {self.rvalue}({self.rvalue.type})" return f"{lvalue}({lvalue.type}) := {self.rvalue}({self.rvalue.type})" diff --git a/slither/slithir/operations/new_array.py b/slither/slithir/operations/new_array.py index 8dad8532f..34e8f99f7 100644 --- a/slither/slithir/operations/new_array.py +++ b/slither/slithir/operations/new_array.py @@ -38,4 +38,7 @@ class NewArray(Call, OperationWithLValue): def __str__(self): args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.array_type}{'[]' * self.depth}({','.join(args)})" + lvalue = self.lvalue + return ( + f"{lvalue}({lvalue.type}) = new {self.array_type}{'[]' * self.depth}({','.join(args)})" + ) diff --git a/slither/slithir/operations/new_contract.py b/slither/slithir/operations/new_contract.py index 10fa91efd..518a097cb 100644 --- a/slither/slithir/operations/new_contract.py +++ b/slither/slithir/operations/new_contract.py @@ -104,4 +104,5 @@ class NewContract(Call, OperationWithLValue): # pylint: disable=too-many-instan if self.call_salt: options += f"salt:{self.call_salt} " args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.contract_name}({','.join(args)}) {options}" + lvalue = self.lvalue + return f"{lvalue}({lvalue.type}) = new {self.contract_name}({','.join(args)}) {options}" diff --git a/slither/slithir/operations/new_structure.py b/slither/slithir/operations/new_structure.py index f24b3bccd..c50cd6a3e 100644 --- a/slither/slithir/operations/new_structure.py +++ b/slither/slithir/operations/new_structure.py @@ -39,4 +39,5 @@ class NewStructure(Call, OperationWithLValue): def __str__(self): args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.structure_name}({','.join(args)})" + lvalue = self.lvalue + return f"{lvalue}({lvalue.type}) = new {self.structure_name}({','.join(args)})" From 58e01ea218627719e3e2bd60df4abd5bd7ce6fee Mon Sep 17 00:00:00 2001 From: Simone Date: Sun, 14 May 2023 10:52:07 +0200 Subject: [PATCH 099/105] Don't report variable in loop header --- .../uninitialized_local_variables.py | 10 +++++++++- .../0.4.25/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.4.25.zip | Bin 1807 -> 2247 bytes .../0.5.16/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.5.16.zip | Bin 1802 -> 2237 bytes .../0.6.11/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.6.11.zip | Bin 1824 -> 2269 bytes .../0.7.6/uninitialized_local_variable.sol | 6 ++++++ ...uninitialized_local_variable.sol-0.7.6.zip | Bin 1762 -> 2202 bytes 9 files changed, 33 insertions(+), 1 deletion(-) diff --git a/slither/detectors/variables/uninitialized_local_variables.py b/slither/detectors/variables/uninitialized_local_variables.py index 759691d50..3f7eee4d6 100644 --- a/slither/detectors/variables/uninitialized_local_variables.py +++ b/slither/detectors/variables/uninitialized_local_variables.py @@ -6,7 +6,7 @@ """ from typing import List -from slither.core.cfg.node import Node +from slither.core.cfg.node import Node, NodeType from slither.core.declarations.function_contract import FunctionContract from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification from slither.utils.output import Output @@ -64,6 +64,14 @@ Bob calls `transfer`. As a result, all Ether is sent to the address `0x0` and is self.visited_all_paths[node] = list(set(self.visited_all_paths[node] + fathers_context)) + # Remove a local variable declared in a for loop header + if ( + node.type == NodeType.VARIABLE + and len(node.sons) == 1 # Should always be true for a node that has a STARTLOOP son + and node.sons[0].type == NodeType.STARTLOOP + ): + fathers_context.remove(node.variable_declaration) + if self.key in node.context: fathers_context += node.context[self.key] diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol index d28eef957..82a3ab124 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol @@ -6,4 +6,10 @@ contract Uninitialized{ return uint_not_init + uint_init; } + function noreportfor() public { + for(uint i; i < 6; i++) { + uint a = i; + } + } + } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip index 60ae4138c0cbb53a9d2b212e0929f5778c39e3ab..2c4ccdf1739484c8c89730b7f54efaf23f024e87 100644 GIT binary patch delta 2091 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 delta 1647 zcmV-#29Wu^5sD5QP)h>@KL7#%4gfoicUIs~n?XPZ000>s001|}t(aS6;oO)2cgKrt@CvFD zq-twoh9To$3D5TK9zaTg)Ydm2R^s1<$U`osaho%pasXN4*8boCo^6ObNyeP1jvhm$^}F=__{;0hp-BOL@WJy!?8)3?Lw!|DR~#NnYCT1ybeR7Pe-c z>b_^!Q*eqK_VeycrZ!*J?SSq2o1(_aHpc6yO1vt&ZX@`?X52L&m}h?uUDkL$<=B#2 z%6l~VP8r$1?cnQZGW=0q%2Mn*9!53Uyh8tjbrS1NW(gOng!Rfcvv+FgZ*5S~@J@$> zK-W^m1WQD+5hRE41r)HopU-VmjTS|1@y0@!f0BF3QbZ@D9dSWx>)^>Ub2wenLG+Z5 zqXyR(Jw5=JDGunxxXOPzZRzAJsY>eQ+E-)g8o7v zm~QTXv{D%ua*2P|z;2sp`+$%S>82Q9BwJ9xVcOE8O~U0oEM{Vw&`T49Q1SWEcd(i6 zK~)4gik6_c7CO9)!*)KyG~rRGq*4{L0B(}1Sj)=-vu$)*pO_!oanXvG7jH))IGd1b$bL$C;S z9u&GbOUbdIYk*i(xZa_ja4JSjPw+MB;rIEo@QT?7N153c%dN#%S%bJION-@;i%Gp+ z|DWE4aj5U*DAa1a<+ns#yFq$rw37~Sb34psT1wkxiMeO9et%iVPfP@w7TTAU@X*?z zbmXJk&2@h;>dy|fY&uUaEZ}OZ;sJjJ3(nte4Chx7zU_6JkVrHRUw-($f0VUZ!e3eD zzz!ft<;6emNU~K+F{T@MjggV9QUa>Qujdf~^pbOcK_nI0JZ)&)Whn_$D_3}>PL^#D zo_yN>4CEA5W#JCVAc$+?FU$Y>S@Yw}pE(>sCJujhncj;Z)k?BwXkIM|Vo2 zwjCVOoXs)LcM3RaSs(*RYNi^04Zq48nlv{(t{YesnMNDvE_TZN1qjd{g#+6=sEPWy z_$!I|qtE|nBfFi%s8@{m*4#apI_|sqTXox{#^>` zk-dM{sKlB+YF~oe@VFK(ZqGWT(%*WOu_tP*FJe$%cclZ#Js8HB@2^2c;z|O-%5DP9 zDr%xU@(V>5IR@kE9hfeBV^8fWFG$vs+*l_5MMtVu&RUGHSDr3t{VG1VkILDPCyM^v zk>{nAm?8)sLuI1dh8Ssh-z(uo&zEcsPuG94EllWaNqf`5)EfArt8L5kzK`VgevFvD z-MokSJIiGWKT!i)kYQwyu9(E<80agSiomqCH(}Fxb>lC86(4(G!mv0c^qc_V6mp3w z>?ZDaX9Xwjm9I6!_N`!w)LkptBVbEDVtN}xF(}AWiKiP7z5TB3@ym?^MqHsDT*ZHC z;8@pnM@$BjB&}dmM|x7UYIIF~7I$GSAp(p!2NEI0UR(M#)X-F>%ZK+IatP2Bm648V z&;dR#mcK|KbDUie$|;PaO+L^DoBVP-*y)<;0WM3l`@SZz{;B9abh^k zFNLiwe&-Kh?WW{8``@Q!GUK_09&0=jCivHLjhK{?*APyJ8EzsVUEM17bHFzrQ@R#r t{{Xz-08mQ-0zU&k00ICG06UF$R^U*ZK|lro02v*VUkF$Rk_G?(003J`BAEaH diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol index d28eef957..82a3ab124 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol @@ -6,4 +6,10 @@ contract Uninitialized{ return uint_not_init + uint_init; } + function noreportfor() public { + for(uint i; i < 6; i++) { + uint a = i; + } + } + } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip index ca7ea0eb308fe7b52d4395dd5171d8bdbf5d44f2..793b30f4a11dff2246e75b96719158fa033a2831 100644 GIT binary patch delta 2111 zcmV-F2*CHC4&4zLP)h>@KL7#%4gl0uu2#Z)dpQ#b000m#kr-ru^+P_6+Z$mK{=)<4#k(GbXB?s{~H=a zs3iZSL1y6a%c)g=c8>~Gzo559b-?F@wye`NK)+y_mW4~=J%l}F&*_)3Aiw|>(5`1O z>!tfUafTv3v9)MXA`_1eomcR~x^ex9+GuQ`S4J!hJWpLKtoZY11OZt@C8JkKt=}rt1T|(#7>cexL%|Uy^f67DBq$gXC|`jX6SjEm1Kc>WxSt-p z!`n$>=wz|gH+_BJHCBPqpTP4eTN7~FsRG&>M!B|m5CVFu!#IK=J&=mhmfVhPHa>L^ z7s|$sUY;#~wQ9-Y`Tw3f848LG$8Htk!58_pFQ#=4aDiBG$G&X10UsrdpyyX-(%9&z zEZX8dTw`E#am@S0~bIX1#v;Sg|yN6FRV63p;Hpb&rhZF zTD7Dk7T7Ex$v!MUVqKSn_S+W;!yC22^i2?M+sRRHiNnWFG1>j}-Opa(o^v0e=?Y2`@Cvdz) zgB?~SKU;s6qwf==z{3es_*;-CHP}oXKBtGyQ2=fy884l-vK{Q`3~fLvbL$4 zO{^5`VwD-Ad;uM@gF78DMZ_V=X8weQLFSXfu@J5B^7ufhr>L%up2y04WRsJ8sDkqtiHY`TS1QYPs{Og zz`Kr|?iBQMGwt6G)*SOfQB$IP!eu&oEF@S=;uq(^qNTVla^VXozgX)5FKeJQhUBO} zmpz_xeM$#Fr^R}vkz6yqjNgNQ*>@}($(;cU>rpg~m1tCV<30lJzi>nB%&3zZ_aLmY zmKkg;1=U|}$}n<3TvVr=iZDji_lqi&@W}ZUsRZ6Zk7D%w&nL}%Wjp#>ZKKSK7QrJA z{0J_92G7^Y*u{&x%)ml;45s0j+hlMOIkTq4mcuIQ3((rh|0WUhhrQ>2`{({q0Pc9G zdeTJlv>#MhQ(HmDKxuE=ubwDECx`NYGZYc$5>^nuMCd<=?_dL?k&z^U%$+M+NDdP% zRpF>y!;_7M!ZoM)tkiFMhy6waLGRn~o2c*mo)#bO?8VA3b`IszvliojfDnIIy3!5gG3pP6ngTmNq*dt?vYRAOFS&CzRbox;$<9f2n;VWze4R|-F^ATAL!!? zcOJ8_TIsB5Gum@4=fN+3&4{DF^r>N#M6}V|0Sm#pAuHI3CI!%V(ktJ+DJ|Ii#&#^vC{txH zyaRX}=zuzTBN)K&SA*_kGhVm|Qg2xy<;wpU(9Pt(vKG{i=x+a!yv18~l!Ls_GMcrM z-hZ0u`F9H6a2dsp)@bsXhq}v*?IQnC2Z-0Naa#bC(Zof6JgL02Rnth8FH=P5T$cM4 z*N6XqUZtc6!r%1_&~?8-H8CmpMAg>M#J;1YoYOC6LBtU+n|fc!Z@j~uMS^;b@3bk pP)h*FLHITHu~01z*e!Uk9dWe5NO0009K1f>7~ delta 1669 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 ZRs(_>BhUu`0F^A0ga%j!A_xEg003c@_^1E? delta 1607 zcmV-N2Dtf}5#kLSP)h>@KL7#%4gfoicUE;nYX2Ap002T9001|}t(aS6;oO)2cgKrt@CvFD zq-twonro_@{&p*CwbB5MY;H;&9AR62-ZWz<@VE4AZ4Qa(U0<$njRn~ymyLt`Xc7Yr zPW;C;9N^_wQV658`?crE5J&a2g{MGF(MSyx_#E^>kW!?o1Q6FJyPm z1ZMR&cXfcTHweG@NUjJ2%n)`xOWk|IzI5u{Tw9D~q22nnKNm9|r>K8&egVk>2h;JI zT2npyo2Ro6mNX&c2+u*bcw2HdQ8*Gnc8rTxPW_eD+U=R%<-2-V?P_(GL(*ZiU5b@4 zEKfrm01iBZ1k}ckgyH)E))5Fjf3^i1Xb> zGXd7wA=Mf~r>fchP|&Nie_Oxw*6f}Z!PwG|R=QQLE9AW1YGWd(g*pr}!&))ti{$^2 zNVy{4J)sTsn%``g+bO$mlb2QibhQLJtY4Pokoor5^_zMQg(H8kM|M}m+^hc_!pxT> zs2R62g)o|hlJ72*sYp?jCpZm`eapu-o+YR7X4;BvQZ6p%JkB7@OIccF!2Q(dAu5jt z#(XDCsqAmuvcbt!8)m%UF)W3R*TQ~eGp#%PInmo?Emw^;q z6t1IH@OQHQ(bK!r8iv=hwVOn`xlWE_V+Z4M)UHEaVdhxRMJCQnMwNsx*9 zw1`WgZ6bfGoBoJpVOBe85ymLKcYYlhzW@UjyR1^-xx%myN*BQ}k~ce3^S9!+B+$yq zH>RUV+MM5VxrBk46l0*)$85C|8u*?FkvO-wBM%vD92uxyuj288k1ofGQ9s#)AYzW! z!T5h-y;74pRnmBp5MN}CX9t2L9j+2Av36@{m4{DkT28j|e}U@R=ERYL{F=ShmxM=> z?ERla+q06O0Po|^-jXFfX(1+A3cgq+8%s8h`E$w`uu}L2(8=at?JGhJ96P{geOTI2 z1P16WkR6sq>smlds2Tz8(lY=1Pr7;IBzu2fe}w24sKLD#@QQq{AVt}o{}H=KZt+9 z+?xVqzK?Ny3vtzTOafoqzCXGI+t**{GDVvmO$07sT-@l;Qv=AdEk@oNbFHhkTrepe z`NCLkxeJrafMpvdBW?lvE50B}1-l^%Nm&p`Ep%&DVa|q(*RM_|u##Crc}ZQv6@)9c zFoVs2zDZa{F^U!c-CK~-P)h* Date: Sun, 14 May 2023 11:08:30 +0200 Subject: [PATCH 100/105] Fix crash when variable is initialized --- .../uninitialized_local_variables.py | 3 ++- .../0.4.25/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.4.25.zip | Bin 2247 -> 2483 bytes .../0.5.16/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.5.16.zip | Bin 2237 -> 2469 bytes .../0.6.11/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.6.11.zip | Bin 2269 -> 2498 bytes .../0.7.6/uninitialized_local_variable.sol | 5 +++++ ...uninitialized_local_variable.sol-0.7.6.zip | Bin 2202 -> 2427 bytes 9 files changed, 22 insertions(+), 1 deletion(-) diff --git a/slither/detectors/variables/uninitialized_local_variables.py b/slither/detectors/variables/uninitialized_local_variables.py index 3f7eee4d6..0aa5579f8 100644 --- a/slither/detectors/variables/uninitialized_local_variables.py +++ b/slither/detectors/variables/uninitialized_local_variables.py @@ -70,7 +70,8 @@ Bob calls `transfer`. As a result, all Ether is sent to the address `0x0` and is and len(node.sons) == 1 # Should always be true for a node that has a STARTLOOP son and node.sons[0].type == NodeType.STARTLOOP ): - fathers_context.remove(node.variable_declaration) + if node.variable_declaration in fathers_context: + fathers_context.remove(node.variable_declaration) if self.key in node.context: fathers_context += node.context[self.key] diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol index 82a3ab124..37d4650e2 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol @@ -10,6 +10,11 @@ contract Uninitialized{ for(uint i; i < 6; i++) { uint a = i; } + + for(uint j = 0; j < 6; j++) { + uint b = j; + } + } } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip index 2c4ccdf1739484c8c89730b7f54efaf23f024e87..29db479d573ecfe96ea1e2af6bbf53df42de1cd5 100644 GIT binary patch delta 2146 zcmV-o2%Y!G5wjB*P)h>@KL7#%4gkqmu2#8J70T%d007B7u^1Quf276Z^!?MWMToTd z`CamzD)0N)uJH+6f~Bd=@*~O)JXVVH43_{Y}$2 zR)k+p*2QsET`iiPTw7b_em3h+#W&ueAn+${ew$Yq3zne(5qOIB@{FNE;s~q~F9JvU zxtIb9nYhSg`+{Y;jGz8O&TX|$WNe-sv(#cJe+O|-V^fAXeZa!J083%85taxTjgvoWUk*d%FzlO=m>-% zEzuzw2U;4hgX(7&LhBzCAaUFwyw^@W;Ql2GxqJyF9O_x4B*C8h^%%+mQg@9|1F2SG z#E&D&BRxa_tNn9V!Ns#q&)RFP@v5)eLhz3CrA8+(e<}7zI_%EDK42bIAJf=PC&pnt z;=$g&0l8!J^C@Vsqao>#^*H?%%xy$`=gen(tK5e!%Q&C=%91@QAG$d7TC8!+@M znRVq}B?SiH9OB>r0hmY)=0k!LR==rr%hD(@FCh`K^=y=VtwTNG{d%`w0)|LXa$ zj#@zzePCImf84VJD~mM4sI^!tbDhHE~M$D0<4-;&k?-uq)>f+=!>KE-u|Aicf(^HBz_f69Te_M~PXapO7)G0FB>S`-T3U|D<& z_hl_$r0wm3xKYD}VLB8E<`cf7V-XzR5noUBpoKU@=0jqbUFNqQ@k?Nk3h6oX7LyON zib#-nQR0FO#P<%!jd2+C#!8^e8hL?6mgj4RKV){+f;KLx`}`pHB}2|Z z%MP1^#n4aE6J>|He?|`gsULI?bb~@xHFB+ME`6p9$TQGozQ;@uf!$;cKxYG(+IgJy zPgYs}+%Bb>m~<|s+yyw+99W};_)U*ge^BrMfg~*|$tbuzB;hGl6B%c>mum}HDmTeJ zC)N$P{iITKYeWhJl;NeX?8MDJs-PWX`r%^Bux)V$wqTx`QBCzySS-uB$Uj_f3z;XE zL;*1C6*3wLFhoI}3>eB*YdwI8w$!EPNi{1B=hLp;%px+`x<~8JUU)=gX!(*gf1lmX zB)f`4kc*#EReKdRWqWN`GI~S#GNQ{sB*%FIR?0Ms;@J3q8ng%0tQ=rXjPe-rdyWk8 zy!xeISh&5kaRV%UdVfpJ7-=N)bJtJX9~^5di$g8x@nrDeD}4XE6)*X0fR_CtVY@=J zzb<6#n38omvZNfr3;DiXDs;O;e+xJTDjQ2KdWI`X9g;!KE0=Sp1ASYL$E>QqP3WOw zAq40LxN{BW(Jxk!QTeZ%3)Ht#v{@oVlbJiM@C7^eK4iULF$I!;lRgt6^L(wSkJ)9q z%dcm!j+1*)3=*+-kc4eaww{ANiTbE7^S-eEa619cbTKSY3zv%bg>r6rf92HmQZr(| zMq_EcDB*oV{s2oGS$ciCc+P`{h%~_^s}r1CSdgIwQ!#>bnP1Wh2S5^2$3HTS*+Es7 z`6(weUuyMt-j7y_F&llkLTKcwh>^xV7f3OvG)+U_5g<=GB0VfuOQzObvmfpTiNl%c zc2juB&4+wqDazqw?cXFie^bo?kSRKXK1(Fti01*0AUtFdg#$kZU7{#jI_{$NK=d$6 z>?%E|;2+dNyiFfzjjg7>Ms5y?jY@6PR{#jr(ICnU9w;2;w_K|8U?@_@$HAGK<)U=|5X*^`c7xWDEmOM!e`z}lsh)cpmy2PE zdpcE^e=QPkl`iZq3uMTSll4)R7szK%4dpa*HA&q+hWqj1>9<=9Wc=1I(-a>?RNfnk zlZn(|q%-#PcTRWqoae2MHDZ7gp1)z7us{!S%Yf9E7ru6FrC9r+Q(DvFI_+yV;NZ1?DaQ+m|%^j7KlI3F%@XIH9R&Z@_A!rVOwK>e@%2|&h@2@{kJoAi@H77aYij;$UWL5GZ?yu%ia>ZbSG z^)%RZN^Oj(H3<6^cFPpUc9mZAUZPnD&C`7E`)v9D`;@?aP)h*<{901I0R#{d8T delta 1908 zcmV-)2aEW#6UPx4P)h>@KL7#%4gk|tu2$N-BO3h&0015@u^1Quf2-z?+G__*1+Cx_ zT;0Bomc?G|P)g3astk%p>=GF*j}^120N$9Pd|+hstb=K!fEPoAlM3PJ=~qPm>b3P% z4k%VlDFBA6BYoqH?*8n@>i|)}^MjmY>m1QB-v&A-IWk;TyFoiaI$C0}G|-zA-h(5= zot7Zkx z^8)r~#w4!{Y}(jobA>0n_L(8MxP;LeP4R3#7Q+>D`w4BNe|mKo%qLpV`e6_fGrDFk zvYmuwMyZIu-LdcKpMM_OYU5Ix@@4+vSEVznRG9OuLI@GGeKtY#B1CA~+~m$Q zYNxR|x?lc@f7T>~%LVusjJlC1S+37-9azzdVr_evu@}P`T36*GMnWG*i5K3)>}EBC zFe;L*7(w4&6(|C20|zjP zDGWYAzeFY_3k!_;sLYs+*fUnjeF{co|3DIQQdk603m!4uekNWMH+^-TWQh#&aBd;3 zR%vW=Mla=BKDcM`PT!>6ZSL^iEn!iSuFW3OJ-2d@P>KbVRgtPSa!di{S8Qy#yyaFd zd&lo4e?ts*_y+T%If;WA??jh2#ywgtngL|Y41|=m>vc8K3aIL|Iw-?FW4GeUkbk)ybB#> z*ZEeQVkkNm4gw(J6`{Av4KYy~9|NP-`2i9lf3+Q?AU?eeje;spY0}KgScyFyJ7)f0TFn9hXkKR{$Kndq^o1mg%pSqf})re-Dku*DCp~`bN2iZ6*o6Aq?SH`0P=Cwl6&f zA-+7+5{{1bA1kcpq_)pg`z(8uec4CEWK;t4f%kW0TCxhS_v*)8KiySDA9OTMidvOq zea#=8Z(!4km9k;#Jy+#7!wcmoAzP(z%0AxmY_TI6q=JR@qGUCMBVhxVvSByVe=6c# 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 delta 1898 zcmV-w2bK7x6TJ}_P)h>@KL7#%4gl0uu2zIVHe2%t001&Bu^1Quf2-zh1=CKTW7;6u zg11fe_kIhY|IWYsm}AM-KNJ!yAVoNJd_Ow zTuTH$>7J<=9&Y9Oe-P3lWYFI-t}@UhVUFgdwK;%cuGaakK0OyQr~{mQW^&T}#cvna zG1x3QFOkOVhJ;t;X^^>P@F(F~5=S@4IF=*^w=z6p&NWmad;9DsZF>8*G(GT`y$XN0 zREJ*N%Tn~hG|;-tt^OR!+#Ct%$i4NKu=4Z@4Ou3m=O9b-f5d%)wizl667_U3jNUKJ z6I)4ds2sYn_zS@l<{HxTUJSA*l=j{^?1t(wmmGb?<({r8Z>bl(%c?Pr)Fs;Iq%DKx zm=(|Y4}G2A7Xw@fwZtc}T1bVh`@Y_#C)4>xo%3D8H$NqQ@IXRoNIaskc>@2S>UvqY^-90e$#| zKC<1MzC5tU!^XZJr|5aC{o9VsG1~;i2SL>>R)G+f7)BGzB09LMIrPsHP;XtqQbsOOo)EXf*R`>44N&2n#(n2WIxx~Qt}PlXdhAF zVv3d^=m7dS=Z>^!ApCg%AV5(&dst!<#?Eg;+=dL>dDO$({ie(*W*Skf5s~8}`KkAY zbv^5_Q#g2?)%NfRSJDv2J{^OaF)Wg@*spIDf4=Xyt@X7Eg}Aei0bI=>Iq|@o{Y>!2 zxB?al^hBc%x1`XGU0zAis#qqR4?2KTI+`oTNc!Qb#4rW(lXWCr>M`jW60sdF1zKK8 zCktAtIk&sT4s-MG7|K#9_Cm0WJTz!WCNUFtTk@)R(aak13{LoziFVpOM6u-ZD}f042u)1xSdM#TTbhk?tQHGUjEbxt&iI0+Od z|Dnop(si9&iDG4g_)mk4*1{hJOXw zVl;3Kn8GN}+oRaZlr3 ze40D=)9xS|S3Qf^qc32}N|*|dTC3~c{=&-??g>#`CX%>g56KiIJYv)Bkda|%R@Nx= zs$j0Z2)1DoS(_eJv|-4`eE=4bP-hfuR2bkI`|eW($T}G|w{ma{zK=VN#u-pS(zPhs zMp4v#oMh=Z(Vz7C%|hnbn$Q>!%ML z(+*%U?VFTF5=@4S=O?TLC@J3R2lq%-f}bux9RN;qL=K4BWpJ%HA~`v5v{-Hp9Rj7z z8c1_&i-g3g@`RpUJ#kTB6Ke}Cq$p2m-jRx{-L&NwZ1@9%ZZ$I#9X2ojhBB;hP)h*< kKLbAi0ssyG)K#ulgg`c1^9KL`GA@%x30MY22mk;80NO;2n*aa+ diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol index 82a3ab124..37d4650e2 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol @@ -10,6 +10,11 @@ contract Uninitialized{ for(uint i; i < 6; i++) { uint a = i; } + + for(uint j = 0; j < 6; j++) { + uint b = j; + } + } } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip index 793b30f4a11dff2246e75b96719158fa033a2831..d1ac3a5ab82f558461f3ccb8da893ed552b049f1 100644 GIT binary patch delta 2167 zcmV--2#ELH5yBH2P)h>@KL7#%4gkqmu2wz3swwyg000?2001?HKJ|zj z_4N>dj5XS>u1yYC)2j6Nd~uh}MlOZYi{pJ`K-5?+zX=F1tg1Fg4^|%Qu~OOY91w{p zACnI`NQs43^UhppSV*P~QCS=H(qhU4r`bsJtrxcS&+6{l}koC{{nAP(n7*sy@wp;D%0Un(Vq_aHCJ)S&&6g zTl~nh8m9k5d94ljUmrs}{$?YOfKb(MQ9-Wh*OBi0>3F-WZB;vWrn7_iw& zhW|y2z|qeXlK3zn$~1q#h;O8RP9i#r;BtszU>6_d6K!I5BgWpGQh7DPWWzuyXKTwe zQH`2w;DMhb<1E7g(AlAD)G^3JxTC!O+59RG^S!8L@JoFoUaIvXh@C}>`VDfKnbAg= zzU;ZloL_1$d=K~$arEn+yr}f+1YL|=(VnG&b&^dSFp^PN7s!9vRZiS|<||w}=cafV ztR33Sx~F(w712mL*(c*T56tK^)gdvX^J-FLOFPC9EnJ=jdE(=Q4Y!RE5H$Vl+@OlA z-@!bp8MjW5%l_mVApG-v^Kj@P7S-oHbMH85!JnNC5GujrVa~w-Xj;L)YFA7z4}YeB zf!CRU!ADGAm;!$|@6}8_41+7WV6*?$@S46XOdw<>TBHD%ucgN+=yMfT!d;kW4xljc z$BL}WChwMsgAg;+7r=2xDR&m>iZ%@QSk^@$4#R&Gzxfve{#;FU%3Y718($@v zOX$k`0nFJu1AOjNF;i?W$Ip|y6by~ksU$DX^0A}Gck(AML1ElPCr7}}S zB4JszpKG8%AWc|Y3Xvzpt{h$iJL-8{xo`J-!n{M3CANDp#5DY$@od(zGrs`@%W6BZ zZvaC6gU%L!F!Wug|(<0dI0+nH;=AgxZ~uS;rFHBEQdO zOqFVO@^0?4X{<=}N<{q5kRE1K_KKX$(^2;Z@=N3i#3?-X+KarU9Sk7K$f4Dq!7gRj z&PIO}a%Z2e)$Px1G<4>Xy+vPI<|y-IZw;%|fM>EIxohzZ|N5qL+(^SB9$w4-k6Y%e znqu7bn`-KDS(kJZ4p$iIBQr(>&VBsfwwA@w!gAc*tu=mGbe9@D^{&c&A_^g1RDi8D z*XsrK(SMWcKYAC}rBy0#RQ6?8Y^cGzwtasZ4gQ9pOhctk8)Dy>2CD9#L|OyuG;TrH zSWt&?JwSR=Ur^&!>}>X2Kwcxt|D3WNSkrz2wH`J9Ro}w1=g|_)yvXN5zK7^{`7P!t ztmQMoj6`0hv;XpRT#!Xusn|UHK4Ue>Kyb5>(I~OHs5mV8T}^`W zb~f$>aAbMXS~Dvu%^q3CdYs31b5|NpFc7K`DB_poq>(EpQtJKE&2H% zBC8OKz*W>y>v*22mqnbHF9#VR|5fT>$uU2v9GF|87q*+A>x6nD=8Rgqd#it&f7_0^ z!o&VZr_p5gW({P7Fzc3Fv%MV8*yPR4BLaXD)PmI*KaYPgM-KgN5~#D5g;9ZD(&sPv6jkJ#&Vq#y<8*~I9K$$7 zDDzc}6nl1oeky!hj|b%rIQ_7pYq5Y85bDQ}A!vn9RYSgI3Ep1`#9D-vchBx;2)uSu zXZnvgp4TFC+RPT9N~h`#DCdNUboSN!;~4O#emowV1W?z$+?`oUsd;~ESZC#GL?w!? zN(W)zAxNlqR5q_g<`8DJH@t4Ozx+_|>5;Z!Dk%YKOTob$Az`yq(m5xKiK)*1Z>Oh@ z8{Yk?ZWDj0nQ{RaHURMfwml4%e{aj%W5&42DzElP56v-=ylLIP&6BYeH4`U+6*%M% zuUS|_a+yz|>4xy>7Jx)9Kd&`^DHOs)TF3)(w5=$}^+<+M{daY#cMH7*q`-ze6eH@} t|K_FF-cU;c0zU&k00ICG0LfUcRz1L~DfkEg02w}$e+XCxN(le}001OdGVcHY delta 1930 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 cu2!`Wvn8<{903cxwt^fc4 delta 1870 zcmV-U2eJ735}FYkP)h>@KL7#%4gl0uu2utr8Y9pL005ON001fa+pw88kBrioKDm|ND1P^ZKk>zNEM8=Aq#whCe5D}#aIDPo27VRsA9v4$8~9z+ym zEtjE1U%meuzYQVm83B258dReSp+BPjgaW_#?c`Vc!EKrDJQ11E%iaQokjAWh=8$M~ zPC2YUQlXG2*VcFI>1t?hNdSL`MQaa%KQ>N4^FSW z^dh=VONON|udd5<9J;tETtiH+mO2I!{BFb$ger~9lM>Nb=DUGIxpUauqfKF;$hD8YI1i%uJaH-BllR$S?vH;U z9f~jTW6kr9qCYSo-m6$|xpU)g$37lnrd1G@Ue+rX_;wnQ#L%mu8MpA; z(v%cJgA{HQiEKR9na6*rt_;#2N2p*9?TdcH{}-`8z^T{~G~GNYG0jDd+Tb-^YYvmA zZrm&!X&7(Y4CFv}8HL4hxn7>;)0rgl(#7V+S+N4!fRe%!S}c^R;re{5MsVmeVeCh1 zTw9TxHqA@rt_~M+XJ=Sl>dqr7>!`bH-yZoLewCZZSn3ZkDBagD495ksp+~`g- z6*(%Ial%$>4WP5)flGK7T_gU-0g`yi&d74$MqM1zhjIZU18!R+98^PE9u{m2(6oX^ zK^~0}av=26`Hg=W2-r5eymN6Y7`{pzeK}my99QipFp^*`f2Yqcu_jDy_8f29)%ftu zZ28#tg3)GtPYDY?%d~3)>Q(;vJ z-x{|$890DUi2xYP$7TF2+*73jb*CaKhHbmVNAzsfV=DasDlSZA(8 zuKtl<{z`YgN%QG1kd!bvl`8iR3f||o`f6h`U7>$VtoikWfxxEA!*9L#A}*VG(eV|; zI;gwIRsvqrd35~C$~V&hwV9ekBFx2y3}5ek)Q7TY!r}k%4DkMuuJ9eNU-q=UZVSGk z$}cW|u)2;$SvtUn&pYWhgKrzUE~=*V6NSbMI9j5%L=ve-m9d21(M>yDxTt;)!cW{W zrgncix>{YgeJJ7zkK!n7+iO<{K$Aley|RCDm$)guiGi5slaQ9%;M_5Wzw^05hl3h1>Tbh;99B;g%X5`?B##D z=rT>z&-^I$22?c8jj*m#pct5lRUm8$Oxueo^yS2c=rhXikfm5Y=>uj?*kKkP0#MWz z`v_|!J=9UVKJ&wJ6OZQC(u@-)kcgd5;xcrx7V_@KMK5S#_>eB6qFjl-ST>;{Rt7ve_Kla2Vg4f=}C5}z}?(fy6Tg;jrFg$QEp zem^O9)p^0;ZVAe_-mR)es^xmXnH`<$SzHoXH&`+gN%B$CtnXnf${6(^xv8$PVgx*@*SULydj(h}mT*Y?P@(k^@V;48oqr&5NK$E{=3CfAh0@1mEXI@f zLK+K0smP}Q^WBt>fU3X#Oo1DRP)h* Date: Sun, 14 May 2023 13:38:17 +0200 Subject: [PATCH 101/105] FIx return variables shadowing compact AST --- slither/solc_parsing/declarations/function.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index def68a8a3..5a29a9b50 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -774,6 +774,7 @@ class FunctionSolc(CallerContextExpression): "nodeType": "Identifier", "src": v["src"], "name": v["name"], + "referencedDeclaration": v["id"], "typeDescriptions": {"typeString": v["typeDescriptions"]["typeString"]}, } var_identifiers.append(identifier) From 9e4324bab1eb56ebb986a14093994b4bef083a11 Mon Sep 17 00:00:00 2001 From: DarrenChangJR Date: Mon, 15 May 2023 14:54:23 +0800 Subject: [PATCH 102/105] Fix issue #1849: type_str not returning str --- slither/slithir/operations/unary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/slithir/operations/unary.py b/slither/slithir/operations/unary.py index a6529d726..c6493921d 100644 --- a/slither/slithir/operations/unary.py +++ b/slither/slithir/operations/unary.py @@ -58,7 +58,7 @@ class Unary(OperationWithLValue): @property def type_str(self): - return self._type.value + return str(self._type) def __str__(self): return f"{self.lvalue} = {self.type_str} {self.rvalue} " From e7701f1a1782f5593e60a98cc1d9528ab5451af7 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 15 May 2023 08:51:42 -0500 Subject: [PATCH 103/105] make transitive dependencies explicit --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index 39ee2b1e0..5c220eaf7 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,9 @@ setup( # "crytic-compile>=0.3.1,<0.4.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", "web3>=6.0.0", + "eth-abi>=4.0.0", + "eth-typing>=3.0.0", + "eth-utils>=2.1.0", ], extras_require={ "lint": [ From 19014e15c28a8945ab7c549b971f323e54d459de Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Tue, 16 May 2023 11:18:44 +0200 Subject: [PATCH 104/105] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5616bdeec..70d4f71fd 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( "prettytable>=3.3.0", "pycryptodome>=3.4.6", # "crytic-compile>=0.3.1,<0.4.0", - "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", + "crytic-compile@git+https://github.com/crytic/crytic-compile.git@dev#egg=crytic-compile", "web3>=6.0.0", "eth-abi>=4.0.0", "eth-typing>=3.0.0", From 649e8d5e9426ef6b67dcadab4ce6be6689d16b70 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 19 May 2023 14:43:55 +0200 Subject: [PATCH 105/105] Minor python improvements --- .../statements/incorrect_using_for.py | 305 +++++++++--------- ..._8_17_IncorrectUsingForTopLevel_sol__0.txt | 24 +- 2 files changed, 173 insertions(+), 156 deletions(-) diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py index 4df0701a2..e2e87e7e0 100644 --- a/slither/detectors/statements/incorrect_using_for.py +++ b/slither/detectors/statements/incorrect_using_for.py @@ -1,3 +1,5 @@ +from typing import List + from slither.core.declarations import Contract, Structure, Enum from slither.core.declarations.using_for_top_level import UsingForTopLevel from slither.core.solidity_types import ( @@ -9,7 +11,148 @@ from slither.core.solidity_types import ( ArrayType, ) from slither.core.solidity_types.elementary_type import Uint, Int, Byte -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) +from slither.utils.output import Output + + +def _is_correctly_used(type_: Type, library: Contract) -> bool: + """ + Checks if a `using library for type_` statement is used correctly (that is, does library contain any function + with type_ as the first argument). + """ + for f in library.functions: + if len(f.parameters) == 0: + continue + if f.parameters[0].type and not _implicitly_convertible_to(type_, f.parameters[0].type): + continue + return True + return False + + +def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): + if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): + return type1.type == type2.type + return False + + if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): + if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): + return _implicitly_convertible_to_for_contracts(type1.type, type2.type) + + if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): + return _implicitly_convertible_to_for_elementary_types(type1, type2) + + if isinstance(type1, MappingType) and isinstance(type2, MappingType): + return _implicitly_convertible_to_for_mappings(type1, type2) + + if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): + return _implicitly_convertible_to_for_arrays(type1, type2) + + return False + + +def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return _implicitly_convertible_to(type1.type, type2.type) + + +def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return type1.type_from == type2.type_from and type1.type_to == type2.type_to + + +def _implicitly_convertible_to_for_elementary_types( + type1: ElementaryType, type2: ElementaryType +) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if type1.type == "bool" and type2.type == "bool": + return True + if type1.type == "string" and type2.type == "string": + return True + if type1.type == "bytes" and type2.type == "bytes": + return True + if type1.type == "address" and type2.type == "address": + return _implicitly_convertible_to_for_addresses(type1, type2) + if type1.type in Uint and type2.type in Uint: + return _implicitly_convertible_to_for_uints(type1, type2) + if type1.type in Int and type2.type in Int: + return _implicitly_convertible_to_for_ints(type1, type2) + if ( + type1.type != "bytes" + and type2.type != "bytes" + and type1.type in Byte + and type2.type in Byte + ): + return _implicitly_convertible_to_for_bytes(type1, type2) + return False + + +def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. + """ + assert type1.type in Byte and type2.type in Byte + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_addresses(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. + """ + assert type1.type == "address" and type2.type == "address" + # payable attribute to be implemented; for now, always return True + return True + + +def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both ints. + """ + assert type1.type in Int and type2.type in Int + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both uints. + """ + assert type1.type in Uint and type2.type in Uint + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: + """ + Returns True if contract1 may be implicitly converted to contract2. + """ + return contract1 == contract2 or contract2 in contract1.inheritance class IncorrectUsingFor(AbstractDetector): @@ -48,150 +191,19 @@ class IncorrectUsingFor(AbstractDetector): "matching a type used in these statements. " ) - @staticmethod - def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: - """ - Returns True if contract1 may be implicitly converted to contract2. - """ - return contract1 == contract2 or contract2 in contract1.inheritance - - @staticmethod - def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both uints. - """ - assert type1.type in Uint and type2.type in Uint - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both ints. - """ - assert type1.type in Int and type2.type in Int - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_addresses( - type1: ElementaryType, type2: ElementaryType - ) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. - """ - assert type1.type == "address" and type2.type == "address" - # payable attribute to be implemented; for now, always return True - return True - - @staticmethod - def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. - """ - assert type1.type in Byte and type2.type in Byte - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_elementary_types( - type1: ElementaryType, type2: ElementaryType - ) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - if type1.type == "bool" and type2.type == "bool": - return True - if type1.type == "string" and type2.type == "string": - return True - if type1.type == "bytes" and type2.type == "bytes": - return True - if type1.type == "address" and type2.type == "address": - return IncorrectUsingFor._implicitly_convertible_to_for_addresses(type1, type2) - if type1.type in Uint and type2.type in Uint: - return IncorrectUsingFor._implicitly_convertible_to_for_uints(type1, type2) - if type1.type in Int and type2.type in Int: - return IncorrectUsingFor._implicitly_convertible_to_for_ints(type1, type2) - if ( - type1.type != "bytes" - and type2.type != "bytes" - and type1.type in Byte - and type2.type in Byte - ): - return IncorrectUsingFor._implicitly_convertible_to_for_bytes(type1, type2) - return False - - @staticmethod - def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - return type1.type_from == type2.type_from and type1.type_to == type2.type_to - - @staticmethod - def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - return IncorrectUsingFor._implicitly_convertible_to(type1.type, type2.type) - - @staticmethod - def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): - if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): - return type1.type == type2.type - return False - - if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): - if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): - return IncorrectUsingFor._implicitly_convertible_to_for_contracts( - type1.type, type2.type - ) - - if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): - return type1.type.canonical_name == type2.type.canonical_name - - if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): - return type1.type.canonical_name == type2.type.canonical_name - - if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): - return IncorrectUsingFor._implicitly_convertible_to_for_elementary_types(type1, type2) - - if isinstance(type1, MappingType) and isinstance(type2, MappingType): - return IncorrectUsingFor._implicitly_convertible_to_for_mappings(type1, type2) - - if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): - return IncorrectUsingFor._implicitly_convertible_to_for_arrays(type1, type2) - - return False - - @staticmethod - def _is_correctly_used(type_: Type, library: Contract) -> bool: - """ - Checks if a `using library for type_` statement is used correctly (that is, does library contain any function - with type_ as the first argument). - """ - for f in library.functions: - if len(f.parameters) == 0: - continue - if not IncorrectUsingFor._implicitly_convertible_to(type_, f.parameters[0].type): - continue - return True - return False - - def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): - info = ( - f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " - f"{library}.\n" - ) + def _append_result( + self, results: List[Output], uf: UsingForTopLevel, type_: Type, library: Contract + ) -> None: + info: DETECTOR_INFO = [ + f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in ", + library, + ".\n", + ] res = self.generate_result(info) results.append(res) - def _detect(self): - results = [] + def _detect(self) -> List[Output]: + results: List[Output] = [] for uf in self.compilation_unit.using_for_top_level: # UsingForTopLevel.using_for is a dict with a single entry, which is mapped to a list of functions/libraries @@ -200,7 +212,12 @@ class IncorrectUsingFor(AbstractDetector): for lib_or_fcn in uf.using_for[type_]: # checking for using-for with functions is already performed by the compiler; we only consider libraries if isinstance(lib_or_fcn, UserDefinedType): - if not self._is_correctly_used(type_, lib_or_fcn.type): - self._append_result(results, uf, type_, lib_or_fcn.type) + lib_or_fcn_type = lib_or_fcn.type + if ( + isinstance(type_, Type) + and isinstance(lib_or_fcn_type, Contract) + and not _is_correctly_used(type_, lib_or_fcn_type) + ): + self._append_result(results, uf, type_, lib_or_fcn_type) return results diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt index 4a85bca5f..518fba20d 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt @@ -1,24 +1,24 @@ -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64).