#
tokens: 104133/50000 1/1140 files (page 102/103)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 102 of 103. Use http://codebase.md/cyfrin/aderyn?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .cargo
│   └── config.toml
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
│   ├── images
│   │   ├── aderyn_logo.png
│   │   ├── poweredbycyfrinblack.png
│   │   └── poweredbycyfrinblue.png
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── false_positive_issue.md
│   │   └── feature_request.md
│   └── workflows
│       ├── cargo.yml
│       ├── dependencies.yml
│       ├── release.yml
│       ├── reports.yml
│       └── toml.yml
├── .gitignore
├── .gitmodules
├── .vscode
│   └── settings.json
├── aderyn
│   ├── Cargo.toml
│   ├── oranda.json
│   ├── README.md
│   ├── src
│   │   ├── birdsong.rs
│   │   ├── completions.rs
│   │   ├── lib.rs
│   │   ├── lsp.rs
│   │   ├── main.rs
│   │   ├── mcp.rs
│   │   └── panic.rs
│   └── templates
│       └── aderyn.toml
├── aderyn_core
│   ├── .gitignore
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── ast
│   │   │   ├── ast_nodes.rs
│   │   │   ├── ast.rs
│   │   │   ├── impls
│   │   │   │   ├── ctx
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── workspace.rs
│   │   │   │   ├── ctx.rs
│   │   │   │   ├── disp
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── disp.rs
│   │   │   │   ├── node
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── documentation.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── import_directives.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── pragma_directives.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── node.rs
│   │   │   │   ├── own
│   │   │   │   │   ├── hashing.rs
│   │   │   │   │   ├── node_id.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   └── own.rs
│   │   │   ├── impls.rs
│   │   │   ├── macros.rs
│   │   │   ├── magic.rs
│   │   │   ├── node_type.rs
│   │   │   └── yul.rs
│   │   ├── ast.rs
│   │   ├── audit
│   │   │   ├── attack_surface.rs
│   │   │   ├── auditor.rs
│   │   │   ├── entrypoint.rs
│   │   │   └── public_functions_no_sender.rs
│   │   ├── audit.rs
│   │   ├── context
│   │   │   ├── browser
│   │   │   │   ├── ancestral_line.rs
│   │   │   │   ├── closest_ancestor.rs
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── extractor.rs
│   │   │   │   ├── immediate_children.rs
│   │   │   │   ├── location.rs
│   │   │   │   ├── macros.rs
│   │   │   │   ├── parent.rs
│   │   │   │   ├── peek_over.rs
│   │   │   │   ├── peek_under.rs
│   │   │   │   ├── peek.rs
│   │   │   │   ├── siblings.rs
│   │   │   │   ├── sort_nodes.rs
│   │   │   │   └── storage_vars.rs
│   │   │   ├── browser.rs
│   │   │   ├── capturable.rs
│   │   │   ├── flow
│   │   │   │   ├── display.rs
│   │   │   │   ├── error.rs
│   │   │   │   ├── kind.rs
│   │   │   │   ├── primitives.rs
│   │   │   │   ├── reducibles.rs
│   │   │   │   ├── tests.rs
│   │   │   │   ├── utils.rs
│   │   │   │   ├── visualizer.rs
│   │   │   │   └── voids.rs
│   │   │   ├── flow.rs
│   │   │   ├── graph
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   ├── new.rs
│   │   │   │   │   ├── tests.rs
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── visit.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── preprocess
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   └── new.rs
│   │   │   │   ├── preprocess.rs
│   │   │   │   ├── traits.rs
│   │   │   │   └── utils.rs
│   │   │   ├── graph.rs
│   │   │   ├── macros.rs
│   │   │   ├── mcp
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── contract_surface
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── util.rs
│   │   │   │   ├── contract_surface.rs
│   │   │   │   ├── list_contracts
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── list_contracts.rs
│   │   │   │   ├── node_finder
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_finder.rs
│   │   │   │   ├── node_summarizer
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_summarizer.rs
│   │   │   │   ├── project_overview
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── project_overview.rs
│   │   │   │   ├── tool_guide
│   │   │   │   │   └── tool.rs
│   │   │   │   └── tool_guide.rs
│   │   │   ├── mcp.rs
│   │   │   ├── router
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── internal_calls.rs
│   │   │   │   ├── modifier_calls.rs
│   │   │   │   └── tests.rs
│   │   │   ├── router.rs
│   │   │   └── workspace.rs
│   │   ├── context.rs
│   │   ├── detect
│   │   │   ├── detector.rs
│   │   │   ├── entrypoint.rs
│   │   │   ├── helpers.rs
│   │   │   ├── high
│   │   │   │   ├── _template.rs
│   │   │   │   ├── abi_encode_packed_hash_collision.rs
│   │   │   │   ├── arbitrary_transfer_from.rs
│   │   │   │   ├── const_func_changes_state.rs
│   │   │   │   ├── contract_locks_ether.rs
│   │   │   │   ├── dangerous_unary_operator.rs
│   │   │   │   ├── delegate_call_unchecked_address.rs
│   │   │   │   ├── delete_nested_mapping.rs
│   │   │   │   ├── dynamic_array_length_assignment.rs
│   │   │   │   ├── enumerable_loop_removal.rs
│   │   │   │   ├── eth_send_unchecked_address.rs
│   │   │   │   ├── experimental_encoder.rs
│   │   │   │   ├── function_selector_collision.rs
│   │   │   │   ├── incorrect_caret_operator.rs
│   │   │   │   ├── incorrect_erc20_interface.rs
│   │   │   │   ├── incorrect_erc721_interface.rs
│   │   │   │   ├── incorrect_shift_order.rs
│   │   │   │   ├── misused_boolean.rs
│   │   │   │   ├── msg_value_in_loops.rs
│   │   │   │   ├── multiple_constructors.rs
│   │   │   │   ├── nested_struct_in_mapping.rs
│   │   │   │   ├── out_of_order_retryable.rs
│   │   │   │   ├── pre_declared_variable_usage.rs
│   │   │   │   ├── reentrancy_state_change.rs
│   │   │   │   ├── reused_contract_name.rs
│   │   │   │   ├── rtlo.rs
│   │   │   │   ├── selfdestruct.rs
│   │   │   │   ├── signed_integer_storage_array.rs
│   │   │   │   ├── state_variable_shadowing.rs
│   │   │   │   ├── storage_array_memory_edit.rs
│   │   │   │   ├── strict_equality_contract_balance.rs
│   │   │   │   ├── tautological_compare.rs
│   │   │   │   ├── tautology_or_contradiction.rs
│   │   │   │   ├── tx_origin_used_for_auth.rs
│   │   │   │   ├── unchecked_low_level_call.rs
│   │   │   │   ├── unchecked_send.rs
│   │   │   │   ├── unprotected_initializer.rs
│   │   │   │   ├── unsafe_casting.rs
│   │   │   │   ├── weak_randomness.rs
│   │   │   │   └── yul_return.rs
│   │   │   ├── high.rs
│   │   │   ├── low
│   │   │   │   ├── _template.rs
│   │   │   │   ├── assert_state_change.rs
│   │   │   │   ├── block_timestamp_deadline.rs
│   │   │   │   ├── boolean_equality.rs
│   │   │   │   ├── builtin_symbol_shadowing.rs
│   │   │   │   ├── centralization_risk.rs
│   │   │   │   ├── constant_function_contains_assembly.rs
│   │   │   │   ├── costly_loop.rs
│   │   │   │   ├── dead_code.rs
│   │   │   │   ├── delegatecall_in_loop.rs
│   │   │   │   ├── deprecated_oz_function.rs
│   │   │   │   ├── division_before_multiplication.rs
│   │   │   │   ├── ecrecover.rs
│   │   │   │   ├── empty_block.rs
│   │   │   │   ├── empty_require_revert.rs
│   │   │   │   ├── function_initializing_state.rs
│   │   │   │   ├── function_pointer_in_constructor.rs
│   │   │   │   ├── inconsistent_type_names.rs
│   │   │   │   ├── incorrect_modifier.rs
│   │   │   │   ├── internal_function_used_once.rs
│   │   │   │   ├── large_numeric_literal.rs
│   │   │   │   ├── literal_instead_of_constant.rs
│   │   │   │   ├── local_variable_shadowing.rs
│   │   │   │   ├── missing_inheritance.rs
│   │   │   │   ├── modifier_used_only_once.rs
│   │   │   │   ├── multiple_placeholders.rs
│   │   │   │   ├── non_reentrant_not_first.rs
│   │   │   │   ├── push_0_opcode.rs
│   │   │   │   ├── redundant_statement.rs
│   │   │   │   ├── require_revert_in_loop.rs
│   │   │   │   ├── return_bomb.rs
│   │   │   │   ├── solmate_safe_transfer_lib.rs
│   │   │   │   ├── state_change_without_event.rs
│   │   │   │   ├── state_no_address_check.rs
│   │   │   │   ├── state_variable_could_be_constant.rs
│   │   │   │   ├── state_variable_could_be_immutable.rs
│   │   │   │   ├── state_variable_read_external.rs
│   │   │   │   ├── storage_array_length_not_cached.rs
│   │   │   │   ├── todo.rs
│   │   │   │   ├── unchecked_return.rs
│   │   │   │   ├── uninitialized_local_variable.rs
│   │   │   │   ├── unsafe_erc20_operation.rs
│   │   │   │   ├── unsafe_oz_erc721_mint.rs
│   │   │   │   ├── unspecific_solidity_pragma.rs
│   │   │   │   ├── unused_error.rs
│   │   │   │   ├── unused_import.rs
│   │   │   │   ├── unused_public_function.rs
│   │   │   │   ├── unused_state_variable.rs
│   │   │   │   └── void_constructor.rs
│   │   │   ├── low.rs
│   │   │   └── test_utils.rs
│   │   ├── detect.rs
│   │   ├── lib.rs
│   │   ├── stats
│   │   │   ├── cloc.rs
│   │   │   ├── dbg_tips.txt
│   │   │   ├── ignore.rs
│   │   │   ├── token.rs
│   │   │   └── util.rs
│   │   ├── stats.rs
│   │   ├── test_utils
│   │   │   └── load_source_unit.rs
│   │   ├── test_utils.rs
│   │   ├── visitor
│   │   │   ├── ast_visitor.rs
│   │   │   ├── macros.rs
│   │   │   └── workspace_visitor.rs
│   │   └── visitor.rs
│   ├── templates
│   │   └── mcp-tool-response
│   │       ├── callgraph.md
│   │       ├── contract_surface.md
│   │       ├── list_contracts.md
│   │       ├── node_finder_get_all.md
│   │       ├── node_finder_grep.md
│   │       ├── node_finder_search.md
│   │       ├── node_summarizer.md
│   │       ├── project_overview.md
│   │       └── tool_guide.md
│   └── tests
│       ├── common
│       │   ├── ancestral_line.rs
│       │   ├── closest_ancestor.rs
│       │   ├── immediate_children.rs
│       │   ├── immediate_parent.rs
│       │   ├── mod.rs
│       │   ├── new_ast_nodes.rs
│       │   ├── peek_over.rs
│       │   └── sibling.rs
│       └── traversal.rs
├── aderyn_driver
│   ├── .gitignore
│   ├── benches
│   │   └── detectors.rs
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── compile.rs
│   │   ├── config.rs
│   │   ├── display.rs
│   │   ├── driver.rs
│   │   ├── interface
│   │   │   ├── json.rs
│   │   │   ├── lsp.rs
│   │   │   ├── markdown.rs
│   │   │   ├── mod.rs
│   │   │   ├── sarif.rs
│   │   │   ├── tables.rs
│   │   │   └── util.rs
│   │   ├── lib.rs
│   │   ├── mcp.rs
│   │   ├── process.rs
│   │   └── runner.rs
│   └── tests
│       └── astgen.rs
├── bacon.toml
├── benchmarks
│   ├── aderyn
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── iteration_times.svg
│   │       │   └── pdf.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── iteration_times_small.svg
│   │       ├── iteration_times.svg
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── relative_iteration_times_small.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── SD.svg
│   │       └── typical.svg
│   ├── arbitrary-transfer-from
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── avoid-abi-encode-packed
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── block-timestamp-deadline
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── centralization-risk
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── constants-instead-of-literals
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── delegate-call-in-loop
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── deprecated-oz-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── ecrecover
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── empty-block
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── hello_world
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── inconsistent-type-names
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── large-numeric-literal
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── non-reentrant-before-others
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── push-zero-opcode
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── report
│   │   └── index.html
│   ├── require-with-string
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── solmate-safe-transfer-lib
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unindexed-events
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unprotected-initializer
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-erc20-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-oz-erc721-mint
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unspecific-solidity-pragma
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-internal-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-modifier
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-public-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   └── zero-address-check
│       ├── base
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       ├── change
│       │   └── estimates.json
│       ├── new
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       └── report
│           ├── both
│           │   ├── pdf.svg
│           │   └── regression.svg
│           ├── change
│           │   ├── mean.svg
│           │   ├── median.svg
│           │   └── t-test.svg
│           ├── index.html
│           ├── MAD.svg
│           ├── mean.svg
│           ├── median.svg
│           ├── pdf_small.svg
│           ├── pdf.svg
│           ├── regression_small.svg
│           ├── regression.svg
│           ├── relative_pdf_small.svg
│           ├── relative_regression_small.svg
│           ├── SD.svg
│           ├── slope.svg
│           └── typical.svg
├── Cargo.lock
├── Cargo.toml
├── cli
│   ├── benchmarks.sh
│   └── reportgen.sh
├── CODEOWNERS
├── CONTRIBUTING.md
├── cyfrinup
│   ├── dynamic_script
│   └── why.md
├── deny.toml
├── dist-workspace.toml
├── funding.json
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── README.md
├── RELEASE_CHECKLIST.md
├── reports
│   ├── adhoc-sol-files-highs-only-report.json
│   ├── adhoc-sol-files-report.md
│   ├── ccip-functions-report.md
│   ├── empty_report.md
│   ├── hardhat-playground-report.md
│   ├── nft-report-icm.md
│   ├── nft-report.md
│   ├── prb-math-report.md
│   ├── report.json
│   ├── report.md
│   ├── report.sarif
│   ├── sablier-aderyn-toml-nested-root.md
│   ├── templegold-report.md
│   └── uniswap_profile.md
├── rust-toolchain.toml
├── rustfmt.toml
├── tests
│   ├── adhoc-sol-files
│   │   ├── aderyn.toml
│   │   ├── Counter.sol
│   │   ├── DemoASTNodes.sol
│   │   ├── Helper.sol
│   │   ├── InconsistentUints.sol
│   │   ├── inheritance
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   └── InheritanceBase.sol
│   │   ├── InternalFunctions.sol
│   │   ├── lib
│   │   │   └── ThisShouldBeExcluded.sol
│   │   ├── multiple-versions
│   │   │   ├── 0.4
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.5
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.6
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.7
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   └── 0.8
│   │   │       ├── A.sol
│   │   │       └── B.sol
│   │   ├── OnceModifierExample.sol
│   │   └── StateVariables.sol
│   ├── ast
│   │   ├── abstract_contract.json
│   │   ├── address_payable.json
│   │   ├── array_type_name.json
│   │   ├── ast-erc4626.json
│   │   ├── base_constructor_call.json
│   │   ├── bit_not.json
│   │   ├── call.json
│   │   ├── constructor.json
│   │   ├── contract_dep_order.json
│   │   ├── do_while.json
│   │   ├── documentation_1.json
│   │   ├── documentation_2.json
│   │   ├── documentation_3.json
│   │   ├── documentation_local_variable.json
│   │   ├── documentation_on_statements.json
│   │   ├── documentation_triple.json
│   │   ├── empty_block.json
│   │   ├── enum_value_declaration.json
│   │   ├── enum_value.json
│   │   ├── event_definition.json
│   │   ├── experimental_encoder_pragma.json
│   │   ├── fallback_and_reveice_ether.json
│   │   ├── fallback_payable.json
│   │   ├── fallback.json
│   │   ├── function_type.json
│   │   ├── function.json
│   │   ├── global_enum.json
│   │   ├── global_struct.json
│   │   ├── inheritance_specifier.json
│   │   ├── leave.json
│   │   ├── license.json
│   │   ├── long_type_name_binary_operation.json
│   │   ├── long_type_name_identifier.json
│   │   ├── loop.json
│   │   ├── mappings.json
│   │   ├── modifier_definition.json
│   │   ├── modifier_invocation.json
│   │   ├── mutability.json
│   │   ├── nested_functions.json
│   │   ├── non_utf8.json
│   │   ├── override.json
│   │   ├── placeholder_statement.json
│   │   ├── receive_ether.json
│   │   ├── short_type_name_ref.json
│   │   ├── short_type_name.json
│   │   ├── slot_offset.json
│   │   ├── smoke.json
│   │   ├── source_location.json
│   │   ├── string.json
│   │   ├── stringlit.json
│   │   ├── switch_default.json
│   │   ├── switch.json
│   │   ├── try_catch.json
│   │   ├── two_base_functions.json
│   │   ├── unicode.json
│   │   ├── used_errors.json
│   │   ├── userDefinedValueType.json
│   │   ├── using_for_directive.json
│   │   ├── var_access.json
│   │   └── yul_hex_literal.json
│   ├── contract-playground
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── dot
│   │   │   └── .gitkeep
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── script
│   │   │   └── Counter.s.sol
│   │   ├── src
│   │   │   ├── AbstractContract.sol
│   │   │   ├── AderynIgnoreCustomDetectors.sol
│   │   │   ├── AdminContract.sol
│   │   │   ├── ArbitraryTransferFrom.sol
│   │   │   ├── AssemblyExample.sol
│   │   │   ├── AssertStateChange.sol
│   │   │   ├── auditor_mode
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   └── PublicFunctionsWithoutSenderCheck.sol
│   │   │   ├── BooleanEquality.sol
│   │   │   ├── BuiltinSymbolShadow.sol
│   │   │   ├── CacheArrayLength.sol
│   │   │   ├── CallGraphTests.sol
│   │   │   ├── Casting.sol
│   │   │   ├── cloc
│   │   │   │   ├── AnotherHeavilyCommentedContract.sol
│   │   │   │   ├── EmptyContractFile.sol
│   │   │   │   └── HeavilyCommentedContract.sol
│   │   │   ├── CompilerBugStorageSignedIntegerArray.sol
│   │   │   ├── ConstantFuncsAssembly.sol
│   │   │   ├── ConstantsLiterals.sol
│   │   │   ├── ConstFuncChangeState.sol
│   │   │   ├── ContractLocksEther.sol
│   │   │   ├── ContractWithTodo.sol
│   │   │   ├── control_flow
│   │   │   │   └── SimpleProgram.sol
│   │   │   ├── CostlyOperationsInsideLoops.sol
│   │   │   ├── Counter.sol
│   │   │   ├── CrazyPragma.sol
│   │   │   ├── DangerousStrictEquality1.sol
│   │   │   ├── DangerousStrictEquality2.sol
│   │   │   ├── DangerousUnaryOperator.sol
│   │   │   ├── DeadCode.sol
│   │   │   ├── DelegateCallWithoutAddressCheck.sol
│   │   │   ├── DeletionNestedMappingStructureContract.sol
│   │   │   ├── DeprecatedOZFunctions.sol
│   │   │   ├── DivisionBeforeMultiplication.sol
│   │   │   ├── DynamicArrayLengthAssignment.sol
│   │   │   ├── EmitAfterExternalCall.sol
│   │   │   ├── EmptyBlocks.sol
│   │   │   ├── EnumerableSetIteration.sol
│   │   │   ├── eth2
│   │   │   │   └── DepositContract.sol
│   │   │   ├── ExperimentalEncoder.sol
│   │   │   ├── ExternalCalls.sol
│   │   │   ├── FunctionInitializingState.sol
│   │   │   ├── FunctionPointers.sol
│   │   │   ├── FunctionSignatureCollision.sol
│   │   │   ├── HugeConstants.sol
│   │   │   ├── IgnoreEverything.sol
│   │   │   ├── InconsistentUints.sol
│   │   │   ├── IncorrectCaretOperator.sol
│   │   │   ├── IncorrectERC20.sol
│   │   │   ├── IncorrectERC721.sol
│   │   │   ├── IncorrectModifier.sol
│   │   │   ├── IncorrectShift.sol
│   │   │   ├── inheritance
│   │   │   │   ├── ExtendedInheritance.sol
│   │   │   │   ├── IContractInheritance.sol
│   │   │   │   └── InheritanceBase.sol
│   │   │   ├── InternalFunctions.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── LocalVariableShadow.sol
│   │   │   ├── MissingInheritance.sol
│   │   │   ├── MisusedBoolean.sol
│   │   │   ├── MsgValueInLoop.sol
│   │   │   ├── MultipleConstructorSchemes.sol
│   │   │   ├── MultiplePlaceholders.sol
│   │   │   ├── nested
│   │   │   │   ├── 1
│   │   │   │   │   └── Nested.sol
│   │   │   │   └── 2
│   │   │   │       └── Nested.sol
│   │   │   ├── nested_mappings
│   │   │   │   ├── LaterVersion.sol
│   │   │   │   └── NestedMappings.sol
│   │   │   ├── OnceModifierExample.sol
│   │   │   ├── OnlyLibrary.sol
│   │   │   ├── OutOfOrderRetryable.sol
│   │   │   ├── parent_chain
│   │   │   │   └── ParentChainContract.sol
│   │   │   ├── PragmaRange.sol
│   │   │   ├── PreDeclaredVarUsage.sol
│   │   │   ├── PublicFunction.sol
│   │   │   ├── PublicVariableReadInExternalContext.sol
│   │   │   ├── RedundantStatements.sol
│   │   │   ├── ReturnBomb.sol
│   │   │   ├── reused_contract_name
│   │   │   │   ├── ContractA.sol
│   │   │   │   └── ContractB.sol
│   │   │   ├── RevertsAndRequriesInLoops.sol
│   │   │   ├── router
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   ├── FallbackAndReceiveOverrides.sol
│   │   │   │   ├── InternalCalls.sol
│   │   │   │   ├── ModifierCalls.sol
│   │   │   │   └── VarOverridesFunction.sol
│   │   │   ├── RTLO.sol
│   │   │   ├── SendEtherNoChecks.sol
│   │   │   ├── SendEtherNoChecksLibImport.sol
│   │   │   ├── StateChangeAfterExternalCall.sol
│   │   │   ├── StateShadowing.sol
│   │   │   ├── StateVariableCouldBeDeclaredConstant.sol
│   │   │   ├── StateVariableCouldBeDeclaredImmutable.sol
│   │   │   ├── StateVariables.sol
│   │   │   ├── StateVariablesChangesWithoutEvents.sol
│   │   │   ├── StateVariablesManipulation.sol
│   │   │   ├── StorageConditionals.sol
│   │   │   ├── StorageParameters.sol
│   │   │   ├── T11sTranferer.sol
│   │   │   ├── TautologicalCompare.sol
│   │   │   ├── TautologyOrContradiction.sol
│   │   │   ├── TestERC20.sol
│   │   │   ├── TransientKeyword.sol
│   │   │   ├── Trump.sol
│   │   │   ├── TxOriginUsedForAuth.sol
│   │   │   ├── U2.sol
│   │   │   ├── U3.sol
│   │   │   ├── U4.sol
│   │   │   ├── U5.sol
│   │   │   ├── UncheckedCalls.sol
│   │   │   ├── UncheckedReturn.sol
│   │   │   ├── UncheckedSend.sol
│   │   │   ├── UninitializedLocalVariables.sol
│   │   │   ├── UninitializedStateVariable.sol
│   │   │   ├── uniswap
│   │   │   │   ├── UniswapV2Swapper.sol
│   │   │   │   └── UniswapV3Swapper.sol
│   │   │   ├── UnprotectedInitialize.sol
│   │   │   ├── UnsafeERC721Mint.sol
│   │   │   ├── UnusedError.sol
│   │   │   ├── UnusedImport.sol
│   │   │   ├── UnusedStateVariables.sol
│   │   │   ├── UsingSelfdestruct.sol
│   │   │   ├── VoidConstructor.sol
│   │   │   ├── WeakRandomness.sol
│   │   │   ├── WrongOrderOfLayout.sol
│   │   │   ├── YulReturn.sol
│   │   │   └── ZeroAddressCheck.sol
│   │   └── test
│   │       └── Counter.t.sol
│   ├── foundry-nft-f23
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── foundry.lock
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── foundry-nft-f23-icm
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── aderyn.toml
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── hardhat-js-playground
│   │   ├── .gitignore
│   │   ├── artifacts
│   │   │   ├── build-info
│   │   │   │   └── cee6fe9a9a2f03f7ff10a27ab2746af6.json
│   │   │   └── contracts
│   │   │       ├── Counter.sol
│   │   │       │   ├── Counter.dbg.json
│   │   │       │   └── Counter.json
│   │   │       ├── ExtendedInheritance.sol
│   │   │       │   ├── ExtendedInheritance.dbg.json
│   │   │       │   └── ExtendedInheritance.json
│   │   │       ├── IContractInheritance.sol
│   │   │       │   ├── IContractInheritance.dbg.json
│   │   │       │   └── IContractInheritance.json
│   │   │       ├── InheritanceBase.sol
│   │   │       │   ├── InheritanceBase.dbg.json
│   │   │       │   └── InheritanceBase.json
│   │   │       ├── KeccakContract.sol
│   │   │       │   ├── KeccakContract.dbg.json
│   │   │       │   └── KeccakContract.json
│   │   │       ├── Lock.sol
│   │   │       │   ├── Lock.dbg.json
│   │   │       │   └── Lock.json
│   │   │       └── StateVariables.sol
│   │   │           ├── StateVariables.dbg.json
│   │   │           └── StateVariables.json
│   │   ├── contracts
│   │   │   ├── Counter.sol
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   ├── InheritanceBase.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── Lock.sol
│   │   │   └── StateVariables.sol
│   │   ├── hardhat.config.js
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── scripts
│   │   │   └── deploy.js
│   │   ├── test
│   │   │   └── Lock.js
│   │   └── yarn.lock
│   ├── no-sol-files
│   │   ├── extra
│   │   │   └── HelloAgain.md
│   │   ├── Hello.txt
│   │   └── Hello.yul
│   └── toml
│       ├── nested_project1
│       │   ├── aderyn.toml
│       │   ├── folder1
│       │   │   └── hardhat.config.ts
│       │   ├── folder2
│       │   │   └── hardhat.config.ts
│       │   └── folder3
│       │       └── file.txt
│       └── nested_project2
│           ├── aderyn.toml
│           ├── folder1
│           │   └── foundry.toml
│           └── folder2
│               └── file1.txt
├── tools
│   └── xtask
│       ├── Cargo.toml
│       └── src
│           ├── blesspr.rs
│           ├── cut_release.rs
│           ├── flags.rs
│           ├── main.rs
│           ├── reportgen.rs
│           └── tomlgen.rs
└── typos.toml
```

# Files

--------------------------------------------------------------------------------
/reports/report.json:
--------------------------------------------------------------------------------

```json
   1 | {
   2 |   "files_summary": {
   3 |     "total_source_units": 126,
   4 |     "total_sloc": 4727
   5 |   },
   6 |   "files_details": {
   7 |     "files_details": [
   8 |       {
   9 |         "file_path": "src/AbstractContract.sol",
  10 |         "n_sloc": 12
  11 |       },
  12 |       {
  13 |         "file_path": "src/AderynIgnoreCustomDetectors.sol",
  14 |         "n_sloc": 17
  15 |       },
  16 |       {
  17 |         "file_path": "src/AdminContract.sol",
  18 |         "n_sloc": 11
  19 |       },
  20 |       {
  21 |         "file_path": "src/ArbitraryTransferFrom.sol",
  22 |         "n_sloc": 37
  23 |       },
  24 |       {
  25 |         "file_path": "src/AssemblyExample.sol",
  26 |         "n_sloc": 9
  27 |       },
  28 |       {
  29 |         "file_path": "src/AssertStateChange.sol",
  30 |         "n_sloc": 11
  31 |       },
  32 |       {
  33 |         "file_path": "src/BooleanEquality.sol",
  34 |         "n_sloc": 27
  35 |       },
  36 |       {
  37 |         "file_path": "src/BuiltinSymbolShadow.sol",
  38 |         "n_sloc": 14
  39 |       },
  40 |       {
  41 |         "file_path": "src/CacheArrayLength.sol",
  42 |         "n_sloc": 38
  43 |       },
  44 |       {
  45 |         "file_path": "src/CallGraphTests.sol",
  46 |         "n_sloc": 49
  47 |       },
  48 |       {
  49 |         "file_path": "src/Casting.sol",
  50 |         "n_sloc": 146
  51 |       },
  52 |       {
  53 |         "file_path": "src/CompilerBugStorageSignedIntegerArray.sol",
  54 |         "n_sloc": 13
  55 |       },
  56 |       {
  57 |         "file_path": "src/ConstFuncChangeState.sol",
  58 |         "n_sloc": 15
  59 |       },
  60 |       {
  61 |         "file_path": "src/ConstantFuncsAssembly.sol",
  62 |         "n_sloc": 26
  63 |       },
  64 |       {
  65 |         "file_path": "src/ConstantsLiterals.sol",
  66 |         "n_sloc": 28
  67 |       },
  68 |       {
  69 |         "file_path": "src/ContractLocksEther.sol",
  70 |         "n_sloc": 142
  71 |       },
  72 |       {
  73 |         "file_path": "src/ContractWithTodo.sol",
  74 |         "n_sloc": 7
  75 |       },
  76 |       {
  77 |         "file_path": "src/CostlyOperationsInsideLoops.sol",
  78 |         "n_sloc": 17
  79 |       },
  80 |       {
  81 |         "file_path": "src/Counter.sol",
  82 |         "n_sloc": 20
  83 |       },
  84 |       {
  85 |         "file_path": "src/CrazyPragma.sol",
  86 |         "n_sloc": 4
  87 |       },
  88 |       {
  89 |         "file_path": "src/DangerousStrictEquality1.sol",
  90 |         "n_sloc": 6
  91 |       },
  92 |       {
  93 |         "file_path": "src/DangerousStrictEquality2.sol",
  94 |         "n_sloc": 9
  95 |       },
  96 |       {
  97 |         "file_path": "src/DangerousUnaryOperator.sol",
  98 |         "n_sloc": 13
  99 |       },
 100 |       {
 101 |         "file_path": "src/DeadCode.sol",
 102 |         "n_sloc": 23
 103 |       },
 104 |       {
 105 |         "file_path": "src/DelegateCallWithoutAddressCheck.sol",
 106 |         "n_sloc": 31
 107 |       },
 108 |       {
 109 |         "file_path": "src/DeletionNestedMappingStructureContract.sol",
 110 |         "n_sloc": 11
 111 |       },
 112 |       {
 113 |         "file_path": "src/DeprecatedOZFunctions.sol",
 114 |         "n_sloc": 32
 115 |       },
 116 |       {
 117 |         "file_path": "src/DivisionBeforeMultiplication.sol",
 118 |         "n_sloc": 22
 119 |       },
 120 |       {
 121 |         "file_path": "src/DynamicArrayLengthAssignment.sol",
 122 |         "n_sloc": 16
 123 |       },
 124 |       {
 125 |         "file_path": "src/EmitAfterExternalCall.sol",
 126 |         "n_sloc": 67
 127 |       },
 128 |       {
 129 |         "file_path": "src/EmptyBlocks.sol",
 130 |         "n_sloc": 48
 131 |       },
 132 |       {
 133 |         "file_path": "src/EnumerableSetIteration.sol",
 134 |         "n_sloc": 55
 135 |       },
 136 |       {
 137 |         "file_path": "src/ExperimentalEncoder.sol",
 138 |         "n_sloc": 4
 139 |       },
 140 |       {
 141 |         "file_path": "src/ExternalCalls.sol",
 142 |         "n_sloc": 60
 143 |       },
 144 |       {
 145 |         "file_path": "src/FunctionInitializingState.sol",
 146 |         "n_sloc": 49
 147 |       },
 148 |       {
 149 |         "file_path": "src/FunctionPointers.sol",
 150 |         "n_sloc": 10
 151 |       },
 152 |       {
 153 |         "file_path": "src/FunctionSignatureCollision.sol",
 154 |         "n_sloc": 9
 155 |       },
 156 |       {
 157 |         "file_path": "src/HugeConstants.sol",
 158 |         "n_sloc": 36
 159 |       },
 160 |       {
 161 |         "file_path": "src/IgnoreEverything.sol",
 162 |         "n_sloc": 5
 163 |       },
 164 |       {
 165 |         "file_path": "src/InconsistentUints.sol",
 166 |         "n_sloc": 17
 167 |       },
 168 |       {
 169 |         "file_path": "src/IncorrectCaretOperator.sol",
 170 |         "n_sloc": 16
 171 |       },
 172 |       {
 173 |         "file_path": "src/IncorrectERC20.sol",
 174 |         "n_sloc": 98
 175 |       },
 176 |       {
 177 |         "file_path": "src/IncorrectERC721.sol",
 178 |         "n_sloc": 238
 179 |       },
 180 |       {
 181 |         "file_path": "src/IncorrectModifier.sol",
 182 |         "n_sloc": 65
 183 |       },
 184 |       {
 185 |         "file_path": "src/IncorrectShift.sol",
 186 |         "n_sloc": 17
 187 |       },
 188 |       {
 189 |         "file_path": "src/InternalFunctions.sol",
 190 |         "n_sloc": 22
 191 |       },
 192 |       {
 193 |         "file_path": "src/KeccakContract.sol",
 194 |         "n_sloc": 21
 195 |       },
 196 |       {
 197 |         "file_path": "src/LocalVariableShadow.sol",
 198 |         "n_sloc": 23
 199 |       },
 200 |       {
 201 |         "file_path": "src/MissingInheritance.sol",
 202 |         "n_sloc": 39
 203 |       },
 204 |       {
 205 |         "file_path": "src/MisusedBoolean.sol",
 206 |         "n_sloc": 67
 207 |       },
 208 |       {
 209 |         "file_path": "src/MsgValueInLoop.sol",
 210 |         "n_sloc": 55
 211 |       },
 212 |       {
 213 |         "file_path": "src/MultipleConstructorSchemes.sol",
 214 |         "n_sloc": 10
 215 |       },
 216 |       {
 217 |         "file_path": "src/MultiplePlaceholders.sol",
 218 |         "n_sloc": 40
 219 |       },
 220 |       {
 221 |         "file_path": "src/OnceModifierExample.sol",
 222 |         "n_sloc": 8
 223 |       },
 224 |       {
 225 |         "file_path": "src/OnlyLibrary.sol",
 226 |         "n_sloc": 2
 227 |       },
 228 |       {
 229 |         "file_path": "src/OutOfOrderRetryable.sol",
 230 |         "n_sloc": 165
 231 |       },
 232 |       {
 233 |         "file_path": "src/PragmaRange.sol",
 234 |         "n_sloc": 6
 235 |       },
 236 |       {
 237 |         "file_path": "src/PreDeclaredVarUsage.sol",
 238 |         "n_sloc": 9
 239 |       },
 240 |       {
 241 |         "file_path": "src/PublicFunction.sol",
 242 |         "n_sloc": 15
 243 |       },
 244 |       {
 245 |         "file_path": "src/PublicVariableReadInExternalContext.sol",
 246 |         "n_sloc": 32
 247 |       },
 248 |       {
 249 |         "file_path": "src/RTLO.sol",
 250 |         "n_sloc": 7
 251 |       },
 252 |       {
 253 |         "file_path": "src/RedundantStatements.sol",
 254 |         "n_sloc": 14
 255 |       },
 256 |       {
 257 |         "file_path": "src/ReturnBomb.sol",
 258 |         "n_sloc": 44
 259 |       },
 260 |       {
 261 |         "file_path": "src/RevertsAndRequriesInLoops.sol",
 262 |         "n_sloc": 27
 263 |       },
 264 |       {
 265 |         "file_path": "src/SendEtherNoChecks.sol",
 266 |         "n_sloc": 58
 267 |       },
 268 |       {
 269 |         "file_path": "src/SendEtherNoChecksLibImport.sol",
 270 |         "n_sloc": 17
 271 |       },
 272 |       {
 273 |         "file_path": "src/StateChangeAfterExternalCall.sol",
 274 |         "n_sloc": 54
 275 |       },
 276 |       {
 277 |         "file_path": "src/StateShadowing.sol",
 278 |         "n_sloc": 17
 279 |       },
 280 |       {
 281 |         "file_path": "src/StateVariableCouldBeDeclaredConstant.sol",
 282 |         "n_sloc": 27
 283 |       },
 284 |       {
 285 |         "file_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
 286 |         "n_sloc": 22
 287 |       },
 288 |       {
 289 |         "file_path": "src/StateVariables.sol",
 290 |         "n_sloc": 58
 291 |       },
 292 |       {
 293 |         "file_path": "src/StateVariablesChangesWithoutEvents.sol",
 294 |         "n_sloc": 80
 295 |       },
 296 |       {
 297 |         "file_path": "src/StateVariablesManipulation.sol",
 298 |         "n_sloc": 250
 299 |       },
 300 |       {
 301 |         "file_path": "src/StorageConditionals.sol",
 302 |         "n_sloc": 59
 303 |       },
 304 |       {
 305 |         "file_path": "src/StorageParameters.sol",
 306 |         "n_sloc": 16
 307 |       },
 308 |       {
 309 |         "file_path": "src/T11sTranferer.sol",
 310 |         "n_sloc": 8
 311 |       },
 312 |       {
 313 |         "file_path": "src/TautologicalCompare.sol",
 314 |         "n_sloc": 17
 315 |       },
 316 |       {
 317 |         "file_path": "src/TautologyOrContradiction.sol",
 318 |         "n_sloc": 11
 319 |       },
 320 |       {
 321 |         "file_path": "src/TestERC20.sol",
 322 |         "n_sloc": 62
 323 |       },
 324 |       {
 325 |         "file_path": "src/TransientKeyword.sol",
 326 |         "n_sloc": 10
 327 |       },
 328 |       {
 329 |         "file_path": "src/Trump.sol",
 330 |         "n_sloc": 281
 331 |       },
 332 |       {
 333 |         "file_path": "src/TxOriginUsedForAuth.sol",
 334 |         "n_sloc": 43
 335 |       },
 336 |       {
 337 |         "file_path": "src/U2.sol",
 338 |         "n_sloc": 3
 339 |       },
 340 |       {
 341 |         "file_path": "src/U3.sol",
 342 |         "n_sloc": 2
 343 |       },
 344 |       {
 345 |         "file_path": "src/U4.sol",
 346 |         "n_sloc": 3
 347 |       },
 348 |       {
 349 |         "file_path": "src/U5.sol",
 350 |         "n_sloc": 6
 351 |       },
 352 |       {
 353 |         "file_path": "src/UncheckedCalls.sol",
 354 |         "n_sloc": 24
 355 |       },
 356 |       {
 357 |         "file_path": "src/UncheckedReturn.sol",
 358 |         "n_sloc": 33
 359 |       },
 360 |       {
 361 |         "file_path": "src/UncheckedSend.sol",
 362 |         "n_sloc": 18
 363 |       },
 364 |       {
 365 |         "file_path": "src/UninitializedLocalVariables.sol",
 366 |         "n_sloc": 62
 367 |       },
 368 |       {
 369 |         "file_path": "src/UninitializedStateVariable.sol",
 370 |         "n_sloc": 29
 371 |       },
 372 |       {
 373 |         "file_path": "src/UnprotectedInitialize.sol",
 374 |         "n_sloc": 44
 375 |       },
 376 |       {
 377 |         "file_path": "src/UnsafeERC721Mint.sol",
 378 |         "n_sloc": 18
 379 |       },
 380 |       {
 381 |         "file_path": "src/UnusedError.sol",
 382 |         "n_sloc": 23
 383 |       },
 384 |       {
 385 |         "file_path": "src/UnusedImport.sol",
 386 |         "n_sloc": 10
 387 |       },
 388 |       {
 389 |         "file_path": "src/UnusedStateVariables.sol",
 390 |         "n_sloc": 12
 391 |       },
 392 |       {
 393 |         "file_path": "src/UsingSelfdestruct.sol",
 394 |         "n_sloc": 6
 395 |       },
 396 |       {
 397 |         "file_path": "src/VoidConstructor.sol",
 398 |         "n_sloc": 21
 399 |       },
 400 |       {
 401 |         "file_path": "src/WeakRandomness.sol",
 402 |         "n_sloc": 59
 403 |       },
 404 |       {
 405 |         "file_path": "src/WrongOrderOfLayout.sol",
 406 |         "n_sloc": 13
 407 |       },
 408 |       {
 409 |         "file_path": "src/YulReturn.sol",
 410 |         "n_sloc": 8
 411 |       },
 412 |       {
 413 |         "file_path": "src/ZeroAddressCheck.sol",
 414 |         "n_sloc": 41
 415 |       },
 416 |       {
 417 |         "file_path": "src/auditor_mode/ExternalCalls.sol",
 418 |         "n_sloc": 65
 419 |       },
 420 |       {
 421 |         "file_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
 422 |         "n_sloc": 45
 423 |       },
 424 |       {
 425 |         "file_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
 426 |         "n_sloc": 32
 427 |       },
 428 |       {
 429 |         "file_path": "src/cloc/EmptyContractFile.sol",
 430 |         "n_sloc": 0
 431 |       },
 432 |       {
 433 |         "file_path": "src/cloc/HeavilyCommentedContract.sol",
 434 |         "n_sloc": 21
 435 |       },
 436 |       {
 437 |         "file_path": "src/control_flow/SimpleProgram.sol",
 438 |         "n_sloc": 188
 439 |       },
 440 |       {
 441 |         "file_path": "src/eth2/DepositContract.sol",
 442 |         "n_sloc": 96
 443 |       },
 444 |       {
 445 |         "file_path": "src/inheritance/ExtendedInheritance.sol",
 446 |         "n_sloc": 18
 447 |       },
 448 |       {
 449 |         "file_path": "src/inheritance/IContractInheritance.sol",
 450 |         "n_sloc": 4
 451 |       },
 452 |       {
 453 |         "file_path": "src/inheritance/InheritanceBase.sol",
 454 |         "n_sloc": 12
 455 |       },
 456 |       {
 457 |         "file_path": "src/nested/1/Nested.sol",
 458 |         "n_sloc": 10
 459 |       },
 460 |       {
 461 |         "file_path": "src/nested/2/Nested.sol",
 462 |         "n_sloc": 7
 463 |       },
 464 |       {
 465 |         "file_path": "src/nested_mappings/LaterVersion.sol",
 466 |         "n_sloc": 10
 467 |       },
 468 |       {
 469 |         "file_path": "src/nested_mappings/NestedMappings.sol",
 470 |         "n_sloc": 10
 471 |       },
 472 |       {
 473 |         "file_path": "src/parent_chain/ParentChainContract.sol",
 474 |         "n_sloc": 29
 475 |       },
 476 |       {
 477 |         "file_path": "src/reused_contract_name/ContractA.sol",
 478 |         "n_sloc": 7
 479 |       },
 480 |       {
 481 |         "file_path": "src/reused_contract_name/ContractB.sol",
 482 |         "n_sloc": 7
 483 |       },
 484 |       {
 485 |         "file_path": "src/router/ExternalCalls.sol",
 486 |         "n_sloc": 30
 487 |       },
 488 |       {
 489 |         "file_path": "src/router/FallbackAndReceiveOverrides.sol",
 490 |         "n_sloc": 17
 491 |       },
 492 |       {
 493 |         "file_path": "src/router/InternalCalls.sol",
 494 |         "n_sloc": 135
 495 |       },
 496 |       {
 497 |         "file_path": "src/router/ModifierCalls.sol",
 498 |         "n_sloc": 33
 499 |       },
 500 |       {
 501 |         "file_path": "src/router/VarOverridesFunction.sol",
 502 |         "n_sloc": 20
 503 |       },
 504 |       {
 505 |         "file_path": "src/uniswap/UniswapV2Swapper.sol",
 506 |         "n_sloc": 50
 507 |       },
 508 |       {
 509 |         "file_path": "src/uniswap/UniswapV3Swapper.sol",
 510 |         "n_sloc": 150
 511 |       }
 512 |     ]
 513 |   },
 514 |   "issue_count": {
 515 |     "high": 39,
 516 |     "low": 48
 517 |   },
 518 |   "high_issues": {
 519 |     "issues": [
 520 |       {
 521 |         "title": "`abi.encodePacked()` Hash Collision",
 522 |         "description": "abi.encodePacked() should not be used with dynamic types when passing the result to a hash function such as `keccak256()`. Use `abi.encode()` instead which will pad items to 32 bytes, preventing hash collisions: https://docs.soliditylang.org/en/v0.8.13/abi-spec.html#non-standard-packed-mode. (e.g. `abi.encodePacked(0x123,0x456)` => `0x123456` => `abi.encodePacked(0x1,0x23456)`, but `abi.encode(0x123,0x456)` => `0x0...1230...456`). Unless there is a compelling reason, `abi.encode` should be preferred. If there is only one argument to `abi.encodePacked()` it can often be cast to `bytes()` or `bytes32()` instead: https://ethereum.stackexchange.com/questions/30912/how-to-compare-strings-in-solidity#answer-82739. If all arguments are strings and or bytes, `bytes.concat()` should be used instead.",
 523 |         "detector_name": "abi-encode-packed-hash-collision",
 524 |         "instances": [
 525 |           {
 526 |             "contract_path": "src/KeccakContract.sol",
 527 |             "line_no": 18,
 528 |             "src": "587:16",
 529 |             "src_char": "587:16"
 530 |           },
 531 |           {
 532 |             "contract_path": "src/KeccakContract.sol",
 533 |             "line_no": 22,
 534 |             "src": "734:16",
 535 |             "src_char": "734:16"
 536 |           },
 537 |           {
 538 |             "contract_path": "src/KeccakContract.sol",
 539 |             "line_no": 26,
 540 |             "src": "887:16",
 541 |             "src_char": "887:16"
 542 |           }
 543 |         ]
 544 |       },
 545 |       {
 546 |         "title": "Arbitrary `from` Passed to `transferFrom`",
 547 |         "description": "Passing an arbitrary `from` address to `transferFrom` (or `safeTransferFrom`) can lead to loss of funds, because anyone can transfer tokens from the `from` address if an approval is made.",
 548 |         "detector_name": "arbitrary-transfer-from",
 549 |         "instances": [
 550 |           {
 551 |             "contract_path": "src/ArbitraryTransferFrom.sol",
 552 |             "line_no": 24,
 553 |             "src": "738:42",
 554 |             "src_char": "738:42"
 555 |           },
 556 |           {
 557 |             "contract_path": "src/ArbitraryTransferFrom.sol",
 558 |             "line_no": 29,
 559 |             "src": "879:53",
 560 |             "src_char": "879:53"
 561 |           },
 562 |           {
 563 |             "contract_path": "src/DeprecatedOZFunctions.sol",
 564 |             "line_no": 17,
 565 |             "src": "579:39",
 566 |             "src_char": "579:39"
 567 |           },
 568 |           {
 569 |             "contract_path": "src/DeprecatedOZFunctions.sol",
 570 |             "line_no": 47,
 571 |             "src": "1598:35",
 572 |             "src_char": "1598:35"
 573 |           }
 574 |         ]
 575 |       },
 576 |       {
 577 |         "title": "Unprotected initializer",
 578 |         "description": "Consider protecting the initializer functions with modifiers.",
 579 |         "detector_name": "unprotected-initializer",
 580 |         "instances": [
 581 |           {
 582 |             "contract_path": "src/UnprotectedInitialize.sol",
 583 |             "line_no": 37,
 584 |             "src": "916:33",
 585 |             "src_char": "916:33"
 586 |           },
 587 |           {
 588 |             "contract_path": "src/UnprotectedInitialize.sol",
 589 |             "line_no": 70,
 590 |             "src": "1798:27",
 591 |             "src_char": "1798:27"
 592 |           }
 593 |         ]
 594 |       },
 595 |       {
 596 |         "title": "Unsafe Casting of integers",
 597 |         "description": "Downcasting int/uints in Solidity can be unsafe due to the potential for data loss and unintended behavior.When downcasting a larger integer type to a smaller one (e.g., uint256 to uint128), the value may exceed the range of the target type,leading to truncation and loss of significant digits. Use OpenZeppelin's SafeCast library to safely downcast integers.",
 598 |         "detector_name": "unsafe-casting",
 599 |         "instances": [
 600 |           {
 601 |             "contract_path": "src/Casting.sol",
 602 |             "line_no": 42,
 603 |             "src": "1127:10",
 604 |             "src_char": "1127:10"
 605 |           },
 606 |           {
 607 |             "contract_path": "src/Casting.sol",
 608 |             "line_no": 43,
 609 |             "src": "1159:10",
 610 |             "src_char": "1159:10"
 611 |           },
 612 |           {
 613 |             "contract_path": "src/Casting.sol",
 614 |             "line_no": 44,
 615 |             "src": "1191:10",
 616 |             "src_char": "1191:10"
 617 |           },
 618 |           {
 619 |             "contract_path": "src/Casting.sol",
 620 |             "line_no": 45,
 621 |             "src": "1223:10",
 622 |             "src_char": "1223:10"
 623 |           },
 624 |           {
 625 |             "contract_path": "src/Casting.sol",
 626 |             "line_no": 46,
 627 |             "src": "1255:10",
 628 |             "src_char": "1255:10"
 629 |           },
 630 |           {
 631 |             "contract_path": "src/Casting.sol",
 632 |             "line_no": 47,
 633 |             "src": "1287:10",
 634 |             "src_char": "1287:10"
 635 |           },
 636 |           {
 637 |             "contract_path": "src/Casting.sol",
 638 |             "line_no": 48,
 639 |             "src": "1319:10",
 640 |             "src_char": "1319:10"
 641 |           },
 642 |           {
 643 |             "contract_path": "src/Casting.sol",
 644 |             "line_no": 49,
 645 |             "src": "1351:10",
 646 |             "src_char": "1351:10"
 647 |           },
 648 |           {
 649 |             "contract_path": "src/Casting.sol",
 650 |             "line_no": 50,
 651 |             "src": "1383:10",
 652 |             "src_char": "1383:10"
 653 |           },
 654 |           {
 655 |             "contract_path": "src/Casting.sol",
 656 |             "line_no": 51,
 657 |             "src": "1415:10",
 658 |             "src_char": "1415:10"
 659 |           },
 660 |           {
 661 |             "contract_path": "src/Casting.sol",
 662 |             "line_no": 52,
 663 |             "src": "1447:10",
 664 |             "src_char": "1447:10"
 665 |           },
 666 |           {
 667 |             "contract_path": "src/Casting.sol",
 668 |             "line_no": 53,
 669 |             "src": "1479:10",
 670 |             "src_char": "1479:10"
 671 |           },
 672 |           {
 673 |             "contract_path": "src/Casting.sol",
 674 |             "line_no": 54,
 675 |             "src": "1511:10",
 676 |             "src_char": "1511:10"
 677 |           },
 678 |           {
 679 |             "contract_path": "src/Casting.sol",
 680 |             "line_no": 55,
 681 |             "src": "1543:10",
 682 |             "src_char": "1543:10"
 683 |           },
 684 |           {
 685 |             "contract_path": "src/Casting.sol",
 686 |             "line_no": 56,
 687 |             "src": "1575:10",
 688 |             "src_char": "1575:10"
 689 |           },
 690 |           {
 691 |             "contract_path": "src/Casting.sol",
 692 |             "line_no": 57,
 693 |             "src": "1607:10",
 694 |             "src_char": "1607:10"
 695 |           },
 696 |           {
 697 |             "contract_path": "src/Casting.sol",
 698 |             "line_no": 58,
 699 |             "src": "1639:10",
 700 |             "src_char": "1639:10"
 701 |           },
 702 |           {
 703 |             "contract_path": "src/Casting.sol",
 704 |             "line_no": 59,
 705 |             "src": "1671:10",
 706 |             "src_char": "1671:10"
 707 |           },
 708 |           {
 709 |             "contract_path": "src/Casting.sol",
 710 |             "line_no": 60,
 711 |             "src": "1703:10",
 712 |             "src_char": "1703:10"
 713 |           },
 714 |           {
 715 |             "contract_path": "src/Casting.sol",
 716 |             "line_no": 61,
 717 |             "src": "1734:9",
 718 |             "src_char": "1734:9"
 719 |           },
 720 |           {
 721 |             "contract_path": "src/Casting.sol",
 722 |             "line_no": 62,
 723 |             "src": "1764:9",
 724 |             "src_char": "1764:9"
 725 |           },
 726 |           {
 727 |             "contract_path": "src/Casting.sol",
 728 |             "line_no": 63,
 729 |             "src": "1794:9",
 730 |             "src_char": "1794:9"
 731 |           },
 732 |           {
 733 |             "contract_path": "src/Casting.sol",
 734 |             "line_no": 64,
 735 |             "src": "1824:9",
 736 |             "src_char": "1824:9"
 737 |           },
 738 |           {
 739 |             "contract_path": "src/Casting.sol",
 740 |             "line_no": 65,
 741 |             "src": "1854:9",
 742 |             "src_char": "1854:9"
 743 |           },
 744 |           {
 745 |             "contract_path": "src/Casting.sol",
 746 |             "line_no": 66,
 747 |             "src": "1884:9",
 748 |             "src_char": "1884:9"
 749 |           },
 750 |           {
 751 |             "contract_path": "src/Casting.sol",
 752 |             "line_no": 67,
 753 |             "src": "1915:9",
 754 |             "src_char": "1915:9"
 755 |           },
 756 |           {
 757 |             "contract_path": "src/Casting.sol",
 758 |             "line_no": 68,
 759 |             "src": "1946:10",
 760 |             "src_char": "1946:10"
 761 |           },
 762 |           {
 763 |             "contract_path": "src/Casting.sol",
 764 |             "line_no": 69,
 765 |             "src": "1978:10",
 766 |             "src_char": "1978:10"
 767 |           },
 768 |           {
 769 |             "contract_path": "src/Casting.sol",
 770 |             "line_no": 70,
 771 |             "src": "2010:10",
 772 |             "src_char": "2010:10"
 773 |           },
 774 |           {
 775 |             "contract_path": "src/Casting.sol",
 776 |             "line_no": 71,
 777 |             "src": "2042:10",
 778 |             "src_char": "2042:10"
 779 |           },
 780 |           {
 781 |             "contract_path": "src/Casting.sol",
 782 |             "line_no": 72,
 783 |             "src": "2075:9",
 784 |             "src_char": "2075:9"
 785 |           },
 786 |           {
 787 |             "contract_path": "src/Casting.sol",
 788 |             "line_no": 80,
 789 |             "src": "2304:9",
 790 |             "src_char": "2304:9"
 791 |           },
 792 |           {
 793 |             "contract_path": "src/Casting.sol",
 794 |             "line_no": 81,
 795 |             "src": "2334:9",
 796 |             "src_char": "2334:9"
 797 |           },
 798 |           {
 799 |             "contract_path": "src/Casting.sol",
 800 |             "line_no": 82,
 801 |             "src": "2364:9",
 802 |             "src_char": "2364:9"
 803 |           },
 804 |           {
 805 |             "contract_path": "src/Casting.sol",
 806 |             "line_no": 83,
 807 |             "src": "2394:9",
 808 |             "src_char": "2394:9"
 809 |           },
 810 |           {
 811 |             "contract_path": "src/Casting.sol",
 812 |             "line_no": 84,
 813 |             "src": "2424:9",
 814 |             "src_char": "2424:9"
 815 |           },
 816 |           {
 817 |             "contract_path": "src/Casting.sol",
 818 |             "line_no": 85,
 819 |             "src": "2454:9",
 820 |             "src_char": "2454:9"
 821 |           },
 822 |           {
 823 |             "contract_path": "src/Casting.sol",
 824 |             "line_no": 86,
 825 |             "src": "2484:9",
 826 |             "src_char": "2484:9"
 827 |           },
 828 |           {
 829 |             "contract_path": "src/Casting.sol",
 830 |             "line_no": 87,
 831 |             "src": "2514:9",
 832 |             "src_char": "2514:9"
 833 |           },
 834 |           {
 835 |             "contract_path": "src/Casting.sol",
 836 |             "line_no": 88,
 837 |             "src": "2544:9",
 838 |             "src_char": "2544:9"
 839 |           },
 840 |           {
 841 |             "contract_path": "src/Casting.sol",
 842 |             "line_no": 89,
 843 |             "src": "2574:9",
 844 |             "src_char": "2574:9"
 845 |           },
 846 |           {
 847 |             "contract_path": "src/Casting.sol",
 848 |             "line_no": 90,
 849 |             "src": "2604:9",
 850 |             "src_char": "2604:9"
 851 |           },
 852 |           {
 853 |             "contract_path": "src/Casting.sol",
 854 |             "line_no": 91,
 855 |             "src": "2634:9",
 856 |             "src_char": "2634:9"
 857 |           },
 858 |           {
 859 |             "contract_path": "src/Casting.sol",
 860 |             "line_no": 92,
 861 |             "src": "2664:9",
 862 |             "src_char": "2664:9"
 863 |           },
 864 |           {
 865 |             "contract_path": "src/Casting.sol",
 866 |             "line_no": 93,
 867 |             "src": "2694:9",
 868 |             "src_char": "2694:9"
 869 |           },
 870 |           {
 871 |             "contract_path": "src/Casting.sol",
 872 |             "line_no": 94,
 873 |             "src": "2724:9",
 874 |             "src_char": "2724:9"
 875 |           },
 876 |           {
 877 |             "contract_path": "src/Casting.sol",
 878 |             "line_no": 95,
 879 |             "src": "2754:9",
 880 |             "src_char": "2754:9"
 881 |           },
 882 |           {
 883 |             "contract_path": "src/Casting.sol",
 884 |             "line_no": 96,
 885 |             "src": "2784:9",
 886 |             "src_char": "2784:9"
 887 |           },
 888 |           {
 889 |             "contract_path": "src/Casting.sol",
 890 |             "line_no": 97,
 891 |             "src": "2814:9",
 892 |             "src_char": "2814:9"
 893 |           },
 894 |           {
 895 |             "contract_path": "src/Casting.sol",
 896 |             "line_no": 98,
 897 |             "src": "2844:9",
 898 |             "src_char": "2844:9"
 899 |           },
 900 |           {
 901 |             "contract_path": "src/Casting.sol",
 902 |             "line_no": 99,
 903 |             "src": "2873:8",
 904 |             "src_char": "2873:8"
 905 |           },
 906 |           {
 907 |             "contract_path": "src/Casting.sol",
 908 |             "line_no": 100,
 909 |             "src": "2901:8",
 910 |             "src_char": "2901:8"
 911 |           },
 912 |           {
 913 |             "contract_path": "src/Casting.sol",
 914 |             "line_no": 101,
 915 |             "src": "2929:8",
 916 |             "src_char": "2929:8"
 917 |           },
 918 |           {
 919 |             "contract_path": "src/Casting.sol",
 920 |             "line_no": 102,
 921 |             "src": "2957:8",
 922 |             "src_char": "2957:8"
 923 |           },
 924 |           {
 925 |             "contract_path": "src/Casting.sol",
 926 |             "line_no": 103,
 927 |             "src": "2985:8",
 928 |             "src_char": "2985:8"
 929 |           },
 930 |           {
 931 |             "contract_path": "src/Casting.sol",
 932 |             "line_no": 104,
 933 |             "src": "3013:8",
 934 |             "src_char": "3013:8"
 935 |           },
 936 |           {
 937 |             "contract_path": "src/Casting.sol",
 938 |             "line_no": 105,
 939 |             "src": "3042:8",
 940 |             "src_char": "3042:8"
 941 |           },
 942 |           {
 943 |             "contract_path": "src/Casting.sol",
 944 |             "line_no": 106,
 945 |             "src": "3071:9",
 946 |             "src_char": "3071:9"
 947 |           },
 948 |           {
 949 |             "contract_path": "src/Casting.sol",
 950 |             "line_no": 107,
 951 |             "src": "3101:9",
 952 |             "src_char": "3101:9"
 953 |           },
 954 |           {
 955 |             "contract_path": "src/Casting.sol",
 956 |             "line_no": 108,
 957 |             "src": "3131:9",
 958 |             "src_char": "3131:9"
 959 |           },
 960 |           {
 961 |             "contract_path": "src/Casting.sol",
 962 |             "line_no": 109,
 963 |             "src": "3161:9",
 964 |             "src_char": "3161:9"
 965 |           },
 966 |           {
 967 |             "contract_path": "src/Casting.sol",
 968 |             "line_no": 110,
 969 |             "src": "3192:8",
 970 |             "src_char": "3192:8"
 971 |           },
 972 |           {
 973 |             "contract_path": "src/Casting.sol",
 974 |             "line_no": 118,
 975 |             "src": "3488:10",
 976 |             "src_char": "3488:10"
 977 |           },
 978 |           {
 979 |             "contract_path": "src/Casting.sol",
 980 |             "line_no": 119,
 981 |             "src": "3520:10",
 982 |             "src_char": "3520:10"
 983 |           },
 984 |           {
 985 |             "contract_path": "src/Casting.sol",
 986 |             "line_no": 120,
 987 |             "src": "3552:10",
 988 |             "src_char": "3552:10"
 989 |           },
 990 |           {
 991 |             "contract_path": "src/Casting.sol",
 992 |             "line_no": 121,
 993 |             "src": "3584:10",
 994 |             "src_char": "3584:10"
 995 |           },
 996 |           {
 997 |             "contract_path": "src/Casting.sol",
 998 |             "line_no": 122,
 999 |             "src": "3616:10",
1000 |             "src_char": "3616:10"
1001 |           },
1002 |           {
1003 |             "contract_path": "src/Casting.sol",
1004 |             "line_no": 123,
1005 |             "src": "3648:10",
1006 |             "src_char": "3648:10"
1007 |           },
1008 |           {
1009 |             "contract_path": "src/Casting.sol",
1010 |             "line_no": 124,
1011 |             "src": "3680:10",
1012 |             "src_char": "3680:10"
1013 |           },
1014 |           {
1015 |             "contract_path": "src/Casting.sol",
1016 |             "line_no": 125,
1017 |             "src": "3712:10",
1018 |             "src_char": "3712:10"
1019 |           },
1020 |           {
1021 |             "contract_path": "src/Casting.sol",
1022 |             "line_no": 126,
1023 |             "src": "3744:10",
1024 |             "src_char": "3744:10"
1025 |           },
1026 |           {
1027 |             "contract_path": "src/Casting.sol",
1028 |             "line_no": 127,
1029 |             "src": "3776:10",
1030 |             "src_char": "3776:10"
1031 |           },
1032 |           {
1033 |             "contract_path": "src/Casting.sol",
1034 |             "line_no": 128,
1035 |             "src": "3808:10",
1036 |             "src_char": "3808:10"
1037 |           },
1038 |           {
1039 |             "contract_path": "src/Casting.sol",
1040 |             "line_no": 129,
1041 |             "src": "3840:10",
1042 |             "src_char": "3840:10"
1043 |           },
1044 |           {
1045 |             "contract_path": "src/Casting.sol",
1046 |             "line_no": 130,
1047 |             "src": "3872:10",
1048 |             "src_char": "3872:10"
1049 |           },
1050 |           {
1051 |             "contract_path": "src/Casting.sol",
1052 |             "line_no": 131,
1053 |             "src": "3904:10",
1054 |             "src_char": "3904:10"
1055 |           },
1056 |           {
1057 |             "contract_path": "src/Casting.sol",
1058 |             "line_no": 132,
1059 |             "src": "3936:10",
1060 |             "src_char": "3936:10"
1061 |           },
1062 |           {
1063 |             "contract_path": "src/Casting.sol",
1064 |             "line_no": 133,
1065 |             "src": "3968:10",
1066 |             "src_char": "3968:10"
1067 |           },
1068 |           {
1069 |             "contract_path": "src/Casting.sol",
1070 |             "line_no": 134,
1071 |             "src": "4000:10",
1072 |             "src_char": "4000:10"
1073 |           },
1074 |           {
1075 |             "contract_path": "src/Casting.sol",
1076 |             "line_no": 135,
1077 |             "src": "4032:10",
1078 |             "src_char": "4032:10"
1079 |           },
1080 |           {
1081 |             "contract_path": "src/Casting.sol",
1082 |             "line_no": 136,
1083 |             "src": "4064:10",
1084 |             "src_char": "4064:10"
1085 |           },
1086 |           {
1087 |             "contract_path": "src/Casting.sol",
1088 |             "line_no": 137,
1089 |             "src": "4096:10",
1090 |             "src_char": "4096:10"
1091 |           },
1092 |           {
1093 |             "contract_path": "src/Casting.sol",
1094 |             "line_no": 138,
1095 |             "src": "4128:10",
1096 |             "src_char": "4128:10"
1097 |           },
1098 |           {
1099 |             "contract_path": "src/Casting.sol",
1100 |             "line_no": 139,
1101 |             "src": "4160:10",
1102 |             "src_char": "4160:10"
1103 |           },
1104 |           {
1105 |             "contract_path": "src/Casting.sol",
1106 |             "line_no": 140,
1107 |             "src": "4191:9",
1108 |             "src_char": "4191:9"
1109 |           },
1110 |           {
1111 |             "contract_path": "src/Casting.sol",
1112 |             "line_no": 141,
1113 |             "src": "4221:9",
1114 |             "src_char": "4221:9"
1115 |           },
1116 |           {
1117 |             "contract_path": "src/Casting.sol",
1118 |             "line_no": 142,
1119 |             "src": "4251:9",
1120 |             "src_char": "4251:9"
1121 |           },
1122 |           {
1123 |             "contract_path": "src/Casting.sol",
1124 |             "line_no": 143,
1125 |             "src": "4282:9",
1126 |             "src_char": "4282:9"
1127 |           },
1128 |           {
1129 |             "contract_path": "src/Casting.sol",
1130 |             "line_no": 144,
1131 |             "src": "4313:10",
1132 |             "src_char": "4313:10"
1133 |           },
1134 |           {
1135 |             "contract_path": "src/Casting.sol",
1136 |             "line_no": 145,
1137 |             "src": "4345:10",
1138 |             "src_char": "4345:10"
1139 |           },
1140 |           {
1141 |             "contract_path": "src/Casting.sol",
1142 |             "line_no": 146,
1143 |             "src": "4377:10",
1144 |             "src_char": "4377:10"
1145 |           },
1146 |           {
1147 |             "contract_path": "src/Casting.sol",
1148 |             "line_no": 147,
1149 |             "src": "4409:10",
1150 |             "src_char": "4409:10"
1151 |           },
1152 |           {
1153 |             "contract_path": "src/Casting.sol",
1154 |             "line_no": 148,
1155 |             "src": "4443:10",
1156 |             "src_char": "4443:10"
1157 |           },
1158 |           {
1159 |             "contract_path": "src/Casting.sol",
1160 |             "line_no": 155,
1161 |             "src": "4642:14",
1162 |             "src_char": "4642:14"
1163 |           }
1164 |         ]
1165 |       },
1166 |       {
1167 |         "title": "EnumerableSet.remove Corrupts Order",
1168 |         "description": "If the order of an EnumerableSet is required, removing items in a loop using `at` and `remove` corrupts this order.\nConsider using a different data structure or removing items by collecting them during the loop, then removing after the loop.",
1169 |         "detector_name": "enumerable-loop-removal",
1170 |         "instances": [
1171 |           {
1172 |             "contract_path": "src/EnumerableSetIteration.sol",
1173 |             "line_no": 31,
1174 |             "src": "1105:17",
1175 |             "src_char": "1105:17"
1176 |           },
1177 |           {
1178 |             "contract_path": "src/EnumerableSetIteration.sol",
1179 |             "line_no": 40,
1180 |             "src": "1350:17",
1181 |             "src_char": "1350:17"
1182 |           },
1183 |           {
1184 |             "contract_path": "src/EnumerableSetIteration.sol",
1185 |             "line_no": 50,
1186 |             "src": "1586:17",
1187 |             "src_char": "1586:17"
1188 |           },
1189 |           {
1190 |             "contract_path": "src/EnumerableSetIteration.sol",
1191 |             "line_no": 59,
1192 |             "src": "1865:17",
1193 |             "src_char": "1865:17"
1194 |           },
1195 |           {
1196 |             "contract_path": "src/EnumerableSetIteration.sol",
1197 |             "line_no": 67,
1198 |             "src": "2083:14",
1199 |             "src_char": "2083:14"
1200 |           }
1201 |         ]
1202 |       },
1203 |       {
1204 |         "title": "Experimental ABI Encoder",
1205 |         "description": "Experimental encoders should not be used in production. There are multiple known compiler bugs that are caused by the experimental encoder. Upgrade your solidity version to remove the need for experimental features.",
1206 |         "detector_name": "experimental-encoder",
1207 |         "instances": [
1208 |           {
1209 |             "contract_path": "src/ExperimentalEncoder.sol",
1210 |             "line_no": 2,
1211 |             "src": "23:33",
1212 |             "src_char": "23:33"
1213 |           }
1214 |         ]
1215 |       },
1216 |       {
1217 |         "title": "Incorrect Assembly Shift Parameter Order",
1218 |         "description": "Example: `shl(shifted, 4)` will shift the right constant `4` by `a` bits. The correct order is `shl(4, shifted)`.",
1219 |         "detector_name": "incorrect-shift-order",
1220 |         "instances": [
1221 |           {
1222 |             "contract_path": "src/IncorrectShift.sol",
1223 |             "line_no": 7,
1224 |             "src": "192:15",
1225 |             "src_char": "192:15"
1226 |           },
1227 |           {
1228 |             "contract_path": "src/IncorrectShift.sol",
1229 |             "line_no": 8,
1230 |             "src": "238:15",
1231 |             "src_char": "238:15"
1232 |           }
1233 |         ]
1234 |       },
1235 |       {
1236 |         "title": "Storage Array Edited with Memory",
1237 |         "description": "Storage reference is passed to a function with a memory parameter. This will not update the storage variable as expected. Consider using storage parameters instead.",
1238 |         "detector_name": "storage-array-memory-edit",
1239 |         "instances": [
1240 |           {
1241 |             "contract_path": "src/StorageParameters.sol",
1242 |             "line_no": 11,
1243 |             "src": "241:10",
1244 |             "src_char": "241:10"
1245 |           }
1246 |         ]
1247 |       },
1248 |       {
1249 |         "title": "Contract Has Multiple Constructors",
1250 |         "description": "In some versions of Solidity, contracts compile with multiple constructors. The first constructor takes precedence. This can lead to unexpected behavior.",
1251 |         "detector_name": "multiple-constructors",
1252 |         "instances": [
1253 |           {
1254 |             "contract_path": "src/MultipleConstructorSchemes.sol",
1255 |             "line_no": 3,
1256 |             "src": "25:180",
1257 |             "src_char": "25:180"
1258 |           }
1259 |         ]
1260 |       },
1261 |       {
1262 |         "title": "Contract Name Reused in Different Files",
1263 |         "description": "When compiling contracts with certain development frameworks (for example: Truffle), having contracts with the same name across different files can lead to one being overwritten.",
1264 |         "detector_name": "reused-contract-name",
1265 |         "instances": [
1266 |           {
1267 |             "contract_path": "src/EmitAfterExternalCall.sol",
1268 |             "line_no": 4,
1269 |             "src": "66:14",
1270 |             "src_char": "66:14"
1271 |           },
1272 |           {
1273 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
1274 |             "line_no": 4,
1275 |             "src": "66:14",
1276 |             "src_char": "66:14"
1277 |           },
1278 |           {
1279 |             "contract_path": "src/Trump.sol",
1280 |             "line_no": 18,
1281 |             "src": "270:7",
1282 |             "src_char": "270:7"
1283 |           },
1284 |           {
1285 |             "contract_path": "src/Trump.sol",
1286 |             "line_no": 24,
1287 |             "src": "394:6",
1288 |             "src_char": "394:6"
1289 |           },
1290 |           {
1291 |             "contract_path": "src/Trump.sol",
1292 |             "line_no": 73,
1293 |             "src": "2166:7",
1294 |             "src_char": "2166:7"
1295 |           },
1296 |           {
1297 |             "contract_path": "src/Trump.sol",
1298 |             "line_no": 103,
1299 |             "src": "2952:18",
1300 |             "src_char": "2952:18"
1301 |           },
1302 |           {
1303 |             "contract_path": "src/ZeroAddressCheck.sol",
1304 |             "line_no": 4,
1305 |             "src": "67:6",
1306 |             "src_char": "67:6"
1307 |           },
1308 |           {
1309 |             "contract_path": "src/eth2/DepositContract.sol",
1310 |             "line_no": 44,
1311 |             "src": "3759:6",
1312 |             "src_char": "2271:6"
1313 |           },
1314 |           {
1315 |             "contract_path": "src/nested/1/Nested.sol",
1316 |             "line_no": 7,
1317 |             "src": "214:6",
1318 |             "src_char": "214:6"
1319 |           },
1320 |           {
1321 |             "contract_path": "src/nested/2/Nested.sol",
1322 |             "line_no": 7,
1323 |             "src": "214:6",
1324 |             "src_char": "214:6"
1325 |           },
1326 |           {
1327 |             "contract_path": "src/reused_contract_name/ContractA.sol",
1328 |             "line_no": 4,
1329 |             "src": "70:10",
1330 |             "src_char": "70:10"
1331 |           },
1332 |           {
1333 |             "contract_path": "src/reused_contract_name/ContractB.sol",
1334 |             "line_no": 4,
1335 |             "src": "70:10",
1336 |             "src_char": "70:10"
1337 |           },
1338 |           {
1339 |             "contract_path": "src/router/ExternalCalls.sol",
1340 |             "line_no": 4,
1341 |             "src": "80:1",
1342 |             "src_char": "80:1"
1343 |           },
1344 |           {
1345 |             "contract_path": "src/router/ExternalCalls.sol",
1346 |             "line_no": 8,
1347 |             "src": "143:1",
1348 |             "src_char": "143:1"
1349 |           },
1350 |           {
1351 |             "contract_path": "src/router/ExternalCalls.sol",
1352 |             "line_no": 12,
1353 |             "src": "188:1",
1354 |             "src_char": "188:1"
1355 |           },
1356 |           {
1357 |             "contract_path": "src/router/ExternalCalls.sol",
1358 |             "line_no": 31,
1359 |             "src": "630:1",
1360 |             "src_char": "630:1"
1361 |           },
1362 |           {
1363 |             "contract_path": "src/router/ExternalCalls.sol",
1364 |             "line_no": 35,
1365 |             "src": "701:1",
1366 |             "src_char": "701:1"
1367 |           },
1368 |           {
1369 |             "contract_path": "src/router/ModifierCalls.sol",
1370 |             "line_no": 4,
1371 |             "src": "88:1",
1372 |             "src_char": "88:1"
1373 |           },
1374 |           {
1375 |             "contract_path": "src/router/ModifierCalls.sol",
1376 |             "line_no": 12,
1377 |             "src": "179:1",
1378 |             "src_char": "179:1"
1379 |           },
1380 |           {
1381 |             "contract_path": "src/router/ModifierCalls.sol",
1382 |             "line_no": 28,
1383 |             "src": "347:1",
1384 |             "src_char": "347:1"
1385 |           },
1386 |           {
1387 |             "contract_path": "src/router/ModifierCalls.sol",
1388 |             "line_no": 41,
1389 |             "src": "538:1",
1390 |             "src_char": "538:1"
1391 |           },
1392 |           {
1393 |             "contract_path": "src/router/VarOverridesFunction.sol",
1394 |             "line_no": 4,
1395 |             "src": "70:1",
1396 |             "src_char": "70:1"
1397 |           },
1398 |           {
1399 |             "contract_path": "src/router/VarOverridesFunction.sol",
1400 |             "line_no": 9,
1401 |             "src": "150:1",
1402 |             "src_char": "150:1"
1403 |           },
1404 |           {
1405 |             "contract_path": "src/router/VarOverridesFunction.sol",
1406 |             "line_no": 13,
1407 |             "src": "219:1",
1408 |             "src_char": "219:1"
1409 |           },
1410 |           {
1411 |             "contract_path": "src/router/VarOverridesFunction.sol",
1412 |             "line_no": 17,
1413 |             "src": "285:1",
1414 |             "src_char": "285:1"
1415 |           },
1416 |           {
1417 |             "contract_path": "src/router/VarOverridesFunction.sol",
1418 |             "line_no": 21,
1419 |             "src": "341:1",
1420 |             "src_char": "341:1"
1421 |           }
1422 |         ]
1423 |       },
1424 |       {
1425 |         "title": "Nested Structs in Mappings pre-0.5.0",
1426 |         "description": "Prior to updates in Solidity 0.5.0, public mappings with nested structs compiled, but produced incorrect values. Refrain from using these, or update to a more recent version of Solidity.",
1427 |         "detector_name": "nested-struct-in-mapping",
1428 |         "instances": [
1429 |           {
1430 |             "contract_path": "src/nested_mappings/NestedMappings.sol",
1431 |             "line_no": 17,
1432 |             "src": "367:58",
1433 |             "src_char": "367:58"
1434 |           }
1435 |         ]
1436 |       },
1437 |       {
1438 |         "title": "`selfdestruct` is Deprecated",
1439 |         "description": "Remove the `selfdestruct` instruction from the code.",
1440 |         "detector_name": "selfdestruct",
1441 |         "instances": [
1442 |           {
1443 |             "contract_path": "src/UsingSelfdestruct.sol",
1444 |             "line_no": 7,
1445 |             "src": "146:12",
1446 |             "src_char": "146:12"
1447 |           }
1448 |         ]
1449 |       },
1450 |       {
1451 |         "title": "Direct assignment of array length",
1452 |         "description": "If the length of a dynamic array (storage variable) is directly assigned to, it may allow access to other storage slots by tweaking it's value. This practice has been deprecated in newer Solidity versions",
1453 |         "detector_name": "dynamic-array-length-assignment",
1454 |         "instances": [
1455 |           {
1456 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
1457 |             "line_no": 13,
1458 |             "src": "295:14",
1459 |             "src_char": "295:14"
1460 |           },
1461 |           {
1462 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
1463 |             "line_no": 14,
1464 |             "src": "325:18",
1465 |             "src_char": "325:18"
1466 |           },
1467 |           {
1468 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
1469 |             "line_no": 15,
1470 |             "src": "359:33",
1471 |             "src_char": "359:33"
1472 |           },
1473 |           {
1474 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
1475 |             "line_no": 16,
1476 |             "src": "408:15",
1477 |             "src_char": "408:15"
1478 |           },
1479 |           {
1480 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
1481 |             "line_no": 17,
1482 |             "src": "439:14",
1483 |             "src_char": "439:14"
1484 |           }
1485 |         ]
1486 |       },
1487 |       {
1488 |         "title": "Incorrect use of caret operator",
1489 |         "description": "The caret operator is usually mistakenly thought of as an exponentiation operator but actually, it's a bitwise xor operator.",
1490 |         "detector_name": "incorrect-caret-operator",
1491 |         "instances": [
1492 |           {
1493 |             "contract_path": "src/IncorrectCaretOperator.sol",
1494 |             "line_no": 16,
1495 |             "src": "519:8",
1496 |             "src_char": "519:8"
1497 |           },
1498 |           {
1499 |             "contract_path": "src/IncorrectCaretOperator.sol",
1500 |             "line_no": 17,
1501 |             "src": "549:16",
1502 |             "src_char": "549:16"
1503 |           },
1504 |           {
1505 |             "contract_path": "src/IncorrectCaretOperator.sol",
1506 |             "line_no": 18,
1507 |             "src": "587:21",
1508 |             "src_char": "587:21"
1509 |           },
1510 |           {
1511 |             "contract_path": "src/IncorrectCaretOperator.sol",
1512 |             "line_no": 19,
1513 |             "src": "631:13",
1514 |             "src_char": "631:13"
1515 |           },
1516 |           {
1517 |             "contract_path": "src/IncorrectCaretOperator.sol",
1518 |             "line_no": 20,
1519 |             "src": "708:12",
1520 |             "src_char": "708:12"
1521 |           }
1522 |         ]
1523 |       },
1524 |       {
1525 |         "title": "Yul block contains `return`",
1526 |         "description": "This causes the transaction execution to halt, and nothing after that call will execute including code following the assembly block.",
1527 |         "detector_name": "yul-return",
1528 |         "instances": [
1529 |           {
1530 |             "contract_path": "src/YulReturn.sol",
1531 |             "line_no": 8,
1532 |             "src": "171:12",
1533 |             "src_char": "171:12"
1534 |           }
1535 |         ]
1536 |       },
1537 |       {
1538 |         "title": "Shadowed State Variable",
1539 |         "description": "This vulnerability arises when a derived contract unintentionally shadows a state variable from a parent contract by declaring a variable with the same name. This can be misleading. To prevent this, ensure variable names are unique across the inheritance hierarchy or use proper visibility and scope controls.",
1540 |         "detector_name": "state-variable-shadowing",
1541 |         "instances": [
1542 |           {
1543 |             "contract_path": "src/StateShadowing.sol",
1544 |             "line_no": 15,
1545 |             "src": "239:13",
1546 |             "src_char": "239:13"
1547 |           }
1548 |         ]
1549 |       },
1550 |       {
1551 |         "title": "Unchecked `bool success` value for ETH send",
1552 |         "description": "The call `address(payable?).send(address)` may fail because of reasons like out-of-gas, invalid recipient address or revert from the recipient, but not revert the transaction. Therefore, the boolean returned by this function call must be checked to be `true` in order to verify that the transaction was successful.",
1553 |         "detector_name": "unchecked-send",
1554 |         "instances": [
1555 |           {
1556 |             "contract_path": "src/UncheckedSend.sol",
1557 |             "line_no": 24,
1558 |             "src": "815:22",
1559 |             "src_char": "815:22"
1560 |           }
1561 |         ]
1562 |       },
1563 |       {
1564 |         "title": "Misused boolean with logical operators",
1565 |         "description": "The patterns `if (… || true)` and `if (.. && false)` will always evaluate to true and false respectively.",
1566 |         "detector_name": "misused-boolean",
1567 |         "instances": [
1568 |           {
1569 |             "contract_path": "src/MisusedBoolean.sol",
1570 |             "line_no": 12,
1571 |             "src": "257:19",
1572 |             "src_char": "257:19"
1573 |           },
1574 |           {
1575 |             "contract_path": "src/MisusedBoolean.sol",
1576 |             "line_no": 19,
1577 |             "src": "419:20",
1578 |             "src_char": "419:20"
1579 |           },
1580 |           {
1581 |             "contract_path": "src/MisusedBoolean.sol",
1582 |             "line_no": 26,
1583 |             "src": "582:20",
1584 |             "src_char": "582:20"
1585 |           },
1586 |           {
1587 |             "contract_path": "src/MisusedBoolean.sol",
1588 |             "line_no": 33,
1589 |             "src": "745:19",
1590 |             "src_char": "745:19"
1591 |           },
1592 |           {
1593 |             "contract_path": "src/MisusedBoolean.sol",
1594 |             "line_no": 40,
1595 |             "src": "908:51",
1596 |             "src_char": "908:51"
1597 |           },
1598 |           {
1599 |             "contract_path": "src/MisusedBoolean.sol",
1600 |             "line_no": 47,
1601 |             "src": "1060:52",
1602 |             "src_char": "1060:52"
1603 |           },
1604 |           {
1605 |             "contract_path": "src/MisusedBoolean.sol",
1606 |             "line_no": 54,
1607 |             "src": "1213:53",
1608 |             "src_char": "1213:53"
1609 |           },
1610 |           {
1611 |             "contract_path": "src/MisusedBoolean.sol",
1612 |             "line_no": 61,
1613 |             "src": "1366:21",
1614 |             "src_char": "1366:21"
1615 |           },
1616 |           {
1617 |             "contract_path": "src/MisusedBoolean.sol",
1618 |             "line_no": 68,
1619 |             "src": "1530:17",
1620 |             "src_char": "1530:17"
1621 |           },
1622 |           {
1623 |             "contract_path": "src/MisusedBoolean.sol",
1624 |             "line_no": 75,
1625 |             "src": "1691:18",
1626 |             "src_char": "1691:18"
1627 |           }
1628 |         ]
1629 |       },
1630 |       {
1631 |         "title": "ETH transferred without address checks",
1632 |         "description": "Consider introducing checks for `msg.sender` to ensure the recipient of the money is as intended.",
1633 |         "detector_name": "eth-send-unchecked-address",
1634 |         "instances": [
1635 |           {
1636 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1637 |             "line_no": 23,
1638 |             "src": "672:4",
1639 |             "src_char": "672:4"
1640 |           },
1641 |           {
1642 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1643 |             "line_no": 28,
1644 |             "src": "813:4",
1645 |             "src_char": "813:4"
1646 |           },
1647 |           {
1648 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1649 |             "line_no": 37,
1650 |             "src": "1112:5",
1651 |             "src_char": "1112:5"
1652 |           },
1653 |           {
1654 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1655 |             "line_no": 41,
1656 |             "src": "1235:5",
1657 |             "src_char": "1235:5"
1658 |           },
1659 |           {
1660 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1661 |             "line_no": 45,
1662 |             "src": "1369:5",
1663 |             "src_char": "1369:5"
1664 |           },
1665 |           {
1666 |             "contract_path": "src/ArbitraryTransferFrom.sol",
1667 |             "line_no": 49,
1668 |             "src": "1506:5",
1669 |             "src_char": "1506:5"
1670 |           },
1671 |           {
1672 |             "contract_path": "src/CallGraphTests.sol",
1673 |             "line_no": 38,
1674 |             "src": "686:16",
1675 |             "src_char": "686:16"
1676 |           },
1677 |           {
1678 |             "contract_path": "src/ContractLocksEther.sol",
1679 |             "line_no": 94,
1680 |             "src": "2981:11",
1681 |             "src_char": "2981:11"
1682 |           },
1683 |           {
1684 |             "contract_path": "src/ContractLocksEther.sol",
1685 |             "line_no": 131,
1686 |             "src": "4205:11",
1687 |             "src_char": "4205:11"
1688 |           },
1689 |           {
1690 |             "contract_path": "src/ContractLocksEther.sol",
1691 |             "line_no": 167,
1692 |             "src": "5373:11",
1693 |             "src_char": "5373:11"
1694 |           },
1695 |           {
1696 |             "contract_path": "src/ContractLocksEther.sol",
1697 |             "line_no": 194,
1698 |             "src": "6342:11",
1699 |             "src_char": "6342:11"
1700 |           },
1701 |           {
1702 |             "contract_path": "src/DeprecatedOZFunctions.sol",
1703 |             "line_no": 16,
1704 |             "src": "488:16",
1705 |             "src_char": "488:16"
1706 |           },
1707 |           {
1708 |             "contract_path": "src/DeprecatedOZFunctions.sol",
1709 |             "line_no": 26,
1710 |             "src": "821:11",
1711 |             "src_char": "821:11"
1712 |           },
1713 |           {
1714 |             "contract_path": "src/ExternalCalls.sol",
1715 |             "line_no": 67,
1716 |             "src": "1218:4",
1717 |             "src_char": "1218:4"
1718 |           },
1719 |           {
1720 |             "contract_path": "src/OutOfOrderRetryable.sol",
1721 |             "line_no": 167,
1722 |             "src": "4685:13",
1723 |             "src_char": "4685:13"
1724 |           },
1725 |           {
1726 |             "contract_path": "src/OutOfOrderRetryable.sol",
1727 |             "line_no": 175,
1728 |             "src": "5072:7",
1729 |             "src_char": "5072:7"
1730 |           },
1731 |           {
1732 |             "contract_path": "src/SendEtherNoChecks.sol",
1733 |             "line_no": 53,
1734 |             "src": "1060:5",
1735 |             "src_char": "1060:5"
1736 |           },
1737 |           {
1738 |             "contract_path": "src/SendEtherNoChecks.sol",
1739 |             "line_no": 77,
1740 |             "src": "1405:5",
1741 |             "src_char": "1405:5"
1742 |           },
1743 |           {
1744 |             "contract_path": "src/SendEtherNoChecks.sol",
1745 |             "line_no": 99,
1746 |             "src": "1795:5",
1747 |             "src_char": "1795:5"
1748 |           },
1749 |           {
1750 |             "contract_path": "src/Trump.sol",
1751 |             "line_no": 321,
1752 |             "src": "10940:10",
1753 |             "src_char": "10940:10"
1754 |           },
1755 |           {
1756 |             "contract_path": "src/UncheckedCalls.sol",
1757 |             "line_no": 6,
1758 |             "src": "99:110",
1759 |             "src_char": "99:110"
1760 |           },
1761 |           {
1762 |             "contract_path": "src/UncheckedCalls.sol",
1763 |             "line_no": 22,
1764 |             "src": "572:359",
1765 |             "src_char": "572:359"
1766 |           },
1767 |           {
1768 |             "contract_path": "src/UncheckedSend.sol",
1769 |             "line_no": 6,
1770 |             "src": "85:246",
1771 |             "src_char": "85:246"
1772 |           },
1773 |           {
1774 |             "contract_path": "src/UncheckedSend.sol",
1775 |             "line_no": 12,
1776 |             "src": "337:190",
1777 |             "src_char": "337:190"
1778 |           },
1779 |           {
1780 |             "contract_path": "src/UncheckedSend.sol",
1781 |             "line_no": 17,
1782 |             "src": "533:184",
1783 |             "src_char": "533:184"
1784 |           },
1785 |           {
1786 |             "contract_path": "src/UncheckedSend.sol",
1787 |             "line_no": 22,
1788 |             "src": "723:186",
1789 |             "src_char": "723:186"
1790 |           },
1791 |           {
1792 |             "contract_path": "src/UninitializedStateVariable.sol",
1793 |             "line_no": 17,
1794 |             "src": "563:8",
1795 |             "src_char": "563:8"
1796 |           }
1797 |         ]
1798 |       },
1799 |       {
1800 |         "title": "`delegatecall` to an Arbitrary Address",
1801 |         "description": "Making a `delegatecall` to an arbitrary address without any checks is dangerous. Consider adding requirements on the target address.",
1802 |         "detector_name": "delegate-call-unchecked-address",
1803 |         "instances": [
1804 |           {
1805 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
1806 |             "line_no": 15,
1807 |             "src": "392:9",
1808 |             "src_char": "392:9"
1809 |           },
1810 |           {
1811 |             "contract_path": "src/UncheckedCalls.sol",
1812 |             "line_no": 14,
1813 |             "src": "323:118",
1814 |             "src_char": "323:118"
1815 |           },
1816 |           {
1817 |             "contract_path": "src/UncheckedCalls.sol",
1818 |             "line_no": 22,
1819 |             "src": "572:359",
1820 |             "src_char": "572:359"
1821 |           },
1822 |           {
1823 |             "contract_path": "src/auditor_mode/ExternalCalls.sol",
1824 |             "line_no": 38,
1825 |             "src": "1253:28",
1826 |             "src_char": "1253:28"
1827 |           },
1828 |           {
1829 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
1830 |             "line_no": 14,
1831 |             "src": "391:15",
1832 |             "src_char": "391:15"
1833 |           }
1834 |         ]
1835 |       },
1836 |       {
1837 |         "title": "Tautological comparison",
1838 |         "description": "The left hand side and the right hand side of the binary operation has the same value. This makes the condition always true or always false.",
1839 |         "detector_name": "tautological-compare",
1840 |         "instances": [
1841 |           {
1842 |             "contract_path": "src/TautologicalCompare.sol",
1843 |             "line_no": 18,
1844 |             "src": "528:6",
1845 |             "src_char": "528:6"
1846 |           },
1847 |           {
1848 |             "contract_path": "src/TautologicalCompare.sol",
1849 |             "line_no": 23,
1850 |             "src": "634:5",
1851 |             "src_char": "634:5"
1852 |           },
1853 |           {
1854 |             "contract_path": "src/TautologicalCompare.sol",
1855 |             "line_no": 28,
1856 |             "src": "739:5",
1857 |             "src_char": "739:5"
1858 |           }
1859 |         ]
1860 |       },
1861 |       {
1862 |         "title": "RTLO character detected in file: \\u{202e}",
1863 |         "description": "The right to left override character may be misleading and cause potential attacks by visually misordering method arguments.",
1864 |         "detector_name": "rtlo",
1865 |         "instances": [
1866 |           {
1867 |             "contract_path": "src/RTLO.sol",
1868 |             "line_no": 3,
1869 |             "src": "33:157",
1870 |             "src_char": "33:155"
1871 |           }
1872 |         ]
1873 |       },
1874 |       {
1875 |         "title": "Dangerous unary operator",
1876 |         "description": "Potentially mistaken `=+` for `+=` or `=-` for `-=`. This acts as an assignment instead of an increment or decrement.Use the correct operator to increment or decrement a variable.",
1877 |         "detector_name": "dangerous-unary-operator",
1878 |         "instances": [
1879 |           {
1880 |             "contract_path": "src/DangerousUnaryOperator.sol",
1881 |             "line_no": 12,
1882 |             "src": "220:10",
1883 |             "src_char": "220:10"
1884 |           },
1885 |           {
1886 |             "contract_path": "src/DangerousUnaryOperator.sol",
1887 |             "line_no": 13,
1888 |             "src": "247:10",
1889 |             "src_char": "247:10"
1890 |           }
1891 |         ]
1892 |       },
1893 |       {
1894 |         "title": "Tautology or Contradiction in comparison",
1895 |         "description": "The condition has been determined to be either always true or always false due to the integer range in which we're operating.",
1896 |         "detector_name": "tautology-or-contradiction",
1897 |         "instances": [
1898 |           {
1899 |             "contract_path": "src/EmitAfterExternalCall.sol",
1900 |             "line_no": 48,
1901 |             "src": "1168:5",
1902 |             "src_char": "1168:5"
1903 |           },
1904 |           {
1905 |             "contract_path": "src/TautologyOrContradiction.sol",
1906 |             "line_no": 13,
1907 |             "src": "296:7",
1908 |             "src_char": "296:7"
1909 |           },
1910 |           {
1911 |             "contract_path": "src/TautologyOrContradiction.sol",
1912 |             "line_no": 16,
1913 |             "src": "369:11",
1914 |             "src_char": "369:11"
1915 |           }
1916 |         ]
1917 |       },
1918 |       {
1919 |         "title": "Dangerous strict equality checks on contract balances",
1920 |         "description": "A contract's balance can be forcibly manipulated by another selfdestructing contract. Therefore, it's recommended to use >, <, >= or <= instead of strict equality.",
1921 |         "detector_name": "strict-equality-contract-balance",
1922 |         "instances": [
1923 |           {
1924 |             "contract_path": "src/DangerousStrictEquality1.sol",
1925 |             "line_no": 6,
1926 |             "src": "177:25",
1927 |             "src_char": "177:25"
1928 |           },
1929 |           {
1930 |             "contract_path": "src/DangerousStrictEquality2.sol",
1931 |             "line_no": 6,
1932 |             "src": "177:34",
1933 |             "src_char": "177:34"
1934 |           },
1935 |           {
1936 |             "contract_path": "src/DangerousStrictEquality2.sol",
1937 |             "line_no": 10,
1938 |             "src": "305:43",
1939 |             "src_char": "305:43"
1940 |           }
1941 |         ]
1942 |       },
1943 |       {
1944 |         "title": "Signed integer array in storage (solc `<0.5.10`)",
1945 |         "description": "solc versions 0.4.7-0.5.9 contain a compiler bug leading to incorrect values in signed integer arrays.Use solidity version 0.5.10 or above.",
1946 |         "detector_name": "signed-integer-storage-array",
1947 |         "instances": [
1948 |           {
1949 |             "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
1950 |             "line_no": 9,
1951 |             "src": "230:10",
1952 |             "src_char": "230:10"
1953 |           }
1954 |         ]
1955 |       },
1956 |       {
1957 |         "title": "Weak Randomness",
1958 |         "description": "The use of keccak256 hash functions on predictable values like block.timestamp, block.number, or similar data, including modulo operations on these values, should be avoided for generating randomness, as they are easily predictable and manipulable. The `PREVRANDAO` opcode also should not be used as a source of randomness. Instead, utilize Chainlink VRF for cryptographically secure and provably random values to ensure protocol integrity.",
1959 |         "detector_name": "weak-randomness",
1960 |         "instances": [
1961 |           {
1962 |             "contract_path": "src/WeakRandomness.sol",
1963 |             "line_no": 6,
1964 |             "src": "188:70",
1965 |             "src_char": "188:70"
1966 |           },
1967 |           {
1968 |             "contract_path": "src/WeakRandomness.sol",
1969 |             "line_no": 11,
1970 |             "src": "386:41",
1971 |             "src_char": "386:41"
1972 |           },
1973 |           {
1974 |             "contract_path": "src/WeakRandomness.sol",
1975 |             "line_no": 16,
1976 |             "src": "597:20",
1977 |             "src_char": "597:20"
1978 |           },
1979 |           {
1980 |             "contract_path": "src/WeakRandomness.sol",
1981 |             "line_no": 21,
1982 |             "src": "793:20",
1983 |             "src_char": "793:20"
1984 |           },
1985 |           {
1986 |             "contract_path": "src/WeakRandomness.sol",
1987 |             "line_no": 25,
1988 |             "src": "915:20",
1989 |             "src_char": "915:20"
1990 |           },
1991 |           {
1992 |             "contract_path": "src/WeakRandomness.sol",
1993 |             "line_no": 31,
1994 |             "src": "1095:5",
1995 |             "src_char": "1095:5"
1996 |           },
1997 |           {
1998 |             "contract_path": "src/WeakRandomness.sol",
1999 |             "line_no": 35,
2000 |             "src": "1217:37",
2001 |             "src_char": "1217:37"
2002 |           },
2003 |           {
2004 |             "contract_path": "src/WeakRandomness.sol",
2005 |             "line_no": 41,
2006 |             "src": "1434:9",
2007 |             "src_char": "1434:9"
2008 |           },
2009 |           {
2010 |             "contract_path": "src/WeakRandomness.sol",
2011 |             "line_no": 45,
2012 |             "src": "1563:16",
2013 |             "src_char": "1563:16"
2014 |           }
2015 |         ]
2016 |       },
2017 |       {
2018 |         "title": "Usage of variable before declaration",
2019 |         "description": "Declare the variable before using it to avoid unintended consequences.",
2020 |         "detector_name": "pre-declared-local-variable-usage",
2021 |         "instances": [
2022 |           {
2023 |             "contract_path": "src/PreDeclaredVarUsage.sol",
2024 |             "line_no": 8,
2025 |             "src": "196:1",
2026 |             "src_char": "196:1"
2027 |           }
2028 |         ]
2029 |       },
2030 |       {
2031 |         "title": "Deletion from a nested mapping",
2032 |         "description": "A deletion in a structure containing a mapping will not delete the mapping. The remaining data may be used to compromise the contract.",
2033 |         "detector_name": "delete-nested-mapping",
2034 |         "instances": [
2035 |           {
2036 |             "contract_path": "src/DeletionNestedMappingStructureContract.sol",
2037 |             "line_no": 17,
2038 |             "src": "426:25",
2039 |             "src_char": "426:25"
2040 |           }
2041 |         ]
2042 |       },
2043 |       {
2044 |         "title": "Use of `tx.origin` for authentication",
2045 |         "description": "Using `tx.origin` may lead to problems when users are interacting via smart contract with your protocol. It is recommended to use `msg.sender` for authentication.",
2046 |         "detector_name": "tx-origin-used-for-auth",
2047 |         "instances": [
2048 |           {
2049 |             "contract_path": "src/TxOriginUsedForAuth.sol",
2050 |             "line_no": 40,
2051 |             "src": "1117:183",
2052 |             "src_char": "1117:183"
2053 |           },
2054 |           {
2055 |             "contract_path": "src/TxOriginUsedForAuth.sol",
2056 |             "line_no": 51,
2057 |             "src": "1431:90",
2058 |             "src_char": "1431:90"
2059 |           },
2060 |           {
2061 |             "contract_path": "src/TxOriginUsedForAuth.sol",
2062 |             "line_no": 59,
2063 |             "src": "1610:68",
2064 |             "src_char": "1610:68"
2065 |           }
2066 |         ]
2067 |       },
2068 |       {
2069 |         "title": "Loop contains `msg.value`",
2070 |         "description": "Provide an explicit array of amounts alongside the receivers array, and check that the sum of all amounts matches `msg.value`.",
2071 |         "detector_name": "msg-value-in-loop",
2072 |         "instances": [
2073 |           {
2074 |             "contract_path": "src/MsgValueInLoop.sol",
2075 |             "line_no": 12,
2076 |             "src": "289:107",
2077 |             "src_char": "289:107"
2078 |           },
2079 |           {
2080 |             "contract_path": "src/MsgValueInLoop.sol",
2081 |             "line_no": 38,
2082 |             "src": "988:94",
2083 |             "src_char": "988:94"
2084 |           },
2085 |           {
2086 |             "contract_path": "src/MsgValueInLoop.sol",
2087 |             "line_no": 54,
2088 |             "src": "1415:93",
2089 |             "src_char": "1415:93"
2090 |           },
2091 |           {
2092 |             "contract_path": "src/MsgValueInLoop.sol",
2093 |             "line_no": 71,
2094 |             "src": "1844:97",
2095 |             "src_char": "1844:97"
2096 |           }
2097 |         ]
2098 |       },
2099 |       {
2100 |         "title": "Contract locks Ether without a withdraw function",
2101 |         "description": "It appears that the contract includes a payable function to accept Ether but lacks a corresponding function to withdraw it, which leads to the Ether being locked in the contract. To resolve this issue, please implement a public or external function that allows for the withdrawal of Ether from the contract.",
2102 |         "detector_name": "contract-locks-ether",
2103 |         "instances": [
2104 |           {
2105 |             "contract_path": "src/ContractLocksEther.sol",
2106 |             "line_no": 5,
2107 |             "src": "73:10",
2108 |             "src_char": "73:10"
2109 |           },
2110 |           {
2111 |             "contract_path": "src/ContractLocksEther.sol",
2112 |             "line_no": 31,
2113 |             "src": "822:11",
2114 |             "src_char": "822:11"
2115 |           },
2116 |           {
2117 |             "contract_path": "src/EmptyBlocks.sol",
2118 |             "line_no": 20,
2119 |             "src": "344:39",
2120 |             "src_char": "344:39"
2121 |           },
2122 |           {
2123 |             "contract_path": "src/EmptyBlocks.sol",
2124 |             "line_no": 44,
2125 |             "src": "630:11",
2126 |             "src_char": "630:11"
2127 |           },
2128 |           {
2129 |             "contract_path": "src/ExternalCalls.sol",
2130 |             "line_no": 8,
2131 |             "src": "139:8",
2132 |             "src_char": "139:8"
2133 |           },
2134 |           {
2135 |             "contract_path": "src/MsgValueInLoop.sol",
2136 |             "line_no": 7,
2137 |             "src": "103:15",
2138 |             "src_char": "103:15"
2139 |           },
2140 |           {
2141 |             "contract_path": "src/MsgValueInLoop.sol",
2142 |             "line_no": 19,
2143 |             "src": "423:19",
2144 |             "src_char": "423:19"
2145 |           },
2146 |           {
2147 |             "contract_path": "src/MsgValueInLoop.sol",
2148 |             "line_no": 33,
2149 |             "src": "831:15",
2150 |             "src_char": "831:15"
2151 |           },
2152 |           {
2153 |             "contract_path": "src/MsgValueInLoop.sol",
2154 |             "line_no": 48,
2155 |             "src": "1233:15",
2156 |             "src_char": "1233:15"
2157 |           },
2158 |           {
2159 |             "contract_path": "src/MsgValueInLoop.sol",
2160 |             "line_no": 65,
2161 |             "src": "1659:15",
2162 |             "src_char": "1659:15"
2163 |           },
2164 |           {
2165 |             "contract_path": "src/OutOfOrderRetryable.sol",
2166 |             "line_no": 38,
2167 |             "src": "1028:2",
2168 |             "src_char": "1028:2"
2169 |           },
2170 |           {
2171 |             "contract_path": "src/eth2/DepositContract.sol",
2172 |             "line_no": 58,
2173 |             "src": "4547:15",
2174 |             "src_char": "3059:15"
2175 |           },
2176 |           {
2177 |             "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
2178 |             "line_no": 4,
2179 |             "src": "70:1",
2180 |             "src_char": "70:1"
2181 |           },
2182 |           {
2183 |             "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
2184 |             "line_no": 10,
2185 |             "src": "172:1",
2186 |             "src_char": "172:1"
2187 |           },
2188 |           {
2189 |             "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
2190 |             "line_no": 14,
2191 |             "src": "237:1",
2192 |             "src_char": "237:1"
2193 |           }
2194 |         ]
2195 |       },
2196 |       {
2197 |         "title": "Incorrect ERC721 interface",
2198 |         "description": "Incorrect return values for ERC721 functions. A contract compiled with Solidity > 0.4.22 interacting with these functions will fail to execute them, as the return value is missing. Set the appropriate return values and types for the defined ERC721 functions.",
2199 |         "detector_name": "incorrect-erc721-interface",
2200 |         "instances": [
2201 |           {
2202 |             "contract_path": "src/IncorrectERC721.sol",
2203 |             "line_no": 14,
2204 |             "src": "433:9",
2205 |             "src_char": "433:9"
2206 |           },
2207 |           {
2208 |             "contract_path": "src/IncorrectERC721.sol",
2209 |             "line_no": 18,
2210 |             "src": "551:7",
2211 |             "src_char": "551:7"
2212 |           },
2213 |           {
2214 |             "contract_path": "src/IncorrectERC721.sol",
2215 |             "line_no": 22,
2216 |             "src": "696:7",
2217 |             "src_char": "696:7"
2218 |           },
2219 |           {
2220 |             "contract_path": "src/IncorrectERC721.sol",
2221 |             "line_no": 37,
2222 |             "src": "1092:11",
2223 |             "src_char": "1092:11"
2224 |           },
2225 |           {
2226 |             "contract_path": "src/IncorrectERC721.sol",
2227 |             "line_no": 41,
2228 |             "src": "1231:17",
2229 |             "src_char": "1231:17"
2230 |           },
2231 |           {
2232 |             "contract_path": "src/IncorrectERC721.sol",
2233 |             "line_no": 49,
2234 |             "src": "1484:16",
2235 |             "src_char": "1484:16"
2236 |           },
2237 |           {
2238 |             "contract_path": "src/IncorrectERC721.sol",
2239 |             "line_no": 56,
2240 |             "src": "1684:12",
2241 |             "src_char": "1684:12"
2242 |           },
2243 |           {
2244 |             "contract_path": "src/IncorrectERC721.sol",
2245 |             "line_no": 71,
2246 |             "src": "2086:16",
2247 |             "src_char": "2086:16"
2248 |           }
2249 |         ]
2250 |       },
2251 |       {
2252 |         "title": "Incorrect ERC20 interface",
2253 |         "description": "Incorrect return values for ERC20 functions. A contract compiled with Solidity > 0.4.22 interacting with these functions will fail to execute them, as the return value is missing. Set the appropriate return values and types for the defined ERC20 functions.",
2254 |         "detector_name": "incorrect-erc20-interface",
2255 |         "instances": [
2256 |           {
2257 |             "contract_path": "src/IncorrectERC20.sol",
2258 |             "line_no": 17,
2259 |             "src": "483:8",
2260 |             "src_char": "483:8"
2261 |           },
2262 |           {
2263 |             "contract_path": "src/IncorrectERC20.sol",
2264 |             "line_no": 23,
2265 |             "src": "690:7",
2266 |             "src_char": "690:7"
2267 |           },
2268 |           {
2269 |             "contract_path": "src/IncorrectERC20.sol",
2270 |             "line_no": 27,
2271 |             "src": "808:12",
2272 |             "src_char": "808:12"
2273 |           },
2274 |           {
2275 |             "contract_path": "src/IncorrectERC20.sol",
2276 |             "line_no": 35,
2277 |             "src": "1146:9",
2278 |             "src_char": "1146:9"
2279 |           },
2280 |           {
2281 |             "contract_path": "src/IncorrectERC20.sol",
2282 |             "line_no": 39,
2283 |             "src": "1249:9",
2284 |             "src_char": "1249:9"
2285 |           }
2286 |         ]
2287 |       },
2288 |       {
2289 |         "title": "Out of Order Retryable Transaction",
2290 |         "description": "Do not rely on the order or successful execution of retryable tickets. Functions like createRetryableTicket, outboundTransferCustomRefund, unsafeCreateRetryableTicket are free to be re-tried in any\n            order if they fail in the first go. Since this operation happens off chain, the sequencer is in control of the\n            order of these transactions. Therefore, restrict the use to at most 1 ticket call per function.",
2291 |         "detector_name": "out-of-order-retryable",
2292 |         "instances": [
2293 |           {
2294 |             "contract_path": "src/OutOfOrderRetryable.sol",
2295 |             "line_no": 63,
2296 |             "src": "1649:11",
2297 |             "src_char": "1649:11"
2298 |           },
2299 |           {
2300 |             "contract_path": "src/OutOfOrderRetryable.sol",
2301 |             "line_no": 90,
2302 |             "src": "2557:22",
2303 |             "src_char": "2557:22"
2304 |           }
2305 |         ]
2306 |       },
2307 |       {
2308 |         "title": "Constant functions changes state",
2309 |         "description": "Function is declared constant/view but it changes state. Ensure that the attributes of contract compiled prior to 0.5 are correct.",
2310 |         "detector_name": "constant-function-changes-state",
2311 |         "instances": [
2312 |           {
2313 |             "contract_path": "src/ConstFuncChangeState.sol",
2314 |             "line_no": 8,
2315 |             "src": "173:112",
2316 |             "src_char": "173:112"
2317 |           }
2318 |         ]
2319 |       },
2320 |       {
2321 |         "title": "Function Selector Collision",
2322 |         "description": "Function selector collides with other functions. This may cause the solidity function dispatcher to invoke the wrong function if the functions happen to be included in the same contract through an inheritance hierarchy later down the line. It is recommended to rename this function or change its parameters.",
2323 |         "detector_name": "function-selector-collision",
2324 |         "instances": [
2325 |           {
2326 |             "contract_path": "src/FunctionSignatureCollision.sol",
2327 |             "line_no": 7,
2328 |             "src": "166:8",
2329 |             "src_char": "166:8",
2330 |             "hint": "collides with the following function name(s) in scope: OwnerTransferV7b711143"
2331 |           },
2332 |           {
2333 |             "contract_path": "src/FunctionSignatureCollision.sol",
2334 |             "line_no": 13,
2335 |             "src": "231:22",
2336 |             "src_char": "231:22",
2337 |             "hint": "collides with the following function name(s) in scope: withdraw"
2338 |           }
2339 |         ]
2340 |       },
2341 |       {
2342 |         "title": "Unchecked Low level calls",
2343 |         "description": "The return value of the low-level call is not checked, so if the call fails, the Ether will be locked in the contract. If the low level is used to prevent blocking operations, consider logging failed calls. Ensure that the return value of a low-level call is checked or logged.",
2344 |         "detector_name": "unchecked-low-level-call",
2345 |         "instances": [
2346 |           {
2347 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
2348 |             "line_no": 16,
2349 |             "src": "452:21",
2350 |             "src_char": "452:21"
2351 |           },
2352 |           {
2353 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
2354 |             "line_no": 20,
2355 |             "src": "583:26",
2356 |             "src_char": "583:26"
2357 |           },
2358 |           {
2359 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
2360 |             "line_no": 36,
2361 |             "src": "1071:21",
2362 |             "src_char": "1071:21"
2363 |           },
2364 |           {
2365 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
2366 |             "line_no": 42,
2367 |             "src": "1287:21",
2368 |             "src_char": "1287:21"
2369 |           },
2370 |           {
2371 |             "contract_path": "src/UncheckedCalls.sol",
2372 |             "line_no": 7,
2373 |             "src": "172:30",
2374 |             "src_char": "172:30"
2375 |           },
2376 |           {
2377 |             "contract_path": "src/UncheckedCalls.sol",
2378 |             "line_no": 11,
2379 |             "src": "293:17",
2380 |             "src_char": "293:17"
2381 |           },
2382 |           {
2383 |             "contract_path": "src/UncheckedCalls.sol",
2384 |             "line_no": 15,
2385 |             "src": "409:25",
2386 |             "src_char": "409:25"
2387 |           },
2388 |           {
2389 |             "contract_path": "src/UncheckedCalls.sol",
2390 |             "line_no": 19,
2391 |             "src": "536:23",
2392 |             "src_char": "536:23"
2393 |           },
2394 |           {
2395 |             "contract_path": "src/UncheckedCalls.sol",
2396 |             "line_no": 23,
2397 |             "src": "651:27",
2398 |             "src_char": "651:27"
2399 |           },
2400 |           {
2401 |             "contract_path": "src/UncheckedCalls.sol",
2402 |             "line_no": 25,
2403 |             "src": "689:66",
2404 |             "src_char": "689:66"
2405 |           },
2406 |           {
2407 |             "contract_path": "src/UncheckedCalls.sol",
2408 |             "line_no": 27,
2409 |             "src": "766:86",
2410 |             "src_char": "766:86"
2411 |           },
2412 |           {
2413 |             "contract_path": "src/UncheckedCalls.sol",
2414 |             "line_no": 29,
2415 |             "src": "863:61",
2416 |             "src_char": "863:61"
2417 |           },
2418 |           {
2419 |             "contract_path": "src/UncheckedCalls.sol",
2420 |             "line_no": 34,
2421 |             "src": "1028:19",
2422 |             "src_char": "1028:19"
2423 |           },
2424 |           {
2425 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
2426 |             "line_no": 16,
2427 |             "src": "488:71",
2428 |             "src_char": "488:71"
2429 |           }
2430 |         ]
2431 |       },
2432 |       {
2433 |         "title": "Reentrancy: State change after external call",
2434 |         "description": "Changing state after an external call can lead to re-entrancy attacks.Use the checks-effects-interactions pattern to avoid this issue.",
2435 |         "detector_name": "reentrancy-state-change",
2436 |         "instances": [
2437 |           {
2438 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2439 |             "line_no": 24,
2440 |             "src": "588:15",
2441 |             "src_char": "588:15",
2442 |             "hint": "State is changed at: `s_useMe += 1`"
2443 |           },
2444 |           {
2445 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2446 |             "line_no": 33,
2447 |             "src": "735:15",
2448 |             "src_char": "735:15",
2449 |             "hint": "State is changed at: `s_useMe -= 1`"
2450 |           },
2451 |           {
2452 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2453 |             "line_no": 52,
2454 |             "src": "1272:15",
2455 |             "src_char": "1272:15",
2456 |             "hint": "State is changed at: `s_useMe += 4`"
2457 |           },
2458 |           {
2459 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2460 |             "line_no": 82,
2461 |             "src": "1814:15",
2462 |             "src_char": "1814:15",
2463 |             "hint": "State is changed at: `s_useMe += 1`"
2464 |           },
2465 |           {
2466 |             "contract_path": "src/Trump.sol",
2467 |             "line_no": 342,
2468 |             "src": "11731:110",
2469 |             "src_char": "11731:110",
2470 |             "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
2471 |           },
2472 |           {
2473 |             "contract_path": "src/Trump.sol",
2474 |             "line_no": 343,
2475 |             "src": "11851:129",
2476 |             "src_char": "11851:129",
2477 |             "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
2478 |           },
2479 |           {
2480 |             "contract_path": "src/Trump.sol",
2481 |             "line_no": 344,
2482 |             "src": "11990:71",
2483 |             "src_char": "11990:71",
2484 |             "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
2485 |           }
2486 |         ]
2487 |       }
2488 |     ]
2489 |   },
2490 |   "low_issues": {
2491 |     "issues": [
2492 |       {
2493 |         "title": "`delegatecall` in loop",
2494 |         "description": "Using `delegatecall` in loop may consume excessive gas, or worse, lead to more severe issues.",
2495 |         "detector_name": "delegatecall-in-loop",
2496 |         "instances": [
2497 |           {
2498 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
2499 |             "line_no": 15,
2500 |             "src": "474:96",
2501 |             "src_char": "474:96"
2502 |           }
2503 |         ]
2504 |       },
2505 |       {
2506 |         "title": "Centralization Risk",
2507 |         "description": "Contracts have owners with privileged rights to perform admin tasks and need to be trusted to not perform malicious updates or drain funds.",
2508 |         "detector_name": "centralization-risk",
2509 |         "instances": [
2510 |           {
2511 |             "contract_path": "src/AdminContract.sol",
2512 |             "line_no": 7,
2513 |             "src": "270:7",
2514 |             "src_char": "270:7"
2515 |           },
2516 |           {
2517 |             "contract_path": "src/AdminContract.sol",
2518 |             "line_no": 10,
2519 |             "src": "376:9",
2520 |             "src_char": "376:9"
2521 |           },
2522 |           {
2523 |             "contract_path": "src/AdminContract.sol",
2524 |             "line_no": 14,
2525 |             "src": "505:9",
2526 |             "src_char": "505:9"
2527 |           },
2528 |           {
2529 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2530 |             "line_no": 7,
2531 |             "src": "295:13",
2532 |             "src_char": "295:13"
2533 |           },
2534 |           {
2535 |             "contract_path": "src/EmptyBlocks.sol",
2536 |             "line_no": 6,
2537 |             "src": "188:7",
2538 |             "src_char": "188:7"
2539 |           },
2540 |           {
2541 |             "contract_path": "src/InternalFunctions.sol",
2542 |             "line_no": 12,
2543 |             "src": "250:9",
2544 |             "src_char": "250:9"
2545 |           },
2546 |           {
2547 |             "contract_path": "src/SendEtherNoChecksLibImport.sol",
2548 |             "line_no": 7,
2549 |             "src": "276:7",
2550 |             "src_char": "276:7"
2551 |           },
2552 |           {
2553 |             "contract_path": "src/SendEtherNoChecksLibImport.sol",
2554 |             "line_no": 7,
2555 |             "src": "285:13",
2556 |             "src_char": "285:13"
2557 |           },
2558 |           {
2559 |             "contract_path": "src/SendEtherNoChecksLibImport.sol",
2560 |             "line_no": 16,
2561 |             "src": "516:9",
2562 |             "src_char": "516:9"
2563 |           },
2564 |           {
2565 |             "contract_path": "src/SendEtherNoChecksLibImport.sol",
2566 |             "line_no": 20,
2567 |             "src": "614:28",
2568 |             "src_char": "614:28"
2569 |           },
2570 |           {
2571 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2572 |             "line_no": 81,
2573 |             "src": "1794:9",
2574 |             "src_char": "1794:9"
2575 |           },
2576 |           {
2577 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
2578 |             "line_no": 87,
2579 |             "src": "1911:9",
2580 |             "src_char": "1911:9"
2581 |           },
2582 |           {
2583 |             "contract_path": "src/Trump.sol",
2584 |             "line_no": 92,
2585 |             "src": "2714:9",
2586 |             "src_char": "2714:9"
2587 |           },
2588 |           {
2589 |             "contract_path": "src/Trump.sol",
2590 |             "line_no": 123,
2591 |             "src": "3592:7",
2592 |             "src_char": "3592:7"
2593 |           },
2594 |           {
2595 |             "contract_path": "src/Trump.sol",
2596 |             "line_no": 299,
2597 |             "src": "10185:9",
2598 |             "src_char": "10185:9"
2599 |           },
2600 |           {
2601 |             "contract_path": "src/Trump.sol",
2602 |             "line_no": 338,
2603 |             "src": "11494:11",
2604 |             "src_char": "11494:11"
2605 |           },
2606 |           {
2607 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
2608 |             "line_no": 9,
2609 |             "src": "322:7",
2610 |             "src_char": "322:7"
2611 |           },
2612 |           {
2613 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
2614 |             "line_no": 11,
2615 |             "src": "396:9",
2616 |             "src_char": "396:9"
2617 |           },
2618 |           {
2619 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
2620 |             "line_no": 35,
2621 |             "src": "975:13",
2622 |             "src_char": "975:13"
2623 |           },
2624 |           {
2625 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
2626 |             "line_no": 38,
2627 |             "src": "1108:14",
2628 |             "src_char": "1108:14"
2629 |           },
2630 |           {
2631 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
2632 |             "line_no": 7,
2633 |             "src": "282:7",
2634 |             "src_char": "282:7"
2635 |           },
2636 |           {
2637 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
2638 |             "line_no": 28,
2639 |             "src": "725:9",
2640 |             "src_char": "725:9"
2641 |           },
2642 |           {
2643 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
2644 |             "line_no": 32,
2645 |             "src": "854:9",
2646 |             "src_char": "854:9"
2647 |           }
2648 |         ]
2649 |       },
2650 |       {
2651 |         "title": "Solmate's SafeTransferLib",
2652 |         "description": "There is a subtle difference between the implementation of solmate's SafeTransferLib and OZ's SafeERC20: OZ's SafeERC20 checks if the token is a contract or not, solmate's SafeTransferLib does not.\nhttps://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol#L9 \n`@dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller`\n",
2653 |         "detector_name": "solmate-safe-transfer-lib",
2654 |         "instances": [
2655 |           {
2656 |             "contract_path": "src/T11sTranferer.sol",
2657 |             "line_no": 4,
2658 |             "src": "57:84",
2659 |             "src_char": "57:84"
2660 |           }
2661 |         ]
2662 |       },
2663 |       {
2664 |         "title": "`ecrecover` Signature Malleability",
2665 |         "description": "The `ecrecover` function is susceptible to signature malleability. This means that the same message can be signed in multiple ways, allowing an attacker to change the message signature without invalidating it. This can lead to unexpected behavior in smart contracts, such as the loss of funds or the ability to bypass access control. Consider using OpenZeppelin's ECDSA library instead of the built-in function.",
2666 |         "detector_name": "ecrecover",
2667 |         "instances": [
2668 |           {
2669 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
2670 |             "line_no": 22,
2671 |             "src": "737:9",
2672 |             "src_char": "737:9"
2673 |           }
2674 |         ]
2675 |       },
2676 |       {
2677 |         "title": "Deprecated OpenZeppelin Function",
2678 |         "description": "Openzeppelin has deprecated several functions and replaced with newer versions. Please consult https://docs.openzeppelin.com/",
2679 |         "detector_name": "deprecated-oz-function",
2680 |         "instances": [
2681 |           {
2682 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2683 |             "line_no": 22,
2684 |             "src": "737:10",
2685 |             "src_char": "737:10"
2686 |           },
2687 |           {
2688 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2689 |             "line_no": 27,
2690 |             "src": "898:17",
2691 |             "src_char": "898:17"
2692 |           }
2693 |         ]
2694 |       },
2695 |       {
2696 |         "title": "Unsafe ERC20 Operation",
2697 |         "description": "ERC20 functions may not behave as expected. For example: return values are not always meaningful. It is recommended to use OpenZeppelin's SafeERC20 library.",
2698 |         "detector_name": "unsafe-erc20-operation",
2699 |         "instances": [
2700 |           {
2701 |             "contract_path": "src/ArbitraryTransferFrom.sol",
2702 |             "line_no": 19,
2703 |             "src": "601:20",
2704 |             "src_char": "601:20"
2705 |           },
2706 |           {
2707 |             "contract_path": "src/ArbitraryTransferFrom.sol",
2708 |             "line_no": 34,
2709 |             "src": "1046:20",
2710 |             "src_char": "1046:20"
2711 |           },
2712 |           {
2713 |             "contract_path": "src/ArbitraryTransferFrom.sol",
2714 |             "line_no": 54,
2715 |             "src": "1699:20",
2716 |             "src_char": "1699:20"
2717 |           },
2718 |           {
2719 |             "contract_path": "src/ContractLocksEther.sol",
2720 |             "line_no": 162,
2721 |             "src": "5185:18",
2722 |             "src_char": "5185:18"
2723 |           },
2724 |           {
2725 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2726 |             "line_no": 32,
2727 |             "src": "1062:13",
2728 |             "src_char": "1062:13"
2729 |           },
2730 |           {
2731 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2732 |             "line_no": 37,
2733 |             "src": "1272:13",
2734 |             "src_char": "1272:13"
2735 |           },
2736 |           {
2737 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2738 |             "line_no": 38,
2739 |             "src": "1322:13",
2740 |             "src_char": "1322:13"
2741 |           },
2742 |           {
2743 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2744 |             "line_no": 42,
2745 |             "src": "1424:13",
2746 |             "src_char": "1424:13"
2747 |           },
2748 |           {
2749 |             "contract_path": "src/DeprecatedOZFunctions.sol",
2750 |             "line_no": 47,
2751 |             "src": "1598:18",
2752 |             "src_char": "1598:18"
2753 |           },
2754 |           {
2755 |             "contract_path": "src/IncorrectModifier.sol",
2756 |             "line_no": 83,
2757 |             "src": "2103:23",
2758 |             "src_char": "2103:23"
2759 |           },
2760 |           {
2761 |             "contract_path": "src/OutOfOrderRetryable.sol",
2762 |             "line_no": 171,
2763 |             "src": "4927:28",
2764 |             "src_char": "4927:28"
2765 |           },
2766 |           {
2767 |             "contract_path": "src/OutOfOrderRetryable.sol",
2768 |             "line_no": 180,
2769 |             "src": "5328:28",
2770 |             "src_char": "5328:28"
2771 |           },
2772 |           {
2773 |             "contract_path": "src/SendEtherNoChecks.sol",
2774 |             "line_no": 67,
2775 |             "src": "1255:19",
2776 |             "src_char": "1255:19"
2777 |           },
2778 |           {
2779 |             "contract_path": "src/StateShadowing.sol",
2780 |             "line_no": 22,
2781 |             "src": "368:19",
2782 |             "src_char": "368:19"
2783 |           },
2784 |           {
2785 |             "contract_path": "src/Trump.sol",
2786 |             "line_no": 309,
2787 |             "src": "10512:19",
2788 |             "src_char": "10512:19"
2789 |           },
2790 |           {
2791 |             "contract_path": "src/Trump.sol",
2792 |             "line_no": 310,
2793 |             "src": "10557:20",
2794 |             "src_char": "10557:20"
2795 |           },
2796 |           {
2797 |             "contract_path": "src/Trump.sol",
2798 |             "line_no": 318,
2799 |             "src": "10869:29",
2800 |             "src_char": "10869:29"
2801 |           },
2802 |           {
2803 |             "contract_path": "src/Trump.sol",
2804 |             "line_no": 324,
2805 |             "src": "11111:28",
2806 |             "src_char": "11111:28"
2807 |           },
2808 |           {
2809 |             "contract_path": "src/Trump.sol",
2810 |             "line_no": 344,
2811 |             "src": "11990:29",
2812 |             "src_char": "11990:29"
2813 |           },
2814 |           {
2815 |             "contract_path": "src/UninitializedStateVariable.sol",
2816 |             "line_no": 18,
2817 |             "src": "599:29",
2818 |             "src_char": "599:29"
2819 |           }
2820 |         ]
2821 |       },
2822 |       {
2823 |         "title": "Unspecific Solidity Pragma",
2824 |         "description": "Consider using a specific version of Solidity in your contracts instead of a wide version. For example, instead of `pragma solidity ^0.8.0;`, use `pragma solidity 0.8.0;`",
2825 |         "detector_name": "unspecific-solidity-pragma",
2826 |         "instances": [
2827 |           {
2828 |             "contract_path": "src/BuiltinSymbolShadow.sol",
2829 |             "line_no": 2,
2830 |             "src": "32:23",
2831 |             "src_char": "32:23"
2832 |           },
2833 |           {
2834 |             "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
2835 |             "line_no": 2,
2836 |             "src": "32:23",
2837 |             "src_char": "32:23"
2838 |           },
2839 |           {
2840 |             "contract_path": "src/ConstFuncChangeState.sol",
2841 |             "line_no": 2,
2842 |             "src": "32:23",
2843 |             "src_char": "32:23"
2844 |           },
2845 |           {
2846 |             "contract_path": "src/ConstantFuncsAssembly.sol",
2847 |             "line_no": 2,
2848 |             "src": "32:23",
2849 |             "src_char": "32:23"
2850 |           },
2851 |           {
2852 |             "contract_path": "src/ContractLocksEther.sol",
2853 |             "line_no": 2,
2854 |             "src": "32:23",
2855 |             "src_char": "32:23"
2856 |           },
2857 |           {
2858 |             "contract_path": "src/ContractWithTodo.sol",
2859 |             "line_no": 2,
2860 |             "src": "32:23",
2861 |             "src_char": "32:23"
2862 |           },
2863 |           {
2864 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
2865 |             "line_no": 2,
2866 |             "src": "32:23",
2867 |             "src_char": "32:23"
2868 |           },
2869 |           {
2870 |             "contract_path": "src/Counter.sol",
2871 |             "line_no": 2,
2872 |             "src": "39:24",
2873 |             "src_char": "39:24"
2874 |           },
2875 |           {
2876 |             "contract_path": "src/CrazyPragma.sol",
2877 |             "line_no": 2,
2878 |             "src": "32:32",
2879 |             "src_char": "32:32"
2880 |           },
2881 |           {
2882 |             "contract_path": "src/DangerousStrictEquality1.sol",
2883 |             "line_no": 2,
2884 |             "src": "32:23",
2885 |             "src_char": "32:23"
2886 |           },
2887 |           {
2888 |             "contract_path": "src/DangerousUnaryOperator.sol",
2889 |             "line_no": 2,
2890 |             "src": "32:23",
2891 |             "src_char": "32:23"
2892 |           },
2893 |           {
2894 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
2895 |             "line_no": 2,
2896 |             "src": "32:21",
2897 |             "src_char": "32:21"
2898 |           },
2899 |           {
2900 |             "contract_path": "src/DeletionNestedMappingStructureContract.sol",
2901 |             "line_no": 2,
2902 |             "src": "32:23",
2903 |             "src_char": "32:23"
2904 |           },
2905 |           {
2906 |             "contract_path": "src/FunctionInitializingState.sol",
2907 |             "line_no": 2,
2908 |             "src": "32:23",
2909 |             "src_char": "32:23"
2910 |           },
2911 |           {
2912 |             "contract_path": "src/FunctionSignatureCollision.sol",
2913 |             "line_no": 2,
2914 |             "src": "32:23",
2915 |             "src_char": "32:23"
2916 |           },
2917 |           {
2918 |             "contract_path": "src/InconsistentUints.sol",
2919 |             "line_no": 1,
2920 |             "src": "0:24",
2921 |             "src_char": "0:24"
2922 |           },
2923 |           {
2924 |             "contract_path": "src/IncorrectERC20.sol",
2925 |             "line_no": 2,
2926 |             "src": "32:23",
2927 |             "src_char": "32:23"
2928 |           },
2929 |           {
2930 |             "contract_path": "src/IncorrectERC721.sol",
2931 |             "line_no": 2,
2932 |             "src": "32:23",
2933 |             "src_char": "32:23"
2934 |           },
2935 |           {
2936 |             "contract_path": "src/MsgValueInLoop.sol",
2937 |             "line_no": 2,
2938 |             "src": "32:23",
2939 |             "src_char": "32:23"
2940 |           },
2941 |           {
2942 |             "contract_path": "src/OutOfOrderRetryable.sol",
2943 |             "line_no": 2,
2944 |             "src": "32:23",
2945 |             "src_char": "32:23"
2946 |           },
2947 |           {
2948 |             "contract_path": "src/PragmaRange.sol",
2949 |             "line_no": 2,
2950 |             "src": "32:31",
2951 |             "src_char": "32:31"
2952 |           },
2953 |           {
2954 |             "contract_path": "src/PreDeclaredVarUsage.sol",
2955 |             "line_no": 2,
2956 |             "src": "32:23",
2957 |             "src_char": "32:23"
2958 |           },
2959 |           {
2960 |             "contract_path": "src/RedundantStatements.sol",
2961 |             "line_no": 2,
2962 |             "src": "32:23",
2963 |             "src_char": "32:23"
2964 |           },
2965 |           {
2966 |             "contract_path": "src/TautologyOrContradiction.sol",
2967 |             "line_no": 2,
2968 |             "src": "32:23",
2969 |             "src_char": "32:23"
2970 |           },
2971 |           {
2972 |             "contract_path": "src/TxOriginUsedForAuth.sol",
2973 |             "line_no": 2,
2974 |             "src": "32:24",
2975 |             "src_char": "32:24"
2976 |           },
2977 |           {
2978 |             "contract_path": "src/UncheckedCalls.sol",
2979 |             "line_no": 2,
2980 |             "src": "32:23",
2981 |             "src_char": "32:23"
2982 |           },
2983 |           {
2984 |             "contract_path": "src/UncheckedSend.sol",
2985 |             "line_no": 2,
2986 |             "src": "32:23",
2987 |             "src_char": "32:23"
2988 |           },
2989 |           {
2990 |             "contract_path": "src/UnusedStateVariables.sol",
2991 |             "line_no": 2,
2992 |             "src": "32:24",
2993 |             "src_char": "32:24"
2994 |           },
2995 |           {
2996 |             "contract_path": "src/UsingSelfdestruct.sol",
2997 |             "line_no": 2,
2998 |             "src": "32:23",
2999 |             "src_char": "32:23"
3000 |           },
3001 |           {
3002 |             "contract_path": "src/VoidConstructor.sol",
3003 |             "line_no": 2,
3004 |             "src": "32:23",
3005 |             "src_char": "32:23"
3006 |           },
3007 |           {
3008 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
3009 |             "line_no": 6,
3010 |             "src": "46:24",
3011 |             "src_char": "46:24"
3012 |           },
3013 |           {
3014 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
3015 |             "line_no": 6,
3016 |             "src": "46:32",
3017 |             "src_char": "46:32"
3018 |           },
3019 |           {
3020 |             "contract_path": "src/inheritance/IContractInheritance.sol",
3021 |             "line_no": 2,
3022 |             "src": "32:24",
3023 |             "src_char": "32:24"
3024 |           },
3025 |           {
3026 |             "contract_path": "src/inheritance/InheritanceBase.sol",
3027 |             "line_no": 2,
3028 |             "src": "32:23",
3029 |             "src_char": "32:23"
3030 |           },
3031 |           {
3032 |             "contract_path": "src/nested_mappings/LaterVersion.sol",
3033 |             "line_no": 2,
3034 |             "src": "36:23",
3035 |             "src_char": "36:23"
3036 |           },
3037 |           {
3038 |             "contract_path": "src/nested_mappings/NestedMappings.sol",
3039 |             "line_no": 2,
3040 |             "src": "36:24",
3041 |             "src_char": "36:24"
3042 |           }
3043 |         ]
3044 |       },
3045 |       {
3046 |         "title": "Address State Variable Set Without Checks",
3047 |         "description": "Check for `address(0)` when assigning values to address state variables.",
3048 |         "detector_name": "state-no-address-check",
3049 |         "instances": [
3050 |           {
3051 |             "contract_path": "src/ArbitraryTransferFrom.sol",
3052 |             "line_no": 12,
3053 |             "src": "267:15",
3054 |             "src_char": "267:15"
3055 |           },
3056 |           {
3057 |             "contract_path": "src/ExternalCalls.sol",
3058 |             "line_no": 20,
3059 |             "src": "347:16",
3060 |             "src_char": "347:16"
3061 |           },
3062 |           {
3063 |             "contract_path": "src/ExternalCalls.sol",
3064 |             "line_no": 28,
3065 |             "src": "459:6",
3066 |             "src_char": "459:6"
3067 |           },
3068 |           {
3069 |             "contract_path": "src/OutOfOrderRetryable.sol",
3070 |             "line_no": 54,
3071 |             "src": "1416:14",
3072 |             "src_char": "1416:14"
3073 |           },
3074 |           {
3075 |             "contract_path": "src/OutOfOrderRetryable.sol",
3076 |             "line_no": 55,
3077 |             "src": "1440:24",
3078 |             "src_char": "1440:24"
3079 |           },
3080 |           {
3081 |             "contract_path": "src/StateVariables.sol",
3082 |             "line_no": 58,
3083 |             "src": "2121:14",
3084 |             "src_char": "2121:14"
3085 |           },
3086 |           {
3087 |             "contract_path": "src/StateVariablesManipulation.sol",
3088 |             "line_no": 56,
3089 |             "src": "1657:17",
3090 |             "src_char": "1657:17"
3091 |           },
3092 |           {
3093 |             "contract_path": "src/ZeroAddressCheck.sol",
3094 |             "line_no": 43,
3095 |             "src": "1171:14",
3096 |             "src_char": "1171:14"
3097 |           },
3098 |           {
3099 |             "contract_path": "src/ZeroAddressCheck.sol",
3100 |             "line_no": 47,
3101 |             "src": "1248:16",
3102 |             "src_char": "1248:16"
3103 |           },
3104 |           {
3105 |             "contract_path": "src/ZeroAddressCheck.sol",
3106 |             "line_no": 51,
3107 |             "src": "1327:23",
3108 |             "src_char": "1327:23"
3109 |           },
3110 |           {
3111 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
3112 |             "line_no": 18,
3113 |             "src": "579:22",
3114 |             "src_char": "579:22"
3115 |           },
3116 |           {
3117 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
3118 |             "line_no": 11,
3119 |             "src": "365:17",
3120 |             "src_char": "365:17"
3121 |           }
3122 |         ]
3123 |       },
3124 |       {
3125 |         "title": "Public Function Not Used Internally",
3126 |         "description": "If a function is marked public but is not used internally, consider marking it as `external`.",
3127 |         "detector_name": "unused-public-function",
3128 |         "instances": [
3129 |           {
3130 |             "contract_path": "src/AderynIgnoreCustomDetectors.sol",
3131 |             "line_no": 7,
3132 |             "src": "174:2",
3133 |             "src_char": "174:2"
3134 |           },
3135 |           {
3136 |             "contract_path": "src/AderynIgnoreCustomDetectors.sol",
3137 |             "line_no": 26,
3138 |             "src": "583:2",
3139 |             "src_char": "583:2"
3140 |           },
3141 |           {
3142 |             "contract_path": "src/ArbitraryTransferFrom.sol",
3143 |             "line_no": 32,
3144 |             "src": "954:5",
3145 |             "src_char": "954:5"
3146 |           },
3147 |           {
3148 |             "contract_path": "src/AssemblyExample.sol",
3149 |             "line_no": 6,
3150 |             "src": "113:1",
3151 |             "src_char": "113:1"
3152 |           },
3153 |           {
3154 |             "contract_path": "src/AssertStateChange.sol",
3155 |             "line_no": 8,
3156 |             "src": "131:3",
3157 |             "src_char": "131:3"
3158 |           },
3159 |           {
3160 |             "contract_path": "src/AssertStateChange.sol",
3161 |             "line_no": 12,
3162 |             "src": "199:4",
3163 |             "src_char": "199:4"
3164 |           },
3165 |           {
3166 |             "contract_path": "src/BuiltinSymbolShadow.sol",
3167 |             "line_no": 8,
3168 |             "src": "125:41",
3169 |             "src_char": "125:41"
3170 |           },
3171 |           {
3172 |             "contract_path": "src/ConstFuncChangeState.sol",
3173 |             "line_no": 8,
3174 |             "src": "173:112",
3175 |             "src_char": "173:112"
3176 |           },
3177 |           {
3178 |             "contract_path": "src/ConstFuncChangeState.sol",
3179 |             "line_no": 14,
3180 |             "src": "339:108",
3181 |             "src_char": "339:108"
3182 |           },
3183 |           {
3184 |             "contract_path": "src/ConstFuncChangeState.sol",
3185 |             "line_no": 20,
3186 |             "src": "517:89",
3187 |             "src_char": "517:89"
3188 |           },
3189 |           {
3190 |             "contract_path": "src/ContractLocksEther.sol",
3191 |             "line_no": 20,
3192 |             "src": "539:10",
3193 |             "src_char": "539:10"
3194 |           },
3195 |           {
3196 |             "contract_path": "src/ContractLocksEther.sol",
3197 |             "line_no": 49,
3198 |             "src": "1379:10",
3199 |             "src_char": "1379:10"
3200 |           },
3201 |           {
3202 |             "contract_path": "src/ContractLocksEther.sol",
3203 |             "line_no": 81,
3204 |             "src": "2414:10",
3205 |             "src_char": "2414:10"
3206 |           },
3207 |           {
3208 |             "contract_path": "src/ContractLocksEther.sol",
3209 |             "line_no": 118,
3210 |             "src": "3653:10",
3211 |             "src_char": "3653:10"
3212 |           },
3213 |           {
3214 |             "contract_path": "src/ContractLocksEther.sol",
3215 |             "line_no": 155,
3216 |             "src": "4877:10",
3217 |             "src_char": "4877:10"
3218 |           },
3219 |           {
3220 |             "contract_path": "src/ContractLocksEther.sol",
3221 |             "line_no": 181,
3222 |             "src": "5775:10",
3223 |             "src_char": "5775:10"
3224 |           },
3225 |           {
3226 |             "contract_path": "src/ContractWithTodo.sol",
3227 |             "line_no": 13,
3228 |             "src": "337:15",
3229 |             "src_char": "337:15"
3230 |           },
3231 |           {
3232 |             "contract_path": "src/Counter.sol",
3233 |             "line_no": 7,
3234 |             "src": "129:9",
3235 |             "src_char": "129:9"
3236 |           },
3237 |           {
3238 |             "contract_path": "src/ExternalCalls.sol",
3239 |             "line_no": 11,
3240 |             "src": "194:7",
3241 |             "src_char": "194:7"
3242 |           },
3243 |           {
3244 |             "contract_path": "src/ExternalCalls.sol",
3245 |             "line_no": 19,
3246 |             "src": "309:9",
3247 |             "src_char": "309:9"
3248 |           },
3249 |           {
3250 |             "contract_path": "src/IncorrectERC20.sol",
3251 |             "line_no": 17,
3252 |             "src": "483:8",
3253 |             "src_char": "483:8"
3254 |           },
3255 |           {
3256 |             "contract_path": "src/IncorrectERC20.sol",
3257 |             "line_no": 23,
3258 |             "src": "690:7",
3259 |             "src_char": "690:7"
3260 |           },
3261 |           {
3262 |             "contract_path": "src/IncorrectERC20.sol",
3263 |             "line_no": 27,
3264 |             "src": "808:12",
3265 |             "src_char": "808:12"
3266 |           },
3267 |           {
3268 |             "contract_path": "src/IncorrectERC20.sol",
3269 |             "line_no": 35,
3270 |             "src": "1146:9",
3271 |             "src_char": "1146:9"
3272 |           },
3273 |           {
3274 |             "contract_path": "src/IncorrectERC20.sol",
3275 |             "line_no": 39,
3276 |             "src": "1249:9",
3277 |             "src_char": "1249:9"
3278 |           },
3279 |           {
3280 |             "contract_path": "src/LocalVariableShadow.sol",
3281 |             "line_no": 10,
3282 |             "src": "181:17",
3283 |             "src_char": "181:17"
3284 |           },
3285 |           {
3286 |             "contract_path": "src/LocalVariableShadow.sol",
3287 |             "line_no": 16,
3288 |             "src": "332:26",
3289 |             "src_char": "332:26"
3290 |           },
3291 |           {
3292 |             "contract_path": "src/LocalVariableShadow.sol",
3293 |             "line_no": 31,
3294 |             "src": "700:18",
3295 |             "src_char": "700:18"
3296 |           },
3297 |           {
3298 |             "contract_path": "src/OutOfOrderRetryable.sol",
3299 |             "line_no": 167,
3300 |             "src": "4685:13",
3301 |             "src_char": "4685:13"
3302 |           },
3303 |           {
3304 |             "contract_path": "src/OutOfOrderRetryable.sol",
3305 |             "line_no": 175,
3306 |             "src": "5072:7",
3307 |             "src_char": "5072:7"
3308 |           },
3309 |           {
3310 |             "contract_path": "src/ReturnBomb.sol",
3311 |             "line_no": 16,
3312 |             "src": "358:4",
3313 |             "src_char": "358:4"
3314 |           },
3315 |           {
3316 |             "contract_path": "src/ReturnBomb.sol",
3317 |             "line_no": 32,
3318 |             "src": "839:4",
3319 |             "src_char": "839:4"
3320 |           },
3321 |           {
3322 |             "contract_path": "src/ReturnBomb.sol",
3323 |             "line_no": 47,
3324 |             "src": "1273:4",
3325 |             "src_char": "1273:4"
3326 |           },
3327 |           {
3328 |             "contract_path": "src/ReturnBomb.sol",
3329 |             "line_no": 63,
3330 |             "src": "1646:4",
3331 |             "src_char": "1646:4"
3332 |           },
3333 |           {
3334 |             "contract_path": "src/StateVariables.sol",
3335 |             "line_no": 47,
3336 |             "src": "1764:18",
3337 |             "src_char": "1764:18"
3338 |           },
3339 |           {
3340 |             "contract_path": "src/StateVariables.sol",
3341 |             "line_no": 52,
3342 |             "src": "1915:20",
3343 |             "src_char": "1915:20"
3344 |           },
3345 |           {
3346 |             "contract_path": "src/StateVariables.sol",
3347 |             "line_no": 57,
3348 |             "src": "2072:14",
3349 |             "src_char": "2072:14"
3350 |           },
3351 |           {
3352 |             "contract_path": "src/StateVariables.sol",
3353 |             "line_no": 61,
3354 |             "src": "2157:22",
3355 |             "src_char": "2157:22"
3356 |           },
3357 |           {
3358 |             "contract_path": "src/StateVariables.sol",
3359 |             "line_no": 71,
3360 |             "src": "2539:25",
3361 |             "src_char": "2539:25"
3362 |           },
3363 |           {
3364 |             "contract_path": "src/Trump.sol",
3365 |             "line_no": 180,
3366 |             "src": "5624:4",
3367 |             "src_char": "5624:4"
3368 |           },
3369 |           {
3370 |             "contract_path": "src/Trump.sol",
3371 |             "line_no": 184,
3372 |             "src": "5711:6",
3373 |             "src_char": "5711:6"
3374 |           },
3375 |           {
3376 |             "contract_path": "src/Trump.sol",
3377 |             "line_no": 188,
3378 |             "src": "5802:8",
3379 |             "src_char": "5802:8"
3380 |           },
3381 |           {
3382 |             "contract_path": "src/UninitializedLocalVariables.sol",
3383 |             "line_no": 7,
3384 |             "src": "121:19",
3385 |             "src_char": "121:19"
3386 |           },
3387 |           {
3388 |             "contract_path": "src/UninitializedLocalVariables.sol",
3389 |             "line_no": 23,
3390 |             "src": "727:20",
3391 |             "src_char": "727:20"
3392 |           },
3393 |           {
3394 |             "contract_path": "src/UninitializedLocalVariables.sol",
3395 |             "line_no": 41,
3396 |             "src": "1527:17",
3397 |             "src_char": "1527:17"
3398 |           },
3399 |           {
3400 |             "contract_path": "src/UninitializedStateVariable.sol",
3401 |             "line_no": 17,
3402 |             "src": "563:8",
3403 |             "src_char": "563:8"
3404 |           },
3405 |           {
3406 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3407 |             "line_no": 16,
3408 |             "src": "475:27",
3409 |             "src_char": "475:27"
3410 |           },
3411 |           {
3412 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3413 |             "line_no": 22,
3414 |             "src": "653:28",
3415 |             "src_char": "653:28"
3416 |           },
3417 |           {
3418 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3419 |             "line_no": 45,
3420 |             "src": "1324:26",
3421 |             "src_char": "1324:26"
3422 |           },
3423 |           {
3424 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3425 |             "line_no": 53,
3426 |             "src": "1637:27",
3427 |             "src_char": "1637:27"
3428 |           },
3429 |           {
3430 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3431 |             "line_no": 71,
3432 |             "src": "2014:20",
3433 |             "src_char": "2014:20"
3434 |           },
3435 |           {
3436 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
3437 |             "line_no": 77,
3438 |             "src": "2183:28",
3439 |             "src_char": "2183:28"
3440 |           },
3441 |           {
3442 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
3443 |             "line_no": 31,
3444 |             "src": "500:3",
3445 |             "src_char": "500:3"
3446 |           },
3447 |           {
3448 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
3449 |             "line_no": 38,
3450 |             "src": "637:5",
3451 |             "src_char": "637:5"
3452 |           },
3453 |           {
3454 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
3455 |             "line_no": 42,
3456 |             "src": "738:4",
3457 |             "src_char": "735:4"
3458 |           },
3459 |           {
3460 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
3461 |             "line_no": 31,
3462 |             "src": "509:3",
3463 |             "src_char": "509:3"
3464 |           },
3465 |           {
3466 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
3467 |             "line_no": 38,
3468 |             "src": "646:4",
3469 |             "src_char": "646:4"
3470 |           },
3471 |           {
3472 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
3473 |             "line_no": 11,
3474 |             "src": "355:9",
3475 |             "src_char": "355:9"
3476 |           },
3477 |           {
3478 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
3479 |             "line_no": 15,
3480 |             "src": "422:9",
3481 |             "src_char": "422:9"
3482 |           },
3483 |           {
3484 |             "contract_path": "src/router/ExternalCalls.sol",
3485 |             "line_no": 23,
3486 |             "src": "384:4",
3487 |             "src_char": "384:4"
3488 |           },
3489 |           {
3490 |             "contract_path": "src/router/ExternalCalls.sol",
3491 |             "line_no": 40,
3492 |             "src": "776:4",
3493 |             "src_char": "776:4"
3494 |           },
3495 |           {
3496 |             "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
3497 |             "line_no": 22,
3498 |             "src": "405:4",
3499 |             "src_char": "405:4"
3500 |           },
3501 |           {
3502 |             "contract_path": "src/router/InternalCalls.sol",
3503 |             "line_no": 31,
3504 |             "src": "510:4",
3505 |             "src_char": "510:4"
3506 |           },
3507 |           {
3508 |             "contract_path": "src/router/InternalCalls.sol",
3509 |             "line_no": 46,
3510 |             "src": "817:5",
3511 |             "src_char": "817:5"
3512 |           },
3513 |           {
3514 |             "contract_path": "src/router/InternalCalls.sol",
3515 |             "line_no": 96,
3516 |             "src": "1780:4",
3517 |             "src_char": "1780:4"
3518 |           },
3519 |           {
3520 |             "contract_path": "src/router/InternalCalls.sol",
3521 |             "line_no": 120,
3522 |             "src": "2306:4",
3523 |             "src_char": "2306:4"
3524 |           },
3525 |           {
3526 |             "contract_path": "src/router/InternalCalls.sol",
3527 |             "line_no": 161,
3528 |             "src": "3047:4",
3529 |             "src_char": "3047:4"
3530 |           },
3531 |           {
3532 |             "contract_path": "src/router/InternalCalls.sol",
3533 |             "line_no": 169,
3534 |             "src": "3165:4",
3535 |             "src_char": "3165:4"
3536 |           },
3537 |           {
3538 |             "contract_path": "src/router/InternalCalls.sol",
3539 |             "line_no": 177,
3540 |             "src": "3290:4",
3541 |             "src_char": "3290:4"
3542 |           },
3543 |           {
3544 |             "contract_path": "src/router/InternalCalls.sol",
3545 |             "line_no": 183,
3546 |             "src": "3379:4",
3547 |             "src_char": "3379:4"
3548 |           },
3549 |           {
3550 |             "contract_path": "src/router/ModifierCalls.sol",
3551 |             "line_no": 22,
3552 |             "src": "304:4",
3553 |             "src_char": "304:4"
3554 |           },
3555 |           {
3556 |             "contract_path": "src/router/ModifierCalls.sol",
3557 |             "line_no": 35,
3558 |             "src": "447:4",
3559 |             "src_char": "447:4"
3560 |           }
3561 |         ]
3562 |       },
3563 |       {
3564 |         "title": "Literal Instead of Constant",
3565 |         "description": "Define and use `constant` variables instead of using literals. If the same constant literal value is used multiple times, create a constant state variable and reference it throughout the contract.",
3566 |         "detector_name": "literal-instead-of-constant",
3567 |         "instances": [
3568 |           {
3569 |             "contract_path": "src/AssertStateChange.sol",
3570 |             "line_no": 9,
3571 |             "src": "174:2",
3572 |             "src_char": "174:2"
3573 |           },
3574 |           {
3575 |             "contract_path": "src/AssertStateChange.sol",
3576 |             "line_no": 14,
3577 |             "src": "254:2",
3578 |             "src_char": "254:2"
3579 |           },
3580 |           {
3581 |             "contract_path": "src/BooleanEquality.sol",
3582 |             "line_no": 6,
3583 |             "src": "170:3",
3584 |             "src_char": "170:3"
3585 |           },
3586 |           {
3587 |             "contract_path": "src/BooleanEquality.sol",
3588 |             "line_no": 13,
3589 |             "src": "330:3",
3590 |             "src_char": "330:3"
3591 |           },
3592 |           {
3593 |             "contract_path": "src/BooleanEquality.sol",
3594 |             "line_no": 15,
3595 |             "src": "360:3",
3596 |             "src_char": "360:3"
3597 |           },
3598 |           {
3599 |             "contract_path": "src/BooleanEquality.sol",
3600 |             "line_no": 20,
3601 |             "src": "492:3",
3602 |             "src_char": "492:3"
3603 |           },
3604 |           {
3605 |             "contract_path": "src/BooleanEquality.sol",
3606 |             "line_no": 27,
3607 |             "src": "653:3",
3608 |             "src_char": "653:3"
3609 |           },
3610 |           {
3611 |             "contract_path": "src/BooleanEquality.sol",
3612 |             "line_no": 29,
3613 |             "src": "683:3",
3614 |             "src_char": "683:3"
3615 |           },
3616 |           {
3617 |             "contract_path": "src/CacheArrayLength.sol",
3618 |             "line_no": 26,
3619 |             "src": "611:3",
3620 |             "src_char": "611:3"
3621 |           },
3622 |           {
3623 |             "contract_path": "src/CacheArrayLength.sol",
3624 |             "line_no": 27,
3625 |             "src": "639:3",
3626 |             "src_char": "639:3"
3627 |           },
3628 |           {
3629 |             "contract_path": "src/CacheArrayLength.sol",
3630 |             "line_no": 36,
3631 |             "src": "1015:3",
3632 |             "src_char": "1015:3"
3633 |           },
3634 |           {
3635 |             "contract_path": "src/CacheArrayLength.sol",
3636 |             "line_no": 37,
3637 |             "src": "1043:3",
3638 |             "src_char": "1043:3"
3639 |           },
3640 |           {
3641 |             "contract_path": "src/Casting.sol",
3642 |             "line_no": 20,
3643 |             "src": "511:18",
3644 |             "src_char": "511:18"
3645 |           },
3646 |           {
3647 |             "contract_path": "src/Casting.sol",
3648 |             "line_no": 26,
3649 |             "src": "674:18",
3650 |             "src_char": "674:18"
3651 |           },
3652 |           {
3653 |             "contract_path": "src/Casting.sol",
3654 |             "line_no": 38,
3655 |             "src": "983:18",
3656 |             "src_char": "983:18"
3657 |           },
3658 |           {
3659 |             "contract_path": "src/Casting.sol",
3660 |             "line_no": 76,
3661 |             "src": "2165:18",
3662 |             "src_char": "2165:18"
3663 |           },
3664 |           {
3665 |             "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
3666 |             "line_no": 9,
3667 |             "src": "235:1",
3668 |             "src_char": "235:1"
3669 |           },
3670 |           {
3671 |             "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
3672 |             "line_no": 14,
3673 |             "src": "352:1",
3674 |             "src_char": "352:1"
3675 |           },
3676 |           {
3677 |             "contract_path": "src/ConstantsLiterals.sol",
3678 |             "line_no": 25,
3679 |             "src": "958:3",
3680 |             "src_char": "958:3"
3681 |           },
3682 |           {
3683 |             "contract_path": "src/ConstantsLiterals.sol",
3684 |             "line_no": 26,
3685 |             "src": "992:3",
3686 |             "src_char": "992:3"
3687 |           },
3688 |           {
3689 |             "contract_path": "src/ConstantsLiterals.sol",
3690 |             "line_no": 27,
3691 |             "src": "1032:4",
3692 |             "src_char": "1032:4"
3693 |           },
3694 |           {
3695 |             "contract_path": "src/ConstantsLiterals.sol",
3696 |             "line_no": 28,
3697 |             "src": "1068:4",
3698 |             "src_char": "1068:4"
3699 |           },
3700 |           {
3701 |             "contract_path": "src/ConstantsLiterals.sol",
3702 |             "line_no": 29,
3703 |             "src": "1117:42",
3704 |             "src_char": "1117:42"
3705 |           },
3706 |           {
3707 |             "contract_path": "src/ConstantsLiterals.sol",
3708 |             "line_no": 30,
3709 |             "src": "1192:42",
3710 |             "src_char": "1192:42"
3711 |           },
3712 |           {
3713 |             "contract_path": "src/ConstantsLiterals.sol",
3714 |             "line_no": 31,
3715 |             "src": "1275:66",
3716 |             "src_char": "1275:66"
3717 |           },
3718 |           {
3719 |             "contract_path": "src/DangerousStrictEquality2.sol",
3720 |             "line_no": 6,
3721 |             "src": "202:9",
3722 |             "src_char": "202:9"
3723 |           },
3724 |           {
3725 |             "contract_path": "src/DangerousStrictEquality2.sol",
3726 |             "line_no": 10,
3727 |             "src": "339:9",
3728 |             "src_char": "339:9"
3729 |           },
3730 |           {
3731 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
3732 |             "line_no": 24,
3733 |             "src": "718:1",
3734 |             "src_char": "718:1"
3735 |           },
3736 |           {
3737 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
3738 |             "line_no": 24,
3739 |             "src": "771:1",
3740 |             "src_char": "771:1"
3741 |           },
3742 |           {
3743 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
3744 |             "line_no": 26,
3745 |             "src": "838:1",
3746 |             "src_char": "838:1"
3747 |           },
3748 |           {
3749 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
3750 |             "line_no": 13,
3751 |             "src": "312:3",
3752 |             "src_char": "312:3"
3753 |           },
3754 |           {
3755 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
3756 |             "line_no": 14,
3757 |             "src": "346:3",
3758 |             "src_char": "346:3"
3759 |           },
3760 |           {
3761 |             "contract_path": "src/DynamicArrayLengthAssignment.sol",
3762 |             "line_no": 17,
3763 |             "src": "457:3",
3764 |             "src_char": "457:3"
3765 |           },
3766 |           {
3767 |             "contract_path": "src/FunctionInitializingState.sol",
3768 |             "line_no": 23,
3769 |             "src": "792:2",
3770 |             "src_char": "792:2"
3771 |           },
3772 |           {
3773 |             "contract_path": "src/FunctionInitializingState.sol",
3774 |             "line_no": 26,
3775 |             "src": "822:2",
3776 |             "src_char": "822:2"
3777 |           },
3778 |           {
3779 |             "contract_path": "src/FunctionInitializingState.sol",
3780 |             "line_no": 34,
3781 |             "src": "1111:2",
3782 |             "src_char": "1111:2"
3783 |           },
3784 |           {
3785 |             "contract_path": "src/FunctionInitializingState.sol",
3786 |             "line_no": 37,
3787 |             "src": "1141:2",
3788 |             "src_char": "1141:2"
3789 |           },
3790 |           {
3791 |             "contract_path": "src/FunctionInitializingState.sol",
3792 |             "line_no": 42,
3793 |             "src": "1270:4",
3794 |             "src_char": "1270:4"
3795 |           },
3796 |           {
3797 |             "contract_path": "src/FunctionInitializingState.sol",
3798 |             "line_no": 42,
3799 |             "src": "1277:4",
3800 |             "src_char": "1277:4"
3801 |           },
3802 |           {
3803 |             "contract_path": "src/FunctionInitializingState.sol",
3804 |             "line_no": 48,
3805 |             "src": "1461:4",
3806 |             "src_char": "1461:4"
3807 |           },
3808 |           {
3809 |             "contract_path": "src/FunctionInitializingState.sol",
3810 |             "line_no": 48,
3811 |             "src": "1468:4",
3812 |             "src_char": "1468:4"
3813 |           },
3814 |           {
3815 |             "contract_path": "src/IncorrectCaretOperator.sol",
3816 |             "line_no": 17,
3817 |             "src": "563:2",
3818 |             "src_char": "563:2"
3819 |           },
3820 |           {
3821 |             "contract_path": "src/IncorrectCaretOperator.sol",
3822 |             "line_no": 18,
3823 |             "src": "606:2",
3824 |             "src_char": "606:2"
3825 |           },
3826 |           {
3827 |             "contract_path": "src/MultiplePlaceholders.sol",
3828 |             "line_no": 22,
3829 |             "src": "423:3",
3830 |             "src_char": "423:3"
3831 |           },
3832 |           {
3833 |             "contract_path": "src/MultiplePlaceholders.sol",
3834 |             "line_no": 33,
3835 |             "src": "619:3",
3836 |             "src_char": "619:3"
3837 |           },
3838 |           {
3839 |             "contract_path": "src/MultiplePlaceholders.sol",
3840 |             "line_no": 45,
3841 |             "src": "825:3",
3842 |             "src_char": "825:3"
3843 |           },
3844 |           {
3845 |             "contract_path": "src/PreDeclaredVarUsage.sol",
3846 |             "line_no": 8,
3847 |             "src": "200:3",
3848 |             "src_char": "200:3"
3849 |           },
3850 |           {
3851 |             "contract_path": "src/PreDeclaredVarUsage.sol",
3852 |             "line_no": 9,
3853 |             "src": "222:3",
3854 |             "src_char": "222:3"
3855 |           },
3856 |           {
3857 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
3858 |             "line_no": 10,
3859 |             "src": "253:2",
3860 |             "src_char": "253:2"
3861 |           },
3862 |           {
3863 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
3864 |             "line_no": 17,
3865 |             "src": "442:2",
3866 |             "src_char": "442:2"
3867 |           },
3868 |           {
3869 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
3870 |             "line_no": 26,
3871 |             "src": "706:2",
3872 |             "src_char": "706:2"
3873 |           },
3874 |           {
3875 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
3876 |             "line_no": 27,
3877 |             "src": "745:2",
3878 |             "src_char": "745:2"
3879 |           },
3880 |           {
3881 |             "contract_path": "src/StateVariablesManipulation.sol",
3882 |             "line_no": 121,
3883 |             "src": "3471:2",
3884 |             "src_char": "3471:2"
3885 |           },
3886 |           {
3887 |             "contract_path": "src/StateVariablesManipulation.sol",
3888 |             "line_no": 123,
3889 |             "src": "3542:2",
3890 |             "src_char": "3542:2"
3891 |           },
3892 |           {
3893 |             "contract_path": "src/StateVariablesManipulation.sol",
3894 |             "line_no": 192,
3895 |             "src": "5408:3",
3896 |             "src_char": "5408:3"
3897 |           },
3898 |           {
3899 |             "contract_path": "src/StateVariablesManipulation.sol",
3900 |             "line_no": 202,
3901 |             "src": "5621:3",
3902 |             "src_char": "5621:3"
3903 |           },
3904 |           {
3905 |             "contract_path": "src/StateVariablesManipulation.sol",
3906 |             "line_no": 233,
3907 |             "src": "6372:1",
3908 |             "src_char": "6372:1"
3909 |           },
3910 |           {
3911 |             "contract_path": "src/StateVariablesManipulation.sol",
3912 |             "line_no": 237,
3913 |             "src": "6468:2",
3914 |             "src_char": "6468:2"
3915 |           },
3916 |           {
3917 |             "contract_path": "src/StateVariablesManipulation.sol",
3918 |             "line_no": 239,
3919 |             "src": "6543:2",
3920 |             "src_char": "6543:2"
3921 |           },
3922 |           {
3923 |             "contract_path": "src/StateVariablesManipulation.sol",
3924 |             "line_no": 244,
3925 |             "src": "6704:2",
3926 |             "src_char": "6704:2"
3927 |           },
3928 |           {
3929 |             "contract_path": "src/StateVariablesManipulation.sol",
3930 |             "line_no": 258,
3931 |             "src": "7236:1",
3932 |             "src_char": "7236:1"
3933 |           },
3934 |           {
3935 |             "contract_path": "src/StateVariablesManipulation.sol",
3936 |             "line_no": 264,
3937 |             "src": "7497:1",
3938 |             "src_char": "7497:1"
3939 |           },
3940 |           {
3941 |             "contract_path": "src/StateVariablesManipulation.sol",
3942 |             "line_no": 333,
3943 |             "src": "9506:3",
3944 |             "src_char": "9506:3"
3945 |           },
3946 |           {
3947 |             "contract_path": "src/StateVariablesManipulation.sol",
3948 |             "line_no": 339,
3949 |             "src": "9671:3",
3950 |             "src_char": "9671:3"
3951 |           },
3952 |           {
3953 |             "contract_path": "src/Trump.sol",
3954 |             "line_no": 233,
3955 |             "src": "7704:3",
3956 |             "src_char": "7704:3"
3957 |           },
3958 |           {
3959 |             "contract_path": "src/Trump.sol",
3960 |             "line_no": 250,
3961 |             "src": "8497:3",
3962 |             "src_char": "8497:3"
3963 |           },
3964 |           {
3965 |             "contract_path": "src/Trump.sol",
3966 |             "line_no": 306,
3967 |             "src": "10426:3",
3968 |             "src_char": "10426:3"
3969 |           },
3970 |           {
3971 |             "contract_path": "src/Trump.sol",
3972 |             "line_no": 307,
3973 |             "src": "10498:3",
3974 |             "src_char": "10498:3"
3975 |           },
3976 |           {
3977 |             "contract_path": "src/UncheckedReturn.sol",
3978 |             "line_no": 27,
3979 |             "src": "607:7",
3980 |             "src_char": "607:7"
3981 |           },
3982 |           {
3983 |             "contract_path": "src/UncheckedReturn.sol",
3984 |             "line_no": 32,
3985 |             "src": "805:7",
3986 |             "src_char": "805:7"
3987 |           },
3988 |           {
3989 |             "contract_path": "src/UncheckedReturn.sol",
3990 |             "line_no": 37,
3991 |             "src": "995:7",
3992 |             "src_char": "995:7"
3993 |           },
3994 |           {
3995 |             "contract_path": "src/UncheckedReturn.sol",
3996 |             "line_no": 42,
3997 |             "src": "1190:7",
3998 |             "src_char": "1190:7"
3999 |           },
4000 |           {
4001 |             "contract_path": "src/UninitializedLocalVariables.sol",
4002 |             "line_no": 34,
4003 |             "src": "1264:42",
4004 |             "src_char": "1264:42"
4005 |           },
4006 |           {
4007 |             "contract_path": "src/UninitializedLocalVariables.sol",
4008 |             "line_no": 63,
4009 |             "src": "2278:42",
4010 |             "src_char": "2278:42"
4011 |           },
4012 |           {
4013 |             "contract_path": "src/UninitializedLocalVariables.sol",
4014 |             "line_no": 67,
4015 |             "src": "2459:2",
4016 |             "src_char": "2459:2"
4017 |           },
4018 |           {
4019 |             "contract_path": "src/UninitializedLocalVariables.sol",
4020 |             "line_no": 70,
4021 |             "src": "2607:2",
4022 |             "src_char": "2607:2"
4023 |           },
4024 |           {
4025 |             "contract_path": "src/WeakRandomness.sol",
4026 |             "line_no": 25,
4027 |             "src": "933:2",
4028 |             "src_char": "933:2"
4029 |           },
4030 |           {
4031 |             "contract_path": "src/WeakRandomness.sol",
4032 |             "line_no": 35,
4033 |             "src": "1252:2",
4034 |             "src_char": "1252:2"
4035 |           },
4036 |           {
4037 |             "contract_path": "src/WeakRandomness.sol",
4038 |             "line_no": 41,
4039 |             "src": "1441:2",
4040 |             "src_char": "1441:2"
4041 |           },
4042 |           {
4043 |             "contract_path": "src/eth2/DepositContract.sol",
4044 |             "line_no": 113,
4045 |             "src": "7252:2",
4046 |             "src_char": "5764:2"
4047 |           },
4048 |           {
4049 |             "contract_path": "src/eth2/DepositContract.sol",
4050 |             "line_no": 113,
4051 |             "src": "7293:2",
4052 |             "src_char": "5805:2"
4053 |           }
4054 |         ]
4055 |       },
4056 |       {
4057 |         "title": "Empty `require()` / `revert()` Statement",
4058 |         "description": "Use descriptive reason strings or custom errors for revert paths.",
4059 |         "detector_name": "empty-require-revert",
4060 |         "instances": [
4061 |           {
4062 |             "contract_path": "src/CallGraphTests.sol",
4063 |             "line_no": 7,
4064 |             "src": "128:7",
4065 |             "src_char": "128:7"
4066 |           },
4067 |           {
4068 |             "contract_path": "src/CallGraphTests.sol",
4069 |             "line_no": 28,
4070 |             "src": "531:6",
4071 |             "src_char": "531:6"
4072 |           },
4073 |           {
4074 |             "contract_path": "src/CallGraphTests.sol",
4075 |             "line_no": 50,
4076 |             "src": "936:6",
4077 |             "src_char": "936:6"
4078 |           },
4079 |           {
4080 |             "contract_path": "src/CallGraphTests.sol",
4081 |             "line_no": 65,
4082 |             "src": "1246:7",
4083 |             "src_char": "1246:7"
4084 |           },
4085 |           {
4086 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
4087 |             "line_no": 31,
4088 |             "src": "948:7",
4089 |             "src_char": "948:7"
4090 |           },
4091 |           {
4092 |             "contract_path": "src/DeprecatedOZFunctions.sol",
4093 |             "line_no": 37,
4094 |             "src": "1264:7",
4095 |             "src_char": "1264:7"
4096 |           },
4097 |           {
4098 |             "contract_path": "src/DeprecatedOZFunctions.sol",
4099 |             "line_no": 40,
4100 |             "src": "1389:6",
4101 |             "src_char": "1389:6"
4102 |           },
4103 |           {
4104 |             "contract_path": "src/EmitAfterExternalCall.sol",
4105 |             "line_no": 18,
4106 |             "src": "424:7",
4107 |             "src_char": "424:7"
4108 |           },
4109 |           {
4110 |             "contract_path": "src/ExternalCalls.sol",
4111 |             "line_no": 72,
4112 |             "src": "1381:6",
4113 |             "src_char": "1381:6"
4114 |           },
4115 |           {
4116 |             "contract_path": "src/IncorrectModifier.sol",
4117 |             "line_no": 49,
4118 |             "src": "1334:6",
4119 |             "src_char": "1334:6"
4120 |           },
4121 |           {
4122 |             "contract_path": "src/LocalVariableShadow.sol",
4123 |             "line_no": 12,
4124 |             "src": "251:7",
4125 |             "src_char": "251:7"
4126 |           },
4127 |           {
4128 |             "contract_path": "src/LocalVariableShadow.sol",
4129 |             "line_no": 19,
4130 |             "src": "434:7",
4131 |             "src_char": "434:7"
4132 |           },
4133 |           {
4134 |             "contract_path": "src/LocalVariableShadow.sol",
4135 |             "line_no": 33,
4136 |             "src": "770:7",
4137 |             "src_char": "770:7"
4138 |           },
4139 |           {
4140 |             "contract_path": "src/MultiplePlaceholders.sol",
4141 |             "line_no": 23,
4142 |             "src": "442:6",
4143 |             "src_char": "442:6"
4144 |           },
4145 |           {
4146 |             "contract_path": "src/MultiplePlaceholders.sol",
4147 |             "line_no": 34,
4148 |             "src": "638:6",
4149 |             "src_char": "638:6"
4150 |           },
4151 |           {
4152 |             "contract_path": "src/MultiplePlaceholders.sol",
4153 |             "line_no": 46,
4154 |             "src": "844:6",
4155 |             "src_char": "844:6"
4156 |           },
4157 |           {
4158 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
4159 |             "line_no": 19,
4160 |             "src": "503:6",
4161 |             "src_char": "503:6"
4162 |           },
4163 |           {
4164 |             "contract_path": "src/SendEtherNoChecks.sol",
4165 |             "line_no": 12,
4166 |             "src": "268:6",
4167 |             "src_char": "268:6"
4168 |           },
4169 |           {
4170 |             "contract_path": "src/SendEtherNoChecks.sol",
4171 |             "line_no": 27,
4172 |             "src": "513:7",
4173 |             "src_char": "513:7"
4174 |           },
4175 |           {
4176 |             "contract_path": "src/SendEtherNoChecks.sol",
4177 |             "line_no": 43,
4178 |             "src": "920:6",
4179 |             "src_char": "920:6"
4180 |           },
4181 |           {
4182 |             "contract_path": "src/SendEtherNoChecksLibImport.sol",
4183 |             "line_no": 12,
4184 |             "src": "451:6",
4185 |             "src_char": "451:6"
4186 |           },
4187 |           {
4188 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
4189 |             "line_no": 17,
4190 |             "src": "428:7",
4191 |             "src_char": "428:7"
4192 |           },
4193 |           {
4194 |             "contract_path": "src/StateShadowing.sol",
4195 |             "line_no": 8,
4196 |             "src": "135:7",
4197 |             "src_char": "135:7"
4198 |           },
4199 |           {
4200 |             "contract_path": "src/Trump.sol",
4201 |             "line_no": 240,
4202 |             "src": "8065:7",
4203 |             "src_char": "8065:7"
4204 |           },
4205 |           {
4206 |             "contract_path": "src/ZeroAddressCheck.sol",
4207 |             "line_no": 13,
4208 |             "src": "329:6",
4209 |             "src_char": "329:6"
4210 |           },
4211 |           {
4212 |             "contract_path": "src/ZeroAddressCheck.sol",
4213 |             "line_no": 23,
4214 |             "src": "608:6",
4215 |             "src_char": "608:6"
4216 |           },
4217 |           {
4218 |             "contract_path": "src/ZeroAddressCheck.sol",
4219 |             "line_no": 38,
4220 |             "src": "1074:6",
4221 |             "src_char": "1074:6"
4222 |           },
4223 |           {
4224 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
4225 |             "line_no": 35,
4226 |             "src": "589:7",
4227 |             "src_char": "589:7"
4228 |           },
4229 |           {
4230 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
4231 |             "line_no": 56,
4232 |             "src": "1403:7",
4233 |             "src_char": "1400:7"
4234 |           },
4235 |           {
4236 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
4237 |             "line_no": 35,
4238 |             "src": "598:7",
4239 |             "src_char": "598:7"
4240 |           },
4241 |           {
4242 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
4243 |             "line_no": 53,
4244 |             "src": "1408:7",
4245 |             "src_char": "1408:7"
4246 |           }
4247 |         ]
4248 |       },
4249 |       {
4250 |         "title": "`nonReentrant` is Not the First Modifier",
4251 |         "description": "To protect against reentrancy in other modifiers, the `nonReentrant` modifier should be the first modifier in the list of modifiers.",
4252 |         "detector_name": "non-reentrant-not-first",
4253 |         "instances": [
4254 |           {
4255 |             "contract_path": "src/AdminContract.sol",
4256 |             "line_no": 10,
4257 |             "src": "386:12",
4258 |             "src_char": "386:12"
4259 |           },
4260 |           {
4261 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4262 |             "line_no": 28,
4263 |             "src": "735:12",
4264 |             "src_char": "735:12"
4265 |           }
4266 |         ]
4267 |       },
4268 |       {
4269 |         "title": "Using `block.timestamp` for swap deadline offers no protection",
4270 |         "description": "In the PoS model, proposers know well in advance if they will propose one or consecutive blocks ahead of time. In such a scenario, a malicious validator can hold back the transaction and execute it at a more favourable block number.Consider allowing function caller to specify swap deadline input parameter.",
4271 |         "detector_name": "block-timestamp-deadline",
4272 |         "instances": [
4273 |           {
4274 |             "contract_path": "src/Trump.sol",
4275 |             "line_no": 290,
4276 |             "src": "9949:190",
4277 |             "src_char": "9949:190"
4278 |           },
4279 |           {
4280 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4281 |             "line_no": 23,
4282 |             "src": "670:83",
4283 |             "src_char": "670:83"
4284 |           },
4285 |           {
4286 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4287 |             "line_no": 24,
4288 |             "src": "763:83",
4289 |             "src_char": "763:83"
4290 |           },
4291 |           {
4292 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4293 |             "line_no": 25,
4294 |             "src": "856:70",
4295 |             "src_char": "856:70"
4296 |           },
4297 |           {
4298 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4299 |             "line_no": 26,
4300 |             "src": "936:80",
4301 |             "src_char": "936:80"
4302 |           },
4303 |           {
4304 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4305 |             "line_no": 27,
4306 |             "src": "1026:80",
4307 |             "src_char": "1026:80"
4308 |           },
4309 |           {
4310 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4311 |             "line_no": 31,
4312 |             "src": "1278:112",
4313 |             "src_char": "1278:112"
4314 |           },
4315 |           {
4316 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4317 |             "line_no": 32,
4318 |             "src": "1400:99",
4319 |             "src_char": "1400:99"
4320 |           },
4321 |           {
4322 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4323 |             "line_no": 33,
4324 |             "src": "1509:109",
4325 |             "src_char": "1509:109"
4326 |           },
4327 |           {
4328 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4329 |             "line_no": 52,
4330 |             "src": "1115:143",
4331 |             "src_char": "1115:143"
4332 |           },
4333 |           {
4334 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4335 |             "line_no": 55,
4336 |             "src": "1293:321",
4337 |             "src_char": "1293:321"
4338 |           },
4339 |           {
4340 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4341 |             "line_no": 66,
4342 |             "src": "1668:131",
4343 |             "src_char": "1668:131"
4344 |           },
4345 |           {
4346 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4347 |             "line_no": 69,
4348 |             "src": "1828:236",
4349 |             "src_char": "1828:236"
4350 |           },
4351 |           {
4352 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4353 |             "line_no": 77,
4354 |             "src": "2132:144",
4355 |             "src_char": "2132:144"
4356 |           },
4357 |           {
4358 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4359 |             "line_no": 80,
4360 |             "src": "2312:322",
4361 |             "src_char": "2312:322"
4362 |           },
4363 |           {
4364 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4365 |             "line_no": 91,
4366 |             "src": "2690:132",
4367 |             "src_char": "2690:132"
4368 |           },
4369 |           {
4370 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4371 |             "line_no": 94,
4372 |             "src": "2852:237",
4373 |             "src_char": "2852:237"
4374 |           }
4375 |         ]
4376 |       },
4377 |       {
4378 |         "title": "Unsafe `ERC721::_mint()`",
4379 |         "description": "Using `ERC721::_mint()` can mint ERC721 tokens to addresses which don't support ERC721 tokens. Use `_safeMint()` instead of `_mint()` for ERC721 tokens.",
4380 |         "detector_name": "unsafe-oz-erc721-mint",
4381 |         "instances": [
4382 |           {
4383 |             "contract_path": "src/UnsafeERC721Mint.sol",
4384 |             "line_no": 12,
4385 |             "src": "410:5",
4386 |             "src_char": "410:5"
4387 |           }
4388 |         ]
4389 |       },
4390 |       {
4391 |         "title": "PUSH0 Opcode",
4392 |         "description": "Solc compiler version 0.8.20 switches the default target EVM version to Shanghai, which means that the generated bytecode will include PUSH0 opcodes. Be sure to select the appropriate EVM version in case you intend to deploy on a chain other than mainnet like L2 chains that may not support PUSH0, otherwise deployment of your contracts will fail.",
4393 |         "detector_name": "push-zero-opcode",
4394 |         "instances": [
4395 |           {
4396 |             "contract_path": "src/AdminContract.sol",
4397 |             "line_no": 2,
4398 |             "src": "32:23",
4399 |             "src_char": "32:23"
4400 |           },
4401 |           {
4402 |             "contract_path": "src/AssertStateChange.sol",
4403 |             "line_no": 2,
4404 |             "src": "32:23",
4405 |             "src_char": "32:23"
4406 |           },
4407 |           {
4408 |             "contract_path": "src/CacheArrayLength.sol",
4409 |             "line_no": 2,
4410 |             "src": "32:23",
4411 |             "src_char": "32:23"
4412 |           },
4413 |           {
4414 |             "contract_path": "src/ContractLocksEther.sol",
4415 |             "line_no": 2,
4416 |             "src": "32:23",
4417 |             "src_char": "32:23"
4418 |           },
4419 |           {
4420 |             "contract_path": "src/ContractWithTodo.sol",
4421 |             "line_no": 2,
4422 |             "src": "32:23",
4423 |             "src_char": "32:23"
4424 |           },
4425 |           {
4426 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
4427 |             "line_no": 2,
4428 |             "src": "32:23",
4429 |             "src_char": "32:23"
4430 |           },
4431 |           {
4432 |             "contract_path": "src/Counter.sol",
4433 |             "line_no": 2,
4434 |             "src": "39:24",
4435 |             "src_char": "39:24"
4436 |           },
4437 |           {
4438 |             "contract_path": "src/CrazyPragma.sol",
4439 |             "line_no": 2,
4440 |             "src": "32:32",
4441 |             "src_char": "32:32"
4442 |           },
4443 |           {
4444 |             "contract_path": "src/DangerousStrictEquality2.sol",
4445 |             "line_no": 2,
4446 |             "src": "32:23",
4447 |             "src_char": "32:23"
4448 |           },
4449 |           {
4450 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
4451 |             "line_no": 2,
4452 |             "src": "32:21",
4453 |             "src_char": "32:21"
4454 |           },
4455 |           {
4456 |             "contract_path": "src/DeletionNestedMappingStructureContract.sol",
4457 |             "line_no": 2,
4458 |             "src": "32:23",
4459 |             "src_char": "32:23"
4460 |           },
4461 |           {
4462 |             "contract_path": "src/DeprecatedOZFunctions.sol",
4463 |             "line_no": 2,
4464 |             "src": "32:23",
4465 |             "src_char": "32:23"
4466 |           },
4467 |           {
4468 |             "contract_path": "src/FunctionInitializingState.sol",
4469 |             "line_no": 2,
4470 |             "src": "32:23",
4471 |             "src_char": "32:23"
4472 |           },
4473 |           {
4474 |             "contract_path": "src/FunctionSignatureCollision.sol",
4475 |             "line_no": 2,
4476 |             "src": "32:23",
4477 |             "src_char": "32:23"
4478 |           },
4479 |           {
4480 |             "contract_path": "src/InconsistentUints.sol",
4481 |             "line_no": 1,
4482 |             "src": "0:24",
4483 |             "src_char": "0:24"
4484 |           },
4485 |           {
4486 |             "contract_path": "src/IncorrectERC20.sol",
4487 |             "line_no": 2,
4488 |             "src": "32:23",
4489 |             "src_char": "32:23"
4490 |           },
4491 |           {
4492 |             "contract_path": "src/IncorrectERC721.sol",
4493 |             "line_no": 2,
4494 |             "src": "32:23",
4495 |             "src_char": "32:23"
4496 |           },
4497 |           {
4498 |             "contract_path": "src/KeccakContract.sol",
4499 |             "line_no": 2,
4500 |             "src": "32:23",
4501 |             "src_char": "32:23"
4502 |           },
4503 |           {
4504 |             "contract_path": "src/MsgValueInLoop.sol",
4505 |             "line_no": 2,
4506 |             "src": "32:23",
4507 |             "src_char": "32:23"
4508 |           },
4509 |           {
4510 |             "contract_path": "src/OnlyLibrary.sol",
4511 |             "line_no": 2,
4512 |             "src": "32:23",
4513 |             "src_char": "32:23"
4514 |           },
4515 |           {
4516 |             "contract_path": "src/OutOfOrderRetryable.sol",
4517 |             "line_no": 2,
4518 |             "src": "32:23",
4519 |             "src_char": "32:23"
4520 |           },
4521 |           {
4522 |             "contract_path": "src/ReturnBomb.sol",
4523 |             "line_no": 2,
4524 |             "src": "32:23",
4525 |             "src_char": "32:23"
4526 |           },
4527 |           {
4528 |             "contract_path": "src/StateVariables.sol",
4529 |             "line_no": 2,
4530 |             "src": "32:23",
4531 |             "src_char": "32:23"
4532 |           },
4533 |           {
4534 |             "contract_path": "src/StateVariablesManipulation.sol",
4535 |             "line_no": 2,
4536 |             "src": "32:23",
4537 |             "src_char": "32:23"
4538 |           },
4539 |           {
4540 |             "contract_path": "src/StorageConditionals.sol",
4541 |             "line_no": 2,
4542 |             "src": "32:23",
4543 |             "src_char": "32:23"
4544 |           },
4545 |           {
4546 |             "contract_path": "src/T11sTranferer.sol",
4547 |             "line_no": 2,
4548 |             "src": "32:23",
4549 |             "src_char": "32:23"
4550 |           },
4551 |           {
4552 |             "contract_path": "src/TautologicalCompare.sol",
4553 |             "line_no": 2,
4554 |             "src": "32:23",
4555 |             "src_char": "32:23"
4556 |           },
4557 |           {
4558 |             "contract_path": "src/Trump.sol",
4559 |             "line_no": 16,
4560 |             "src": "227:23",
4561 |             "src_char": "227:23"
4562 |           },
4563 |           {
4564 |             "contract_path": "src/TxOriginUsedForAuth.sol",
4565 |             "line_no": 2,
4566 |             "src": "32:24",
4567 |             "src_char": "32:24"
4568 |           },
4569 |           {
4570 |             "contract_path": "src/UnsafeERC721Mint.sol",
4571 |             "line_no": 2,
4572 |             "src": "32:23",
4573 |             "src_char": "32:23"
4574 |           },
4575 |           {
4576 |             "contract_path": "src/UnusedStateVariables.sol",
4577 |             "line_no": 2,
4578 |             "src": "32:24",
4579 |             "src_char": "32:24"
4580 |           },
4581 |           {
4582 |             "contract_path": "src/VoidConstructor.sol",
4583 |             "line_no": 2,
4584 |             "src": "32:23",
4585 |             "src_char": "32:23"
4586 |           },
4587 |           {
4588 |             "contract_path": "src/WeakRandomness.sol",
4589 |             "line_no": 2,
4590 |             "src": "32:23",
4591 |             "src_char": "32:23"
4592 |           },
4593 |           {
4594 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
4595 |             "line_no": 6,
4596 |             "src": "46:24",
4597 |             "src_char": "46:24"
4598 |           },
4599 |           {
4600 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
4601 |             "line_no": 6,
4602 |             "src": "46:32",
4603 |             "src_char": "46:32"
4604 |           },
4605 |           {
4606 |             "contract_path": "src/eth2/DepositContract.sol",
4607 |             "line_no": 12,
4608 |             "src": "2302:23",
4609 |             "src_char": "814:23"
4610 |           },
4611 |           {
4612 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
4613 |             "line_no": 2,
4614 |             "src": "32:23",
4615 |             "src_char": "32:23"
4616 |           },
4617 |           {
4618 |             "contract_path": "src/inheritance/IContractInheritance.sol",
4619 |             "line_no": 2,
4620 |             "src": "32:24",
4621 |             "src_char": "32:24"
4622 |           },
4623 |           {
4624 |             "contract_path": "src/inheritance/InheritanceBase.sol",
4625 |             "line_no": 2,
4626 |             "src": "32:23",
4627 |             "src_char": "32:23"
4628 |           },
4629 |           {
4630 |             "contract_path": "src/nested/1/Nested.sol",
4631 |             "line_no": 5,
4632 |             "src": "180:23",
4633 |             "src_char": "180:23"
4634 |           },
4635 |           {
4636 |             "contract_path": "src/nested/2/Nested.sol",
4637 |             "line_no": 5,
4638 |             "src": "180:23",
4639 |             "src_char": "180:23"
4640 |           },
4641 |           {
4642 |             "contract_path": "src/nested_mappings/LaterVersion.sol",
4643 |             "line_no": 2,
4644 |             "src": "36:23",
4645 |             "src_char": "36:23"
4646 |           },
4647 |           {
4648 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4649 |             "line_no": 2,
4650 |             "src": "32:23",
4651 |             "src_char": "32:23"
4652 |           },
4653 |           {
4654 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
4655 |             "line_no": 2,
4656 |             "src": "32:23",
4657 |             "src_char": "32:23"
4658 |           },
4659 |           {
4660 |             "contract_path": "src/uniswap/UniswapV3Swapper.sol",
4661 |             "line_no": 2,
4662 |             "src": "32:23",
4663 |             "src_char": "32:23"
4664 |           }
4665 |         ]
4666 |       },
4667 |       {
4668 |         "title": "Modifier Invoked Only Once",
4669 |         "description": "Consider removing the modifier or inlining the logic into the calling function.",
4670 |         "detector_name": "modifier-used-only-once",
4671 |         "instances": [
4672 |           {
4673 |             "contract_path": "src/BuiltinSymbolShadow.sol",
4674 |             "line_no": 17,
4675 |             "src": "358:39",
4676 |             "src_char": "358:39"
4677 |           },
4678 |           {
4679 |             "contract_path": "src/CallGraphTests.sol",
4680 |             "line_no": 10,
4681 |             "src": "186:22",
4682 |             "src_char": "186:22"
4683 |           },
4684 |           {
4685 |             "contract_path": "src/CallGraphTests.sol",
4686 |             "line_no": 32,
4687 |             "src": "571:22",
4688 |             "src_char": "571:22"
4689 |           },
4690 |           {
4691 |             "contract_path": "src/CallGraphTests.sol",
4692 |             "line_no": 54,
4693 |             "src": "976:22",
4694 |             "src_char": "976:22"
4695 |           },
4696 |           {
4697 |             "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
4698 |             "line_no": 23,
4699 |             "src": "678:9",
4700 |             "src_char": "678:9"
4701 |           },
4702 |           {
4703 |             "contract_path": "src/InternalFunctions.sol",
4704 |             "line_no": 18,
4705 |             "src": "413:9",
4706 |             "src_char": "413:9"
4707 |           },
4708 |           {
4709 |             "contract_path": "src/OnceModifierExample.sol",
4710 |             "line_no": 6,
4711 |             "src": "103:8",
4712 |             "src_char": "103:8"
4713 |           },
4714 |           {
4715 |             "contract_path": "src/SendEtherNoChecks.sol",
4716 |             "line_no": 16,
4717 |             "src": "308:4",
4718 |             "src_char": "308:4"
4719 |           },
4720 |           {
4721 |             "contract_path": "src/SendEtherNoChecks.sol",
4722 |             "line_no": 47,
4723 |             "src": "960:4",
4724 |             "src_char": "960:4"
4725 |           },
4726 |           {
4727 |             "contract_path": "src/SendEtherNoChecks.sol",
4728 |             "line_no": 70,
4729 |             "src": "1301:4",
4730 |             "src_char": "1301:4"
4731 |           },
4732 |           {
4733 |             "contract_path": "src/SendEtherNoChecks.sol",
4734 |             "line_no": 93,
4735 |             "src": "1704:4",
4736 |             "src_char": "1704:4"
4737 |           },
4738 |           {
4739 |             "contract_path": "src/StateShadowing.sol",
4740 |             "line_no": 7,
4741 |             "src": "107:74",
4742 |             "src_char": "107:74"
4743 |           },
4744 |           {
4745 |             "contract_path": "src/Trump.sol",
4746 |             "line_no": 162,
4747 |             "src": "5133:11",
4748 |             "src_char": "5133:11"
4749 |           },
4750 |           {
4751 |             "contract_path": "src/UnprotectedInitialize.sol",
4752 |             "line_no": 15,
4753 |             "src": "320:21",
4754 |             "src_char": "320:21"
4755 |           },
4756 |           {
4757 |             "contract_path": "src/router/ModifierCalls.sol",
4758 |             "line_no": 5,
4759 |             "src": "105:6",
4760 |             "src_char": "105:6"
4761 |           },
4762 |           {
4763 |             "contract_path": "src/router/ModifierCalls.sol",
4764 |             "line_no": 31,
4765 |             "src": "395:6",
4766 |             "src_char": "395:6"
4767 |           },
4768 |           {
4769 |             "contract_path": "src/router/ModifierCalls.sol",
4770 |             "line_no": 42,
4771 |             "src": "555:6",
4772 |             "src_char": "555:6"
4773 |           }
4774 |         ]
4775 |       },
4776 |       {
4777 |         "title": "Empty Block",
4778 |         "description": "Consider removing empty blocks.",
4779 |         "detector_name": "empty-block",
4780 |         "instances": [
4781 |           {
4782 |             "contract_path": "src/AderynIgnoreCustomDetectors.sol",
4783 |             "line_no": 7,
4784 |             "src": "174:2",
4785 |             "src_char": "174:2"
4786 |           },
4787 |           {
4788 |             "contract_path": "src/AdminContract.sol",
4789 |             "line_no": 14,
4790 |             "src": "457:23",
4791 |             "src_char": "457:23"
4792 |           },
4793 |           {
4794 |             "contract_path": "src/BuiltinSymbolShadow.sol",
4795 |             "line_no": 8,
4796 |             "src": "125:41",
4797 |             "src_char": "125:41"
4798 |           },
4799 |           {
4800 |             "contract_path": "src/CacheArrayLength.sol",
4801 |             "line_no": 17,
4802 |             "src": "337:2",
4803 |             "src_char": "337:2"
4804 |           },
4805 |           {
4806 |             "contract_path": "src/CacheArrayLength.sol",
4807 |             "line_no": 42,
4808 |             "src": "1104:2",
4809 |             "src_char": "1104:2"
4810 |           },
4811 |           {
4812 |             "contract_path": "src/CallGraphTests.sol",
4813 |             "line_no": 16,
4814 |             "src": "291:16",
4815 |             "src_char": "291:16"
4816 |           },
4817 |           {
4818 |             "contract_path": "src/CallGraphTests.sol",
4819 |             "line_no": 38,
4820 |             "src": "686:16",
4821 |             "src_char": "686:16"
4822 |           },
4823 |           {
4824 |             "contract_path": "src/ContractWithTodo.sol",
4825 |             "line_no": 7,
4826 |             "src": "129:10",
4827 |             "src_char": "129:10"
4828 |           },
4829 |           {
4830 |             "contract_path": "src/ContractWithTodo.sol",
4831 |             "line_no": 13,
4832 |             "src": "337:15",
4833 |             "src_char": "337:15"
4834 |           },
4835 |           {
4836 |             "contract_path": "src/EmptyBlocks.sol",
4837 |             "line_no": 30,
4838 |             "src": "503:12",
4839 |             "src_char": "503:12"
4840 |           },
4841 |           {
4842 |             "contract_path": "src/EmptyBlocks.sol",
4843 |             "line_no": 38,
4844 |             "src": "599:12",
4845 |             "src_char": "599:12"
4846 |           },
4847 |           {
4848 |             "contract_path": "src/EmptyBlocks.sol",
4849 |             "line_no": 49,
4850 |             "src": "739:12",
4851 |             "src_char": "739:12"
4852 |           },
4853 |           {
4854 |             "contract_path": "src/EmptyBlocks.sol",
4855 |             "line_no": 63,
4856 |             "src": "888:13",
4857 |             "src_char": "888:13"
4858 |           },
4859 |           {
4860 |             "contract_path": "src/EmptyBlocks.sol",
4861 |             "line_no": 67,
4862 |             "src": "946:24",
4863 |             "src_char": "946:24"
4864 |           },
4865 |           {
4866 |             "contract_path": "src/EmptyBlocks.sol",
4867 |             "line_no": 73,
4868 |             "src": "1068:30",
4869 |             "src_char": "1068:30"
4870 |           },
4871 |           {
4872 |             "contract_path": "src/EmptyBlocks.sol",
4873 |             "line_no": 81,
4874 |             "src": "1219:41",
4875 |             "src_char": "1219:41"
4876 |           },
4877 |           {
4878 |             "contract_path": "src/FunctionSignatureCollision.sol",
4879 |             "line_no": 7,
4880 |             "src": "166:8",
4881 |             "src_char": "166:8"
4882 |           },
4883 |           {
4884 |             "contract_path": "src/FunctionSignatureCollision.sol",
4885 |             "line_no": 13,
4886 |             "src": "231:22",
4887 |             "src_char": "231:22"
4888 |           },
4889 |           {
4890 |             "contract_path": "src/OnceModifierExample.sol",
4891 |             "line_no": 10,
4892 |             "src": "147:7",
4893 |             "src_char": "147:7"
4894 |           },
4895 |           {
4896 |             "contract_path": "src/OutOfOrderRetryable.sol",
4897 |             "line_no": 193,
4898 |             "src": "5775:13",
4899 |             "src_char": "5775:13"
4900 |           },
4901 |           {
4902 |             "contract_path": "src/SendEtherNoChecks.sol",
4903 |             "line_no": 53,
4904 |             "src": "1060:5",
4905 |             "src_char": "1060:5"
4906 |           },
4907 |           {
4908 |             "contract_path": "src/SendEtherNoChecks.sol",
4909 |             "line_no": 77,
4910 |             "src": "1405:5",
4911 |             "src_char": "1405:5"
4912 |           },
4913 |           {
4914 |             "contract_path": "src/SendEtherNoChecks.sol",
4915 |             "line_no": 99,
4916 |             "src": "1795:5",
4917 |             "src_char": "1795:5"
4918 |           },
4919 |           {
4920 |             "contract_path": "src/TautologyOrContradiction.sol",
4921 |             "line_no": 9,
4922 |             "src": "161:229",
4923 |             "src_char": "161:229"
4924 |           },
4925 |           {
4926 |             "contract_path": "src/UncheckedSend.sol",
4927 |             "line_no": 27,
4928 |             "src": "915:65",
4929 |             "src_char": "915:65"
4930 |           },
4931 |           {
4932 |             "contract_path": "src/UnprotectedInitialize.sol",
4933 |             "line_no": 43,
4934 |             "src": "1071:38",
4935 |             "src_char": "1071:38"
4936 |           },
4937 |           {
4938 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
4939 |             "line_no": 11,
4940 |             "src": "367:17",
4941 |             "src_char": "367:17"
4942 |           },
4943 |           {
4944 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
4945 |             "line_no": 30,
4946 |             "src": "852:25",
4947 |             "src_char": "852:25"
4948 |           },
4949 |           {
4950 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
4951 |             "line_no": 38,
4952 |             "src": "1080:16",
4953 |             "src_char": "1080:16"
4954 |           },
4955 |           {
4956 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
4957 |             "line_no": 61,
4958 |             "src": "1840:17",
4959 |             "src_char": "1840:17"
4960 |           },
4961 |           {
4962 |             "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
4963 |             "line_no": 85,
4964 |             "src": "2380:25",
4965 |             "src_char": "2380:25"
4966 |           },
4967 |           {
4968 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4969 |             "line_no": 11,
4970 |             "src": "355:9",
4971 |             "src_char": "355:9"
4972 |           },
4973 |           {
4974 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4975 |             "line_no": 32,
4976 |             "src": "806:23",
4977 |             "src_char": "806:23"
4978 |           },
4979 |           {
4980 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4981 |             "line_no": 40,
4982 |             "src": "946:8",
4983 |             "src_char": "946:8"
4984 |           },
4985 |           {
4986 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
4987 |             "line_no": 44,
4988 |             "src": "1011:23",
4989 |             "src_char": "1011:23"
4990 |           },
4991 |           {
4992 |             "contract_path": "src/router/ExternalCalls.sol",
4993 |             "line_no": 13,
4994 |             "src": "210:3",
4995 |             "src_char": "210:3"
4996 |           },
4997 |           {
4998 |             "contract_path": "src/router/ExternalCalls.sol",
4999 |             "line_no": 17,
5000 |             "src": "288:3",
5001 |             "src_char": "288:3"
5002 |           },
5003 |           {
5004 |             "contract_path": "src/router/InternalCalls.sol",
5005 |             "line_no": 8,
5006 |             "src": "156:5",
5007 |             "src_char": "156:5"
5008 |           },
5009 |           {
5010 |             "contract_path": "src/router/InternalCalls.sol",
5011 |             "line_no": 23,
5012 |             "src": "389:5",
5013 |             "src_char": "389:5"
5014 |           },
5015 |           {
5016 |             "contract_path": "src/router/InternalCalls.sol",
5017 |             "line_no": 38,
5018 |             "src": "629:5",
5019 |             "src_char": "629:5"
5020 |           },
5021 |           {
5022 |             "contract_path": "src/router/InternalCalls.sol",
5023 |             "line_no": 40,
5024 |             "src": "672:1",
5025 |             "src_char": "672:1"
5026 |           },
5027 |           {
5028 |             "contract_path": "src/router/InternalCalls.sol",
5029 |             "line_no": 44,
5030 |             "src": "758:1",
5031 |             "src_char": "758:1"
5032 |           },
5033 |           {
5034 |             "contract_path": "src/router/InternalCalls.sol",
5035 |             "line_no": 54,
5036 |             "src": "966:4",
5037 |             "src_char": "966:4"
5038 |           },
5039 |           {
5040 |             "contract_path": "src/router/InternalCalls.sol",
5041 |             "line_no": 84,
5042 |             "src": "1544:4",
5043 |             "src_char": "1544:4"
5044 |           },
5045 |           {
5046 |             "contract_path": "src/router/InternalCalls.sol",
5047 |             "line_no": 96,
5048 |             "src": "1780:4",
5049 |             "src_char": "1780:4"
5050 |           },
5051 |           {
5052 |             "contract_path": "src/router/InternalCalls.sol",
5053 |             "line_no": 98,
5054 |             "src": "1820:4",
5055 |             "src_char": "1820:4"
5056 |           },
5057 |           {
5058 |             "contract_path": "src/router/InternalCalls.sol",
5059 |             "line_no": 111,
5060 |             "src": "2140:4",
5061 |             "src_char": "2140:4"
5062 |           },
5063 |           {
5064 |             "contract_path": "src/router/InternalCalls.sol",
5065 |             "line_no": 113,
5066 |             "src": "2182:4",
5067 |             "src_char": "2182:4"
5068 |           },
5069 |           {
5070 |             "contract_path": "src/router/InternalCalls.sol",
5071 |             "line_no": 136,
5072 |             "src": "2623:4",
5073 |             "src_char": "2623:4"
5074 |           },
5075 |           {
5076 |             "contract_path": "src/router/InternalCalls.sol",
5077 |             "line_no": 142,
5078 |             "src": "2696:1",
5079 |             "src_char": "2696:1"
5080 |           },
5081 |           {
5082 |             "contract_path": "src/router/InternalCalls.sol",
5083 |             "line_no": 167,
5084 |             "src": "3123:4",
5085 |             "src_char": "3123:4"
5086 |           },
5087 |           {
5088 |             "contract_path": "src/router/InternalCalls.sol",
5089 |             "line_no": 175,
5090 |             "src": "3244:4",
5091 |             "src_char": "3244:4"
5092 |           },
5093 |           {
5094 |             "contract_path": "src/router/ModifierCalls.sol",
5095 |             "line_no": 7,
5096 |             "src": "137:4",
5097 |             "src_char": "137:4"
5098 |           },
5099 |           {
5100 |             "contract_path": "src/router/ModifierCalls.sol",
5101 |             "line_no": 22,
5102 |             "src": "304:4",
5103 |             "src_char": "304:4"
5104 |           },
5105 |           {
5106 |             "contract_path": "src/router/ModifierCalls.sol",
5107 |             "line_no": 46,
5108 |             "src": "597:4",
5109 |             "src_char": "597:4"
5110 |           },
5111 |           {
5112 |             "contract_path": "src/router/VarOverridesFunction.sol",
5113 |             "line_no": 5,
5114 |             "src": "87:5",
5115 |             "src_char": "87:5"
5116 |           }
5117 |         ]
5118 |       },
5119 |       {
5120 |         "title": "Large Numeric Literal",
5121 |         "description": "Large literal values multiples of 10000 can be replaced with scientific notation.Use `e` notation, for example: `1e18`, instead of its full numeric value.",
5122 |         "detector_name": "large-numeric-literal",
5123 |         "instances": [
5124 |           {
5125 |             "contract_path": "src/HugeConstants.sol",
5126 |             "line_no": 6,
5127 |             "src": "182:24",
5128 |             "src_char": "182:24"
5129 |           },
5130 |           {
5131 |             "contract_path": "src/HugeConstants.sol",
5132 |             "line_no": 7,
5133 |             "src": "252:23",
5134 |             "src_char": "252:23"
5135 |           },
5136 |           {
5137 |             "contract_path": "src/HugeConstants.sol",
5138 |             "line_no": 8,
5139 |             "src": "321:22",
5140 |             "src_char": "321:22"
5141 |           },
5142 |           {
5143 |             "contract_path": "src/HugeConstants.sol",
5144 |             "line_no": 9,
5145 |             "src": "389:21",
5146 |             "src_char": "389:21"
5147 |           },
5148 |           {
5149 |             "contract_path": "src/HugeConstants.sol",
5150 |             "line_no": 10,
5151 |             "src": "456:20",
5152 |             "src_char": "456:20"
5153 |           },
5154 |           {
5155 |             "contract_path": "src/HugeConstants.sol",
5156 |             "line_no": 11,
5157 |             "src": "522:19",
5158 |             "src_char": "522:19"
5159 |           },
5160 |           {
5161 |             "contract_path": "src/HugeConstants.sol",
5162 |             "line_no": 12,
5163 |             "src": "587:18",
5164 |             "src_char": "587:18"
5165 |           },
5166 |           {
5167 |             "contract_path": "src/HugeConstants.sol",
5168 |             "line_no": 13,
5169 |             "src": "651:17",
5170 |             "src_char": "651:17"
5171 |           },
5172 |           {
5173 |             "contract_path": "src/HugeConstants.sol",
5174 |             "line_no": 14,
5175 |             "src": "714:16",
5176 |             "src_char": "714:16"
5177 |           },
5178 |           {
5179 |             "contract_path": "src/HugeConstants.sol",
5180 |             "line_no": 15,
5181 |             "src": "777:15",
5182 |             "src_char": "777:15"
5183 |           },
5184 |           {
5185 |             "contract_path": "src/HugeConstants.sol",
5186 |             "line_no": 16,
5187 |             "src": "839:14",
5188 |             "src_char": "839:14"
5189 |           },
5190 |           {
5191 |             "contract_path": "src/HugeConstants.sol",
5192 |             "line_no": 17,
5193 |             "src": "900:13",
5194 |             "src_char": "900:13"
5195 |           },
5196 |           {
5197 |             "contract_path": "src/HugeConstants.sol",
5198 |             "line_no": 18,
5199 |             "src": "960:12",
5200 |             "src_char": "960:12"
5201 |           },
5202 |           {
5203 |             "contract_path": "src/HugeConstants.sol",
5204 |             "line_no": 19,
5205 |             "src": "1019:11",
5206 |             "src_char": "1019:11"
5207 |           },
5208 |           {
5209 |             "contract_path": "src/HugeConstants.sol",
5210 |             "line_no": 20,
5211 |             "src": "1077:10",
5212 |             "src_char": "1077:10"
5213 |           },
5214 |           {
5215 |             "contract_path": "src/HugeConstants.sol",
5216 |             "line_no": 21,
5217 |             "src": "1134:9",
5218 |             "src_char": "1134:9"
5219 |           },
5220 |           {
5221 |             "contract_path": "src/HugeConstants.sol",
5222 |             "line_no": 22,
5223 |             "src": "1190:8",
5224 |             "src_char": "1190:8"
5225 |           },
5226 |           {
5227 |             "contract_path": "src/HugeConstants.sol",
5228 |             "line_no": 23,
5229 |             "src": "1245:7",
5230 |             "src_char": "1245:7"
5231 |           },
5232 |           {
5233 |             "contract_path": "src/HugeConstants.sol",
5234 |             "line_no": 24,
5235 |             "src": "1299:6",
5236 |             "src_char": "1299:6"
5237 |           },
5238 |           {
5239 |             "contract_path": "src/HugeConstants.sol",
5240 |             "line_no": 25,
5241 |             "src": "1352:5",
5242 |             "src_char": "1352:5"
5243 |           },
5244 |           {
5245 |             "contract_path": "src/HugeConstants.sol",
5246 |             "line_no": 31,
5247 |             "src": "1585:29",
5248 |             "src_char": "1585:29"
5249 |           },
5250 |           {
5251 |             "contract_path": "src/HugeConstants.sol",
5252 |             "line_no": 32,
5253 |             "src": "1673:6",
5254 |             "src_char": "1673:6"
5255 |           },
5256 |           {
5257 |             "contract_path": "src/IncorrectERC20.sol",
5258 |             "line_no": 8,
5259 |             "src": "225:7",
5260 |             "src_char": "225:7"
5261 |           },
5262 |           {
5263 |             "contract_path": "src/IncorrectERC20.sol",
5264 |             "line_no": 51,
5265 |             "src": "1550:7",
5266 |             "src_char": "1550:7"
5267 |           },
5268 |           {
5269 |             "contract_path": "src/Trump.sol",
5270 |             "line_no": 145,
5271 |             "src": "4412:8",
5272 |             "src_char": "4412:8"
5273 |           },
5274 |           {
5275 |             "contract_path": "src/Trump.sol",
5276 |             "line_no": 148,
5277 |             "src": "4579:6",
5278 |             "src_char": "4579:6"
5279 |           },
5280 |           {
5281 |             "contract_path": "src/Trump.sol",
5282 |             "line_no": 151,
5283 |             "src": "4756:6",
5284 |             "src_char": "4756:6"
5285 |           }
5286 |         ]
5287 |       },
5288 |       {
5289 |         "title": "Internal Function Used Only Once",
5290 |         "description": "Instead of separating the logic into a separate function, consider inlining the logic into the calling function. This can reduce the number of function calls and improve readability.",
5291 |         "detector_name": "internal-function-used-once",
5292 |         "instances": [
5293 |           {
5294 |             "contract_path": "src/CallGraphTests.sol",
5295 |             "line_no": 6,
5296 |             "src": "89:17",
5297 |             "src_char": "89:17"
5298 |           },
5299 |           {
5300 |             "contract_path": "src/CallGraphTests.sol",
5301 |             "line_no": 25,
5302 |             "src": "398:17",
5303 |             "src_char": "398:17"
5304 |           },
5305 |           {
5306 |             "contract_path": "src/CallGraphTests.sol",
5307 |             "line_no": 47,
5308 |             "src": "803:17",
5309 |             "src_char": "803:17"
5310 |           },
5311 |           {
5312 |             "contract_path": "src/CallGraphTests.sol",
5313 |             "line_no": 64,
5314 |             "src": "1206:18",
5315 |             "src_char": "1206:18"
5316 |           },
5317 |           {
5318 |             "contract_path": "src/ConstantFuncsAssembly.sol",
5319 |             "line_no": 26,
5320 |             "src": "651:232",
5321 |             "src_char": "651:232"
5322 |           },
5323 |           {
5324 |             "contract_path": "src/InternalFunctions.sol",
5325 |             "line_no": 28,
5326 |             "src": "693:12",
5327 |             "src_char": "693:12"
5328 |           },
5329 |           {
5330 |             "contract_path": "src/MsgValueInLoop.sol",
5331 |             "line_no": 43,
5332 |             "src": "1103:8",
5333 |             "src_char": "1103:8"
5334 |           },
5335 |           {
5336 |             "contract_path": "src/MsgValueInLoop.sol",
5337 |             "line_no": 60,
5338 |             "src": "1529:8",
5339 |             "src_char": "1529:8"
5340 |           },
5341 |           {
5342 |             "contract_path": "src/MsgValueInLoop.sol",
5343 |             "line_no": 77,
5344 |             "src": "1962:8",
5345 |             "src_char": "1962:8"
5346 |           },
5347 |           {
5348 |             "contract_path": "src/SendEtherNoChecks.sol",
5349 |             "line_no": 9,
5350 |             "src": "132:20",
5351 |             "src_char": "132:20"
5352 |           },
5353 |           {
5354 |             "contract_path": "src/SendEtherNoChecks.sol",
5355 |             "line_no": 26,
5356 |             "src": "481:5",
5357 |             "src_char": "481:5"
5358 |           },
5359 |           {
5360 |             "contract_path": "src/SendEtherNoChecks.sol",
5361 |             "line_no": 40,
5362 |             "src": "784:20",
5363 |             "src_char": "784:20"
5364 |           },
5365 |           {
5366 |             "contract_path": "src/SendEtherNoChecks.sol",
5367 |             "line_no": 66,
5368 |             "src": "1209:15",
5369 |             "src_char": "1209:15"
5370 |           },
5371 |           {
5372 |             "contract_path": "src/SendEtherNoChecks.sol",
5373 |             "line_no": 88,
5374 |             "src": "1551:11",
5375 |             "src_char": "1551:11"
5376 |           },
5377 |           {
5378 |             "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
5379 |             "line_no": 26,
5380 |             "src": "706:14",
5381 |             "src_char": "706:14"
5382 |           },
5383 |           {
5384 |             "contract_path": "src/StorageParameters.sol",
5385 |             "line_no": 17,
5386 |             "src": "388:11",
5387 |             "src_char": "388:11"
5388 |           },
5389 |           {
5390 |             "contract_path": "src/Trump.sol",
5391 |             "line_no": 46,
5392 |             "src": "1403:3",
5393 |             "src_char": "1403:3"
5394 |           },
5395 |           {
5396 |             "contract_path": "src/Trump.sol",
5397 |             "line_no": 65,
5398 |             "src": "1976:3",
5399 |             "src_char": "1976:3"
5400 |           },
5401 |           {
5402 |             "contract_path": "src/UncheckedSend.sol",
5403 |             "line_no": 27,
5404 |             "src": "915:65",
5405 |             "src_char": "915:65"
5406 |           },
5407 |           {
5408 |             "contract_path": "src/router/InternalCalls.sol",
5409 |             "line_no": 18,
5410 |             "src": "300:5",
5411 |             "src_char": "300:5"
5412 |           },
5413 |           {
5414 |             "contract_path": "src/router/InternalCalls.sol",
5415 |             "line_no": 23,
5416 |             "src": "389:5",
5417 |             "src_char": "389:5"
5418 |           },
5419 |           {
5420 |             "contract_path": "src/router/InternalCalls.sol",
5421 |             "line_no": 38,
5422 |             "src": "629:5",
5423 |             "src_char": "629:5"
5424 |           }
5425 |         ]
5426 |       },
5427 |       {
5428 |         "title": "Contract has TODO Comments",
5429 |         "description": "Contract contains comments with TODOS. Consider implementing or removing them.",
5430 |         "detector_name": "todo",
5431 |         "instances": [
5432 |           {
5433 |             "contract_path": "src/ContractWithTodo.sol",
5434 |             "line_no": 4,
5435 |             "src": "66:8",
5436 |             "src_char": "66:8"
5437 |           },
5438 |           {
5439 |             "contract_path": "src/Counter.sol",
5440 |             "line_no": 4,
5441 |             "src": "74:7",
5442 |             "src_char": "74:7"
5443 |           },
5444 |           {
5445 |             "contract_path": "src/TautologicalCompare.sol",
5446 |             "line_no": 4,
5447 |             "src": "66:19",
5448 |             "src_char": "66:19"
5449 |           }
5450 |         ]
5451 |       },
5452 |       {
5453 |         "title": "Inconsistent uint256/uint (or) int256/int types",
5454 |         "description": "Inconsistency in declaring uint256/uint (or) int256/int variables within a contract. Use explicit size declarations (uint256 or int256). Consider keeping the naming convention consistent in a given contract. Explicit size declarations are preferred (uint256, int256) over implicit ones (uint, int) to avoid confusion.",
5455 |         "detector_name": "inconsistent-type-names",
5456 |         "instances": [
5457 |           {
5458 |             "contract_path": "src/Casting.sol",
5459 |             "line_no": 38,
5460 |             "src": "966:14",
5461 |             "src_char": "966:14"
5462 |           },
5463 |           {
5464 |             "contract_path": "src/Casting.sol",
5465 |             "line_no": 76,
5466 |             "src": "2148:13",
5467 |             "src_char": "2148:13"
5468 |           },
5469 |           {
5470 |             "contract_path": "src/InconsistentUints.sol",
5471 |             "line_no": 5,
5472 |             "src": "122:12",
5473 |             "src_char": "122:12"
5474 |           },
5475 |           {
5476 |             "contract_path": "src/InconsistentUints.sol",
5477 |             "line_no": 7,
5478 |             "src": "197:11",
5479 |             "src_char": "197:11"
5480 |           },
5481 |           {
5482 |             "contract_path": "src/InconsistentUints.sol",
5483 |             "line_no": 11,
5484 |             "src": "289:10",
5485 |             "src_char": "289:10"
5486 |           },
5487 |           {
5488 |             "contract_path": "src/InconsistentUints.sol",
5489 |             "line_no": 12,
5490 |             "src": "340:9",
5491 |             "src_char": "340:9"
5492 |           },
5493 |           {
5494 |             "contract_path": "src/InconsistentUints.sol",
5495 |             "line_no": 15,
5496 |             "src": "383:9",
5497 |             "src_char": "383:9"
5498 |           },
5499 |           {
5500 |             "contract_path": "src/InconsistentUints.sol",
5501 |             "line_no": 16,
5502 |             "src": "434:10",
5503 |             "src_char": "434:10"
5504 |           },
5505 |           {
5506 |             "contract_path": "src/InconsistentUints.sol",
5507 |             "line_no": 19,
5508 |             "src": "528:12",
5509 |             "src_char": "528:12"
5510 |           },
5511 |           {
5512 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
5513 |             "line_no": 115,
5514 |             "src": "2967:4",
5515 |             "src_char": "2967:4"
5516 |           },
5517 |           {
5518 |             "contract_path": "src/TautologicalCompare.sol",
5519 |             "line_no": 11,
5520 |             "src": "351:1",
5521 |             "src_char": "351:1"
5522 |           },
5523 |           {
5524 |             "contract_path": "src/TautologyOrContradiction.sol",
5525 |             "line_no": 6,
5526 |             "src": "133:6",
5527 |             "src_char": "133:6"
5528 |           },
5529 |           {
5530 |             "contract_path": "src/Trump.sol",
5531 |             "line_no": 159,
5532 |             "src": "5000:12",
5533 |             "src_char": "5000:12"
5534 |           },
5535 |           {
5536 |             "contract_path": "src/UninitializedLocalVariables.sol",
5537 |             "line_no": 9,
5538 |             "src": "211:17",
5539 |             "src_char": "211:17"
5540 |           },
5541 |           {
5542 |             "contract_path": "src/UninitializedLocalVariables.sol",
5543 |             "line_no": 15,
5544 |             "src": "434:22",
5545 |             "src_char": "434:22"
5546 |           },
5547 |           {
5548 |             "contract_path": "src/UninitializedLocalVariables.sol",
5549 |             "line_no": 25,
5550 |             "src": "817:15",
5551 |             "src_char": "817:15"
5552 |           },
5553 |           {
5554 |             "contract_path": "src/UninitializedLocalVariables.sol",
5555 |             "line_no": 31,
5556 |             "src": "1109:20",
5557 |             "src_char": "1109:20"
5558 |           },
5559 |           {
5560 |             "contract_path": "src/UninitializedLocalVariables.sol",
5561 |             "line_no": 43,
5562 |             "src": "1639:11",
5563 |             "src_char": "1639:11"
5564 |           },
5565 |           {
5566 |             "contract_path": "src/UninitializedLocalVariables.sol",
5567 |             "line_no": 49,
5568 |             "src": "1826:16",
5569 |             "src_char": "1826:16"
5570 |           },
5571 |           {
5572 |             "contract_path": "src/eth2/DepositContract.sol",
5573 |             "line_no": 59,
5574 |             "src": "4611:27",
5575 |             "src_char": "3123:27"
5576 |           },
5577 |           {
5578 |             "contract_path": "src/eth2/DepositContract.sol",
5579 |             "line_no": 61,
5580 |             "src": "4732:17",
5581 |             "src_char": "3244:17"
5582 |           },
5583 |           {
5584 |             "contract_path": "src/eth2/DepositContract.sol",
5585 |             "line_no": 70,
5586 |             "src": "5020:6",
5587 |             "src_char": "3532:6"
5588 |           },
5589 |           {
5590 |             "contract_path": "src/eth2/DepositContract.sol",
5591 |             "line_no": 76,
5592 |             "src": "5307:4",
5593 |             "src_char": "3819:4"
5594 |           },
5595 |           {
5596 |             "contract_path": "src/eth2/DepositContract.sol",
5597 |             "line_no": 77,
5598 |             "src": "5347:6",
5599 |             "src_char": "3859:6"
5600 |           },
5601 |           {
5602 |             "contract_path": "src/eth2/DepositContract.sol",
5603 |             "line_no": 103,
5604 |             "src": "6636:14",
5605 |             "src_char": "5148:14"
5606 |           },
5607 |           {
5608 |             "contract_path": "src/eth2/DepositContract.sol",
5609 |             "line_no": 133,
5610 |             "src": "8101:4",
5611 |             "src_char": "6613:4"
5612 |           },
5613 |           {
5614 |             "contract_path": "src/eth2/DepositContract.sol",
5615 |             "line_no": 134,
5616 |             "src": "8141:6",
5617 |             "src_char": "6653:6"
5618 |           },
5619 |           {
5620 |             "contract_path": "src/nested_mappings/LaterVersion.sol",
5621 |             "line_no": 8,
5622 |             "src": "184:5",
5623 |             "src_char": "184:5"
5624 |           },
5625 |           {
5626 |             "contract_path": "src/nested_mappings/NestedMappings.sol",
5627 |             "line_no": 8,
5628 |             "src": "168:10",
5629 |             "src_char": "168:10"
5630 |           }
5631 |         ]
5632 |       },
5633 |       {
5634 |         "title": "Unused Error",
5635 |         "description": "Consider using or removing the unused error.",
5636 |         "detector_name": "unused-error",
5637 |         "instances": [
5638 |           {
5639 |             "contract_path": "src/UnusedError.sol",
5640 |             "line_no": 5,
5641 |             "src": "84:27",
5642 |             "src_char": "84:27"
5643 |           },
5644 |           {
5645 |             "contract_path": "src/UnusedError.sol",
5646 |             "line_no": 14,
5647 |             "src": "286:36",
5648 |             "src_char": "286:36"
5649 |           },
5650 |           {
5651 |             "contract_path": "src/WrongOrderOfLayout.sol",
5652 |             "line_no": 13,
5653 |             "src": "274:21",
5654 |             "src_char": "274:21"
5655 |           }
5656 |         ]
5657 |       },
5658 |       {
5659 |         "title": "Loop Contains `require`/`revert`",
5660 |         "description": "Avoid `require` / `revert` statements in a loop because a single bad item can cause the whole transaction to fail. It's better to forgive on fail and return failed elements post processing of the loop",
5661 |         "detector_name": "require-revert-in-loop",
5662 |         "instances": [
5663 |           {
5664 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
5665 |             "line_no": 10,
5666 |             "src": "263:93",
5667 |             "src_char": "263:93"
5668 |           },
5669 |           {
5670 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
5671 |             "line_no": 17,
5672 |             "src": "452:114",
5673 |             "src_char": "452:114"
5674 |           }
5675 |         ]
5676 |       },
5677 |       {
5678 |         "title": "Incorrect Order of Division and Multiplication",
5679 |         "description": "Division operations followed directly by multiplication operations can lead to precision loss due to the way integer arithmetic is handled in Solidity./\n        Consider Multiplication before Division.",
5680 |         "detector_name": "division-before-multiplication",
5681 |         "instances": [
5682 |           {
5683 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
5684 |             "line_no": 8,
5685 |             "src": "218:5",
5686 |             "src_char": "218:5"
5687 |           },
5688 |           {
5689 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
5690 |             "line_no": 12,
5691 |             "src": "330:5",
5692 |             "src_char": "330:5"
5693 |           },
5694 |           {
5695 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
5696 |             "line_no": 16,
5697 |             "src": "432:5",
5698 |             "src_char": "432:5"
5699 |           },
5700 |           {
5701 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
5702 |             "line_no": 20,
5703 |             "src": "541:5",
5704 |             "src_char": "541:5"
5705 |           }
5706 |         ]
5707 |       },
5708 |       {
5709 |         "title": "Redundant Statement",
5710 |         "description": "Remove the redundant statement.",
5711 |         "detector_name": "redundant-statement",
5712 |         "instances": [
5713 |           {
5714 |             "contract_path": "src/RedundantStatements.sol",
5715 |             "line_no": 6,
5716 |             "src": "131:4",
5717 |             "src_char": "131:4"
5718 |           },
5719 |           {
5720 |             "contract_path": "src/RedundantStatements.sol",
5721 |             "line_no": 7,
5722 |             "src": "169:4",
5723 |             "src_char": "169:4"
5724 |           },
5725 |           {
5726 |             "contract_path": "src/RedundantStatements.sol",
5727 |             "line_no": 8,
5728 |             "src": "207:27",
5729 |             "src_char": "207:27"
5730 |           },
5731 |           {
5732 |             "contract_path": "src/RedundantStatements.sol",
5733 |             "line_no": 12,
5734 |             "src": "309:4",
5735 |             "src_char": "309:4"
5736 |           },
5737 |           {
5738 |             "contract_path": "src/RedundantStatements.sol",
5739 |             "line_no": 13,
5740 |             "src": "347:6",
5741 |             "src_char": "347:6"
5742 |           },
5743 |           {
5744 |             "contract_path": "src/RedundantStatements.sol",
5745 |             "line_no": 14,
5746 |             "src": "377:4",
5747 |             "src_char": "377:4"
5748 |           }
5749 |         ]
5750 |       },
5751 |       {
5752 |         "title": "State Variable is Read as External",
5753 |         "description": "The contract reads it's own state variable using `this` which adds an unnecessary STATICCALL. Consider removing `this` to access the variable from storage.",
5754 |         "detector_name": "state-variable-read-external",
5755 |         "instances": [
5756 |           {
5757 |             "contract_path": "src/PublicVariableReadInExternalContext.sol",
5758 |             "line_no": 12,
5759 |             "src": "355:14",
5760 |             "src_char": "355:14"
5761 |           },
5762 |           {
5763 |             "contract_path": "src/PublicVariableReadInExternalContext.sol",
5764 |             "line_no": 16,
5765 |             "src": "457:16",
5766 |             "src_char": "457:16"
5767 |           },
5768 |           {
5769 |             "contract_path": "src/PublicVariableReadInExternalContext.sol",
5770 |             "line_no": 20,
5771 |             "src": "553:12",
5772 |             "src_char": "553:12"
5773 |           },
5774 |           {
5775 |             "contract_path": "src/PublicVariableReadInExternalContext.sol",
5776 |             "line_no": 42,
5777 |             "src": "1175:14",
5778 |             "src_char": "1175:14"
5779 |           }
5780 |         ]
5781 |       },
5782 |       {
5783 |         "title": "Unused State Variable",
5784 |         "description": "State variable appears to be unused. No analysis has been performed to see if any inline assembly references it. Consider removing this unused variable.",
5785 |         "detector_name": "unused-state-variable",
5786 |         "instances": [
5787 |           {
5788 |             "contract_path": "src/AssemblyExample.sol",
5789 |             "line_no": 5,
5790 |             "src": "97:1",
5791 |             "src_char": "97:1"
5792 |           },
5793 |           {
5794 |             "contract_path": "src/InconsistentUints.sol",
5795 |             "line_no": 16,
5796 |             "src": "434:10",
5797 |             "src_char": "434:10"
5798 |           },
5799 |           {
5800 |             "contract_path": "src/LocalVariableShadow.sol",
5801 |             "line_no": 7,
5802 |             "src": "129:5",
5803 |             "src_char": "129:5"
5804 |           },
5805 |           {
5806 |             "contract_path": "src/StateVariables.sol",
5807 |             "line_no": 8,
5808 |             "src": "199:19",
5809 |             "src_char": "199:19"
5810 |           },
5811 |           {
5812 |             "contract_path": "src/StateVariables.sol",
5813 |             "line_no": 9,
5814 |             "src": "241:20",
5815 |             "src_char": "241:20"
5816 |           },
5817 |           {
5818 |             "contract_path": "src/StateVariables.sol",
5819 |             "line_no": 13,
5820 |             "src": "383:27",
5821 |             "src_char": "383:27"
5822 |           },
5823 |           {
5824 |             "contract_path": "src/StateVariables.sol",
5825 |             "line_no": 14,
5826 |             "src": "437:28",
5827 |             "src_char": "437:28"
5828 |           },
5829 |           {
5830 |             "contract_path": "src/StateVariables.sol",
5831 |             "line_no": 28,
5832 |             "src": "1056:16",
5833 |             "src_char": "1056:16"
5834 |           },
5835 |           {
5836 |             "contract_path": "src/StateVariables.sol",
5837 |             "line_no": 29,
5838 |             "src": "1108:17",
5839 |             "src_char": "1108:17"
5840 |           },
5841 |           {
5842 |             "contract_path": "src/TautologyOrContradiction.sol",
5843 |             "line_no": 6,
5844 |             "src": "133:6",
5845 |             "src_char": "133:6"
5846 |           },
5847 |           {
5848 |             "contract_path": "src/TautologyOrContradiction.sol",
5849 |             "line_no": 7,
5850 |             "src": "145:9",
5851 |             "src_char": "145:9"
5852 |           },
5853 |           {
5854 |             "contract_path": "src/UninitializedLocalVariables.sol",
5855 |             "line_no": 5,
5856 |             "src": "93:12",
5857 |             "src_char": "93:12"
5858 |           },
5859 |           {
5860 |             "contract_path": "src/UninitializedStateVariable.sol",
5861 |             "line_no": 13,
5862 |             "src": "503:3",
5863 |             "src_char": "503:3"
5864 |           },
5865 |           {
5866 |             "contract_path": "src/UnusedStateVariables.sol",
5867 |             "line_no": 6,
5868 |             "src": "147:13",
5869 |             "src_char": "147:13"
5870 |           },
5871 |           {
5872 |             "contract_path": "src/UnusedStateVariables.sol",
5873 |             "line_no": 7,
5874 |             "src": "183:13",
5875 |             "src_char": "183:13"
5876 |           },
5877 |           {
5878 |             "contract_path": "src/UnusedStateVariables.sol",
5879 |             "line_no": 8,
5880 |             "src": "215:10",
5881 |             "src_char": "215:10"
5882 |           },
5883 |           {
5884 |             "contract_path": "src/UnusedStateVariables.sol",
5885 |             "line_no": 9,
5886 |             "src": "246:12",
5887 |             "src_char": "246:12"
5888 |           },
5889 |           {
5890 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
5891 |             "line_no": 14,
5892 |             "src": "151:3",
5893 |             "src_char": "151:3"
5894 |           },
5895 |           {
5896 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
5897 |             "line_no": 16,
5898 |             "src": "190:3",
5899 |             "src_char": "190:3"
5900 |           },
5901 |           {
5902 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
5903 |             "line_no": 19,
5904 |             "src": "261:3",
5905 |             "src_char": "261:3"
5906 |           },
5907 |           {
5908 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
5909 |             "line_no": 22,
5910 |             "src": "367:3",
5911 |             "src_char": "367:3"
5912 |           },
5913 |           {
5914 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
5915 |             "line_no": 29,
5916 |             "src": "477:3",
5917 |             "src_char": "477:3"
5918 |           },
5919 |           {
5920 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
5921 |             "line_no": 14,
5922 |             "src": "160:3",
5923 |             "src_char": "160:3"
5924 |           },
5925 |           {
5926 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
5927 |             "line_no": 16,
5928 |             "src": "199:3",
5929 |             "src_char": "199:3"
5930 |           },
5931 |           {
5932 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
5933 |             "line_no": 19,
5934 |             "src": "270:3",
5935 |             "src_char": "270:3"
5936 |           },
5937 |           {
5938 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
5939 |             "line_no": 22,
5940 |             "src": "376:3",
5941 |             "src_char": "376:3"
5942 |           },
5943 |           {
5944 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
5945 |             "line_no": 29,
5946 |             "src": "486:3",
5947 |             "src_char": "486:3"
5948 |           }
5949 |         ]
5950 |       },
5951 |       {
5952 |         "title": "Constant Function Contains Assembly",
5953 |         "description": "constant/pure/view was not enforced prior to Solidity 0.5. Starting from Solidity 0.5, a call to a constant/pure/view function uses the STATICCALL opcode, which reverts in case of state modification. As a result, a call to an incorrectly labeled function may trap a contract compiled with Solidity 0.5. https://docs.soliditylang.org/en/develop/050-breaking-changes.html#interoperability-with-older-contracts",
5954 |         "detector_name": "constant-function-contains-assembly",
5955 |         "instances": [
5956 |           {
5957 |             "contract_path": "src/ConstantFuncsAssembly.sol",
5958 |             "line_no": 9,
5959 |             "src": "182:175",
5960 |             "src_char": "182:175"
5961 |           },
5962 |           {
5963 |             "contract_path": "src/ConstantFuncsAssembly.sol",
5964 |             "line_no": 17,
5965 |             "src": "408:237",
5966 |             "src_char": "408:237"
5967 |           },
5968 |           {
5969 |             "contract_path": "src/ConstantFuncsAssembly.sol",
5970 |             "line_no": 36,
5971 |             "src": "934:98",
5972 |             "src_char": "934:98"
5973 |           }
5974 |         ]
5975 |       },
5976 |       {
5977 |         "title": "Boolean equality is not required",
5978 |         "description": "If `x` is a boolean, use `if(x)` and `if(!x)` instead of `if(x == true)` or `if(x == false)`.",
5979 |         "detector_name": "boolean-equality",
5980 |         "instances": [
5981 |           {
5982 |             "contract_path": "src/BooleanEquality.sol",
5983 |             "line_no": 5,
5984 |             "src": "133:14",
5985 |             "src_char": "133:14"
5986 |           },
5987 |           {
5988 |             "contract_path": "src/BooleanEquality.sol",
5989 |             "line_no": 12,
5990 |             "src": "292:15",
5991 |             "src_char": "292:15"
5992 |           },
5993 |           {
5994 |             "contract_path": "src/BooleanEquality.sol",
5995 |             "line_no": 19,
5996 |             "src": "454:15",
5997 |             "src_char": "454:15"
5998 |           },
5999 |           {
6000 |             "contract_path": "src/BooleanEquality.sol",
6001 |             "line_no": 26,
6002 |             "src": "614:16",
6003 |             "src_char": "614:16"
6004 |           }
6005 |         ]
6006 |       },
6007 |       {
6008 |         "title": "Local Variable Shadows State Variable",
6009 |         "description": "Rename the local variable that shadows another state variable.",
6010 |         "detector_name": "local-variable-shadowing",
6011 |         "instances": [
6012 |           {
6013 |             "contract_path": "src/AdminContract.sol",
6014 |             "line_no": 10,
6015 |             "src": "359:6",
6016 |             "src_char": "359:6"
6017 |           },
6018 |           {
6019 |             "contract_path": "src/FunctionInitializingState.sol",
6020 |             "line_no": 41,
6021 |             "src": "1253:1",
6022 |             "src_char": "1253:1"
6023 |           },
6024 |           {
6025 |             "contract_path": "src/FunctionInitializingState.sol",
6026 |             "line_no": 46,
6027 |             "src": "1392:1",
6028 |             "src_char": "1392:1"
6029 |           },
6030 |           {
6031 |             "contract_path": "src/LocalVariableShadow.sol",
6032 |             "line_no": 10,
6033 |             "src": "207:5",
6034 |             "src_char": "207:5"
6035 |           },
6036 |           {
6037 |             "contract_path": "src/LocalVariableShadow.sol",
6038 |             "line_no": 17,
6039 |             "src": "391:5",
6040 |             "src_char": "391:5"
6041 |           },
6042 |           {
6043 |             "contract_path": "src/LocalVariableShadow.sol",
6044 |             "line_no": 31,
6045 |             "src": "727:4",
6046 |             "src_char": "727:4"
6047 |           },
6048 |           {
6049 |             "contract_path": "src/OutOfOrderRetryable.sol",
6050 |             "line_no": 144,
6051 |             "src": "4121:17",
6052 |             "src_char": "4121:17"
6053 |           },
6054 |           {
6055 |             "contract_path": "src/OutOfOrderRetryable.sol",
6056 |             "line_no": 147,
6057 |             "src": "4236:8",
6058 |             "src_char": "4236:8"
6059 |           },
6060 |           {
6061 |             "contract_path": "src/OutOfOrderRetryable.sol",
6062 |             "line_no": 148,
6063 |             "src": "4262:12",
6064 |             "src_char": "4262:12"
6065 |           },
6066 |           {
6067 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
6068 |             "line_no": 28,
6069 |             "src": "708:6",
6070 |             "src_char": "708:6"
6071 |           }
6072 |         ]
6073 |       },
6074 |       {
6075 |         "title": "Uninitialized Local Variable",
6076 |         "description": "Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.",
6077 |         "detector_name": "uninitialized-local-variable",
6078 |         "instances": [
6079 |           {
6080 |             "contract_path": "src/ConstantFuncsAssembly.sol",
6081 |             "line_no": 18,
6082 |             "src": "478:14",
6083 |             "src_char": "478:14"
6084 |           },
6085 |           {
6086 |             "contract_path": "src/ConstantFuncsAssembly.sol",
6087 |             "line_no": 27,
6088 |             "src": "716:14",
6089 |             "src_char": "716:14"
6090 |           },
6091 |           {
6092 |             "contract_path": "src/StorageParameters.sol",
6093 |             "line_no": 8,
6094 |             "src": "184:11",
6095 |             "src_char": "184:11"
6096 |           },
6097 |           {
6098 |             "contract_path": "src/UninitializedLocalVariables.sol",
6099 |             "line_no": 9,
6100 |             "src": "211:17",
6101 |             "src_char": "211:17"
6102 |           },
6103 |           {
6104 |             "contract_path": "src/UninitializedLocalVariables.sol",
6105 |             "line_no": 10,
6106 |             "src": "243:17",
6107 |             "src_char": "243:17"
6108 |           },
6109 |           {
6110 |             "contract_path": "src/UninitializedLocalVariables.sol",
6111 |             "line_no": 11,
6112 |             "src": "278:20",
6113 |             "src_char": "278:20"
6114 |           },
6115 |           {
6116 |             "contract_path": "src/UninitializedLocalVariables.sol",
6117 |             "line_no": 12,
6118 |             "src": "312:16",
6119 |             "src_char": "312:16"
6120 |           },
6121 |           {
6122 |             "contract_path": "src/UninitializedLocalVariables.sol",
6123 |             "line_no": 13,
6124 |             "src": "346:20",
6125 |             "src_char": "346:20"
6126 |           },
6127 |           {
6128 |             "contract_path": "src/UninitializedLocalVariables.sol",
6129 |             "line_no": 14,
6130 |             "src": "390:19",
6131 |             "src_char": "390:19"
6132 |           },
6133 |           {
6134 |             "contract_path": "src/UninitializedLocalVariables.sol",
6135 |             "line_no": 15,
6136 |             "src": "434:22",
6137 |             "src_char": "434:22"
6138 |           },
6139 |           {
6140 |             "contract_path": "src/UninitializedLocalVariables.sol",
6141 |             "line_no": 16,
6142 |             "src": "481:22",
6143 |             "src_char": "481:22"
6144 |           },
6145 |           {
6146 |             "contract_path": "src/UninitializedLocalVariables.sol",
6147 |             "line_no": 17,
6148 |             "src": "531:25",
6149 |             "src_char": "531:25"
6150 |           },
6151 |           {
6152 |             "contract_path": "src/UninitializedLocalVariables.sol",
6153 |             "line_no": 18,
6154 |             "src": "580:21",
6155 |             "src_char": "580:21"
6156 |           },
6157 |           {
6158 |             "contract_path": "src/UninitializedLocalVariables.sol",
6159 |             "line_no": 19,
6160 |             "src": "629:25",
6161 |             "src_char": "629:25"
6162 |           },
6163 |           {
6164 |             "contract_path": "src/UninitializedLocalVariables.sol",
6165 |             "line_no": 20,
6166 |             "src": "681:24",
6167 |             "src_char": "681:24"
6168 |           }
6169 |         ]
6170 |       },
6171 |       {
6172 |         "title": "Return Bomb",
6173 |         "description": "A low level callee may consume all callers gas unexpectedly. Avoid unlimited implicit decoding of returndata on calls to unchecked addresses. You can limit the gas by passing a gas limit as an option to the call. For example, `unknownAddress.call{gas: gasLimitHere}(\"calldata\")` That would act as a safety net from OOG errors.\n        ",
6174 |         "detector_name": "return-bomb",
6175 |         "instances": [
6176 |           {
6177 |             "contract_path": "src/ReturnBomb.sol",
6178 |             "line_no": 22,
6179 |             "src": "591:115",
6180 |             "src_char": "591:115"
6181 |           }
6182 |         ]
6183 |       },
6184 |       {
6185 |         "title": "Function Used to Initialize State Variable",
6186 |         "description": "Instead of using a function to initialize a state variable in its declaration; declare the state variable and initialize it in the constructor.",
6187 |         "detector_name": "function-initializing-state",
6188 |         "instances": [
6189 |           {
6190 |             "contract_path": "src/FunctionInitializingState.sol",
6191 |             "line_no": 6,
6192 |             "src": "122:1",
6193 |             "src_char": "122:1"
6194 |           },
6195 |           {
6196 |             "contract_path": "src/FunctionInitializingState.sol",
6197 |             "line_no": 8,
6198 |             "src": "213:1",
6199 |             "src_char": "213:1"
6200 |           },
6201 |           {
6202 |             "contract_path": "src/FunctionInitializingState.sol",
6203 |             "line_no": 9,
6204 |             "src": "281:1",
6205 |             "src_char": "281:1"
6206 |           }
6207 |         ]
6208 |       },
6209 |       {
6210 |         "title": "Dead Code",
6211 |         "description": "Functions that are not used. Consider removing them.",
6212 |         "detector_name": "dead-code",
6213 |         "instances": [
6214 |           {
6215 |             "contract_path": "src/ArbitraryTransferFrom.sol",
6216 |             "line_no": 18,
6217 |             "src": "535:4",
6218 |             "src_char": "535:4"
6219 |           },
6220 |           {
6221 |             "contract_path": "src/ContractLocksEther.sol",
6222 |             "line_no": 54,
6223 |             "src": "1540:10",
6224 |             "src_char": "1540:10"
6225 |           },
6226 |           {
6227 |             "contract_path": "src/DeadCode.sol",
6228 |             "line_no": 16,
6229 |             "src": "362:22",
6230 |             "src_char": "362:22"
6231 |           },
6232 |           {
6233 |             "contract_path": "src/DeletionNestedMappingStructureContract.sol",
6234 |             "line_no": 14,
6235 |             "src": "258:6",
6236 |             "src_char": "258:6"
6237 |           },
6238 |           {
6239 |             "contract_path": "src/IncorrectShift.sol",
6240 |             "line_no": 5,
6241 |             "src": "100:8",
6242 |             "src_char": "100:8"
6243 |           },
6244 |           {
6245 |             "contract_path": "src/IncorrectShift.sol",
6246 |             "line_no": 13,
6247 |             "src": "292:9",
6248 |             "src_char": "292:9"
6249 |           },
6250 |           {
6251 |             "contract_path": "src/UncheckedReturn.sol",
6252 |             "line_no": 12,
6253 |             "src": "186:19",
6254 |             "src_char": "186:19"
6255 |           },
6256 |           {
6257 |             "contract_path": "src/UncheckedReturn.sol",
6258 |             "line_no": 20,
6259 |             "src": "362:21",
6260 |             "src_char": "362:21"
6261 |           },
6262 |           {
6263 |             "contract_path": "src/UncheckedReturn.sol",
6264 |             "line_no": 25,
6265 |             "src": "492:19",
6266 |             "src_char": "492:19"
6267 |           },
6268 |           {
6269 |             "contract_path": "src/UncheckedReturn.sol",
6270 |             "line_no": 30,
6271 |             "src": "644:21",
6272 |             "src_char": "644:21"
6273 |           },
6274 |           {
6275 |             "contract_path": "src/UncheckedReturn.sol",
6276 |             "line_no": 35,
6277 |             "src": "842:26",
6278 |             "src_char": "842:26"
6279 |           },
6280 |           {
6281 |             "contract_path": "src/UncheckedReturn.sol",
6282 |             "line_no": 40,
6283 |             "src": "1049:19",
6284 |             "src_char": "1049:19"
6285 |           }
6286 |         ]
6287 |       },
6288 |       {
6289 |         "title": "Storage Array Length not Cached",
6290 |         "description": "Calling `.length` on a storage array in a loop condition is expensive. Consider caching the length in a local variable in memory before the loop and reusing it.",
6291 |         "detector_name": "storage-array-length-not-cached",
6292 |         "instances": [
6293 |           {
6294 |             "contract_path": "src/CacheArrayLength.sol",
6295 |             "line_no": 12,
6296 |             "src": "234:82",
6297 |             "src_char": "234:82"
6298 |           },
6299 |           {
6300 |             "contract_path": "src/CacheArrayLength.sol",
6301 |             "line_no": 44,
6302 |             "src": "1160:64",
6303 |             "src_char": "1160:64"
6304 |           },
6305 |           {
6306 |             "contract_path": "src/CacheArrayLength.sol",
6307 |             "line_no": 50,
6308 |             "src": "1325:183",
6309 |             "src_char": "1325:183"
6310 |           }
6311 |         ]
6312 |       },
6313 |       {
6314 |         "title": "State change in `assert()` statement",
6315 |         "description": "An argument to `assert()` modifies the state. Use `require` for invariants modifying state.",
6316 |         "detector_name": "assert-state-change",
6317 |         "instances": [
6318 |           {
6319 |             "contract_path": "src/AssertStateChange.sol",
6320 |             "line_no": 9,
6321 |             "src": "154:23",
6322 |             "src_char": "154:23"
6323 |           }
6324 |         ]
6325 |       },
6326 |       {
6327 |         "title": "Costly operations inside loop",
6328 |         "description": "Invoking `SSTORE` operations in loops may waste gas. Use a local variable to hold the loop computation result.",
6329 |         "detector_name": "costly-loop",
6330 |         "instances": [
6331 |           {
6332 |             "contract_path": "src/CacheArrayLength.sol",
6333 |             "line_no": 25,
6334 |             "src": "546:133",
6335 |             "src_char": "546:133"
6336 |           },
6337 |           {
6338 |             "contract_path": "src/CacheArrayLength.sol",
6339 |             "line_no": 35,
6340 |             "src": "928:155",
6341 |             "src_char": "928:155"
6342 |           },
6343 |           {
6344 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
6345 |             "line_no": 10,
6346 |             "src": "214:79",
6347 |             "src_char": "214:79"
6348 |           },
6349 |           {
6350 |             "contract_path": "src/EnumerableSetIteration.sol",
6351 |             "line_no": 29,
6352 |             "src": "989:157",
6353 |             "src_char": "989:157"
6354 |           },
6355 |           {
6356 |             "contract_path": "src/EnumerableSetIteration.sol",
6357 |             "line_no": 38,
6358 |             "src": "1253:155",
6359 |             "src_char": "1253:155"
6360 |           },
6361 |           {
6362 |             "contract_path": "src/EnumerableSetIteration.sol",
6363 |             "line_no": 48,
6364 |             "src": "1517:159",
6365 |             "src_char": "1517:159"
6366 |           },
6367 |           {
6368 |             "contract_path": "src/EnumerableSetIteration.sol",
6369 |             "line_no": 57,
6370 |             "src": "1749:157",
6371 |             "src_char": "1749:157"
6372 |           },
6373 |           {
6374 |             "contract_path": "src/EnumerableSetIteration.sol",
6375 |             "line_no": 65,
6376 |             "src": "1976:142",
6377 |             "src_char": "1976:142"
6378 |           },
6379 |           {
6380 |             "contract_path": "src/MsgValueInLoop.sol",
6381 |             "line_no": 12,
6382 |             "src": "289:107",
6383 |             "src_char": "289:107"
6384 |           },
6385 |           {
6386 |             "contract_path": "src/MsgValueInLoop.sol",
6387 |             "line_no": 25,
6388 |             "src": "658:122",
6389 |             "src_char": "658:122"
6390 |           },
6391 |           {
6392 |             "contract_path": "src/MsgValueInLoop.sol",
6393 |             "line_no": 38,
6394 |             "src": "988:94",
6395 |             "src_char": "988:94"
6396 |           },
6397 |           {
6398 |             "contract_path": "src/MsgValueInLoop.sol",
6399 |             "line_no": 54,
6400 |             "src": "1415:93",
6401 |             "src_char": "1415:93"
6402 |           },
6403 |           {
6404 |             "contract_path": "src/MsgValueInLoop.sol",
6405 |             "line_no": 71,
6406 |             "src": "1844:97",
6407 |             "src_char": "1844:97"
6408 |           },
6409 |           {
6410 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
6411 |             "line_no": 10,
6412 |             "src": "227:129",
6413 |             "src_char": "227:129"
6414 |           },
6415 |           {
6416 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
6417 |             "line_no": 17,
6418 |             "src": "416:150",
6419 |             "src_char": "416:150"
6420 |           },
6421 |           {
6422 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
6423 |             "line_no": 27,
6424 |             "src": "719:159",
6425 |             "src_char": "719:159"
6426 |           },
6427 |           {
6428 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
6429 |             "line_no": 47,
6430 |             "src": "1144:154",
6431 |             "src_char": "1144:154"
6432 |           },
6433 |           {
6434 |             "contract_path": "src/eth2/DepositContract.sol",
6435 |             "line_no": 134,
6436 |             "src": "8131:283",
6437 |             "src_char": "6643:283"
6438 |           },
6439 |           {
6440 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
6441 |             "line_no": 17,
6442 |             "src": "512:110",
6443 |             "src_char": "512:110"
6444 |           }
6445 |         ]
6446 |       },
6447 |       {
6448 |         "title": "Builtin Symbol Shadowing",
6449 |         "description": "Name clashes with a built-in-symbol. Consider renaming it.",
6450 |         "detector_name": "builtin-symbol-shadowing",
6451 |         "instances": [
6452 |           {
6453 |             "contract_path": "src/BuiltinSymbolShadow.sol",
6454 |             "line_no": 5,
6455 |             "src": "92:8",
6456 |             "src_char": "92:8"
6457 |           },
6458 |           {
6459 |             "contract_path": "src/BuiltinSymbolShadow.sol",
6460 |             "line_no": 8,
6461 |             "src": "125:41",
6462 |             "src_char": "125:41"
6463 |           },
6464 |           {
6465 |             "contract_path": "src/BuiltinSymbolShadow.sol",
6466 |             "line_no": 17,
6467 |             "src": "358:39",
6468 |             "src_char": "358:39"
6469 |           },
6470 |           {
6471 |             "contract_path": "src/BuiltinSymbolShadow.sol",
6472 |             "line_no": 22,
6473 |             "src": "414:15",
6474 |             "src_char": "414:15"
6475 |           }
6476 |         ]
6477 |       },
6478 |       {
6479 |         "title": "Void constructor",
6480 |         "description": "Call to a constructor that is not implemented.",
6481 |         "detector_name": "void-constructor",
6482 |         "instances": [
6483 |           {
6484 |             "contract_path": "src/VoidConstructor.sol",
6485 |             "line_no": 16,
6486 |             "src": "372:17",
6487 |             "src_char": "372:17"
6488 |           }
6489 |         ]
6490 |       },
6491 |       {
6492 |         "title": "Missing Inheritance",
6493 |         "description": "There is an interface / abstract contract that is potentially missing (not included in) the inheritance of this contract.",
6494 |         "detector_name": "missing-inheritance",
6495 |         "instances": [
6496 |           {
6497 |             "contract_path": "src/MissingInheritance.sol",
6498 |             "line_no": 7,
6499 |             "src": "83:25",
6500 |             "src_char": "83:25",
6501 |             "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IMissingInheritanceCounter"
6502 |           },
6503 |           {
6504 |             "contract_path": "src/MissingInheritance.sol",
6505 |             "line_no": 41,
6506 |             "src": "754:16",
6507 |             "src_char": "754:16",
6508 |             "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IMissingChild, IMissingParent"
6509 |           },
6510 |           {
6511 |             "contract_path": "src/TestERC20.sol",
6512 |             "line_no": 4,
6513 |             "src": "70:9",
6514 |             "src_char": "70:9",
6515 |             "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IERC20"
6516 |           }
6517 |         ]
6518 |       },
6519 |       {
6520 |         "title": "Unused Import",
6521 |         "description": "Redundant import statement. Consider removing it.",
6522 |         "detector_name": "unused-import",
6523 |         "instances": [
6524 |           {
6525 |             "contract_path": "src/StateVariables.sol",
6526 |             "line_no": 4,
6527 |             "src": "57:38",
6528 |             "src_char": "57:38"
6529 |           },
6530 |           {
6531 |             "contract_path": "src/UnusedImport.sol",
6532 |             "line_no": 6,
6533 |             "src": "91:18",
6534 |             "src_char": "91:18"
6535 |           },
6536 |           {
6537 |             "contract_path": "src/UnusedImport.sol",
6538 |             "line_no": 9,
6539 |             "src": "144:28",
6540 |             "src_char": "144:28"
6541 |           }
6542 |         ]
6543 |       },
6544 |       {
6545 |         "title": "Function Pointer in Constructor",
6546 |         "description": "solc versions below 0.5.9 contain a compiler bug leading to unexpected behavior when calling uninitialized function pointers in constructors. It is recommended to not use function pointers in constructors.",
6547 |         "detector_name": "function-pointer-in-constructor",
6548 |         "instances": [
6549 |           {
6550 |             "contract_path": "src/FunctionPointers.sol",
6551 |             "line_no": 13,
6552 |             "src": "330:50",
6553 |             "src_char": "330:50"
6554 |           }
6555 |         ]
6556 |       },
6557 |       {
6558 |         "title": "State Variable Could Be Constant",
6559 |         "description": "State variables that are not updated following deployment should be declared constant to save gas. Add the `constant` attribute to state variables that never change.",
6560 |         "detector_name": "state-variable-could-be-constant",
6561 |         "instances": [
6562 |           {
6563 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
6564 |             "line_no": 6,
6565 |             "src": "128:10",
6566 |             "src_char": "128:10"
6567 |           },
6568 |           {
6569 |             "contract_path": "src/FunctionInitializingState.sol",
6570 |             "line_no": 7,
6571 |             "src": "190:1",
6572 |             "src_char": "190:1"
6573 |           },
6574 |           {
6575 |             "contract_path": "src/FunctionInitializingState.sol",
6576 |             "line_no": 58,
6577 |             "src": "1617:1",
6578 |             "src_char": "1617:1"
6579 |           },
6580 |           {
6581 |             "contract_path": "src/IncorrectERC20.sol",
6582 |             "line_no": 5,
6583 |             "src": "101:4",
6584 |             "src_char": "101:4"
6585 |           },
6586 |           {
6587 |             "contract_path": "src/IncorrectERC20.sol",
6588 |             "line_no": 6,
6589 |             "src": "144:6",
6590 |             "src_char": "144:6"
6591 |           },
6592 |           {
6593 |             "contract_path": "src/IncorrectERC20.sol",
6594 |             "line_no": 7,
6595 |             "src": "177:8",
6596 |             "src_char": "177:8"
6597 |           },
6598 |           {
6599 |             "contract_path": "src/IncorrectERC20.sol",
6600 |             "line_no": 8,
6601 |             "src": "211:11",
6602 |             "src_char": "211:11"
6603 |           },
6604 |           {
6605 |             "contract_path": "src/IncorrectERC20.sol",
6606 |             "line_no": 48,
6607 |             "src": "1426:4",
6608 |             "src_char": "1426:4"
6609 |           },
6610 |           {
6611 |             "contract_path": "src/IncorrectERC20.sol",
6612 |             "line_no": 49,
6613 |             "src": "1467:6",
6614 |             "src_char": "1467:6"
6615 |           },
6616 |           {
6617 |             "contract_path": "src/IncorrectERC20.sol",
6618 |             "line_no": 50,
6619 |             "src": "1500:8",
6620 |             "src_char": "1500:8"
6621 |           },
6622 |           {
6623 |             "contract_path": "src/IncorrectERC20.sol",
6624 |             "line_no": 51,
6625 |             "src": "1535:12",
6626 |             "src_char": "1535:12"
6627 |           },
6628 |           {
6629 |             "contract_path": "src/IncorrectERC721.sol",
6630 |             "line_no": 5,
6631 |             "src": "102:4",
6632 |             "src_char": "102:4"
6633 |           },
6634 |           {
6635 |             "contract_path": "src/IncorrectERC721.sol",
6636 |             "line_no": 6,
6637 |             "src": "143:6",
6638 |             "src_char": "143:6"
6639 |           },
6640 |           {
6641 |             "contract_path": "src/IncorrectERC721.sol",
6642 |             "line_no": 145,
6643 |             "src": "4001:4",
6644 |             "src_char": "4001:4"
6645 |           },
6646 |           {
6647 |             "contract_path": "src/IncorrectERC721.sol",
6648 |             "line_no": 146,
6649 |             "src": "4040:6",
6650 |             "src_char": "4040:6"
6651 |           },
6652 |           {
6653 |             "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
6654 |             "line_no": 8,
6655 |             "src": "211:13",
6656 |             "src_char": "211:13"
6657 |           },
6658 |           {
6659 |             "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
6660 |             "line_no": 13,
6661 |             "src": "385:1",
6662 |             "src_char": "385:1"
6663 |           },
6664 |           {
6665 |             "contract_path": "src/StateVariables.sol",
6666 |             "line_no": 13,
6667 |             "src": "383:27",
6668 |             "src_char": "383:27"
6669 |           },
6670 |           {
6671 |             "contract_path": "src/StateVariables.sol",
6672 |             "line_no": 14,
6673 |             "src": "437:28",
6674 |             "src_char": "437:28"
6675 |           },
6676 |           {
6677 |             "contract_path": "src/StateVariables.sol",
6678 |             "line_no": 15,
6679 |             "src": "490:26",
6680 |             "src_char": "490:26"
6681 |           },
6682 |           {
6683 |             "contract_path": "src/StateVariablesManipulation.sol",
6684 |             "line_no": 40,
6685 |             "src": "1188:9",
6686 |             "src_char": "1188:9"
6687 |           },
6688 |           {
6689 |             "contract_path": "src/StateVariablesManipulation.sol",
6690 |             "line_no": 41,
6691 |             "src": "1221:10",
6692 |             "src_char": "1221:10"
6693 |           },
6694 |           {
6695 |             "contract_path": "src/StateVariablesManipulation.sol",
6696 |             "line_no": 72,
6697 |             "src": "2068:13",
6698 |             "src_char": "2068:13"
6699 |           },
6700 |           {
6701 |             "contract_path": "src/Trump.sol",
6702 |             "line_no": 130,
6703 |             "src": "3920:20",
6704 |             "src_char": "3920:20"
6705 |           },
6706 |           {
6707 |             "contract_path": "src/Trump.sol",
6708 |             "line_no": 131,
6709 |             "src": "3967:21",
6710 |             "src_char": "3967:21"
6711 |           },
6712 |           {
6713 |             "contract_path": "src/Trump.sol",
6714 |             "line_no": 135,
6715 |             "src": "4041:14",
6716 |             "src_char": "4041:14"
6717 |           },
6718 |           {
6719 |             "contract_path": "src/Trump.sol",
6720 |             "line_no": 136,
6721 |             "src": "4080:15",
6722 |             "src_char": "4080:15"
6723 |           },
6724 |           {
6725 |             "contract_path": "src/Trump.sol",
6726 |             "line_no": 137,
6727 |             "src": "4120:12",
6728 |             "src_char": "4120:12"
6729 |           },
6730 |           {
6731 |             "contract_path": "src/Trump.sol",
6732 |             "line_no": 138,
6733 |             "src": "4156:13",
6734 |             "src_char": "4156:13"
6735 |           },
6736 |           {
6737 |             "contract_path": "src/Trump.sol",
6738 |             "line_no": 139,
6739 |             "src": "4193:15",
6740 |             "src_char": "4193:15"
6741 |           },
6742 |           {
6743 |             "contract_path": "src/Trump.sol",
6744 |             "line_no": 140,
6745 |             "src": "4233:16",
6746 |             "src_char": "4233:16"
6747 |           },
6748 |           {
6749 |             "contract_path": "src/Trump.sol",
6750 |             "line_no": 141,
6751 |             "src": "4274:18",
6752 |             "src_char": "4274:18"
6753 |           },
6754 |           {
6755 |             "contract_path": "src/Trump.sol",
6756 |             "line_no": 150,
6757 |             "src": "4682:17",
6758 |             "src_char": "4682:17"
6759 |           },
6760 |           {
6761 |             "contract_path": "src/Trump.sol",
6762 |             "line_no": 151,
6763 |             "src": "4743:11",
6764 |             "src_char": "4743:11"
6765 |           },
6766 |           {
6767 |             "contract_path": "src/UninitializedStateVariable.sol",
6768 |             "line_no": 8,
6769 |             "src": "198:11",
6770 |             "src_char": "198:11"
6771 |           },
6772 |           {
6773 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
6774 |             "line_no": 14,
6775 |             "src": "151:3",
6776 |             "src_char": "151:3"
6777 |           },
6778 |           {
6779 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
6780 |             "line_no": 16,
6781 |             "src": "190:3",
6782 |             "src_char": "190:3"
6783 |           },
6784 |           {
6785 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
6786 |             "line_no": 19,
6787 |             "src": "261:3",
6788 |             "src_char": "261:3"
6789 |           },
6790 |           {
6791 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
6792 |             "line_no": 22,
6793 |             "src": "367:3",
6794 |             "src_char": "367:3"
6795 |           },
6796 |           {
6797 |             "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
6798 |             "line_no": 29,
6799 |             "src": "477:3",
6800 |             "src_char": "477:3"
6801 |           },
6802 |           {
6803 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
6804 |             "line_no": 14,
6805 |             "src": "160:3",
6806 |             "src_char": "160:3"
6807 |           },
6808 |           {
6809 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
6810 |             "line_no": 16,
6811 |             "src": "199:3",
6812 |             "src_char": "199:3"
6813 |           },
6814 |           {
6815 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
6816 |             "line_no": 19,
6817 |             "src": "270:3",
6818 |             "src_char": "270:3"
6819 |           },
6820 |           {
6821 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
6822 |             "line_no": 22,
6823 |             "src": "376:3",
6824 |             "src_char": "376:3"
6825 |           },
6826 |           {
6827 |             "contract_path": "src/cloc/HeavilyCommentedContract.sol",
6828 |             "line_no": 29,
6829 |             "src": "486:3",
6830 |             "src_char": "486:3"
6831 |           }
6832 |         ]
6833 |       },
6834 |       {
6835 |         "title": "State Change Without Event",
6836 |         "description": "There are state variable changes in this function but no event is emitted. Consider emitting an event to enable offchain indexers to track the changes.",
6837 |         "detector_name": "state-change-without-event",
6838 |         "instances": [
6839 |           {
6840 |             "contract_path": "src/AdminContract.sol",
6841 |             "line_no": 14,
6842 |             "src": "457:23",
6843 |             "src_char": "457:23"
6844 |           },
6845 |           {
6846 |             "contract_path": "src/AssertStateChange.sol",
6847 |             "line_no": 8,
6848 |             "src": "131:3",
6849 |             "src_char": "131:3"
6850 |           },
6851 |           {
6852 |             "contract_path": "src/AssertStateChange.sol",
6853 |             "line_no": 12,
6854 |             "src": "199:4",
6855 |             "src_char": "199:4"
6856 |           },
6857 |           {
6858 |             "contract_path": "src/CacheArrayLength.sol",
6859 |             "line_no": 23,
6860 |             "src": "506:2",
6861 |             "src_char": "506:2"
6862 |           },
6863 |           {
6864 |             "contract_path": "src/CacheArrayLength.sol",
6865 |             "line_no": 32,
6866 |             "src": "700:2",
6867 |             "src_char": "700:2"
6868 |           },
6869 |           {
6870 |             "contract_path": "src/Casting.sol",
6871 |             "line_no": 37,
6872 |             "src": "922:17",
6873 |             "src_char": "922:17"
6874 |           },
6875 |           {
6876 |             "contract_path": "src/Casting.sol",
6877 |             "line_no": 75,
6878 |             "src": "2106:16",
6879 |             "src_char": "2106:16"
6880 |           },
6881 |           {
6882 |             "contract_path": "src/Casting.sol",
6883 |             "line_no": 113,
6884 |             "src": "3222:20",
6885 |             "src_char": "3222:20"
6886 |           },
6887 |           {
6888 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
6889 |             "line_no": 9,
6890 |             "src": "189:3",
6891 |             "src_char": "189:3"
6892 |           },
6893 |           {
6894 |             "contract_path": "src/CostlyOperationsInsideLoops.sol",
6895 |             "line_no": 15,
6896 |             "src": "314:4",
6897 |             "src_char": "314:4"
6898 |           },
6899 |           {
6900 |             "contract_path": "src/Counter.sol",
6901 |             "line_no": 7,
6902 |             "src": "129:9",
6903 |             "src_char": "129:9"
6904 |           },
6905 |           {
6906 |             "contract_path": "src/Counter.sol",
6907 |             "line_no": 11,
6908 |             "src": "215:9",
6909 |             "src_char": "215:9"
6910 |           },
6911 |           {
6912 |             "contract_path": "src/Counter.sol",
6913 |             "line_no": 16,
6914 |             "src": "286:13",
6915 |             "src_char": "286:13"
6916 |           },
6917 |           {
6918 |             "contract_path": "src/Counter.sol",
6919 |             "line_no": 21,
6920 |             "src": "367:19",
6921 |             "src_char": "367:19"
6922 |           },
6923 |           {
6924 |             "contract_path": "src/Counter.sol",
6925 |             "line_no": 28,
6926 |             "src": "495:22",
6927 |             "src_char": "495:22"
6928 |           },
6929 |           {
6930 |             "contract_path": "src/DeadCode.sol",
6931 |             "line_no": 11,
6932 |             "src": "189:8",
6933 |             "src_char": "189:8"
6934 |           },
6935 |           {
6936 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6937 |             "line_no": 7,
6938 |             "src": "135:14",
6939 |             "src_char": "135:14"
6940 |           },
6941 |           {
6942 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6943 |             "line_no": 11,
6944 |             "src": "254:18",
6945 |             "src_char": "254:18"
6946 |           },
6947 |           {
6948 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6949 |             "line_no": 15,
6950 |             "src": "367:11",
6951 |             "src_char": "367:11"
6952 |           },
6953 |           {
6954 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6955 |             "line_no": 19,
6956 |             "src": "465:19",
6957 |             "src_char": "465:19"
6958 |           },
6959 |           {
6960 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6961 |             "line_no": 23,
6962 |             "src": "577:16",
6963 |             "src_char": "577:16"
6964 |           },
6965 |           {
6966 |             "contract_path": "src/DivisionBeforeMultiplication.sol",
6967 |             "line_no": 27,
6968 |             "src": "690:20",
6969 |             "src_char": "690:20"
6970 |           },
6971 |           {
6972 |             "contract_path": "src/EnumerableSetIteration.sol",
6973 |             "line_no": 28,
6974 |             "src": "939:28",
6975 |             "src_char": "939:28"
6976 |           },
6977 |           {
6978 |             "contract_path": "src/EnumerableSetIteration.sol",
6979 |             "line_no": 36,
6980 |             "src": "1178:30",
6981 |             "src_char": "1178:30"
6982 |           },
6983 |           {
6984 |             "contract_path": "src/EnumerableSetIteration.sol",
6985 |             "line_no": 46,
6986 |             "src": "1440:32",
6987 |             "src_char": "1440:32"
6988 |           },
6989 |           {
6990 |             "contract_path": "src/EnumerableSetIteration.sol",
6991 |             "line_no": 56,
6992 |             "src": "1708:19",
6993 |             "src_char": "1708:19"
6994 |           },
6995 |           {
6996 |             "contract_path": "src/EnumerableSetIteration.sol",
6997 |             "line_no": 64,
6998 |             "src": "1938:16",
6999 |             "src_char": "1938:16"
7000 |           },
7001 |           {
7002 |             "contract_path": "src/ExternalCalls.sol",
7003 |             "line_no": 11,
7004 |             "src": "194:7",
7005 |             "src_char": "194:7"
7006 |           },
7007 |           {
7008 |             "contract_path": "src/ExternalCalls.sol",
7009 |             "line_no": 19,
7010 |             "src": "309:9",
7011 |             "src_char": "309:9"
7012 |           },
7013 |           {
7014 |             "contract_path": "src/ExternalCalls.sol",
7015 |             "line_no": 78,
7016 |             "src": "1470:7",
7017 |             "src_char": "1470:7"
7018 |           },
7019 |           {
7020 |             "contract_path": "src/ExternalCalls.sol",
7021 |             "line_no": 82,
7022 |             "src": "1548:7",
7023 |             "src_char": "1548:7"
7024 |           },
7025 |           {
7026 |             "contract_path": "src/IncorrectERC20.sol",
7027 |             "line_no": 17,
7028 |             "src": "483:8",
7029 |             "src_char": "483:8"
7030 |           },
7031 |           {
7032 |             "contract_path": "src/IncorrectERC20.sol",
7033 |             "line_no": 23,
7034 |             "src": "690:7",
7035 |             "src_char": "690:7"
7036 |           },
7037 |           {
7038 |             "contract_path": "src/IncorrectERC20.sol",
7039 |             "line_no": 27,
7040 |             "src": "808:12",
7041 |             "src_char": "808:12"
7042 |           },
7043 |           {
7044 |             "contract_path": "src/IncorrectERC20.sol",
7045 |             "line_no": 68,
7046 |             "src": "2007:8",
7047 |             "src_char": "2007:8"
7048 |           },
7049 |           {
7050 |             "contract_path": "src/IncorrectERC20.sol",
7051 |             "line_no": 83,
7052 |             "src": "2352:7",
7053 |             "src_char": "2352:7"
7054 |           },
7055 |           {
7056 |             "contract_path": "src/IncorrectERC20.sol",
7057 |             "line_no": 88,
7058 |             "src": "2507:12",
7059 |             "src_char": "2507:12"
7060 |           },
7061 |           {
7062 |             "contract_path": "src/IncorrectERC721.sol",
7063 |             "line_no": 22,
7064 |             "src": "696:7",
7065 |             "src_char": "696:7"
7066 |           },
7067 |           {
7068 |             "contract_path": "src/IncorrectERC721.sol",
7069 |             "line_no": 41,
7070 |             "src": "1231:17",
7071 |             "src_char": "1231:17"
7072 |           },
7073 |           {
7074 |             "contract_path": "src/IncorrectERC721.sol",
7075 |             "line_no": 56,
7076 |             "src": "1684:12",
7077 |             "src_char": "1684:12"
7078 |           },
7079 |           {
7080 |             "contract_path": "src/IncorrectERC721.sol",
7081 |             "line_no": 86,
7082 |             "src": "2439:4",
7083 |             "src_char": "2439:4"
7084 |           },
7085 |           {
7086 |             "contract_path": "src/InternalFunctions.sol",
7087 |             "line_no": 12,
7088 |             "src": "213:8",
7089 |             "src_char": "213:8"
7090 |           },
7091 |           {
7092 |             "contract_path": "src/MissingInheritance.sol",
7093 |             "line_no": 10,
7094 |             "src": "151:9",
7095 |             "src_char": "151:9"
7096 |           },
7097 |           {
7098 |             "contract_path": "src/MissingInheritance.sol",
7099 |             "line_no": 25,
7100 |             "src": "451:9",
7101 |             "src_char": "451:9"
7102 |           },
7103 |           {
7104 |             "contract_path": "src/MsgValueInLoop.sol",
7105 |             "line_no": 10,
7106 |             "src": "177:3",
7107 |             "src_char": "177:3"
7108 |           },
7109 |           {
7110 |             "contract_path": "src/MsgValueInLoop.sol",
7111 |             "line_no": 22,
7112 |             "src": "501:4",
7113 |             "src_char": "501:4"
7114 |           },
7115 |           {
7116 |             "contract_path": "src/MsgValueInLoop.sol",
7117 |             "line_no": 36,
7118 |             "src": "905:3",
7119 |             "src_char": "905:3"
7120 |           },
7121 |           {
7122 |             "contract_path": "src/MsgValueInLoop.sol",
7123 |             "line_no": 51,
7124 |             "src": "1307:3",
7125 |             "src_char": "1307:3"
7126 |           },
7127 |           {
7128 |             "contract_path": "src/MsgValueInLoop.sol",
7129 |             "line_no": 68,
7130 |             "src": "1733:3",
7131 |             "src_char": "1733:3"
7132 |           },
7133 |           {
7134 |             "contract_path": "src/OutOfOrderRetryable.sol",
7135 |             "line_no": 175,
7136 |             "src": "5072:7",
7137 |             "src_char": "5072:7"
7138 |           },
7139 |           {
7140 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
7141 |             "line_no": 9,
7142 |             "src": "188:17",
7143 |             "src_char": "188:17"
7144 |           },
7145 |           {
7146 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
7147 |             "line_no": 16,
7148 |             "src": "377:17",
7149 |             "src_char": "377:17"
7150 |           },
7151 |           {
7152 |             "contract_path": "src/RevertsAndRequriesInLoops.sol",
7153 |             "line_no": 25,
7154 |             "src": "588:17",
7155 |             "src_char": "588:17"
7156 |           },
7157 |           {
7158 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7159 |             "line_no": 22,
7160 |             "src": "530:13",
7161 |             "src_char": "530:13"
7162 |           },
7163 |           {
7164 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7165 |             "line_no": 31,
7166 |             "src": "677:13",
7167 |             "src_char": "677:13"
7168 |           },
7169 |           {
7170 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7171 |             "line_no": 42,
7172 |             "src": "885:13",
7173 |             "src_char": "885:13"
7174 |           },
7175 |           {
7176 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7177 |             "line_no": 57,
7178 |             "src": "1331:14",
7179 |             "src_char": "1331:14"
7180 |           },
7181 |           {
7182 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7183 |             "line_no": 66,
7184 |             "src": "1480:14",
7185 |             "src_char": "1480:14"
7186 |           },
7187 |           {
7188 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7189 |             "line_no": 81,
7190 |             "src": "1769:13",
7191 |             "src_char": "1769:13"
7192 |           },
7193 |           {
7194 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7195 |             "line_no": 87,
7196 |             "src": "1885:14",
7197 |             "src_char": "1885:14"
7198 |           },
7199 |           {
7200 |             "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
7201 |             "line_no": 39,
7202 |             "src": "996:8",
7203 |             "src_char": "996:8"
7204 |           },
7205 |           {
7206 |             "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
7207 |             "line_no": 37,
7208 |             "src": "1455:21",
7209 |             "src_char": "1455:21"
7210 |           },
7211 |           {
7212 |             "contract_path": "src/StateVariables.sol",
7213 |             "line_no": 47,
7214 |             "src": "1764:18",
7215 |             "src_char": "1764:18"
7216 |           },
7217 |           {
7218 |             "contract_path": "src/StateVariables.sol",
7219 |             "line_no": 52,
7220 |             "src": "1915:20",
7221 |             "src_char": "1915:20"
7222 |           },
7223 |           {
7224 |             "contract_path": "src/StateVariables.sol",
7225 |             "line_no": 57,
7226 |             "src": "2072:14",
7227 |             "src_char": "2072:14"
7228 |           },
7229 |           {
7230 |             "contract_path": "src/StateVariables.sol",
7231 |             "line_no": 61,
7232 |             "src": "2157:22",
7233 |             "src_char": "2157:22"
7234 |           },
7235 |           {
7236 |             "contract_path": "src/StateVariables.sol",
7237 |             "line_no": 71,
7238 |             "src": "2539:25",
7239 |             "src_char": "2539:25"
7240 |           },
7241 |           {
7242 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7243 |             "line_no": 23,
7244 |             "src": "574:26",
7245 |             "src_char": "574:26"
7246 |           },
7247 |           {
7248 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7249 |             "line_no": 28,
7250 |             "src": "679:36",
7251 |             "src_char": "679:36"
7252 |           },
7253 |           {
7254 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7255 |             "line_no": 33,
7256 |             "src": "794:35",
7257 |             "src_char": "794:35"
7258 |           },
7259 |           {
7260 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7261 |             "line_no": 45,
7262 |             "src": "1047:36",
7263 |             "src_char": "1047:36"
7264 |           },
7265 |           {
7266 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7267 |             "line_no": 50,
7268 |             "src": "1157:26",
7269 |             "src_char": "1157:26"
7270 |           },
7271 |           {
7272 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7273 |             "line_no": 55,
7274 |             "src": "1266:24",
7275 |             "src_char": "1266:24"
7276 |           },
7277 |           {
7278 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7279 |             "line_no": 68,
7280 |             "src": "1621:33",
7281 |             "src_char": "1621:33"
7282 |           },
7283 |           {
7284 |             "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
7285 |             "line_no": 81,
7286 |             "src": "2003:34",
7287 |             "src_char": "2003:34"
7288 |           },
7289 |           {
7290 |             "contract_path": "src/StateVariablesManipulation.sol",
7291 |             "line_no": 48,
7292 |             "src": "1463:26",
7293 |             "src_char": "1463:26"
7294 |           },
7295 |           {
7296 |             "contract_path": "src/StateVariablesManipulation.sol",
7297 |             "line_no": 80,
7298 |             "src": "2360:18",
7299 |             "src_char": "2360:18"
7300 |           },
7301 |           {
7302 |             "contract_path": "src/StateVariablesManipulation.sol",
7303 |             "line_no": 85,
7304 |             "src": "2519:24",
7305 |             "src_char": "2519:24"
7306 |           },
7307 |           {
7308 |             "contract_path": "src/StateVariablesManipulation.sol",
7309 |             "line_no": 120,
7310 |             "src": "3396:24",
7311 |             "src_char": "3396:24"
7312 |           },
7313 |           {
7314 |             "contract_path": "src/StateVariablesManipulation.sol",
7315 |             "line_no": 126,
7316 |             "src": "3566:25",
7317 |             "src_char": "3566:25"
7318 |           },
7319 |           {
7320 |             "contract_path": "src/StateVariablesManipulation.sol",
7321 |             "line_no": 139,
7322 |             "src": "3960:25",
7323 |             "src_char": "3960:25"
7324 |           },
7325 |           {
7326 |             "contract_path": "src/StateVariablesManipulation.sol",
7327 |             "line_no": 160,
7328 |             "src": "4556:25",
7329 |             "src_char": "4556:25"
7330 |           },
7331 |           {
7332 |             "contract_path": "src/StateVariablesManipulation.sol",
7333 |             "line_no": 176,
7334 |             "src": "5020:25",
7335 |             "src_char": "5020:25"
7336 |           },
7337 |           {
7338 |             "contract_path": "src/StateVariablesManipulation.sol",
7339 |             "line_no": 182,
7340 |             "src": "5159:25",
7341 |             "src_char": "5159:25"
7342 |           },
7343 |           {
7344 |             "contract_path": "src/StateVariablesManipulation.sol",
7345 |             "line_no": 281,
7346 |             "src": "7993:18",
7347 |             "src_char": "7993:18"
7348 |           },
7349 |           {
7350 |             "contract_path": "src/StateVariablesManipulation.sol",
7351 |             "line_no": 286,
7352 |             "src": "8121:24",
7353 |             "src_char": "8121:24"
7354 |           },
7355 |           {
7356 |             "contract_path": "src/StateVariablesManipulation.sol",
7357 |             "line_no": 314,
7358 |             "src": "8845:18",
7359 |             "src_char": "8845:18"
7360 |           },
7361 |           {
7362 |             "contract_path": "src/StateVariablesManipulation.sol",
7363 |             "line_no": 321,
7364 |             "src": "9054:24",
7365 |             "src_char": "9054:24"
7366 |           },
7367 |           {
7368 |             "contract_path": "src/StateVariablesManipulation.sol",
7369 |             "line_no": 332,
7370 |             "src": "9447:25",
7371 |             "src_char": "9447:25"
7372 |           },
7373 |           {
7374 |             "contract_path": "src/StateVariablesManipulation.sol",
7375 |             "line_no": 337,
7376 |             "src": "9572:26",
7377 |             "src_char": "9572:26"
7378 |           },
7379 |           {
7380 |             "contract_path": "src/StateVariablesManipulation.sol",
7381 |             "line_no": 353,
7382 |             "src": "9896:3",
7383 |             "src_char": "9896:3"
7384 |           },
7385 |           {
7386 |             "contract_path": "src/StorageParameters.sol",
7387 |             "line_no": 7,
7388 |             "src": "137:10",
7389 |             "src_char": "137:10"
7390 |           },
7391 |           {
7392 |             "contract_path": "src/TxOriginUsedForAuth.sol",
7393 |             "line_no": 16,
7394 |             "src": "348:13",
7395 |             "src_char": "348:13"
7396 |           },
7397 |           {
7398 |             "contract_path": "src/TxOriginUsedForAuth.sol",
7399 |             "line_no": 22,
7400 |             "src": "531:10",
7401 |             "src_char": "531:10"
7402 |           },
7403 |           {
7404 |             "contract_path": "src/UnprotectedInitialize.sol",
7405 |             "line_no": 21,
7406 |             "src": "452:22",
7407 |             "src_char": "452:22"
7408 |           },
7409 |           {
7410 |             "contract_path": "src/UnprotectedInitialize.sol",
7411 |             "line_no": 27,
7412 |             "src": "618:20",
7413 |             "src_char": "618:20"
7414 |           },
7415 |           {
7416 |             "contract_path": "src/UnprotectedInitialize.sol",
7417 |             "line_no": 37,
7418 |             "src": "916:33",
7419 |             "src_char": "916:33"
7420 |           },
7421 |           {
7422 |             "contract_path": "src/UnprotectedInitialize.sol",
7423 |             "line_no": 70,
7424 |             "src": "1798:27",
7425 |             "src_char": "1798:27"
7426 |           },
7427 |           {
7428 |             "contract_path": "src/UnusedError.sol",
7429 |             "line_no": 16,
7430 |             "src": "337:7",
7431 |             "src_char": "337:7"
7432 |           },
7433 |           {
7434 |             "contract_path": "src/UnusedStateVariables.sol",
7435 |             "line_no": 15,
7436 |             "src": "454:8",
7437 |             "src_char": "454:8"
7438 |           },
7439 |           {
7440 |             "contract_path": "src/ZeroAddressCheck.sol",
7441 |             "line_no": 12,
7442 |             "src": "253:12",
7443 |             "src_char": "253:12"
7444 |           },
7445 |           {
7446 |             "contract_path": "src/ZeroAddressCheck.sol",
7447 |             "line_no": 17,
7448 |             "src": "383:12",
7449 |             "src_char": "383:12"
7450 |           },
7451 |           {
7452 |             "contract_path": "src/ZeroAddressCheck.sol",
7453 |             "line_no": 22,
7454 |             "src": "534:10",
7455 |             "src_char": "534:10"
7456 |           },
7457 |           {
7458 |             "contract_path": "src/ZeroAddressCheck.sol",
7459 |             "line_no": 27,
7460 |             "src": "671:10",
7461 |             "src_char": "671:10"
7462 |           },
7463 |           {
7464 |             "contract_path": "src/ZeroAddressCheck.sol",
7465 |             "line_no": 32,
7466 |             "src": "829:10",
7467 |             "src_char": "829:10"
7468 |           },
7469 |           {
7470 |             "contract_path": "src/ZeroAddressCheck.sol",
7471 |             "line_no": 37,
7472 |             "src": "990:10",
7473 |             "src_char": "990:10"
7474 |           },
7475 |           {
7476 |             "contract_path": "src/ZeroAddressCheck.sol",
7477 |             "line_no": 42,
7478 |             "src": "1130:4",
7479 |             "src_char": "1130:4"
7480 |           },
7481 |           {
7482 |             "contract_path": "src/ZeroAddressCheck.sol",
7483 |             "line_no": 46,
7484 |             "src": "1207:4",
7485 |             "src_char": "1207:4"
7486 |           },
7487 |           {
7488 |             "contract_path": "src/ZeroAddressCheck.sol",
7489 |             "line_no": 50,
7490 |             "src": "1286:4",
7491 |             "src_char": "1286:4"
7492 |           },
7493 |           {
7494 |             "contract_path": "src/inheritance/ExtendedInheritance.sol",
7495 |             "line_no": 14,
7496 |             "src": "391:15",
7497 |             "src_char": "391:15"
7498 |           },
7499 |           {
7500 |             "contract_path": "src/nested/1/Nested.sol",
7501 |             "line_no": 10,
7502 |             "src": "265:17",
7503 |             "src_char": "265:17"
7504 |           },
7505 |           {
7506 |             "contract_path": "src/nested/2/Nested.sol",
7507 |             "line_no": 10,
7508 |             "src": "272:17",
7509 |             "src_char": "272:17"
7510 |           },
7511 |           {
7512 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
7513 |             "line_no": 15,
7514 |             "src": "422:9",
7515 |             "src_char": "422:9"
7516 |           },
7517 |           {
7518 |             "contract_path": "src/parent_chain/ParentChainContract.sol",
7519 |             "line_no": 32,
7520 |             "src": "806:23",
7521 |             "src_char": "806:23"
7522 |           },
7523 |           {
7524 |             "contract_path": "src/router/InternalCalls.sol",
7525 |             "line_no": 120,
7526 |             "src": "2306:4",
7527 |             "src_char": "2306:4"
7528 |           }
7529 |         ]
7530 |       },
7531 |       {
7532 |         "title": "State Variable Could Be Immutable",
7533 |         "description": "State variables that are only changed in the constructor should be declared immutable to save gas. Add the `immutable` attribute to state variables that are only changed in the constructor",
7534 |         "detector_name": "state-variable-could-be-immutable",
7535 |         "instances": [
7536 |           {
7537 |             "contract_path": "src/ArbitraryTransferFrom.sol",
7538 |             "line_no": 9,
7539 |             "src": "217:7",
7540 |             "src_char": "217:7"
7541 |           },
7542 |           {
7543 |             "contract_path": "src/EmitAfterExternalCall.sol",
7544 |             "line_no": 15,
7545 |             "src": "373:7",
7546 |             "src_char": "373:7"
7547 |           },
7548 |           {
7549 |             "contract_path": "src/ExternalCalls.sol",
7550 |             "line_no": 25,
7551 |             "src": "416:2",
7552 |             "src_char": "416:2"
7553 |           },
7554 |           {
7555 |             "contract_path": "src/FunctionInitializingState.sol",
7556 |             "line_no": 57,
7557 |             "src": "1598:1",
7558 |             "src_char": "1598:1"
7559 |           },
7560 |           {
7561 |             "contract_path": "src/FunctionInitializingState.sol",
7562 |             "line_no": 59,
7563 |             "src": "1640:1",
7564 |             "src_char": "1640:1"
7565 |           },
7566 |           {
7567 |             "contract_path": "src/InconsistentUints.sol",
7568 |             "line_no": 5,
7569 |             "src": "122:12",
7570 |             "src_char": "122:12"
7571 |           },
7572 |           {
7573 |             "contract_path": "src/InconsistentUints.sol",
7574 |             "line_no": 6,
7575 |             "src": "160:15",
7576 |             "src_char": "160:15"
7577 |           },
7578 |           {
7579 |             "contract_path": "src/InternalFunctions.sol",
7580 |             "line_no": 5,
7581 |             "src": "111:5",
7582 |             "src_char": "111:5"
7583 |           },
7584 |           {
7585 |             "contract_path": "src/MultiplePlaceholders.sol",
7586 |             "line_no": 5,
7587 |             "src": "110:5",
7588 |             "src_char": "110:5"
7589 |           },
7590 |           {
7591 |             "contract_path": "src/OutOfOrderRetryable.sol",
7592 |             "line_no": 39,
7593 |             "src": "1052:5",
7594 |             "src_char": "1052:5"
7595 |           },
7596 |           {
7597 |             "contract_path": "src/OutOfOrderRetryable.sol",
7598 |             "line_no": 40,
7599 |             "src": "1078:10",
7600 |             "src_char": "1078:10"
7601 |           },
7602 |           {
7603 |             "contract_path": "src/OutOfOrderRetryable.sol",
7604 |             "line_no": 41,
7605 |             "src": "1109:17",
7606 |             "src_char": "1109:17"
7607 |           },
7608 |           {
7609 |             "contract_path": "src/OutOfOrderRetryable.sol",
7610 |             "line_no": 42,
7611 |             "src": "1147:8",
7612 |             "src_char": "1147:8"
7613 |           },
7614 |           {
7615 |             "contract_path": "src/OutOfOrderRetryable.sol",
7616 |             "line_no": 43,
7617 |             "src": "1176:12",
7618 |             "src_char": "1176:12"
7619 |           },
7620 |           {
7621 |             "contract_path": "src/OutOfOrderRetryable.sol",
7622 |             "line_no": 44,
7623 |             "src": "1209:3",
7624 |             "src_char": "1209:3"
7625 |           },
7626 |           {
7627 |             "contract_path": "src/StateChangeAfterExternalCall.sol",
7628 |             "line_no": 14,
7629 |             "src": "377:7",
7630 |             "src_char": "377:7"
7631 |           },
7632 |           {
7633 |             "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
7634 |             "line_no": 11,
7635 |             "src": "281:13",
7636 |             "src_char": "281:13"
7637 |           },
7638 |           {
7639 |             "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
7640 |             "line_no": 29,
7641 |             "src": "811:13",
7642 |             "src_char": "811:13"
7643 |           },
7644 |           {
7645 |             "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
7646 |             "line_no": 6,
7647 |             "src": "162:24",
7648 |             "src_char": "162:24"
7649 |           },
7650 |           {
7651 |             "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
7652 |             "line_no": 9,
7653 |             "src": "245:24",
7654 |             "src_char": "245:24"
7655 |           },
7656 |           {
7657 |             "contract_path": "src/StorageConditionals.sol",
7658 |             "line_no": 5,
7659 |             "src": "108:18",
7660 |             "src_char": "108:18"
7661 |           },
7662 |           {
7663 |             "contract_path": "src/StorageConditionals.sol",
7664 |             "line_no": 6,
7665 |             "src": "148:23",
7666 |             "src_char": "148:23"
7667 |           },
7668 |           {
7669 |             "contract_path": "src/TestERC20.sol",
7670 |             "line_no": 7,
7671 |             "src": "144:4",
7672 |             "src_char": "144:4"
7673 |           },
7674 |           {
7675 |             "contract_path": "src/TestERC20.sol",
7676 |             "line_no": 8,
7677 |             "src": "168:6",
7678 |             "src_char": "168:6"
7679 |           },
7680 |           {
7681 |             "contract_path": "src/Trump.sol",
7682 |             "line_no": 128,
7683 |             "src": "3847:10",
7684 |             "src_char": "3847:10"
7685 |           },
7686 |           {
7687 |             "contract_path": "src/Trump.sol",
7688 |             "line_no": 129,
7689 |             "src": "3887:11",
7690 |             "src_char": "3887:11"
7691 |           },
7692 |           {
7693 |             "contract_path": "src/TxOriginUsedForAuth.sol",
7694 |             "line_no": 5,
7695 |             "src": "107:5",
7696 |             "src_char": "107:5"
7697 |           },
7698 |           {
7699 |             "contract_path": "src/UninitializedStateVariable.sol",
7700 |             "line_no": 9,
7701 |             "src": "291:8",
7702 |             "src_char": "291:8"
7703 |           },
7704 |           {
7705 |             "contract_path": "src/UninitializedStateVariable.sol",
7706 |             "line_no": 37,
7707 |             "src": "1079:5",
7708 |             "src_char": "1079:5"
7709 |           },
7710 |           {
7711 |             "contract_path": "src/UnprotectedInitialize.sol",
7712 |             "line_no": 9,
7713 |             "src": "244:5",
7714 |             "src_char": "244:5"
7715 |           },
7716 |           {
7717 |             "contract_path": "src/auditor_mode/ExternalCalls.sol",
7718 |             "line_no": 9,
7719 |             "src": "205:6",
7720 |             "src_char": "205:6"
7721 |           },
7722 |           {
7723 |             "contract_path": "src/auditor_mode/ExternalCalls.sol",
7724 |             "line_no": 10,
7725 |             "src": "251:14",
7726 |             "src_char": "251:14"
7727 |           },
7728 |           {
7729 |             "contract_path": "src/eth2/DepositContract.sol",
7730 |             "line_no": 66,
7731 |             "src": "4907:11",
7732 |             "src_char": "3419:11"
7733 |           },
7734 |           {
7735 |             "contract_path": "src/reused_contract_name/ContractA.sol",
7736 |             "line_no": 5,
7737 |             "src": "99:1",
7738 |             "src_char": "99:1"
7739 |           },
7740 |           {
7741 |             "contract_path": "src/reused_contract_name/ContractB.sol",
7742 |             "line_no": 5,
7743 |             "src": "102:1",
7744 |             "src_char": "102:1"
7745 |           },
7746 |           {
7747 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7748 |             "line_no": 8,
7749 |             "src": "312:8",
7750 |             "src_char": "312:8"
7751 |           }
7752 |         ]
7753 |       },
7754 |       {
7755 |         "title": "Multiple Placeholders in Modifier",
7756 |         "description": "Design the modifier to only contain 1 placeholder statement. If that is not possible, split the logic into multiple modifiers.",
7757 |         "detector_name": "multiple-placeholders",
7758 |         "instances": [
7759 |           {
7760 |             "contract_path": "src/MultiplePlaceholders.sol",
7761 |             "line_no": 12,
7762 |             "src": "197:10",
7763 |             "src_char": "197:10"
7764 |           },
7765 |           {
7766 |             "contract_path": "src/MultiplePlaceholders.sol",
7767 |             "line_no": 19,
7768 |             "src": "329:5",
7769 |             "src_char": "329:5"
7770 |           },
7771 |           {
7772 |             "contract_path": "src/MultiplePlaceholders.sol",
7773 |             "line_no": 40,
7774 |             "src": "700:5",
7775 |             "src_char": "700:5"
7776 |           }
7777 |         ]
7778 |       },
7779 |       {
7780 |         "title": "Incorrect Use Of Modifier",
7781 |         "description": "If a modifier does not execute `_` or revert, the execution of the function will return the default value, which can be misleading for the caller. It is recommended that all the paths in a modifier must execute _ or revert.",
7782 |         "detector_name": "incorrect-use-of-modifier",
7783 |         "instances": [
7784 |           {
7785 |             "contract_path": "src/IncorrectModifier.sol",
7786 |             "line_no": 22,
7787 |             "src": "645:16",
7788 |             "src_char": "645:16"
7789 |           },
7790 |           {
7791 |             "contract_path": "src/IncorrectModifier.sol",
7792 |             "line_no": 30,
7793 |             "src": "763:18",
7794 |             "src_char": "763:18"
7795 |           }
7796 |         ]
7797 |       },
7798 |       {
7799 |         "title": "Unchecked Return",
7800 |         "description": "Function returns a value but it is ignored. Consider checking the return value.",
7801 |         "detector_name": "unchecked-return",
7802 |         "instances": [
7803 |           {
7804 |             "contract_path": "src/ArbitraryTransferFrom.sol",
7805 |             "line_no": 19,
7806 |             "src": "601:38",
7807 |             "src_char": "601:38"
7808 |           },
7809 |           {
7810 |             "contract_path": "src/ArbitraryTransferFrom.sol",
7811 |             "line_no": 34,
7812 |             "src": "1046:44",
7813 |             "src_char": "1046:44"
7814 |           },
7815 |           {
7816 |             "contract_path": "src/ArbitraryTransferFrom.sol",
7817 |             "line_no": 54,
7818 |             "src": "1699:44",
7819 |             "src_char": "1699:44"
7820 |           },
7821 |           {
7822 |             "contract_path": "src/DeprecatedOZFunctions.sol",
7823 |             "line_no": 32,
7824 |             "src": "1062:29",
7825 |             "src_char": "1062:29"
7826 |           },
7827 |           {
7828 |             "contract_path": "src/DeprecatedOZFunctions.sol",
7829 |             "line_no": 47,
7830 |             "src": "1598:35",
7831 |             "src_char": "1598:35"
7832 |           },
7833 |           {
7834 |             "contract_path": "src/EnumerableSetIteration.sol",
7835 |             "line_no": 17,
7836 |             "src": "662:27",
7837 |             "src_char": "662:27"
7838 |           },
7839 |           {
7840 |             "contract_path": "src/EnumerableSetIteration.sol",
7841 |             "line_no": 20,
7842 |             "src": "770:28",
7843 |             "src_char": "770:28"
7844 |           },
7845 |           {
7846 |             "contract_path": "src/EnumerableSetIteration.sol",
7847 |             "line_no": 23,
7848 |             "src": "875:21",
7849 |             "src_char": "875:21"
7850 |           },
7851 |           {
7852 |             "contract_path": "src/EnumerableSetIteration.sol",
7853 |             "line_no": 31,
7854 |             "src": "1105:30",
7855 |             "src_char": "1105:30"
7856 |           },
7857 |           {
7858 |             "contract_path": "src/EnumerableSetIteration.sol",
7859 |             "line_no": 40,
7860 |             "src": "1350:30",
7861 |             "src_char": "1350:30"
7862 |           },
7863 |           {
7864 |             "contract_path": "src/EnumerableSetIteration.sol",
7865 |             "line_no": 50,
7866 |             "src": "1586:30",
7867 |             "src_char": "1586:30"
7868 |           },
7869 |           {
7870 |             "contract_path": "src/EnumerableSetIteration.sol",
7871 |             "line_no": 59,
7872 |             "src": "1865:30",
7873 |             "src_char": "1865:30"
7874 |           },
7875 |           {
7876 |             "contract_path": "src/EnumerableSetIteration.sol",
7877 |             "line_no": 67,
7878 |             "src": "2083:24",
7879 |             "src_char": "2083:24"
7880 |           },
7881 |           {
7882 |             "contract_path": "src/OutOfOrderRetryable.sol",
7883 |             "line_no": 65,
7884 |             "src": "1705:390",
7885 |             "src_char": "1705:390"
7886 |           },
7887 |           {
7888 |             "contract_path": "src/OutOfOrderRetryable.sol",
7889 |             "line_no": 77,
7890 |             "src": "2129:379",
7891 |             "src_char": "2129:379"
7892 |           },
7893 |           {
7894 |             "contract_path": "src/OutOfOrderRetryable.sol",
7895 |             "line_no": 92,
7896 |             "src": "2624:390",
7897 |             "src_char": "2624:390"
7898 |           },
7899 |           {
7900 |             "contract_path": "src/OutOfOrderRetryable.sol",
7901 |             "line_no": 107,
7902 |             "src": "3107:379",
7903 |             "src_char": "3107:379"
7904 |           },
7905 |           {
7906 |             "contract_path": "src/OutOfOrderRetryable.sol",
7907 |             "line_no": 129,
7908 |             "src": "3777:208",
7909 |             "src_char": "3777:208"
7910 |           },
7911 |           {
7912 |             "contract_path": "src/OutOfOrderRetryable.sol",
7913 |             "line_no": 151,
7914 |             "src": "4337:261",
7915 |             "src_char": "4337:261"
7916 |           },
7917 |           {
7918 |             "contract_path": "src/StateVariablesManipulation.sol",
7919 |             "line_no": 142,
7920 |             "src": "4146:20",
7921 |             "src_char": "4146:20"
7922 |           },
7923 |           {
7924 |             "contract_path": "src/Trump.sol",
7925 |             "line_no": 344,
7926 |             "src": "11990:71",
7927 |             "src_char": "11990:71"
7928 |           },
7929 |           {
7930 |             "contract_path": "src/UncheckedReturn.sol",
7931 |             "line_no": 14,
7932 |             "src": "279:5",
7933 |             "src_char": "279:5"
7934 |           },
7935 |           {
7936 |             "contract_path": "src/UncheckedReturn.sol",
7937 |             "line_no": 27,
7938 |             "src": "575:47",
7939 |             "src_char": "575:47"
7940 |           },
7941 |           {
7942 |             "contract_path": "src/router/ExternalCalls.sol",
7943 |             "line_no": 27,
7944 |             "src": "594:7",
7945 |             "src_char": "594:7"
7946 |           },
7947 |           {
7948 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7949 |             "line_no": 23,
7950 |             "src": "670:83",
7951 |             "src_char": "670:83"
7952 |           },
7953 |           {
7954 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7955 |             "line_no": 24,
7956 |             "src": "763:83",
7957 |             "src_char": "763:83"
7958 |           },
7959 |           {
7960 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7961 |             "line_no": 25,
7962 |             "src": "856:70",
7963 |             "src_char": "856:70"
7964 |           },
7965 |           {
7966 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7967 |             "line_no": 26,
7968 |             "src": "936:80",
7969 |             "src_char": "936:80"
7970 |           },
7971 |           {
7972 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7973 |             "line_no": 27,
7974 |             "src": "1026:80",
7975 |             "src_char": "1026:80"
7976 |           },
7977 |           {
7978 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7979 |             "line_no": 46,
7980 |             "src": "1933:76",
7981 |             "src_char": "1933:76"
7982 |           },
7983 |           {
7984 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7985 |             "line_no": 47,
7986 |             "src": "2019:76",
7987 |             "src_char": "2019:76"
7988 |           },
7989 |           {
7990 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7991 |             "line_no": 48,
7992 |             "src": "2105:63",
7993 |             "src_char": "2105:63"
7994 |           },
7995 |           {
7996 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
7997 |             "line_no": 49,
7998 |             "src": "2178:73",
7999 |             "src_char": "2178:73"
8000 |           },
8001 |           {
8002 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
8003 |             "line_no": 50,
8004 |             "src": "2261:73",
8005 |             "src_char": "2261:73"
8006 |           },
8007 |           {
8008 |             "contract_path": "src/uniswap/UniswapV2Swapper.sol",
8009 |             "line_no": 51,
8010 |             "src": "2344:60",
8011 |             "src_char": "2344:60"
8012 |           }
8013 |         ]
8014 |       }
8015 |     ]
8016 |   },
8017 |   "detectors_used": [
8018 |     "delegatecall-in-loop",
8019 |     "centralization-risk",
8020 |     "solmate-safe-transfer-lib",
8021 |     "abi-encode-packed-hash-collision",
8022 |     "ecrecover",
8023 |     "deprecated-oz-function",
8024 |     "unsafe-erc20-operation",
8025 |     "unspecific-solidity-pragma",
8026 |     "state-no-address-check",
8027 |     "unused-public-function",
8028 |     "literal-instead-of-constant",
8029 |     "empty-require-revert",
8030 |     "non-reentrant-not-first",
8031 |     "block-timestamp-deadline",
8032 |     "unsafe-oz-erc721-mint",
8033 |     "push-zero-opcode",
8034 |     "arbitrary-transfer-from",
8035 |     "modifier-used-only-once",
8036 |     "empty-block",
8037 |     "large-numeric-literal",
8038 |     "internal-function-used-once",
8039 |     "todo",
8040 |     "inconsistent-type-names",
8041 |     "unprotected-initializer",
8042 |     "unused-error",
8043 |     "require-revert-in-loop",
8044 |     "division-before-multiplication",
8045 |     "unsafe-casting",
8046 |     "enumerable-loop-removal",
8047 |     "experimental-encoder",
8048 |     "incorrect-shift-order",
8049 |     "storage-array-memory-edit",
8050 |     "multiple-constructors",
8051 |     "reused-contract-name",
8052 |     "nested-struct-in-mapping",
8053 |     "selfdestruct",
8054 |     "dynamic-array-length-assignment",
8055 |     "incorrect-caret-operator",
8056 |     "yul-return",
8057 |     "state-variable-shadowing",
8058 |     "unchecked-send",
8059 |     "misused-boolean",
8060 |     "eth-send-unchecked-address",
8061 |     "delegate-call-unchecked-address",
8062 |     "tautological-compare",
8063 |     "rtlo",
8064 |     "dangerous-unary-operator",
8065 |     "tautology-or-contradiction",
8066 |     "strict-equality-contract-balance",
8067 |     "signed-integer-storage-array",
8068 |     "redundant-statement",
8069 |     "state-variable-read-external",
8070 |     "weak-randomness",
8071 |     "pre-declared-local-variable-usage",
8072 |     "delete-nested-mapping",
8073 |     "unused-state-variable",
8074 |     "constant-function-contains-assembly",
8075 |     "boolean-equality",
8076 |     "tx-origin-used-for-auth",
8077 |     "msg-value-in-loop",
8078 |     "contract-locks-ether",
8079 |     "local-variable-shadowing",
8080 |     "incorrect-erc721-interface",
8081 |     "incorrect-erc20-interface",
8082 |     "uninitialized-local-variable",
8083 |     "return-bomb",
8084 |     "out-of-order-retryable",
8085 |     "function-initializing-state",
8086 |     "dead-code",
8087 |     "storage-array-length-not-cached",
8088 |     "assert-state-change",
8089 |     "costly-loop",
8090 |     "constant-function-changes-state",
8091 |     "builtin-symbol-shadowing",
8092 |     "void-constructor",
8093 |     "function-selector-collision",
8094 |     "missing-inheritance",
8095 |     "unused-import",
8096 |     "unchecked-low-level-call",
8097 |     "function-pointer-in-constructor",
8098 |     "state-variable-could-be-constant",
8099 |     "state-change-without-event",
8100 |     "state-variable-could-be-immutable",
8101 |     "multiple-placeholders",
8102 |     "reentrancy-state-change",
8103 |     "incorrect-use-of-modifier",
8104 |     "unchecked-return"
8105 |   ]
8106 | }
```
Page 102/103FirstPrevNextLast