#
tokens: 79716/50000 1/1140 files (page 93/94)
lines: off (toggle) GitHub
raw markdown copy
This is page 93 of 94. Use http://codebase.md/cyfrin/aderyn?lines=false&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
{
  "files_summary": {
    "total_source_units": 126,
    "total_sloc": 4727
  },
  "files_details": {
    "files_details": [
      {
        "file_path": "src/AbstractContract.sol",
        "n_sloc": 12
      },
      {
        "file_path": "src/AderynIgnoreCustomDetectors.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/AdminContract.sol",
        "n_sloc": 11
      },
      {
        "file_path": "src/ArbitraryTransferFrom.sol",
        "n_sloc": 37
      },
      {
        "file_path": "src/AssemblyExample.sol",
        "n_sloc": 9
      },
      {
        "file_path": "src/AssertStateChange.sol",
        "n_sloc": 11
      },
      {
        "file_path": "src/BooleanEquality.sol",
        "n_sloc": 27
      },
      {
        "file_path": "src/BuiltinSymbolShadow.sol",
        "n_sloc": 14
      },
      {
        "file_path": "src/CacheArrayLength.sol",
        "n_sloc": 38
      },
      {
        "file_path": "src/CallGraphTests.sol",
        "n_sloc": 49
      },
      {
        "file_path": "src/Casting.sol",
        "n_sloc": 146
      },
      {
        "file_path": "src/CompilerBugStorageSignedIntegerArray.sol",
        "n_sloc": 13
      },
      {
        "file_path": "src/ConstFuncChangeState.sol",
        "n_sloc": 15
      },
      {
        "file_path": "src/ConstantFuncsAssembly.sol",
        "n_sloc": 26
      },
      {
        "file_path": "src/ConstantsLiterals.sol",
        "n_sloc": 28
      },
      {
        "file_path": "src/ContractLocksEther.sol",
        "n_sloc": 142
      },
      {
        "file_path": "src/ContractWithTodo.sol",
        "n_sloc": 7
      },
      {
        "file_path": "src/CostlyOperationsInsideLoops.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/Counter.sol",
        "n_sloc": 20
      },
      {
        "file_path": "src/CrazyPragma.sol",
        "n_sloc": 4
      },
      {
        "file_path": "src/DangerousStrictEquality1.sol",
        "n_sloc": 6
      },
      {
        "file_path": "src/DangerousStrictEquality2.sol",
        "n_sloc": 9
      },
      {
        "file_path": "src/DangerousUnaryOperator.sol",
        "n_sloc": 13
      },
      {
        "file_path": "src/DeadCode.sol",
        "n_sloc": 23
      },
      {
        "file_path": "src/DelegateCallWithoutAddressCheck.sol",
        "n_sloc": 31
      },
      {
        "file_path": "src/DeletionNestedMappingStructureContract.sol",
        "n_sloc": 11
      },
      {
        "file_path": "src/DeprecatedOZFunctions.sol",
        "n_sloc": 32
      },
      {
        "file_path": "src/DivisionBeforeMultiplication.sol",
        "n_sloc": 22
      },
      {
        "file_path": "src/DynamicArrayLengthAssignment.sol",
        "n_sloc": 16
      },
      {
        "file_path": "src/EmitAfterExternalCall.sol",
        "n_sloc": 67
      },
      {
        "file_path": "src/EmptyBlocks.sol",
        "n_sloc": 48
      },
      {
        "file_path": "src/EnumerableSetIteration.sol",
        "n_sloc": 55
      },
      {
        "file_path": "src/ExperimentalEncoder.sol",
        "n_sloc": 4
      },
      {
        "file_path": "src/ExternalCalls.sol",
        "n_sloc": 60
      },
      {
        "file_path": "src/FunctionInitializingState.sol",
        "n_sloc": 49
      },
      {
        "file_path": "src/FunctionPointers.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/FunctionSignatureCollision.sol",
        "n_sloc": 9
      },
      {
        "file_path": "src/HugeConstants.sol",
        "n_sloc": 36
      },
      {
        "file_path": "src/IgnoreEverything.sol",
        "n_sloc": 5
      },
      {
        "file_path": "src/InconsistentUints.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/IncorrectCaretOperator.sol",
        "n_sloc": 16
      },
      {
        "file_path": "src/IncorrectERC20.sol",
        "n_sloc": 98
      },
      {
        "file_path": "src/IncorrectERC721.sol",
        "n_sloc": 238
      },
      {
        "file_path": "src/IncorrectModifier.sol",
        "n_sloc": 65
      },
      {
        "file_path": "src/IncorrectShift.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/InternalFunctions.sol",
        "n_sloc": 22
      },
      {
        "file_path": "src/KeccakContract.sol",
        "n_sloc": 21
      },
      {
        "file_path": "src/LocalVariableShadow.sol",
        "n_sloc": 23
      },
      {
        "file_path": "src/MissingInheritance.sol",
        "n_sloc": 39
      },
      {
        "file_path": "src/MisusedBoolean.sol",
        "n_sloc": 67
      },
      {
        "file_path": "src/MsgValueInLoop.sol",
        "n_sloc": 55
      },
      {
        "file_path": "src/MultipleConstructorSchemes.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/MultiplePlaceholders.sol",
        "n_sloc": 40
      },
      {
        "file_path": "src/OnceModifierExample.sol",
        "n_sloc": 8
      },
      {
        "file_path": "src/OnlyLibrary.sol",
        "n_sloc": 2
      },
      {
        "file_path": "src/OutOfOrderRetryable.sol",
        "n_sloc": 165
      },
      {
        "file_path": "src/PragmaRange.sol",
        "n_sloc": 6
      },
      {
        "file_path": "src/PreDeclaredVarUsage.sol",
        "n_sloc": 9
      },
      {
        "file_path": "src/PublicFunction.sol",
        "n_sloc": 15
      },
      {
        "file_path": "src/PublicVariableReadInExternalContext.sol",
        "n_sloc": 32
      },
      {
        "file_path": "src/RTLO.sol",
        "n_sloc": 7
      },
      {
        "file_path": "src/RedundantStatements.sol",
        "n_sloc": 14
      },
      {
        "file_path": "src/ReturnBomb.sol",
        "n_sloc": 44
      },
      {
        "file_path": "src/RevertsAndRequriesInLoops.sol",
        "n_sloc": 27
      },
      {
        "file_path": "src/SendEtherNoChecks.sol",
        "n_sloc": 58
      },
      {
        "file_path": "src/SendEtherNoChecksLibImport.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/StateChangeAfterExternalCall.sol",
        "n_sloc": 54
      },
      {
        "file_path": "src/StateShadowing.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/StateVariableCouldBeDeclaredConstant.sol",
        "n_sloc": 27
      },
      {
        "file_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
        "n_sloc": 22
      },
      {
        "file_path": "src/StateVariables.sol",
        "n_sloc": 58
      },
      {
        "file_path": "src/StateVariablesChangesWithoutEvents.sol",
        "n_sloc": 80
      },
      {
        "file_path": "src/StateVariablesManipulation.sol",
        "n_sloc": 250
      },
      {
        "file_path": "src/StorageConditionals.sol",
        "n_sloc": 59
      },
      {
        "file_path": "src/StorageParameters.sol",
        "n_sloc": 16
      },
      {
        "file_path": "src/T11sTranferer.sol",
        "n_sloc": 8
      },
      {
        "file_path": "src/TautologicalCompare.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/TautologyOrContradiction.sol",
        "n_sloc": 11
      },
      {
        "file_path": "src/TestERC20.sol",
        "n_sloc": 62
      },
      {
        "file_path": "src/TransientKeyword.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/Trump.sol",
        "n_sloc": 281
      },
      {
        "file_path": "src/TxOriginUsedForAuth.sol",
        "n_sloc": 43
      },
      {
        "file_path": "src/U2.sol",
        "n_sloc": 3
      },
      {
        "file_path": "src/U3.sol",
        "n_sloc": 2
      },
      {
        "file_path": "src/U4.sol",
        "n_sloc": 3
      },
      {
        "file_path": "src/U5.sol",
        "n_sloc": 6
      },
      {
        "file_path": "src/UncheckedCalls.sol",
        "n_sloc": 24
      },
      {
        "file_path": "src/UncheckedReturn.sol",
        "n_sloc": 33
      },
      {
        "file_path": "src/UncheckedSend.sol",
        "n_sloc": 18
      },
      {
        "file_path": "src/UninitializedLocalVariables.sol",
        "n_sloc": 62
      },
      {
        "file_path": "src/UninitializedStateVariable.sol",
        "n_sloc": 29
      },
      {
        "file_path": "src/UnprotectedInitialize.sol",
        "n_sloc": 44
      },
      {
        "file_path": "src/UnsafeERC721Mint.sol",
        "n_sloc": 18
      },
      {
        "file_path": "src/UnusedError.sol",
        "n_sloc": 23
      },
      {
        "file_path": "src/UnusedImport.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/UnusedStateVariables.sol",
        "n_sloc": 12
      },
      {
        "file_path": "src/UsingSelfdestruct.sol",
        "n_sloc": 6
      },
      {
        "file_path": "src/VoidConstructor.sol",
        "n_sloc": 21
      },
      {
        "file_path": "src/WeakRandomness.sol",
        "n_sloc": 59
      },
      {
        "file_path": "src/WrongOrderOfLayout.sol",
        "n_sloc": 13
      },
      {
        "file_path": "src/YulReturn.sol",
        "n_sloc": 8
      },
      {
        "file_path": "src/ZeroAddressCheck.sol",
        "n_sloc": 41
      },
      {
        "file_path": "src/auditor_mode/ExternalCalls.sol",
        "n_sloc": 65
      },
      {
        "file_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
        "n_sloc": 45
      },
      {
        "file_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
        "n_sloc": 32
      },
      {
        "file_path": "src/cloc/EmptyContractFile.sol",
        "n_sloc": 0
      },
      {
        "file_path": "src/cloc/HeavilyCommentedContract.sol",
        "n_sloc": 21
      },
      {
        "file_path": "src/control_flow/SimpleProgram.sol",
        "n_sloc": 188
      },
      {
        "file_path": "src/eth2/DepositContract.sol",
        "n_sloc": 96
      },
      {
        "file_path": "src/inheritance/ExtendedInheritance.sol",
        "n_sloc": 18
      },
      {
        "file_path": "src/inheritance/IContractInheritance.sol",
        "n_sloc": 4
      },
      {
        "file_path": "src/inheritance/InheritanceBase.sol",
        "n_sloc": 12
      },
      {
        "file_path": "src/nested/1/Nested.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/nested/2/Nested.sol",
        "n_sloc": 7
      },
      {
        "file_path": "src/nested_mappings/LaterVersion.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/nested_mappings/NestedMappings.sol",
        "n_sloc": 10
      },
      {
        "file_path": "src/parent_chain/ParentChainContract.sol",
        "n_sloc": 29
      },
      {
        "file_path": "src/reused_contract_name/ContractA.sol",
        "n_sloc": 7
      },
      {
        "file_path": "src/reused_contract_name/ContractB.sol",
        "n_sloc": 7
      },
      {
        "file_path": "src/router/ExternalCalls.sol",
        "n_sloc": 30
      },
      {
        "file_path": "src/router/FallbackAndReceiveOverrides.sol",
        "n_sloc": 17
      },
      {
        "file_path": "src/router/InternalCalls.sol",
        "n_sloc": 135
      },
      {
        "file_path": "src/router/ModifierCalls.sol",
        "n_sloc": 33
      },
      {
        "file_path": "src/router/VarOverridesFunction.sol",
        "n_sloc": 20
      },
      {
        "file_path": "src/uniswap/UniswapV2Swapper.sol",
        "n_sloc": 50
      },
      {
        "file_path": "src/uniswap/UniswapV3Swapper.sol",
        "n_sloc": 150
      }
    ]
  },
  "issue_count": {
    "high": 39,
    "low": 48
  },
  "high_issues": {
    "issues": [
      {
        "title": "`abi.encodePacked()` Hash Collision",
        "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.",
        "detector_name": "abi-encode-packed-hash-collision",
        "instances": [
          {
            "contract_path": "src/KeccakContract.sol",
            "line_no": 18,
            "src": "587:16",
            "src_char": "587:16"
          },
          {
            "contract_path": "src/KeccakContract.sol",
            "line_no": 22,
            "src": "734:16",
            "src_char": "734:16"
          },
          {
            "contract_path": "src/KeccakContract.sol",
            "line_no": 26,
            "src": "887:16",
            "src_char": "887:16"
          }
        ]
      },
      {
        "title": "Arbitrary `from` Passed to `transferFrom`",
        "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.",
        "detector_name": "arbitrary-transfer-from",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 24,
            "src": "738:42",
            "src_char": "738:42"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 29,
            "src": "879:53",
            "src_char": "879:53"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 17,
            "src": "579:39",
            "src_char": "579:39"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 47,
            "src": "1598:35",
            "src_char": "1598:35"
          }
        ]
      },
      {
        "title": "Unprotected initializer",
        "description": "Consider protecting the initializer functions with modifiers.",
        "detector_name": "unprotected-initializer",
        "instances": [
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 37,
            "src": "916:33",
            "src_char": "916:33"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 70,
            "src": "1798:27",
            "src_char": "1798:27"
          }
        ]
      },
      {
        "title": "Unsafe Casting of integers",
        "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.",
        "detector_name": "unsafe-casting",
        "instances": [
          {
            "contract_path": "src/Casting.sol",
            "line_no": 42,
            "src": "1127:10",
            "src_char": "1127:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 43,
            "src": "1159:10",
            "src_char": "1159:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 44,
            "src": "1191:10",
            "src_char": "1191:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 45,
            "src": "1223:10",
            "src_char": "1223:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 46,
            "src": "1255:10",
            "src_char": "1255:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 47,
            "src": "1287:10",
            "src_char": "1287:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 48,
            "src": "1319:10",
            "src_char": "1319:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 49,
            "src": "1351:10",
            "src_char": "1351:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 50,
            "src": "1383:10",
            "src_char": "1383:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 51,
            "src": "1415:10",
            "src_char": "1415:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 52,
            "src": "1447:10",
            "src_char": "1447:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 53,
            "src": "1479:10",
            "src_char": "1479:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 54,
            "src": "1511:10",
            "src_char": "1511:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 55,
            "src": "1543:10",
            "src_char": "1543:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 56,
            "src": "1575:10",
            "src_char": "1575:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 57,
            "src": "1607:10",
            "src_char": "1607:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 58,
            "src": "1639:10",
            "src_char": "1639:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 59,
            "src": "1671:10",
            "src_char": "1671:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 60,
            "src": "1703:10",
            "src_char": "1703:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 61,
            "src": "1734:9",
            "src_char": "1734:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 62,
            "src": "1764:9",
            "src_char": "1764:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 63,
            "src": "1794:9",
            "src_char": "1794:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 64,
            "src": "1824:9",
            "src_char": "1824:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 65,
            "src": "1854:9",
            "src_char": "1854:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 66,
            "src": "1884:9",
            "src_char": "1884:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 67,
            "src": "1915:9",
            "src_char": "1915:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 68,
            "src": "1946:10",
            "src_char": "1946:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 69,
            "src": "1978:10",
            "src_char": "1978:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 70,
            "src": "2010:10",
            "src_char": "2010:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 71,
            "src": "2042:10",
            "src_char": "2042:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 72,
            "src": "2075:9",
            "src_char": "2075:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 80,
            "src": "2304:9",
            "src_char": "2304:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 81,
            "src": "2334:9",
            "src_char": "2334:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 82,
            "src": "2364:9",
            "src_char": "2364:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 83,
            "src": "2394:9",
            "src_char": "2394:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 84,
            "src": "2424:9",
            "src_char": "2424:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 85,
            "src": "2454:9",
            "src_char": "2454:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 86,
            "src": "2484:9",
            "src_char": "2484:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 87,
            "src": "2514:9",
            "src_char": "2514:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 88,
            "src": "2544:9",
            "src_char": "2544:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 89,
            "src": "2574:9",
            "src_char": "2574:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 90,
            "src": "2604:9",
            "src_char": "2604:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 91,
            "src": "2634:9",
            "src_char": "2634:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 92,
            "src": "2664:9",
            "src_char": "2664:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 93,
            "src": "2694:9",
            "src_char": "2694:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 94,
            "src": "2724:9",
            "src_char": "2724:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 95,
            "src": "2754:9",
            "src_char": "2754:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 96,
            "src": "2784:9",
            "src_char": "2784:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 97,
            "src": "2814:9",
            "src_char": "2814:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 98,
            "src": "2844:9",
            "src_char": "2844:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 99,
            "src": "2873:8",
            "src_char": "2873:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 100,
            "src": "2901:8",
            "src_char": "2901:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 101,
            "src": "2929:8",
            "src_char": "2929:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 102,
            "src": "2957:8",
            "src_char": "2957:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 103,
            "src": "2985:8",
            "src_char": "2985:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 104,
            "src": "3013:8",
            "src_char": "3013:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 105,
            "src": "3042:8",
            "src_char": "3042:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 106,
            "src": "3071:9",
            "src_char": "3071:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 107,
            "src": "3101:9",
            "src_char": "3101:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 108,
            "src": "3131:9",
            "src_char": "3131:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 109,
            "src": "3161:9",
            "src_char": "3161:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 110,
            "src": "3192:8",
            "src_char": "3192:8"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 118,
            "src": "3488:10",
            "src_char": "3488:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 119,
            "src": "3520:10",
            "src_char": "3520:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 120,
            "src": "3552:10",
            "src_char": "3552:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 121,
            "src": "3584:10",
            "src_char": "3584:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 122,
            "src": "3616:10",
            "src_char": "3616:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 123,
            "src": "3648:10",
            "src_char": "3648:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 124,
            "src": "3680:10",
            "src_char": "3680:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 125,
            "src": "3712:10",
            "src_char": "3712:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 126,
            "src": "3744:10",
            "src_char": "3744:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 127,
            "src": "3776:10",
            "src_char": "3776:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 128,
            "src": "3808:10",
            "src_char": "3808:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 129,
            "src": "3840:10",
            "src_char": "3840:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 130,
            "src": "3872:10",
            "src_char": "3872:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 131,
            "src": "3904:10",
            "src_char": "3904:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 132,
            "src": "3936:10",
            "src_char": "3936:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 133,
            "src": "3968:10",
            "src_char": "3968:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 134,
            "src": "4000:10",
            "src_char": "4000:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 135,
            "src": "4032:10",
            "src_char": "4032:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 136,
            "src": "4064:10",
            "src_char": "4064:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 137,
            "src": "4096:10",
            "src_char": "4096:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 138,
            "src": "4128:10",
            "src_char": "4128:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 139,
            "src": "4160:10",
            "src_char": "4160:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 140,
            "src": "4191:9",
            "src_char": "4191:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 141,
            "src": "4221:9",
            "src_char": "4221:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 142,
            "src": "4251:9",
            "src_char": "4251:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 143,
            "src": "4282:9",
            "src_char": "4282:9"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 144,
            "src": "4313:10",
            "src_char": "4313:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 145,
            "src": "4345:10",
            "src_char": "4345:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 146,
            "src": "4377:10",
            "src_char": "4377:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 147,
            "src": "4409:10",
            "src_char": "4409:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 148,
            "src": "4443:10",
            "src_char": "4443:10"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 155,
            "src": "4642:14",
            "src_char": "4642:14"
          }
        ]
      },
      {
        "title": "EnumerableSet.remove Corrupts Order",
        "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.",
        "detector_name": "enumerable-loop-removal",
        "instances": [
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 31,
            "src": "1105:17",
            "src_char": "1105:17"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 40,
            "src": "1350:17",
            "src_char": "1350:17"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 50,
            "src": "1586:17",
            "src_char": "1586:17"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 59,
            "src": "1865:17",
            "src_char": "1865:17"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 67,
            "src": "2083:14",
            "src_char": "2083:14"
          }
        ]
      },
      {
        "title": "Experimental ABI Encoder",
        "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.",
        "detector_name": "experimental-encoder",
        "instances": [
          {
            "contract_path": "src/ExperimentalEncoder.sol",
            "line_no": 2,
            "src": "23:33",
            "src_char": "23:33"
          }
        ]
      },
      {
        "title": "Incorrect Assembly Shift Parameter Order",
        "description": "Example: `shl(shifted, 4)` will shift the right constant `4` by `a` bits. The correct order is `shl(4, shifted)`.",
        "detector_name": "incorrect-shift-order",
        "instances": [
          {
            "contract_path": "src/IncorrectShift.sol",
            "line_no": 7,
            "src": "192:15",
            "src_char": "192:15"
          },
          {
            "contract_path": "src/IncorrectShift.sol",
            "line_no": 8,
            "src": "238:15",
            "src_char": "238:15"
          }
        ]
      },
      {
        "title": "Storage Array Edited with Memory",
        "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.",
        "detector_name": "storage-array-memory-edit",
        "instances": [
          {
            "contract_path": "src/StorageParameters.sol",
            "line_no": 11,
            "src": "241:10",
            "src_char": "241:10"
          }
        ]
      },
      {
        "title": "Contract Has Multiple Constructors",
        "description": "In some versions of Solidity, contracts compile with multiple constructors. The first constructor takes precedence. This can lead to unexpected behavior.",
        "detector_name": "multiple-constructors",
        "instances": [
          {
            "contract_path": "src/MultipleConstructorSchemes.sol",
            "line_no": 3,
            "src": "25:180",
            "src_char": "25:180"
          }
        ]
      },
      {
        "title": "Contract Name Reused in Different Files",
        "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.",
        "detector_name": "reused-contract-name",
        "instances": [
          {
            "contract_path": "src/EmitAfterExternalCall.sol",
            "line_no": 4,
            "src": "66:14",
            "src_char": "66:14"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 4,
            "src": "66:14",
            "src_char": "66:14"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 18,
            "src": "270:7",
            "src_char": "270:7"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 24,
            "src": "394:6",
            "src_char": "394:6"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 73,
            "src": "2166:7",
            "src_char": "2166:7"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 103,
            "src": "2952:18",
            "src_char": "2952:18"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 4,
            "src": "67:6",
            "src_char": "67:6"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 44,
            "src": "3759:6",
            "src_char": "2271:6"
          },
          {
            "contract_path": "src/nested/1/Nested.sol",
            "line_no": 7,
            "src": "214:6",
            "src_char": "214:6"
          },
          {
            "contract_path": "src/nested/2/Nested.sol",
            "line_no": 7,
            "src": "214:6",
            "src_char": "214:6"
          },
          {
            "contract_path": "src/reused_contract_name/ContractA.sol",
            "line_no": 4,
            "src": "70:10",
            "src_char": "70:10"
          },
          {
            "contract_path": "src/reused_contract_name/ContractB.sol",
            "line_no": 4,
            "src": "70:10",
            "src_char": "70:10"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 4,
            "src": "80:1",
            "src_char": "80:1"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 8,
            "src": "143:1",
            "src_char": "143:1"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 12,
            "src": "188:1",
            "src_char": "188:1"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 31,
            "src": "630:1",
            "src_char": "630:1"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 35,
            "src": "701:1",
            "src_char": "701:1"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 4,
            "src": "88:1",
            "src_char": "88:1"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 12,
            "src": "179:1",
            "src_char": "179:1"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 28,
            "src": "347:1",
            "src_char": "347:1"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 41,
            "src": "538:1",
            "src_char": "538:1"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 4,
            "src": "70:1",
            "src_char": "70:1"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 9,
            "src": "150:1",
            "src_char": "150:1"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 13,
            "src": "219:1",
            "src_char": "219:1"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 17,
            "src": "285:1",
            "src_char": "285:1"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 21,
            "src": "341:1",
            "src_char": "341:1"
          }
        ]
      },
      {
        "title": "Nested Structs in Mappings pre-0.5.0",
        "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.",
        "detector_name": "nested-struct-in-mapping",
        "instances": [
          {
            "contract_path": "src/nested_mappings/NestedMappings.sol",
            "line_no": 17,
            "src": "367:58",
            "src_char": "367:58"
          }
        ]
      },
      {
        "title": "`selfdestruct` is Deprecated",
        "description": "Remove the `selfdestruct` instruction from the code.",
        "detector_name": "selfdestruct",
        "instances": [
          {
            "contract_path": "src/UsingSelfdestruct.sol",
            "line_no": 7,
            "src": "146:12",
            "src_char": "146:12"
          }
        ]
      },
      {
        "title": "Direct assignment of array length",
        "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",
        "detector_name": "dynamic-array-length-assignment",
        "instances": [
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 13,
            "src": "295:14",
            "src_char": "295:14"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 14,
            "src": "325:18",
            "src_char": "325:18"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 15,
            "src": "359:33",
            "src_char": "359:33"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 16,
            "src": "408:15",
            "src_char": "408:15"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 17,
            "src": "439:14",
            "src_char": "439:14"
          }
        ]
      },
      {
        "title": "Incorrect use of caret operator",
        "description": "The caret operator is usually mistakenly thought of as an exponentiation operator but actually, it's a bitwise xor operator.",
        "detector_name": "incorrect-caret-operator",
        "instances": [
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 16,
            "src": "519:8",
            "src_char": "519:8"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 17,
            "src": "549:16",
            "src_char": "549:16"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 18,
            "src": "587:21",
            "src_char": "587:21"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 19,
            "src": "631:13",
            "src_char": "631:13"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 20,
            "src": "708:12",
            "src_char": "708:12"
          }
        ]
      },
      {
        "title": "Yul block contains `return`",
        "description": "This causes the transaction execution to halt, and nothing after that call will execute including code following the assembly block.",
        "detector_name": "yul-return",
        "instances": [
          {
            "contract_path": "src/YulReturn.sol",
            "line_no": 8,
            "src": "171:12",
            "src_char": "171:12"
          }
        ]
      },
      {
        "title": "Shadowed State Variable",
        "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.",
        "detector_name": "state-variable-shadowing",
        "instances": [
          {
            "contract_path": "src/StateShadowing.sol",
            "line_no": 15,
            "src": "239:13",
            "src_char": "239:13"
          }
        ]
      },
      {
        "title": "Unchecked `bool success` value for ETH send",
        "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.",
        "detector_name": "unchecked-send",
        "instances": [
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 24,
            "src": "815:22",
            "src_char": "815:22"
          }
        ]
      },
      {
        "title": "Misused boolean with logical operators",
        "description": "The patterns `if (… || true)` and `if (.. && false)` will always evaluate to true and false respectively.",
        "detector_name": "misused-boolean",
        "instances": [
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 12,
            "src": "257:19",
            "src_char": "257:19"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 19,
            "src": "419:20",
            "src_char": "419:20"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 26,
            "src": "582:20",
            "src_char": "582:20"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 33,
            "src": "745:19",
            "src_char": "745:19"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 40,
            "src": "908:51",
            "src_char": "908:51"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 47,
            "src": "1060:52",
            "src_char": "1060:52"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 54,
            "src": "1213:53",
            "src_char": "1213:53"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 61,
            "src": "1366:21",
            "src_char": "1366:21"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 68,
            "src": "1530:17",
            "src_char": "1530:17"
          },
          {
            "contract_path": "src/MisusedBoolean.sol",
            "line_no": 75,
            "src": "1691:18",
            "src_char": "1691:18"
          }
        ]
      },
      {
        "title": "ETH transferred without address checks",
        "description": "Consider introducing checks for `msg.sender` to ensure the recipient of the money is as intended.",
        "detector_name": "eth-send-unchecked-address",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 23,
            "src": "672:4",
            "src_char": "672:4"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 28,
            "src": "813:4",
            "src_char": "813:4"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 37,
            "src": "1112:5",
            "src_char": "1112:5"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 41,
            "src": "1235:5",
            "src_char": "1235:5"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 45,
            "src": "1369:5",
            "src_char": "1369:5"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 49,
            "src": "1506:5",
            "src_char": "1506:5"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 38,
            "src": "686:16",
            "src_char": "686:16"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 94,
            "src": "2981:11",
            "src_char": "2981:11"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 131,
            "src": "4205:11",
            "src_char": "4205:11"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 167,
            "src": "5373:11",
            "src_char": "5373:11"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 194,
            "src": "6342:11",
            "src_char": "6342:11"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 16,
            "src": "488:16",
            "src_char": "488:16"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 26,
            "src": "821:11",
            "src_char": "821:11"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 67,
            "src": "1218:4",
            "src_char": "1218:4"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 167,
            "src": "4685:13",
            "src_char": "4685:13"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 175,
            "src": "5072:7",
            "src_char": "5072:7"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 53,
            "src": "1060:5",
            "src_char": "1060:5"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 77,
            "src": "1405:5",
            "src_char": "1405:5"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 99,
            "src": "1795:5",
            "src_char": "1795:5"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 321,
            "src": "10940:10",
            "src_char": "10940:10"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 6,
            "src": "99:110",
            "src_char": "99:110"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 22,
            "src": "572:359",
            "src_char": "572:359"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 6,
            "src": "85:246",
            "src_char": "85:246"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 12,
            "src": "337:190",
            "src_char": "337:190"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 17,
            "src": "533:184",
            "src_char": "533:184"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 22,
            "src": "723:186",
            "src_char": "723:186"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 17,
            "src": "563:8",
            "src_char": "563:8"
          }
        ]
      },
      {
        "title": "`delegatecall` to an Arbitrary Address",
        "description": "Making a `delegatecall` to an arbitrary address without any checks is dangerous. Consider adding requirements on the target address.",
        "detector_name": "delegate-call-unchecked-address",
        "instances": [
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 15,
            "src": "392:9",
            "src_char": "392:9"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 14,
            "src": "323:118",
            "src_char": "323:118"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 22,
            "src": "572:359",
            "src_char": "572:359"
          },
          {
            "contract_path": "src/auditor_mode/ExternalCalls.sol",
            "line_no": 38,
            "src": "1253:28",
            "src_char": "1253:28"
          },
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 14,
            "src": "391:15",
            "src_char": "391:15"
          }
        ]
      },
      {
        "title": "Tautological comparison",
        "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.",
        "detector_name": "tautological-compare",
        "instances": [
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 18,
            "src": "528:6",
            "src_char": "528:6"
          },
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 23,
            "src": "634:5",
            "src_char": "634:5"
          },
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 28,
            "src": "739:5",
            "src_char": "739:5"
          }
        ]
      },
      {
        "title": "RTLO character detected in file: \\u{202e}",
        "description": "The right to left override character may be misleading and cause potential attacks by visually misordering method arguments.",
        "detector_name": "rtlo",
        "instances": [
          {
            "contract_path": "src/RTLO.sol",
            "line_no": 3,
            "src": "33:157",
            "src_char": "33:155"
          }
        ]
      },
      {
        "title": "Dangerous unary operator",
        "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.",
        "detector_name": "dangerous-unary-operator",
        "instances": [
          {
            "contract_path": "src/DangerousUnaryOperator.sol",
            "line_no": 12,
            "src": "220:10",
            "src_char": "220:10"
          },
          {
            "contract_path": "src/DangerousUnaryOperator.sol",
            "line_no": 13,
            "src": "247:10",
            "src_char": "247:10"
          }
        ]
      },
      {
        "title": "Tautology or Contradiction in comparison",
        "description": "The condition has been determined to be either always true or always false due to the integer range in which we're operating.",
        "detector_name": "tautology-or-contradiction",
        "instances": [
          {
            "contract_path": "src/EmitAfterExternalCall.sol",
            "line_no": 48,
            "src": "1168:5",
            "src_char": "1168:5"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 13,
            "src": "296:7",
            "src_char": "296:7"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 16,
            "src": "369:11",
            "src_char": "369:11"
          }
        ]
      },
      {
        "title": "Dangerous strict equality checks on contract balances",
        "description": "A contract's balance can be forcibly manipulated by another selfdestructing contract. Therefore, it's recommended to use >, <, >= or <= instead of strict equality.",
        "detector_name": "strict-equality-contract-balance",
        "instances": [
          {
            "contract_path": "src/DangerousStrictEquality1.sol",
            "line_no": 6,
            "src": "177:25",
            "src_char": "177:25"
          },
          {
            "contract_path": "src/DangerousStrictEquality2.sol",
            "line_no": 6,
            "src": "177:34",
            "src_char": "177:34"
          },
          {
            "contract_path": "src/DangerousStrictEquality2.sol",
            "line_no": 10,
            "src": "305:43",
            "src_char": "305:43"
          }
        ]
      },
      {
        "title": "Signed integer array in storage (solc `<0.5.10`)",
        "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.",
        "detector_name": "signed-integer-storage-array",
        "instances": [
          {
            "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
            "line_no": 9,
            "src": "230:10",
            "src_char": "230:10"
          }
        ]
      },
      {
        "title": "Weak Randomness",
        "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.",
        "detector_name": "weak-randomness",
        "instances": [
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 6,
            "src": "188:70",
            "src_char": "188:70"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 11,
            "src": "386:41",
            "src_char": "386:41"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 16,
            "src": "597:20",
            "src_char": "597:20"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 21,
            "src": "793:20",
            "src_char": "793:20"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 25,
            "src": "915:20",
            "src_char": "915:20"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 31,
            "src": "1095:5",
            "src_char": "1095:5"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 35,
            "src": "1217:37",
            "src_char": "1217:37"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 41,
            "src": "1434:9",
            "src_char": "1434:9"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 45,
            "src": "1563:16",
            "src_char": "1563:16"
          }
        ]
      },
      {
        "title": "Usage of variable before declaration",
        "description": "Declare the variable before using it to avoid unintended consequences.",
        "detector_name": "pre-declared-local-variable-usage",
        "instances": [
          {
            "contract_path": "src/PreDeclaredVarUsage.sol",
            "line_no": 8,
            "src": "196:1",
            "src_char": "196:1"
          }
        ]
      },
      {
        "title": "Deletion from a nested mapping",
        "description": "A deletion in a structure containing a mapping will not delete the mapping. The remaining data may be used to compromise the contract.",
        "detector_name": "delete-nested-mapping",
        "instances": [
          {
            "contract_path": "src/DeletionNestedMappingStructureContract.sol",
            "line_no": 17,
            "src": "426:25",
            "src_char": "426:25"
          }
        ]
      },
      {
        "title": "Use of `tx.origin` for authentication",
        "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.",
        "detector_name": "tx-origin-used-for-auth",
        "instances": [
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 40,
            "src": "1117:183",
            "src_char": "1117:183"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 51,
            "src": "1431:90",
            "src_char": "1431:90"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 59,
            "src": "1610:68",
            "src_char": "1610:68"
          }
        ]
      },
      {
        "title": "Loop contains `msg.value`",
        "description": "Provide an explicit array of amounts alongside the receivers array, and check that the sum of all amounts matches `msg.value`.",
        "detector_name": "msg-value-in-loop",
        "instances": [
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 12,
            "src": "289:107",
            "src_char": "289:107"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 38,
            "src": "988:94",
            "src_char": "988:94"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 54,
            "src": "1415:93",
            "src_char": "1415:93"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 71,
            "src": "1844:97",
            "src_char": "1844:97"
          }
        ]
      },
      {
        "title": "Contract locks Ether without a withdraw function",
        "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.",
        "detector_name": "contract-locks-ether",
        "instances": [
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 5,
            "src": "73:10",
            "src_char": "73:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 31,
            "src": "822:11",
            "src_char": "822:11"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 20,
            "src": "344:39",
            "src_char": "344:39"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 44,
            "src": "630:11",
            "src_char": "630:11"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 8,
            "src": "139:8",
            "src_char": "139:8"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 7,
            "src": "103:15",
            "src_char": "103:15"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 19,
            "src": "423:19",
            "src_char": "423:19"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 33,
            "src": "831:15",
            "src_char": "831:15"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 48,
            "src": "1233:15",
            "src_char": "1233:15"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 65,
            "src": "1659:15",
            "src_char": "1659:15"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 38,
            "src": "1028:2",
            "src_char": "1028:2"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 58,
            "src": "4547:15",
            "src_char": "3059:15"
          },
          {
            "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
            "line_no": 4,
            "src": "70:1",
            "src_char": "70:1"
          },
          {
            "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
            "line_no": 10,
            "src": "172:1",
            "src_char": "172:1"
          },
          {
            "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
            "line_no": 14,
            "src": "237:1",
            "src_char": "237:1"
          }
        ]
      },
      {
        "title": "Incorrect ERC721 interface",
        "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.",
        "detector_name": "incorrect-erc721-interface",
        "instances": [
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 14,
            "src": "433:9",
            "src_char": "433:9"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 18,
            "src": "551:7",
            "src_char": "551:7"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 22,
            "src": "696:7",
            "src_char": "696:7"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 37,
            "src": "1092:11",
            "src_char": "1092:11"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 41,
            "src": "1231:17",
            "src_char": "1231:17"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 49,
            "src": "1484:16",
            "src_char": "1484:16"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 56,
            "src": "1684:12",
            "src_char": "1684:12"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 71,
            "src": "2086:16",
            "src_char": "2086:16"
          }
        ]
      },
      {
        "title": "Incorrect ERC20 interface",
        "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.",
        "detector_name": "incorrect-erc20-interface",
        "instances": [
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 17,
            "src": "483:8",
            "src_char": "483:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 23,
            "src": "690:7",
            "src_char": "690:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 27,
            "src": "808:12",
            "src_char": "808:12"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 35,
            "src": "1146:9",
            "src_char": "1146:9"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 39,
            "src": "1249:9",
            "src_char": "1249:9"
          }
        ]
      },
      {
        "title": "Out of Order Retryable Transaction",
        "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.",
        "detector_name": "out-of-order-retryable",
        "instances": [
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 63,
            "src": "1649:11",
            "src_char": "1649:11"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 90,
            "src": "2557:22",
            "src_char": "2557:22"
          }
        ]
      },
      {
        "title": "Constant functions changes state",
        "description": "Function is declared constant/view but it changes state. Ensure that the attributes of contract compiled prior to 0.5 are correct.",
        "detector_name": "constant-function-changes-state",
        "instances": [
          {
            "contract_path": "src/ConstFuncChangeState.sol",
            "line_no": 8,
            "src": "173:112",
            "src_char": "173:112"
          }
        ]
      },
      {
        "title": "Function Selector Collision",
        "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.",
        "detector_name": "function-selector-collision",
        "instances": [
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 7,
            "src": "166:8",
            "src_char": "166:8",
            "hint": "collides with the following function name(s) in scope: OwnerTransferV7b711143"
          },
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 13,
            "src": "231:22",
            "src_char": "231:22",
            "hint": "collides with the following function name(s) in scope: withdraw"
          }
        ]
      },
      {
        "title": "Unchecked Low level calls",
        "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.",
        "detector_name": "unchecked-low-level-call",
        "instances": [
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 16,
            "src": "452:21",
            "src_char": "452:21"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 20,
            "src": "583:26",
            "src_char": "583:26"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 36,
            "src": "1071:21",
            "src_char": "1071:21"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 42,
            "src": "1287:21",
            "src_char": "1287:21"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 7,
            "src": "172:30",
            "src_char": "172:30"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 11,
            "src": "293:17",
            "src_char": "293:17"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 15,
            "src": "409:25",
            "src_char": "409:25"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 19,
            "src": "536:23",
            "src_char": "536:23"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 23,
            "src": "651:27",
            "src_char": "651:27"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 25,
            "src": "689:66",
            "src_char": "689:66"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 27,
            "src": "766:86",
            "src_char": "766:86"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 29,
            "src": "863:61",
            "src_char": "863:61"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 34,
            "src": "1028:19",
            "src_char": "1028:19"
          },
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 16,
            "src": "488:71",
            "src_char": "488:71"
          }
        ]
      },
      {
        "title": "Reentrancy: State change after external call",
        "description": "Changing state after an external call can lead to re-entrancy attacks.Use the checks-effects-interactions pattern to avoid this issue.",
        "detector_name": "reentrancy-state-change",
        "instances": [
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 24,
            "src": "588:15",
            "src_char": "588:15",
            "hint": "State is changed at: `s_useMe += 1`"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 33,
            "src": "735:15",
            "src_char": "735:15",
            "hint": "State is changed at: `s_useMe -= 1`"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 52,
            "src": "1272:15",
            "src_char": "1272:15",
            "hint": "State is changed at: `s_useMe += 4`"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 82,
            "src": "1814:15",
            "src_char": "1814:15",
            "hint": "State is changed at: `s_useMe += 1`"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 342,
            "src": "11731:110",
            "src_char": "11731:110",
            "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 343,
            "src": "11851:129",
            "src_char": "11851:129",
            "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 344,
            "src": "11990:71",
            "src_char": "11990:71",
            "hint": "State is changed at: `swapEnabled = true`, `tradingOpen = true`, `firstBlock = block.number`"
          }
        ]
      }
    ]
  },
  "low_issues": {
    "issues": [
      {
        "title": "`delegatecall` in loop",
        "description": "Using `delegatecall` in loop may consume excessive gas, or worse, lead to more severe issues.",
        "detector_name": "delegatecall-in-loop",
        "instances": [
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 15,
            "src": "474:96",
            "src_char": "474:96"
          }
        ]
      },
      {
        "title": "Centralization Risk",
        "description": "Contracts have owners with privileged rights to perform admin tasks and need to be trusted to not perform malicious updates or drain funds.",
        "detector_name": "centralization-risk",
        "instances": [
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 7,
            "src": "270:7",
            "src_char": "270:7"
          },
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 10,
            "src": "376:9",
            "src_char": "376:9"
          },
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 14,
            "src": "505:9",
            "src_char": "505:9"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 7,
            "src": "295:13",
            "src_char": "295:13"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 6,
            "src": "188:7",
            "src_char": "188:7"
          },
          {
            "contract_path": "src/InternalFunctions.sol",
            "line_no": 12,
            "src": "250:9",
            "src_char": "250:9"
          },
          {
            "contract_path": "src/SendEtherNoChecksLibImport.sol",
            "line_no": 7,
            "src": "276:7",
            "src_char": "276:7"
          },
          {
            "contract_path": "src/SendEtherNoChecksLibImport.sol",
            "line_no": 7,
            "src": "285:13",
            "src_char": "285:13"
          },
          {
            "contract_path": "src/SendEtherNoChecksLibImport.sol",
            "line_no": 16,
            "src": "516:9",
            "src_char": "516:9"
          },
          {
            "contract_path": "src/SendEtherNoChecksLibImport.sol",
            "line_no": 20,
            "src": "614:28",
            "src_char": "614:28"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 81,
            "src": "1794:9",
            "src_char": "1794:9"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 87,
            "src": "1911:9",
            "src_char": "1911:9"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 92,
            "src": "2714:9",
            "src_char": "2714:9"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 123,
            "src": "3592:7",
            "src_char": "3592:7"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 299,
            "src": "10185:9",
            "src_char": "10185:9"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 338,
            "src": "11494:11",
            "src_char": "11494:11"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 9,
            "src": "322:7",
            "src_char": "322:7"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 11,
            "src": "396:9",
            "src_char": "396:9"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 35,
            "src": "975:13",
            "src_char": "975:13"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 38,
            "src": "1108:14",
            "src_char": "1108:14"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 7,
            "src": "282:7",
            "src_char": "282:7"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 28,
            "src": "725:9",
            "src_char": "725:9"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 32,
            "src": "854:9",
            "src_char": "854:9"
          }
        ]
      },
      {
        "title": "Solmate's SafeTransferLib",
        "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",
        "detector_name": "solmate-safe-transfer-lib",
        "instances": [
          {
            "contract_path": "src/T11sTranferer.sol",
            "line_no": 4,
            "src": "57:84",
            "src_char": "57:84"
          }
        ]
      },
      {
        "title": "`ecrecover` Signature Malleability",
        "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.",
        "detector_name": "ecrecover",
        "instances": [
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 22,
            "src": "737:9",
            "src_char": "737:9"
          }
        ]
      },
      {
        "title": "Deprecated OpenZeppelin Function",
        "description": "Openzeppelin has deprecated several functions and replaced with newer versions. Please consult https://docs.openzeppelin.com/",
        "detector_name": "deprecated-oz-function",
        "instances": [
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 22,
            "src": "737:10",
            "src_char": "737:10"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 27,
            "src": "898:17",
            "src_char": "898:17"
          }
        ]
      },
      {
        "title": "Unsafe ERC20 Operation",
        "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.",
        "detector_name": "unsafe-erc20-operation",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 19,
            "src": "601:20",
            "src_char": "601:20"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 34,
            "src": "1046:20",
            "src_char": "1046:20"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 54,
            "src": "1699:20",
            "src_char": "1699:20"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 162,
            "src": "5185:18",
            "src_char": "5185:18"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 32,
            "src": "1062:13",
            "src_char": "1062:13"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 37,
            "src": "1272:13",
            "src_char": "1272:13"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 38,
            "src": "1322:13",
            "src_char": "1322:13"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 42,
            "src": "1424:13",
            "src_char": "1424:13"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 47,
            "src": "1598:18",
            "src_char": "1598:18"
          },
          {
            "contract_path": "src/IncorrectModifier.sol",
            "line_no": 83,
            "src": "2103:23",
            "src_char": "2103:23"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 171,
            "src": "4927:28",
            "src_char": "4927:28"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 180,
            "src": "5328:28",
            "src_char": "5328:28"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 67,
            "src": "1255:19",
            "src_char": "1255:19"
          },
          {
            "contract_path": "src/StateShadowing.sol",
            "line_no": 22,
            "src": "368:19",
            "src_char": "368:19"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 309,
            "src": "10512:19",
            "src_char": "10512:19"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 310,
            "src": "10557:20",
            "src_char": "10557:20"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 318,
            "src": "10869:29",
            "src_char": "10869:29"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 324,
            "src": "11111:28",
            "src_char": "11111:28"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 344,
            "src": "11990:29",
            "src_char": "11990:29"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 18,
            "src": "599:29",
            "src_char": "599:29"
          }
        ]
      },
      {
        "title": "Unspecific Solidity Pragma",
        "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;`",
        "detector_name": "unspecific-solidity-pragma",
        "instances": [
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ConstFuncChangeState.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 2,
            "src": "39:24",
            "src_char": "39:24"
          },
          {
            "contract_path": "src/CrazyPragma.sol",
            "line_no": 2,
            "src": "32:32",
            "src_char": "32:32"
          },
          {
            "contract_path": "src/DangerousStrictEquality1.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/DangerousUnaryOperator.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 2,
            "src": "32:21",
            "src_char": "32:21"
          },
          {
            "contract_path": "src/DeletionNestedMappingStructureContract.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 1,
            "src": "0:24",
            "src_char": "0:24"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/PragmaRange.sol",
            "line_no": 2,
            "src": "32:31",
            "src_char": "32:31"
          },
          {
            "contract_path": "src/PreDeclaredVarUsage.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/UncheckedCalls.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/UsingSelfdestruct.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/VoidConstructor.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 6,
            "src": "46:24",
            "src_char": "46:24"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 6,
            "src": "46:32",
            "src_char": "46:32"
          },
          {
            "contract_path": "src/inheritance/IContractInheritance.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/inheritance/InheritanceBase.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/nested_mappings/LaterVersion.sol",
            "line_no": 2,
            "src": "36:23",
            "src_char": "36:23"
          },
          {
            "contract_path": "src/nested_mappings/NestedMappings.sol",
            "line_no": 2,
            "src": "36:24",
            "src_char": "36:24"
          }
        ]
      },
      {
        "title": "Address State Variable Set Without Checks",
        "description": "Check for `address(0)` when assigning values to address state variables.",
        "detector_name": "state-no-address-check",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 12,
            "src": "267:15",
            "src_char": "267:15"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 20,
            "src": "347:16",
            "src_char": "347:16"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 28,
            "src": "459:6",
            "src_char": "459:6"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 54,
            "src": "1416:14",
            "src_char": "1416:14"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 55,
            "src": "1440:24",
            "src_char": "1440:24"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 58,
            "src": "2121:14",
            "src_char": "2121:14"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 56,
            "src": "1657:17",
            "src_char": "1657:17"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 43,
            "src": "1171:14",
            "src_char": "1171:14"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 47,
            "src": "1248:16",
            "src_char": "1248:16"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 51,
            "src": "1327:23",
            "src_char": "1327:23"
          },
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 18,
            "src": "579:22",
            "src_char": "579:22"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 11,
            "src": "365:17",
            "src_char": "365:17"
          }
        ]
      },
      {
        "title": "Public Function Not Used Internally",
        "description": "If a function is marked public but is not used internally, consider marking it as `external`.",
        "detector_name": "unused-public-function",
        "instances": [
          {
            "contract_path": "src/AderynIgnoreCustomDetectors.sol",
            "line_no": 7,
            "src": "174:2",
            "src_char": "174:2"
          },
          {
            "contract_path": "src/AderynIgnoreCustomDetectors.sol",
            "line_no": 26,
            "src": "583:2",
            "src_char": "583:2"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 32,
            "src": "954:5",
            "src_char": "954:5"
          },
          {
            "contract_path": "src/AssemblyExample.sol",
            "line_no": 6,
            "src": "113:1",
            "src_char": "113:1"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 8,
            "src": "131:3",
            "src_char": "131:3"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 12,
            "src": "199:4",
            "src_char": "199:4"
          },
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 8,
            "src": "125:41",
            "src_char": "125:41"
          },
          {
            "contract_path": "src/ConstFuncChangeState.sol",
            "line_no": 8,
            "src": "173:112",
            "src_char": "173:112"
          },
          {
            "contract_path": "src/ConstFuncChangeState.sol",
            "line_no": 14,
            "src": "339:108",
            "src_char": "339:108"
          },
          {
            "contract_path": "src/ConstFuncChangeState.sol",
            "line_no": 20,
            "src": "517:89",
            "src_char": "517:89"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 20,
            "src": "539:10",
            "src_char": "539:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 49,
            "src": "1379:10",
            "src_char": "1379:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 81,
            "src": "2414:10",
            "src_char": "2414:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 118,
            "src": "3653:10",
            "src_char": "3653:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 155,
            "src": "4877:10",
            "src_char": "4877:10"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 181,
            "src": "5775:10",
            "src_char": "5775:10"
          },
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 13,
            "src": "337:15",
            "src_char": "337:15"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 7,
            "src": "129:9",
            "src_char": "129:9"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 11,
            "src": "194:7",
            "src_char": "194:7"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 19,
            "src": "309:9",
            "src_char": "309:9"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 17,
            "src": "483:8",
            "src_char": "483:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 23,
            "src": "690:7",
            "src_char": "690:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 27,
            "src": "808:12",
            "src_char": "808:12"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 35,
            "src": "1146:9",
            "src_char": "1146:9"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 39,
            "src": "1249:9",
            "src_char": "1249:9"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 10,
            "src": "181:17",
            "src_char": "181:17"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 16,
            "src": "332:26",
            "src_char": "332:26"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 31,
            "src": "700:18",
            "src_char": "700:18"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 167,
            "src": "4685:13",
            "src_char": "4685:13"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 175,
            "src": "5072:7",
            "src_char": "5072:7"
          },
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 16,
            "src": "358:4",
            "src_char": "358:4"
          },
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 32,
            "src": "839:4",
            "src_char": "839:4"
          },
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 47,
            "src": "1273:4",
            "src_char": "1273:4"
          },
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 63,
            "src": "1646:4",
            "src_char": "1646:4"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 47,
            "src": "1764:18",
            "src_char": "1764:18"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 52,
            "src": "1915:20",
            "src_char": "1915:20"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 57,
            "src": "2072:14",
            "src_char": "2072:14"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 61,
            "src": "2157:22",
            "src_char": "2157:22"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 71,
            "src": "2539:25",
            "src_char": "2539:25"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 180,
            "src": "5624:4",
            "src_char": "5624:4"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 184,
            "src": "5711:6",
            "src_char": "5711:6"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 188,
            "src": "5802:8",
            "src_char": "5802:8"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 7,
            "src": "121:19",
            "src_char": "121:19"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 23,
            "src": "727:20",
            "src_char": "727:20"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 41,
            "src": "1527:17",
            "src_char": "1527:17"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 17,
            "src": "563:8",
            "src_char": "563:8"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 16,
            "src": "475:27",
            "src_char": "475:27"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 22,
            "src": "653:28",
            "src_char": "653:28"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 45,
            "src": "1324:26",
            "src_char": "1324:26"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 53,
            "src": "1637:27",
            "src_char": "1637:27"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 71,
            "src": "2014:20",
            "src_char": "2014:20"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 77,
            "src": "2183:28",
            "src_char": "2183:28"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 31,
            "src": "500:3",
            "src_char": "500:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 38,
            "src": "637:5",
            "src_char": "637:5"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 42,
            "src": "738:4",
            "src_char": "735:4"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 31,
            "src": "509:3",
            "src_char": "509:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 38,
            "src": "646:4",
            "src_char": "646:4"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 11,
            "src": "355:9",
            "src_char": "355:9"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 15,
            "src": "422:9",
            "src_char": "422:9"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 23,
            "src": "384:4",
            "src_char": "384:4"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 40,
            "src": "776:4",
            "src_char": "776:4"
          },
          {
            "contract_path": "src/router/FallbackAndReceiveOverrides.sol",
            "line_no": 22,
            "src": "405:4",
            "src_char": "405:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 31,
            "src": "510:4",
            "src_char": "510:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 46,
            "src": "817:5",
            "src_char": "817:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 96,
            "src": "1780:4",
            "src_char": "1780:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 120,
            "src": "2306:4",
            "src_char": "2306:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 161,
            "src": "3047:4",
            "src_char": "3047:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 169,
            "src": "3165:4",
            "src_char": "3165:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 177,
            "src": "3290:4",
            "src_char": "3290:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 183,
            "src": "3379:4",
            "src_char": "3379:4"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 22,
            "src": "304:4",
            "src_char": "304:4"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 35,
            "src": "447:4",
            "src_char": "447:4"
          }
        ]
      },
      {
        "title": "Literal Instead of Constant",
        "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.",
        "detector_name": "literal-instead-of-constant",
        "instances": [
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 9,
            "src": "174:2",
            "src_char": "174:2"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 14,
            "src": "254:2",
            "src_char": "254:2"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 6,
            "src": "170:3",
            "src_char": "170:3"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 13,
            "src": "330:3",
            "src_char": "330:3"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 15,
            "src": "360:3",
            "src_char": "360:3"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 20,
            "src": "492:3",
            "src_char": "492:3"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 27,
            "src": "653:3",
            "src_char": "653:3"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 29,
            "src": "683:3",
            "src_char": "683:3"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 26,
            "src": "611:3",
            "src_char": "611:3"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 27,
            "src": "639:3",
            "src_char": "639:3"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 36,
            "src": "1015:3",
            "src_char": "1015:3"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 37,
            "src": "1043:3",
            "src_char": "1043:3"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 20,
            "src": "511:18",
            "src_char": "511:18"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 26,
            "src": "674:18",
            "src_char": "674:18"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 38,
            "src": "983:18",
            "src_char": "983:18"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 76,
            "src": "2165:18",
            "src_char": "2165:18"
          },
          {
            "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
            "line_no": 9,
            "src": "235:1",
            "src_char": "235:1"
          },
          {
            "contract_path": "src/CompilerBugStorageSignedIntegerArray.sol",
            "line_no": 14,
            "src": "352:1",
            "src_char": "352:1"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 25,
            "src": "958:3",
            "src_char": "958:3"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 26,
            "src": "992:3",
            "src_char": "992:3"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 27,
            "src": "1032:4",
            "src_char": "1032:4"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 28,
            "src": "1068:4",
            "src_char": "1068:4"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 29,
            "src": "1117:42",
            "src_char": "1117:42"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 30,
            "src": "1192:42",
            "src_char": "1192:42"
          },
          {
            "contract_path": "src/ConstantsLiterals.sol",
            "line_no": 31,
            "src": "1275:66",
            "src_char": "1275:66"
          },
          {
            "contract_path": "src/DangerousStrictEquality2.sol",
            "line_no": 6,
            "src": "202:9",
            "src_char": "202:9"
          },
          {
            "contract_path": "src/DangerousStrictEquality2.sol",
            "line_no": 10,
            "src": "339:9",
            "src_char": "339:9"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 24,
            "src": "718:1",
            "src_char": "718:1"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 24,
            "src": "771:1",
            "src_char": "771:1"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 26,
            "src": "838:1",
            "src_char": "838:1"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 13,
            "src": "312:3",
            "src_char": "312:3"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 14,
            "src": "346:3",
            "src_char": "346:3"
          },
          {
            "contract_path": "src/DynamicArrayLengthAssignment.sol",
            "line_no": 17,
            "src": "457:3",
            "src_char": "457:3"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 23,
            "src": "792:2",
            "src_char": "792:2"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 26,
            "src": "822:2",
            "src_char": "822:2"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 34,
            "src": "1111:2",
            "src_char": "1111:2"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 37,
            "src": "1141:2",
            "src_char": "1141:2"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 42,
            "src": "1270:4",
            "src_char": "1270:4"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 42,
            "src": "1277:4",
            "src_char": "1277:4"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 48,
            "src": "1461:4",
            "src_char": "1461:4"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 48,
            "src": "1468:4",
            "src_char": "1468:4"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 17,
            "src": "563:2",
            "src_char": "563:2"
          },
          {
            "contract_path": "src/IncorrectCaretOperator.sol",
            "line_no": 18,
            "src": "606:2",
            "src_char": "606:2"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 22,
            "src": "423:3",
            "src_char": "423:3"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 33,
            "src": "619:3",
            "src_char": "619:3"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 45,
            "src": "825:3",
            "src_char": "825:3"
          },
          {
            "contract_path": "src/PreDeclaredVarUsage.sol",
            "line_no": 8,
            "src": "200:3",
            "src_char": "200:3"
          },
          {
            "contract_path": "src/PreDeclaredVarUsage.sol",
            "line_no": 9,
            "src": "222:3",
            "src_char": "222:3"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 10,
            "src": "253:2",
            "src_char": "253:2"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 17,
            "src": "442:2",
            "src_char": "442:2"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 26,
            "src": "706:2",
            "src_char": "706:2"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 27,
            "src": "745:2",
            "src_char": "745:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 121,
            "src": "3471:2",
            "src_char": "3471:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 123,
            "src": "3542:2",
            "src_char": "3542:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 192,
            "src": "5408:3",
            "src_char": "5408:3"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 202,
            "src": "5621:3",
            "src_char": "5621:3"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 233,
            "src": "6372:1",
            "src_char": "6372:1"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 237,
            "src": "6468:2",
            "src_char": "6468:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 239,
            "src": "6543:2",
            "src_char": "6543:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 244,
            "src": "6704:2",
            "src_char": "6704:2"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 258,
            "src": "7236:1",
            "src_char": "7236:1"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 264,
            "src": "7497:1",
            "src_char": "7497:1"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 333,
            "src": "9506:3",
            "src_char": "9506:3"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 339,
            "src": "9671:3",
            "src_char": "9671:3"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 233,
            "src": "7704:3",
            "src_char": "7704:3"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 250,
            "src": "8497:3",
            "src_char": "8497:3"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 306,
            "src": "10426:3",
            "src_char": "10426:3"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 307,
            "src": "10498:3",
            "src_char": "10498:3"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 27,
            "src": "607:7",
            "src_char": "607:7"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 32,
            "src": "805:7",
            "src_char": "805:7"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 37,
            "src": "995:7",
            "src_char": "995:7"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 42,
            "src": "1190:7",
            "src_char": "1190:7"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 34,
            "src": "1264:42",
            "src_char": "1264:42"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 63,
            "src": "2278:42",
            "src_char": "2278:42"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 67,
            "src": "2459:2",
            "src_char": "2459:2"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 70,
            "src": "2607:2",
            "src_char": "2607:2"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 25,
            "src": "933:2",
            "src_char": "933:2"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 35,
            "src": "1252:2",
            "src_char": "1252:2"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 41,
            "src": "1441:2",
            "src_char": "1441:2"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 113,
            "src": "7252:2",
            "src_char": "5764:2"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 113,
            "src": "7293:2",
            "src_char": "5805:2"
          }
        ]
      },
      {
        "title": "Empty `require()` / `revert()` Statement",
        "description": "Use descriptive reason strings or custom errors for revert paths.",
        "detector_name": "empty-require-revert",
        "instances": [
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 7,
            "src": "128:7",
            "src_char": "128:7"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 28,
            "src": "531:6",
            "src_char": "531:6"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 50,
            "src": "936:6",
            "src_char": "936:6"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 65,
            "src": "1246:7",
            "src_char": "1246:7"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 31,
            "src": "948:7",
            "src_char": "948:7"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 37,
            "src": "1264:7",
            "src_char": "1264:7"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 40,
            "src": "1389:6",
            "src_char": "1389:6"
          },
          {
            "contract_path": "src/EmitAfterExternalCall.sol",
            "line_no": 18,
            "src": "424:7",
            "src_char": "424:7"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 72,
            "src": "1381:6",
            "src_char": "1381:6"
          },
          {
            "contract_path": "src/IncorrectModifier.sol",
            "line_no": 49,
            "src": "1334:6",
            "src_char": "1334:6"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 12,
            "src": "251:7",
            "src_char": "251:7"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 19,
            "src": "434:7",
            "src_char": "434:7"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 33,
            "src": "770:7",
            "src_char": "770:7"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 23,
            "src": "442:6",
            "src_char": "442:6"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 34,
            "src": "638:6",
            "src_char": "638:6"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 46,
            "src": "844:6",
            "src_char": "844:6"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 19,
            "src": "503:6",
            "src_char": "503:6"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 12,
            "src": "268:6",
            "src_char": "268:6"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 27,
            "src": "513:7",
            "src_char": "513:7"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 43,
            "src": "920:6",
            "src_char": "920:6"
          },
          {
            "contract_path": "src/SendEtherNoChecksLibImport.sol",
            "line_no": 12,
            "src": "451:6",
            "src_char": "451:6"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 17,
            "src": "428:7",
            "src_char": "428:7"
          },
          {
            "contract_path": "src/StateShadowing.sol",
            "line_no": 8,
            "src": "135:7",
            "src_char": "135:7"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 240,
            "src": "8065:7",
            "src_char": "8065:7"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 13,
            "src": "329:6",
            "src_char": "329:6"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 23,
            "src": "608:6",
            "src_char": "608:6"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 38,
            "src": "1074:6",
            "src_char": "1074:6"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 35,
            "src": "589:7",
            "src_char": "589:7"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 56,
            "src": "1403:7",
            "src_char": "1400:7"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 35,
            "src": "598:7",
            "src_char": "598:7"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 53,
            "src": "1408:7",
            "src_char": "1408:7"
          }
        ]
      },
      {
        "title": "`nonReentrant` is Not the First Modifier",
        "description": "To protect against reentrancy in other modifiers, the `nonReentrant` modifier should be the first modifier in the list of modifiers.",
        "detector_name": "non-reentrant-not-first",
        "instances": [
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 10,
            "src": "386:12",
            "src_char": "386:12"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 28,
            "src": "735:12",
            "src_char": "735:12"
          }
        ]
      },
      {
        "title": "Using `block.timestamp` for swap deadline offers no protection",
        "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.",
        "detector_name": "block-timestamp-deadline",
        "instances": [
          {
            "contract_path": "src/Trump.sol",
            "line_no": 290,
            "src": "9949:190",
            "src_char": "9949:190"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 23,
            "src": "670:83",
            "src_char": "670:83"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 24,
            "src": "763:83",
            "src_char": "763:83"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 25,
            "src": "856:70",
            "src_char": "856:70"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 26,
            "src": "936:80",
            "src_char": "936:80"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 27,
            "src": "1026:80",
            "src_char": "1026:80"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 31,
            "src": "1278:112",
            "src_char": "1278:112"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 32,
            "src": "1400:99",
            "src_char": "1400:99"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 33,
            "src": "1509:109",
            "src_char": "1509:109"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 52,
            "src": "1115:143",
            "src_char": "1115:143"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 55,
            "src": "1293:321",
            "src_char": "1293:321"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 66,
            "src": "1668:131",
            "src_char": "1668:131"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 69,
            "src": "1828:236",
            "src_char": "1828:236"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 77,
            "src": "2132:144",
            "src_char": "2132:144"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 80,
            "src": "2312:322",
            "src_char": "2312:322"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 91,
            "src": "2690:132",
            "src_char": "2690:132"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 94,
            "src": "2852:237",
            "src_char": "2852:237"
          }
        ]
      },
      {
        "title": "Unsafe `ERC721::_mint()`",
        "description": "Using `ERC721::_mint()` can mint ERC721 tokens to addresses which don't support ERC721 tokens. Use `_safeMint()` instead of `_mint()` for ERC721 tokens.",
        "detector_name": "unsafe-oz-erc721-mint",
        "instances": [
          {
            "contract_path": "src/UnsafeERC721Mint.sol",
            "line_no": 12,
            "src": "410:5",
            "src_char": "410:5"
          }
        ]
      },
      {
        "title": "PUSH0 Opcode",
        "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.",
        "detector_name": "push-zero-opcode",
        "instances": [
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 2,
            "src": "39:24",
            "src_char": "39:24"
          },
          {
            "contract_path": "src/CrazyPragma.sol",
            "line_no": 2,
            "src": "32:32",
            "src_char": "32:32"
          },
          {
            "contract_path": "src/DangerousStrictEquality2.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 2,
            "src": "32:21",
            "src_char": "32:21"
          },
          {
            "contract_path": "src/DeletionNestedMappingStructureContract.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 1,
            "src": "0:24",
            "src_char": "0:24"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/KeccakContract.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/OnlyLibrary.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/StorageConditionals.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/T11sTranferer.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 16,
            "src": "227:23",
            "src_char": "227:23"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/UnsafeERC721Mint.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/VoidConstructor.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/WeakRandomness.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 6,
            "src": "46:24",
            "src_char": "46:24"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 6,
            "src": "46:32",
            "src_char": "46:32"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 12,
            "src": "2302:23",
            "src_char": "814:23"
          },
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/inheritance/IContractInheritance.sol",
            "line_no": 2,
            "src": "32:24",
            "src_char": "32:24"
          },
          {
            "contract_path": "src/inheritance/InheritanceBase.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/nested/1/Nested.sol",
            "line_no": 5,
            "src": "180:23",
            "src_char": "180:23"
          },
          {
            "contract_path": "src/nested/2/Nested.sol",
            "line_no": 5,
            "src": "180:23",
            "src_char": "180:23"
          },
          {
            "contract_path": "src/nested_mappings/LaterVersion.sol",
            "line_no": 2,
            "src": "36:23",
            "src_char": "36:23"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          },
          {
            "contract_path": "src/uniswap/UniswapV3Swapper.sol",
            "line_no": 2,
            "src": "32:23",
            "src_char": "32:23"
          }
        ]
      },
      {
        "title": "Modifier Invoked Only Once",
        "description": "Consider removing the modifier or inlining the logic into the calling function.",
        "detector_name": "modifier-used-only-once",
        "instances": [
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 17,
            "src": "358:39",
            "src_char": "358:39"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 10,
            "src": "186:22",
            "src_char": "186:22"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 32,
            "src": "571:22",
            "src_char": "571:22"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 54,
            "src": "976:22",
            "src_char": "976:22"
          },
          {
            "contract_path": "src/DelegateCallWithoutAddressCheck.sol",
            "line_no": 23,
            "src": "678:9",
            "src_char": "678:9"
          },
          {
            "contract_path": "src/InternalFunctions.sol",
            "line_no": 18,
            "src": "413:9",
            "src_char": "413:9"
          },
          {
            "contract_path": "src/OnceModifierExample.sol",
            "line_no": 6,
            "src": "103:8",
            "src_char": "103:8"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 16,
            "src": "308:4",
            "src_char": "308:4"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 47,
            "src": "960:4",
            "src_char": "960:4"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 70,
            "src": "1301:4",
            "src_char": "1301:4"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 93,
            "src": "1704:4",
            "src_char": "1704:4"
          },
          {
            "contract_path": "src/StateShadowing.sol",
            "line_no": 7,
            "src": "107:74",
            "src_char": "107:74"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 162,
            "src": "5133:11",
            "src_char": "5133:11"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 15,
            "src": "320:21",
            "src_char": "320:21"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 5,
            "src": "105:6",
            "src_char": "105:6"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 31,
            "src": "395:6",
            "src_char": "395:6"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 42,
            "src": "555:6",
            "src_char": "555:6"
          }
        ]
      },
      {
        "title": "Empty Block",
        "description": "Consider removing empty blocks.",
        "detector_name": "empty-block",
        "instances": [
          {
            "contract_path": "src/AderynIgnoreCustomDetectors.sol",
            "line_no": 7,
            "src": "174:2",
            "src_char": "174:2"
          },
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 14,
            "src": "457:23",
            "src_char": "457:23"
          },
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 8,
            "src": "125:41",
            "src_char": "125:41"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 17,
            "src": "337:2",
            "src_char": "337:2"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 42,
            "src": "1104:2",
            "src_char": "1104:2"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 16,
            "src": "291:16",
            "src_char": "291:16"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 38,
            "src": "686:16",
            "src_char": "686:16"
          },
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 7,
            "src": "129:10",
            "src_char": "129:10"
          },
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 13,
            "src": "337:15",
            "src_char": "337:15"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 30,
            "src": "503:12",
            "src_char": "503:12"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 38,
            "src": "599:12",
            "src_char": "599:12"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 49,
            "src": "739:12",
            "src_char": "739:12"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 63,
            "src": "888:13",
            "src_char": "888:13"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 67,
            "src": "946:24",
            "src_char": "946:24"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 73,
            "src": "1068:30",
            "src_char": "1068:30"
          },
          {
            "contract_path": "src/EmptyBlocks.sol",
            "line_no": 81,
            "src": "1219:41",
            "src_char": "1219:41"
          },
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 7,
            "src": "166:8",
            "src_char": "166:8"
          },
          {
            "contract_path": "src/FunctionSignatureCollision.sol",
            "line_no": 13,
            "src": "231:22",
            "src_char": "231:22"
          },
          {
            "contract_path": "src/OnceModifierExample.sol",
            "line_no": 10,
            "src": "147:7",
            "src_char": "147:7"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 193,
            "src": "5775:13",
            "src_char": "5775:13"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 53,
            "src": "1060:5",
            "src_char": "1060:5"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 77,
            "src": "1405:5",
            "src_char": "1405:5"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 99,
            "src": "1795:5",
            "src_char": "1795:5"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 9,
            "src": "161:229",
            "src_char": "161:229"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 27,
            "src": "915:65",
            "src_char": "915:65"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 43,
            "src": "1071:38",
            "src_char": "1071:38"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 11,
            "src": "367:17",
            "src_char": "367:17"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 30,
            "src": "852:25",
            "src_char": "852:25"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 38,
            "src": "1080:16",
            "src_char": "1080:16"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 61,
            "src": "1840:17",
            "src_char": "1840:17"
          },
          {
            "contract_path": "src/auditor_mode/PublicFunctionsWithoutSenderCheck.sol",
            "line_no": 85,
            "src": "2380:25",
            "src_char": "2380:25"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 11,
            "src": "355:9",
            "src_char": "355:9"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 32,
            "src": "806:23",
            "src_char": "806:23"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 40,
            "src": "946:8",
            "src_char": "946:8"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 44,
            "src": "1011:23",
            "src_char": "1011:23"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 13,
            "src": "210:3",
            "src_char": "210:3"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 17,
            "src": "288:3",
            "src_char": "288:3"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 8,
            "src": "156:5",
            "src_char": "156:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 23,
            "src": "389:5",
            "src_char": "389:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 38,
            "src": "629:5",
            "src_char": "629:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 40,
            "src": "672:1",
            "src_char": "672:1"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 44,
            "src": "758:1",
            "src_char": "758:1"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 54,
            "src": "966:4",
            "src_char": "966:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 84,
            "src": "1544:4",
            "src_char": "1544:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 96,
            "src": "1780:4",
            "src_char": "1780:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 98,
            "src": "1820:4",
            "src_char": "1820:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 111,
            "src": "2140:4",
            "src_char": "2140:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 113,
            "src": "2182:4",
            "src_char": "2182:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 136,
            "src": "2623:4",
            "src_char": "2623:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 142,
            "src": "2696:1",
            "src_char": "2696:1"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 167,
            "src": "3123:4",
            "src_char": "3123:4"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 175,
            "src": "3244:4",
            "src_char": "3244:4"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 7,
            "src": "137:4",
            "src_char": "137:4"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 22,
            "src": "304:4",
            "src_char": "304:4"
          },
          {
            "contract_path": "src/router/ModifierCalls.sol",
            "line_no": 46,
            "src": "597:4",
            "src_char": "597:4"
          },
          {
            "contract_path": "src/router/VarOverridesFunction.sol",
            "line_no": 5,
            "src": "87:5",
            "src_char": "87:5"
          }
        ]
      },
      {
        "title": "Large Numeric Literal",
        "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.",
        "detector_name": "large-numeric-literal",
        "instances": [
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 6,
            "src": "182:24",
            "src_char": "182:24"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 7,
            "src": "252:23",
            "src_char": "252:23"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 8,
            "src": "321:22",
            "src_char": "321:22"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 9,
            "src": "389:21",
            "src_char": "389:21"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 10,
            "src": "456:20",
            "src_char": "456:20"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 11,
            "src": "522:19",
            "src_char": "522:19"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 12,
            "src": "587:18",
            "src_char": "587:18"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 13,
            "src": "651:17",
            "src_char": "651:17"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 14,
            "src": "714:16",
            "src_char": "714:16"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 15,
            "src": "777:15",
            "src_char": "777:15"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 16,
            "src": "839:14",
            "src_char": "839:14"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 17,
            "src": "900:13",
            "src_char": "900:13"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 18,
            "src": "960:12",
            "src_char": "960:12"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 19,
            "src": "1019:11",
            "src_char": "1019:11"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 20,
            "src": "1077:10",
            "src_char": "1077:10"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 21,
            "src": "1134:9",
            "src_char": "1134:9"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 22,
            "src": "1190:8",
            "src_char": "1190:8"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 23,
            "src": "1245:7",
            "src_char": "1245:7"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 24,
            "src": "1299:6",
            "src_char": "1299:6"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 25,
            "src": "1352:5",
            "src_char": "1352:5"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 31,
            "src": "1585:29",
            "src_char": "1585:29"
          },
          {
            "contract_path": "src/HugeConstants.sol",
            "line_no": 32,
            "src": "1673:6",
            "src_char": "1673:6"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 8,
            "src": "225:7",
            "src_char": "225:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 51,
            "src": "1550:7",
            "src_char": "1550:7"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 145,
            "src": "4412:8",
            "src_char": "4412:8"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 148,
            "src": "4579:6",
            "src_char": "4579:6"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 151,
            "src": "4756:6",
            "src_char": "4756:6"
          }
        ]
      },
      {
        "title": "Internal Function Used Only Once",
        "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.",
        "detector_name": "internal-function-used-once",
        "instances": [
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 6,
            "src": "89:17",
            "src_char": "89:17"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 25,
            "src": "398:17",
            "src_char": "398:17"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 47,
            "src": "803:17",
            "src_char": "803:17"
          },
          {
            "contract_path": "src/CallGraphTests.sol",
            "line_no": 64,
            "src": "1206:18",
            "src_char": "1206:18"
          },
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 26,
            "src": "651:232",
            "src_char": "651:232"
          },
          {
            "contract_path": "src/InternalFunctions.sol",
            "line_no": 28,
            "src": "693:12",
            "src_char": "693:12"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 43,
            "src": "1103:8",
            "src_char": "1103:8"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 60,
            "src": "1529:8",
            "src_char": "1529:8"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 77,
            "src": "1962:8",
            "src_char": "1962:8"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 9,
            "src": "132:20",
            "src_char": "132:20"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 26,
            "src": "481:5",
            "src_char": "481:5"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 40,
            "src": "784:20",
            "src_char": "784:20"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 66,
            "src": "1209:15",
            "src_char": "1209:15"
          },
          {
            "contract_path": "src/SendEtherNoChecks.sol",
            "line_no": 88,
            "src": "1551:11",
            "src_char": "1551:11"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
            "line_no": 26,
            "src": "706:14",
            "src_char": "706:14"
          },
          {
            "contract_path": "src/StorageParameters.sol",
            "line_no": 17,
            "src": "388:11",
            "src_char": "388:11"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 46,
            "src": "1403:3",
            "src_char": "1403:3"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 65,
            "src": "1976:3",
            "src_char": "1976:3"
          },
          {
            "contract_path": "src/UncheckedSend.sol",
            "line_no": 27,
            "src": "915:65",
            "src_char": "915:65"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 18,
            "src": "300:5",
            "src_char": "300:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 23,
            "src": "389:5",
            "src_char": "389:5"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 38,
            "src": "629:5",
            "src_char": "629:5"
          }
        ]
      },
      {
        "title": "Contract has TODO Comments",
        "description": "Contract contains comments with TODOS. Consider implementing or removing them.",
        "detector_name": "todo",
        "instances": [
          {
            "contract_path": "src/ContractWithTodo.sol",
            "line_no": 4,
            "src": "66:8",
            "src_char": "66:8"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 4,
            "src": "74:7",
            "src_char": "74:7"
          },
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 4,
            "src": "66:19",
            "src_char": "66:19"
          }
        ]
      },
      {
        "title": "Inconsistent uint256/uint (or) int256/int types",
        "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.",
        "detector_name": "inconsistent-type-names",
        "instances": [
          {
            "contract_path": "src/Casting.sol",
            "line_no": 38,
            "src": "966:14",
            "src_char": "966:14"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 76,
            "src": "2148:13",
            "src_char": "2148:13"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 5,
            "src": "122:12",
            "src_char": "122:12"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 7,
            "src": "197:11",
            "src_char": "197:11"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 11,
            "src": "289:10",
            "src_char": "289:10"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 12,
            "src": "340:9",
            "src_char": "340:9"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 15,
            "src": "383:9",
            "src_char": "383:9"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 16,
            "src": "434:10",
            "src_char": "434:10"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 19,
            "src": "528:12",
            "src_char": "528:12"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 115,
            "src": "2967:4",
            "src_char": "2967:4"
          },
          {
            "contract_path": "src/TautologicalCompare.sol",
            "line_no": 11,
            "src": "351:1",
            "src_char": "351:1"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 6,
            "src": "133:6",
            "src_char": "133:6"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 159,
            "src": "5000:12",
            "src_char": "5000:12"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 9,
            "src": "211:17",
            "src_char": "211:17"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 15,
            "src": "434:22",
            "src_char": "434:22"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 25,
            "src": "817:15",
            "src_char": "817:15"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 31,
            "src": "1109:20",
            "src_char": "1109:20"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 43,
            "src": "1639:11",
            "src_char": "1639:11"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 49,
            "src": "1826:16",
            "src_char": "1826:16"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 59,
            "src": "4611:27",
            "src_char": "3123:27"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 61,
            "src": "4732:17",
            "src_char": "3244:17"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 70,
            "src": "5020:6",
            "src_char": "3532:6"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 76,
            "src": "5307:4",
            "src_char": "3819:4"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 77,
            "src": "5347:6",
            "src_char": "3859:6"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 103,
            "src": "6636:14",
            "src_char": "5148:14"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 133,
            "src": "8101:4",
            "src_char": "6613:4"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 134,
            "src": "8141:6",
            "src_char": "6653:6"
          },
          {
            "contract_path": "src/nested_mappings/LaterVersion.sol",
            "line_no": 8,
            "src": "184:5",
            "src_char": "184:5"
          },
          {
            "contract_path": "src/nested_mappings/NestedMappings.sol",
            "line_no": 8,
            "src": "168:10",
            "src_char": "168:10"
          }
        ]
      },
      {
        "title": "Unused Error",
        "description": "Consider using or removing the unused error.",
        "detector_name": "unused-error",
        "instances": [
          {
            "contract_path": "src/UnusedError.sol",
            "line_no": 5,
            "src": "84:27",
            "src_char": "84:27"
          },
          {
            "contract_path": "src/UnusedError.sol",
            "line_no": 14,
            "src": "286:36",
            "src_char": "286:36"
          },
          {
            "contract_path": "src/WrongOrderOfLayout.sol",
            "line_no": 13,
            "src": "274:21",
            "src_char": "274:21"
          }
        ]
      },
      {
        "title": "Loop Contains `require`/`revert`",
        "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",
        "detector_name": "require-revert-in-loop",
        "instances": [
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 10,
            "src": "263:93",
            "src_char": "263:93"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 17,
            "src": "452:114",
            "src_char": "452:114"
          }
        ]
      },
      {
        "title": "Incorrect Order of Division and Multiplication",
        "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.",
        "detector_name": "division-before-multiplication",
        "instances": [
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 8,
            "src": "218:5",
            "src_char": "218:5"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 12,
            "src": "330:5",
            "src_char": "330:5"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 16,
            "src": "432:5",
            "src_char": "432:5"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 20,
            "src": "541:5",
            "src_char": "541:5"
          }
        ]
      },
      {
        "title": "Redundant Statement",
        "description": "Remove the redundant statement.",
        "detector_name": "redundant-statement",
        "instances": [
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 6,
            "src": "131:4",
            "src_char": "131:4"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 7,
            "src": "169:4",
            "src_char": "169:4"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 8,
            "src": "207:27",
            "src_char": "207:27"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 12,
            "src": "309:4",
            "src_char": "309:4"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 13,
            "src": "347:6",
            "src_char": "347:6"
          },
          {
            "contract_path": "src/RedundantStatements.sol",
            "line_no": 14,
            "src": "377:4",
            "src_char": "377:4"
          }
        ]
      },
      {
        "title": "State Variable is Read as External",
        "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.",
        "detector_name": "state-variable-read-external",
        "instances": [
          {
            "contract_path": "src/PublicVariableReadInExternalContext.sol",
            "line_no": 12,
            "src": "355:14",
            "src_char": "355:14"
          },
          {
            "contract_path": "src/PublicVariableReadInExternalContext.sol",
            "line_no": 16,
            "src": "457:16",
            "src_char": "457:16"
          },
          {
            "contract_path": "src/PublicVariableReadInExternalContext.sol",
            "line_no": 20,
            "src": "553:12",
            "src_char": "553:12"
          },
          {
            "contract_path": "src/PublicVariableReadInExternalContext.sol",
            "line_no": 42,
            "src": "1175:14",
            "src_char": "1175:14"
          }
        ]
      },
      {
        "title": "Unused State Variable",
        "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.",
        "detector_name": "unused-state-variable",
        "instances": [
          {
            "contract_path": "src/AssemblyExample.sol",
            "line_no": 5,
            "src": "97:1",
            "src_char": "97:1"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 16,
            "src": "434:10",
            "src_char": "434:10"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 7,
            "src": "129:5",
            "src_char": "129:5"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 8,
            "src": "199:19",
            "src_char": "199:19"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 9,
            "src": "241:20",
            "src_char": "241:20"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 13,
            "src": "383:27",
            "src_char": "383:27"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 14,
            "src": "437:28",
            "src_char": "437:28"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 28,
            "src": "1056:16",
            "src_char": "1056:16"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 29,
            "src": "1108:17",
            "src_char": "1108:17"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 6,
            "src": "133:6",
            "src_char": "133:6"
          },
          {
            "contract_path": "src/TautologyOrContradiction.sol",
            "line_no": 7,
            "src": "145:9",
            "src_char": "145:9"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 5,
            "src": "93:12",
            "src_char": "93:12"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 13,
            "src": "503:3",
            "src_char": "503:3"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 6,
            "src": "147:13",
            "src_char": "147:13"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 7,
            "src": "183:13",
            "src_char": "183:13"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 8,
            "src": "215:10",
            "src_char": "215:10"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 9,
            "src": "246:12",
            "src_char": "246:12"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 14,
            "src": "151:3",
            "src_char": "151:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 16,
            "src": "190:3",
            "src_char": "190:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 19,
            "src": "261:3",
            "src_char": "261:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 22,
            "src": "367:3",
            "src_char": "367:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 29,
            "src": "477:3",
            "src_char": "477:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 14,
            "src": "160:3",
            "src_char": "160:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 16,
            "src": "199:3",
            "src_char": "199:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 19,
            "src": "270:3",
            "src_char": "270:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 22,
            "src": "376:3",
            "src_char": "376:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 29,
            "src": "486:3",
            "src_char": "486:3"
          }
        ]
      },
      {
        "title": "Constant Function Contains Assembly",
        "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",
        "detector_name": "constant-function-contains-assembly",
        "instances": [
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 9,
            "src": "182:175",
            "src_char": "182:175"
          },
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 17,
            "src": "408:237",
            "src_char": "408:237"
          },
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 36,
            "src": "934:98",
            "src_char": "934:98"
          }
        ]
      },
      {
        "title": "Boolean equality is not required",
        "description": "If `x` is a boolean, use `if(x)` and `if(!x)` instead of `if(x == true)` or `if(x == false)`.",
        "detector_name": "boolean-equality",
        "instances": [
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 5,
            "src": "133:14",
            "src_char": "133:14"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 12,
            "src": "292:15",
            "src_char": "292:15"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 19,
            "src": "454:15",
            "src_char": "454:15"
          },
          {
            "contract_path": "src/BooleanEquality.sol",
            "line_no": 26,
            "src": "614:16",
            "src_char": "614:16"
          }
        ]
      },
      {
        "title": "Local Variable Shadows State Variable",
        "description": "Rename the local variable that shadows another state variable.",
        "detector_name": "local-variable-shadowing",
        "instances": [
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 10,
            "src": "359:6",
            "src_char": "359:6"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 41,
            "src": "1253:1",
            "src_char": "1253:1"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 46,
            "src": "1392:1",
            "src_char": "1392:1"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 10,
            "src": "207:5",
            "src_char": "207:5"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 17,
            "src": "391:5",
            "src_char": "391:5"
          },
          {
            "contract_path": "src/LocalVariableShadow.sol",
            "line_no": 31,
            "src": "727:4",
            "src_char": "727:4"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 144,
            "src": "4121:17",
            "src_char": "4121:17"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 147,
            "src": "4236:8",
            "src_char": "4236:8"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 148,
            "src": "4262:12",
            "src_char": "4262:12"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 28,
            "src": "708:6",
            "src_char": "708:6"
          }
        ]
      },
      {
        "title": "Uninitialized Local Variable",
        "description": "Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.",
        "detector_name": "uninitialized-local-variable",
        "instances": [
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 18,
            "src": "478:14",
            "src_char": "478:14"
          },
          {
            "contract_path": "src/ConstantFuncsAssembly.sol",
            "line_no": 27,
            "src": "716:14",
            "src_char": "716:14"
          },
          {
            "contract_path": "src/StorageParameters.sol",
            "line_no": 8,
            "src": "184:11",
            "src_char": "184:11"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 9,
            "src": "211:17",
            "src_char": "211:17"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 10,
            "src": "243:17",
            "src_char": "243:17"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 11,
            "src": "278:20",
            "src_char": "278:20"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 12,
            "src": "312:16",
            "src_char": "312:16"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 13,
            "src": "346:20",
            "src_char": "346:20"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 14,
            "src": "390:19",
            "src_char": "390:19"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 15,
            "src": "434:22",
            "src_char": "434:22"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 16,
            "src": "481:22",
            "src_char": "481:22"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 17,
            "src": "531:25",
            "src_char": "531:25"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 18,
            "src": "580:21",
            "src_char": "580:21"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 19,
            "src": "629:25",
            "src_char": "629:25"
          },
          {
            "contract_path": "src/UninitializedLocalVariables.sol",
            "line_no": 20,
            "src": "681:24",
            "src_char": "681:24"
          }
        ]
      },
      {
        "title": "Return Bomb",
        "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        ",
        "detector_name": "return-bomb",
        "instances": [
          {
            "contract_path": "src/ReturnBomb.sol",
            "line_no": 22,
            "src": "591:115",
            "src_char": "591:115"
          }
        ]
      },
      {
        "title": "Function Used to Initialize State Variable",
        "description": "Instead of using a function to initialize a state variable in its declaration; declare the state variable and initialize it in the constructor.",
        "detector_name": "function-initializing-state",
        "instances": [
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 6,
            "src": "122:1",
            "src_char": "122:1"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 8,
            "src": "213:1",
            "src_char": "213:1"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 9,
            "src": "281:1",
            "src_char": "281:1"
          }
        ]
      },
      {
        "title": "Dead Code",
        "description": "Functions that are not used. Consider removing them.",
        "detector_name": "dead-code",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 18,
            "src": "535:4",
            "src_char": "535:4"
          },
          {
            "contract_path": "src/ContractLocksEther.sol",
            "line_no": 54,
            "src": "1540:10",
            "src_char": "1540:10"
          },
          {
            "contract_path": "src/DeadCode.sol",
            "line_no": 16,
            "src": "362:22",
            "src_char": "362:22"
          },
          {
            "contract_path": "src/DeletionNestedMappingStructureContract.sol",
            "line_no": 14,
            "src": "258:6",
            "src_char": "258:6"
          },
          {
            "contract_path": "src/IncorrectShift.sol",
            "line_no": 5,
            "src": "100:8",
            "src_char": "100:8"
          },
          {
            "contract_path": "src/IncorrectShift.sol",
            "line_no": 13,
            "src": "292:9",
            "src_char": "292:9"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 12,
            "src": "186:19",
            "src_char": "186:19"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 20,
            "src": "362:21",
            "src_char": "362:21"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 25,
            "src": "492:19",
            "src_char": "492:19"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 30,
            "src": "644:21",
            "src_char": "644:21"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 35,
            "src": "842:26",
            "src_char": "842:26"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 40,
            "src": "1049:19",
            "src_char": "1049:19"
          }
        ]
      },
      {
        "title": "Storage Array Length not Cached",
        "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.",
        "detector_name": "storage-array-length-not-cached",
        "instances": [
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 12,
            "src": "234:82",
            "src_char": "234:82"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 44,
            "src": "1160:64",
            "src_char": "1160:64"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 50,
            "src": "1325:183",
            "src_char": "1325:183"
          }
        ]
      },
      {
        "title": "State change in `assert()` statement",
        "description": "An argument to `assert()` modifies the state. Use `require` for invariants modifying state.",
        "detector_name": "assert-state-change",
        "instances": [
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 9,
            "src": "154:23",
            "src_char": "154:23"
          }
        ]
      },
      {
        "title": "Costly operations inside loop",
        "description": "Invoking `SSTORE` operations in loops may waste gas. Use a local variable to hold the loop computation result.",
        "detector_name": "costly-loop",
        "instances": [
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 25,
            "src": "546:133",
            "src_char": "546:133"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 35,
            "src": "928:155",
            "src_char": "928:155"
          },
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 10,
            "src": "214:79",
            "src_char": "214:79"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 29,
            "src": "989:157",
            "src_char": "989:157"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 38,
            "src": "1253:155",
            "src_char": "1253:155"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 48,
            "src": "1517:159",
            "src_char": "1517:159"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 57,
            "src": "1749:157",
            "src_char": "1749:157"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 65,
            "src": "1976:142",
            "src_char": "1976:142"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 12,
            "src": "289:107",
            "src_char": "289:107"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 25,
            "src": "658:122",
            "src_char": "658:122"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 38,
            "src": "988:94",
            "src_char": "988:94"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 54,
            "src": "1415:93",
            "src_char": "1415:93"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 71,
            "src": "1844:97",
            "src_char": "1844:97"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 10,
            "src": "227:129",
            "src_char": "227:129"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 17,
            "src": "416:150",
            "src_char": "416:150"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 27,
            "src": "719:159",
            "src_char": "719:159"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 47,
            "src": "1144:154",
            "src_char": "1144:154"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 134,
            "src": "8131:283",
            "src_char": "6643:283"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 17,
            "src": "512:110",
            "src_char": "512:110"
          }
        ]
      },
      {
        "title": "Builtin Symbol Shadowing",
        "description": "Name clashes with a built-in-symbol. Consider renaming it.",
        "detector_name": "builtin-symbol-shadowing",
        "instances": [
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 5,
            "src": "92:8",
            "src_char": "92:8"
          },
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 8,
            "src": "125:41",
            "src_char": "125:41"
          },
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 17,
            "src": "358:39",
            "src_char": "358:39"
          },
          {
            "contract_path": "src/BuiltinSymbolShadow.sol",
            "line_no": 22,
            "src": "414:15",
            "src_char": "414:15"
          }
        ]
      },
      {
        "title": "Void constructor",
        "description": "Call to a constructor that is not implemented.",
        "detector_name": "void-constructor",
        "instances": [
          {
            "contract_path": "src/VoidConstructor.sol",
            "line_no": 16,
            "src": "372:17",
            "src_char": "372:17"
          }
        ]
      },
      {
        "title": "Missing Inheritance",
        "description": "There is an interface / abstract contract that is potentially missing (not included in) the inheritance of this contract.",
        "detector_name": "missing-inheritance",
        "instances": [
          {
            "contract_path": "src/MissingInheritance.sol",
            "line_no": 7,
            "src": "83:25",
            "src_char": "83:25",
            "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IMissingInheritanceCounter"
          },
          {
            "contract_path": "src/MissingInheritance.sol",
            "line_no": 41,
            "src": "754:16",
            "src_char": "754:16",
            "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IMissingChild, IMissingParent"
          },
          {
            "contract_path": "src/TestERC20.sol",
            "line_no": 4,
            "src": "70:9",
            "src_char": "70:9",
            "hint": "Is this contract supposed to implement an interface? Consider extending one of the following: IERC20"
          }
        ]
      },
      {
        "title": "Unused Import",
        "description": "Redundant import statement. Consider removing it.",
        "detector_name": "unused-import",
        "instances": [
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 4,
            "src": "57:38",
            "src_char": "57:38"
          },
          {
            "contract_path": "src/UnusedImport.sol",
            "line_no": 6,
            "src": "91:18",
            "src_char": "91:18"
          },
          {
            "contract_path": "src/UnusedImport.sol",
            "line_no": 9,
            "src": "144:28",
            "src_char": "144:28"
          }
        ]
      },
      {
        "title": "Function Pointer in Constructor",
        "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.",
        "detector_name": "function-pointer-in-constructor",
        "instances": [
          {
            "contract_path": "src/FunctionPointers.sol",
            "line_no": 13,
            "src": "330:50",
            "src_char": "330:50"
          }
        ]
      },
      {
        "title": "State Variable Could Be Constant",
        "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.",
        "detector_name": "state-variable-could-be-constant",
        "instances": [
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 6,
            "src": "128:10",
            "src_char": "128:10"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 7,
            "src": "190:1",
            "src_char": "190:1"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 58,
            "src": "1617:1",
            "src_char": "1617:1"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 5,
            "src": "101:4",
            "src_char": "101:4"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 6,
            "src": "144:6",
            "src_char": "144:6"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 7,
            "src": "177:8",
            "src_char": "177:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 8,
            "src": "211:11",
            "src_char": "211:11"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 48,
            "src": "1426:4",
            "src_char": "1426:4"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 49,
            "src": "1467:6",
            "src_char": "1467:6"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 50,
            "src": "1500:8",
            "src_char": "1500:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 51,
            "src": "1535:12",
            "src_char": "1535:12"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 5,
            "src": "102:4",
            "src_char": "102:4"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 6,
            "src": "143:6",
            "src_char": "143:6"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 145,
            "src": "4001:4",
            "src_char": "4001:4"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 146,
            "src": "4040:6",
            "src_char": "4040:6"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
            "line_no": 8,
            "src": "211:13",
            "src_char": "211:13"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
            "line_no": 13,
            "src": "385:1",
            "src_char": "385:1"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 13,
            "src": "383:27",
            "src_char": "383:27"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 14,
            "src": "437:28",
            "src_char": "437:28"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 15,
            "src": "490:26",
            "src_char": "490:26"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 40,
            "src": "1188:9",
            "src_char": "1188:9"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 41,
            "src": "1221:10",
            "src_char": "1221:10"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 72,
            "src": "2068:13",
            "src_char": "2068:13"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 130,
            "src": "3920:20",
            "src_char": "3920:20"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 131,
            "src": "3967:21",
            "src_char": "3967:21"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 135,
            "src": "4041:14",
            "src_char": "4041:14"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 136,
            "src": "4080:15",
            "src_char": "4080:15"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 137,
            "src": "4120:12",
            "src_char": "4120:12"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 138,
            "src": "4156:13",
            "src_char": "4156:13"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 139,
            "src": "4193:15",
            "src_char": "4193:15"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 140,
            "src": "4233:16",
            "src_char": "4233:16"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 141,
            "src": "4274:18",
            "src_char": "4274:18"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 150,
            "src": "4682:17",
            "src_char": "4682:17"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 151,
            "src": "4743:11",
            "src_char": "4743:11"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 8,
            "src": "198:11",
            "src_char": "198:11"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 14,
            "src": "151:3",
            "src_char": "151:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 16,
            "src": "190:3",
            "src_char": "190:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 19,
            "src": "261:3",
            "src_char": "261:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 22,
            "src": "367:3",
            "src_char": "367:3"
          },
          {
            "contract_path": "src/cloc/AnotherHeavilyCommentedContract.sol",
            "line_no": 29,
            "src": "477:3",
            "src_char": "477:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 14,
            "src": "160:3",
            "src_char": "160:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 16,
            "src": "199:3",
            "src_char": "199:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 19,
            "src": "270:3",
            "src_char": "270:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 22,
            "src": "376:3",
            "src_char": "376:3"
          },
          {
            "contract_path": "src/cloc/HeavilyCommentedContract.sol",
            "line_no": 29,
            "src": "486:3",
            "src_char": "486:3"
          }
        ]
      },
      {
        "title": "State Change Without Event",
        "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.",
        "detector_name": "state-change-without-event",
        "instances": [
          {
            "contract_path": "src/AdminContract.sol",
            "line_no": 14,
            "src": "457:23",
            "src_char": "457:23"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 8,
            "src": "131:3",
            "src_char": "131:3"
          },
          {
            "contract_path": "src/AssertStateChange.sol",
            "line_no": 12,
            "src": "199:4",
            "src_char": "199:4"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 23,
            "src": "506:2",
            "src_char": "506:2"
          },
          {
            "contract_path": "src/CacheArrayLength.sol",
            "line_no": 32,
            "src": "700:2",
            "src_char": "700:2"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 37,
            "src": "922:17",
            "src_char": "922:17"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 75,
            "src": "2106:16",
            "src_char": "2106:16"
          },
          {
            "contract_path": "src/Casting.sol",
            "line_no": 113,
            "src": "3222:20",
            "src_char": "3222:20"
          },
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 9,
            "src": "189:3",
            "src_char": "189:3"
          },
          {
            "contract_path": "src/CostlyOperationsInsideLoops.sol",
            "line_no": 15,
            "src": "314:4",
            "src_char": "314:4"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 7,
            "src": "129:9",
            "src_char": "129:9"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 11,
            "src": "215:9",
            "src_char": "215:9"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 16,
            "src": "286:13",
            "src_char": "286:13"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 21,
            "src": "367:19",
            "src_char": "367:19"
          },
          {
            "contract_path": "src/Counter.sol",
            "line_no": 28,
            "src": "495:22",
            "src_char": "495:22"
          },
          {
            "contract_path": "src/DeadCode.sol",
            "line_no": 11,
            "src": "189:8",
            "src_char": "189:8"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 7,
            "src": "135:14",
            "src_char": "135:14"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 11,
            "src": "254:18",
            "src_char": "254:18"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 15,
            "src": "367:11",
            "src_char": "367:11"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 19,
            "src": "465:19",
            "src_char": "465:19"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 23,
            "src": "577:16",
            "src_char": "577:16"
          },
          {
            "contract_path": "src/DivisionBeforeMultiplication.sol",
            "line_no": 27,
            "src": "690:20",
            "src_char": "690:20"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 28,
            "src": "939:28",
            "src_char": "939:28"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 36,
            "src": "1178:30",
            "src_char": "1178:30"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 46,
            "src": "1440:32",
            "src_char": "1440:32"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 56,
            "src": "1708:19",
            "src_char": "1708:19"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 64,
            "src": "1938:16",
            "src_char": "1938:16"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 11,
            "src": "194:7",
            "src_char": "194:7"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 19,
            "src": "309:9",
            "src_char": "309:9"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 78,
            "src": "1470:7",
            "src_char": "1470:7"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 82,
            "src": "1548:7",
            "src_char": "1548:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 17,
            "src": "483:8",
            "src_char": "483:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 23,
            "src": "690:7",
            "src_char": "690:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 27,
            "src": "808:12",
            "src_char": "808:12"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 68,
            "src": "2007:8",
            "src_char": "2007:8"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 83,
            "src": "2352:7",
            "src_char": "2352:7"
          },
          {
            "contract_path": "src/IncorrectERC20.sol",
            "line_no": 88,
            "src": "2507:12",
            "src_char": "2507:12"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 22,
            "src": "696:7",
            "src_char": "696:7"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 41,
            "src": "1231:17",
            "src_char": "1231:17"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 56,
            "src": "1684:12",
            "src_char": "1684:12"
          },
          {
            "contract_path": "src/IncorrectERC721.sol",
            "line_no": 86,
            "src": "2439:4",
            "src_char": "2439:4"
          },
          {
            "contract_path": "src/InternalFunctions.sol",
            "line_no": 12,
            "src": "213:8",
            "src_char": "213:8"
          },
          {
            "contract_path": "src/MissingInheritance.sol",
            "line_no": 10,
            "src": "151:9",
            "src_char": "151:9"
          },
          {
            "contract_path": "src/MissingInheritance.sol",
            "line_no": 25,
            "src": "451:9",
            "src_char": "451:9"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 10,
            "src": "177:3",
            "src_char": "177:3"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 22,
            "src": "501:4",
            "src_char": "501:4"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 36,
            "src": "905:3",
            "src_char": "905:3"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 51,
            "src": "1307:3",
            "src_char": "1307:3"
          },
          {
            "contract_path": "src/MsgValueInLoop.sol",
            "line_no": 68,
            "src": "1733:3",
            "src_char": "1733:3"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 175,
            "src": "5072:7",
            "src_char": "5072:7"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 9,
            "src": "188:17",
            "src_char": "188:17"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 16,
            "src": "377:17",
            "src_char": "377:17"
          },
          {
            "contract_path": "src/RevertsAndRequriesInLoops.sol",
            "line_no": 25,
            "src": "588:17",
            "src_char": "588:17"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 22,
            "src": "530:13",
            "src_char": "530:13"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 31,
            "src": "677:13",
            "src_char": "677:13"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 42,
            "src": "885:13",
            "src_char": "885:13"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 57,
            "src": "1331:14",
            "src_char": "1331:14"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 66,
            "src": "1480:14",
            "src_char": "1480:14"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 81,
            "src": "1769:13",
            "src_char": "1769:13"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 87,
            "src": "1885:14",
            "src_char": "1885:14"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
            "line_no": 39,
            "src": "996:8",
            "src_char": "996:8"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
            "line_no": 37,
            "src": "1455:21",
            "src_char": "1455:21"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 47,
            "src": "1764:18",
            "src_char": "1764:18"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 52,
            "src": "1915:20",
            "src_char": "1915:20"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 57,
            "src": "2072:14",
            "src_char": "2072:14"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 61,
            "src": "2157:22",
            "src_char": "2157:22"
          },
          {
            "contract_path": "src/StateVariables.sol",
            "line_no": 71,
            "src": "2539:25",
            "src_char": "2539:25"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 23,
            "src": "574:26",
            "src_char": "574:26"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 28,
            "src": "679:36",
            "src_char": "679:36"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 33,
            "src": "794:35",
            "src_char": "794:35"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 45,
            "src": "1047:36",
            "src_char": "1047:36"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 50,
            "src": "1157:26",
            "src_char": "1157:26"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 55,
            "src": "1266:24",
            "src_char": "1266:24"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 68,
            "src": "1621:33",
            "src_char": "1621:33"
          },
          {
            "contract_path": "src/StateVariablesChangesWithoutEvents.sol",
            "line_no": 81,
            "src": "2003:34",
            "src_char": "2003:34"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 48,
            "src": "1463:26",
            "src_char": "1463:26"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 80,
            "src": "2360:18",
            "src_char": "2360:18"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 85,
            "src": "2519:24",
            "src_char": "2519:24"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 120,
            "src": "3396:24",
            "src_char": "3396:24"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 126,
            "src": "3566:25",
            "src_char": "3566:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 139,
            "src": "3960:25",
            "src_char": "3960:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 160,
            "src": "4556:25",
            "src_char": "4556:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 176,
            "src": "5020:25",
            "src_char": "5020:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 182,
            "src": "5159:25",
            "src_char": "5159:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 281,
            "src": "7993:18",
            "src_char": "7993:18"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 286,
            "src": "8121:24",
            "src_char": "8121:24"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 314,
            "src": "8845:18",
            "src_char": "8845:18"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 321,
            "src": "9054:24",
            "src_char": "9054:24"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 332,
            "src": "9447:25",
            "src_char": "9447:25"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 337,
            "src": "9572:26",
            "src_char": "9572:26"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 353,
            "src": "9896:3",
            "src_char": "9896:3"
          },
          {
            "contract_path": "src/StorageParameters.sol",
            "line_no": 7,
            "src": "137:10",
            "src_char": "137:10"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 16,
            "src": "348:13",
            "src_char": "348:13"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 22,
            "src": "531:10",
            "src_char": "531:10"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 21,
            "src": "452:22",
            "src_char": "452:22"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 27,
            "src": "618:20",
            "src_char": "618:20"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 37,
            "src": "916:33",
            "src_char": "916:33"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 70,
            "src": "1798:27",
            "src_char": "1798:27"
          },
          {
            "contract_path": "src/UnusedError.sol",
            "line_no": 16,
            "src": "337:7",
            "src_char": "337:7"
          },
          {
            "contract_path": "src/UnusedStateVariables.sol",
            "line_no": 15,
            "src": "454:8",
            "src_char": "454:8"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 12,
            "src": "253:12",
            "src_char": "253:12"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 17,
            "src": "383:12",
            "src_char": "383:12"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 22,
            "src": "534:10",
            "src_char": "534:10"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 27,
            "src": "671:10",
            "src_char": "671:10"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 32,
            "src": "829:10",
            "src_char": "829:10"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 37,
            "src": "990:10",
            "src_char": "990:10"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 42,
            "src": "1130:4",
            "src_char": "1130:4"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 46,
            "src": "1207:4",
            "src_char": "1207:4"
          },
          {
            "contract_path": "src/ZeroAddressCheck.sol",
            "line_no": 50,
            "src": "1286:4",
            "src_char": "1286:4"
          },
          {
            "contract_path": "src/inheritance/ExtendedInheritance.sol",
            "line_no": 14,
            "src": "391:15",
            "src_char": "391:15"
          },
          {
            "contract_path": "src/nested/1/Nested.sol",
            "line_no": 10,
            "src": "265:17",
            "src_char": "265:17"
          },
          {
            "contract_path": "src/nested/2/Nested.sol",
            "line_no": 10,
            "src": "272:17",
            "src_char": "272:17"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 15,
            "src": "422:9",
            "src_char": "422:9"
          },
          {
            "contract_path": "src/parent_chain/ParentChainContract.sol",
            "line_no": 32,
            "src": "806:23",
            "src_char": "806:23"
          },
          {
            "contract_path": "src/router/InternalCalls.sol",
            "line_no": 120,
            "src": "2306:4",
            "src_char": "2306:4"
          }
        ]
      },
      {
        "title": "State Variable Could Be Immutable",
        "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",
        "detector_name": "state-variable-could-be-immutable",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 9,
            "src": "217:7",
            "src_char": "217:7"
          },
          {
            "contract_path": "src/EmitAfterExternalCall.sol",
            "line_no": 15,
            "src": "373:7",
            "src_char": "373:7"
          },
          {
            "contract_path": "src/ExternalCalls.sol",
            "line_no": 25,
            "src": "416:2",
            "src_char": "416:2"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 57,
            "src": "1598:1",
            "src_char": "1598:1"
          },
          {
            "contract_path": "src/FunctionInitializingState.sol",
            "line_no": 59,
            "src": "1640:1",
            "src_char": "1640:1"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 5,
            "src": "122:12",
            "src_char": "122:12"
          },
          {
            "contract_path": "src/InconsistentUints.sol",
            "line_no": 6,
            "src": "160:15",
            "src_char": "160:15"
          },
          {
            "contract_path": "src/InternalFunctions.sol",
            "line_no": 5,
            "src": "111:5",
            "src_char": "111:5"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 5,
            "src": "110:5",
            "src_char": "110:5"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 39,
            "src": "1052:5",
            "src_char": "1052:5"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 40,
            "src": "1078:10",
            "src_char": "1078:10"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 41,
            "src": "1109:17",
            "src_char": "1109:17"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 42,
            "src": "1147:8",
            "src_char": "1147:8"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 43,
            "src": "1176:12",
            "src_char": "1176:12"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 44,
            "src": "1209:3",
            "src_char": "1209:3"
          },
          {
            "contract_path": "src/StateChangeAfterExternalCall.sol",
            "line_no": 14,
            "src": "377:7",
            "src_char": "377:7"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
            "line_no": 11,
            "src": "281:13",
            "src_char": "281:13"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredConstant.sol",
            "line_no": 29,
            "src": "811:13",
            "src_char": "811:13"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
            "line_no": 6,
            "src": "162:24",
            "src_char": "162:24"
          },
          {
            "contract_path": "src/StateVariableCouldBeDeclaredImmutable.sol",
            "line_no": 9,
            "src": "245:24",
            "src_char": "245:24"
          },
          {
            "contract_path": "src/StorageConditionals.sol",
            "line_no": 5,
            "src": "108:18",
            "src_char": "108:18"
          },
          {
            "contract_path": "src/StorageConditionals.sol",
            "line_no": 6,
            "src": "148:23",
            "src_char": "148:23"
          },
          {
            "contract_path": "src/TestERC20.sol",
            "line_no": 7,
            "src": "144:4",
            "src_char": "144:4"
          },
          {
            "contract_path": "src/TestERC20.sol",
            "line_no": 8,
            "src": "168:6",
            "src_char": "168:6"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 128,
            "src": "3847:10",
            "src_char": "3847:10"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 129,
            "src": "3887:11",
            "src_char": "3887:11"
          },
          {
            "contract_path": "src/TxOriginUsedForAuth.sol",
            "line_no": 5,
            "src": "107:5",
            "src_char": "107:5"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 9,
            "src": "291:8",
            "src_char": "291:8"
          },
          {
            "contract_path": "src/UninitializedStateVariable.sol",
            "line_no": 37,
            "src": "1079:5",
            "src_char": "1079:5"
          },
          {
            "contract_path": "src/UnprotectedInitialize.sol",
            "line_no": 9,
            "src": "244:5",
            "src_char": "244:5"
          },
          {
            "contract_path": "src/auditor_mode/ExternalCalls.sol",
            "line_no": 9,
            "src": "205:6",
            "src_char": "205:6"
          },
          {
            "contract_path": "src/auditor_mode/ExternalCalls.sol",
            "line_no": 10,
            "src": "251:14",
            "src_char": "251:14"
          },
          {
            "contract_path": "src/eth2/DepositContract.sol",
            "line_no": 66,
            "src": "4907:11",
            "src_char": "3419:11"
          },
          {
            "contract_path": "src/reused_contract_name/ContractA.sol",
            "line_no": 5,
            "src": "99:1",
            "src_char": "99:1"
          },
          {
            "contract_path": "src/reused_contract_name/ContractB.sol",
            "line_no": 5,
            "src": "102:1",
            "src_char": "102:1"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 8,
            "src": "312:8",
            "src_char": "312:8"
          }
        ]
      },
      {
        "title": "Multiple Placeholders in Modifier",
        "description": "Design the modifier to only contain 1 placeholder statement. If that is not possible, split the logic into multiple modifiers.",
        "detector_name": "multiple-placeholders",
        "instances": [
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 12,
            "src": "197:10",
            "src_char": "197:10"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 19,
            "src": "329:5",
            "src_char": "329:5"
          },
          {
            "contract_path": "src/MultiplePlaceholders.sol",
            "line_no": 40,
            "src": "700:5",
            "src_char": "700:5"
          }
        ]
      },
      {
        "title": "Incorrect Use Of Modifier",
        "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.",
        "detector_name": "incorrect-use-of-modifier",
        "instances": [
          {
            "contract_path": "src/IncorrectModifier.sol",
            "line_no": 22,
            "src": "645:16",
            "src_char": "645:16"
          },
          {
            "contract_path": "src/IncorrectModifier.sol",
            "line_no": 30,
            "src": "763:18",
            "src_char": "763:18"
          }
        ]
      },
      {
        "title": "Unchecked Return",
        "description": "Function returns a value but it is ignored. Consider checking the return value.",
        "detector_name": "unchecked-return",
        "instances": [
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 19,
            "src": "601:38",
            "src_char": "601:38"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 34,
            "src": "1046:44",
            "src_char": "1046:44"
          },
          {
            "contract_path": "src/ArbitraryTransferFrom.sol",
            "line_no": 54,
            "src": "1699:44",
            "src_char": "1699:44"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 32,
            "src": "1062:29",
            "src_char": "1062:29"
          },
          {
            "contract_path": "src/DeprecatedOZFunctions.sol",
            "line_no": 47,
            "src": "1598:35",
            "src_char": "1598:35"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 17,
            "src": "662:27",
            "src_char": "662:27"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 20,
            "src": "770:28",
            "src_char": "770:28"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 23,
            "src": "875:21",
            "src_char": "875:21"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 31,
            "src": "1105:30",
            "src_char": "1105:30"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 40,
            "src": "1350:30",
            "src_char": "1350:30"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 50,
            "src": "1586:30",
            "src_char": "1586:30"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 59,
            "src": "1865:30",
            "src_char": "1865:30"
          },
          {
            "contract_path": "src/EnumerableSetIteration.sol",
            "line_no": 67,
            "src": "2083:24",
            "src_char": "2083:24"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 65,
            "src": "1705:390",
            "src_char": "1705:390"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 77,
            "src": "2129:379",
            "src_char": "2129:379"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 92,
            "src": "2624:390",
            "src_char": "2624:390"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 107,
            "src": "3107:379",
            "src_char": "3107:379"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 129,
            "src": "3777:208",
            "src_char": "3777:208"
          },
          {
            "contract_path": "src/OutOfOrderRetryable.sol",
            "line_no": 151,
            "src": "4337:261",
            "src_char": "4337:261"
          },
          {
            "contract_path": "src/StateVariablesManipulation.sol",
            "line_no": 142,
            "src": "4146:20",
            "src_char": "4146:20"
          },
          {
            "contract_path": "src/Trump.sol",
            "line_no": 344,
            "src": "11990:71",
            "src_char": "11990:71"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 14,
            "src": "279:5",
            "src_char": "279:5"
          },
          {
            "contract_path": "src/UncheckedReturn.sol",
            "line_no": 27,
            "src": "575:47",
            "src_char": "575:47"
          },
          {
            "contract_path": "src/router/ExternalCalls.sol",
            "line_no": 27,
            "src": "594:7",
            "src_char": "594:7"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 23,
            "src": "670:83",
            "src_char": "670:83"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 24,
            "src": "763:83",
            "src_char": "763:83"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 25,
            "src": "856:70",
            "src_char": "856:70"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 26,
            "src": "936:80",
            "src_char": "936:80"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 27,
            "src": "1026:80",
            "src_char": "1026:80"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 46,
            "src": "1933:76",
            "src_char": "1933:76"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 47,
            "src": "2019:76",
            "src_char": "2019:76"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 48,
            "src": "2105:63",
            "src_char": "2105:63"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 49,
            "src": "2178:73",
            "src_char": "2178:73"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 50,
            "src": "2261:73",
            "src_char": "2261:73"
          },
          {
            "contract_path": "src/uniswap/UniswapV2Swapper.sol",
            "line_no": 51,
            "src": "2344:60",
            "src_char": "2344:60"
          }
        ]
      }
    ]
  },
  "detectors_used": [
    "delegatecall-in-loop",
    "centralization-risk",
    "solmate-safe-transfer-lib",
    "abi-encode-packed-hash-collision",
    "ecrecover",
    "deprecated-oz-function",
    "unsafe-erc20-operation",
    "unspecific-solidity-pragma",
    "state-no-address-check",
    "unused-public-function",
    "literal-instead-of-constant",
    "empty-require-revert",
    "non-reentrant-not-first",
    "block-timestamp-deadline",
    "unsafe-oz-erc721-mint",
    "push-zero-opcode",
    "arbitrary-transfer-from",
    "modifier-used-only-once",
    "empty-block",
    "large-numeric-literal",
    "internal-function-used-once",
    "todo",
    "inconsistent-type-names",
    "unprotected-initializer",
    "unused-error",
    "require-revert-in-loop",
    "division-before-multiplication",
    "unsafe-casting",
    "enumerable-loop-removal",
    "experimental-encoder",
    "incorrect-shift-order",
    "storage-array-memory-edit",
    "multiple-constructors",
    "reused-contract-name",
    "nested-struct-in-mapping",
    "selfdestruct",
    "dynamic-array-length-assignment",
    "incorrect-caret-operator",
    "yul-return",
    "state-variable-shadowing",
    "unchecked-send",
    "misused-boolean",
    "eth-send-unchecked-address",
    "delegate-call-unchecked-address",
    "tautological-compare",
    "rtlo",
    "dangerous-unary-operator",
    "tautology-or-contradiction",
    "strict-equality-contract-balance",
    "signed-integer-storage-array",
    "redundant-statement",
    "state-variable-read-external",
    "weak-randomness",
    "pre-declared-local-variable-usage",
    "delete-nested-mapping",
    "unused-state-variable",
    "constant-function-contains-assembly",
    "boolean-equality",
    "tx-origin-used-for-auth",
    "msg-value-in-loop",
    "contract-locks-ether",
    "local-variable-shadowing",
    "incorrect-erc721-interface",
    "incorrect-erc20-interface",
    "uninitialized-local-variable",
    "return-bomb",
    "out-of-order-retryable",
    "function-initializing-state",
    "dead-code",
    "storage-array-length-not-cached",
    "assert-state-change",
    "costly-loop",
    "constant-function-changes-state",
    "builtin-symbol-shadowing",
    "void-constructor",
    "function-selector-collision",
    "missing-inheritance",
    "unused-import",
    "unchecked-low-level-call",
    "function-pointer-in-constructor",
    "state-variable-could-be-constant",
    "state-change-without-event",
    "state-variable-could-be-immutable",
    "multiple-placeholders",
    "reentrancy-state-change",
    "incorrect-use-of-modifier",
    "unchecked-return"
  ]
}
```
Page 93/94FirstPrevNextLast