This is page 3 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
--------------------------------------------------------------------------------
/benchmarks/inconsistent-type-names/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1391819.0,3386217.0,4477651.0,6524564.0,7318024.0,9048109.0,9425488.0,11788924.0,12828796.0,13837872.0,15116400.0,16509303.0,17964175.0,19454366.0,20834586.0,22690938.0,24731256.0,24470341.0,51938004.0,34618273.0,33539975.0,35307362.0,33854398.0,43262153.0,33239567.0,34581602.0,38079560.0,37190004.0,39196121.0,41439007.0,45214454.0,52692402.0,84566651.0,81819636.0,175764715.0,69021524.0,64483921.0,74659844.0,87088671.0,61066938.0,73088726.0,62188662.0,97479725.0,71287929.0,76791498.0,73379120.0,72118482.0,72526746.0,74200748.0,69667915.0,70815119.0,73712764.0,129778210.0,104212871.0,92037879.0,89621704.0,94037949.0,98800282.0,93295515.0,99444742.0,96661099.0,207670202.0,119110134.0,124353249.0,133843290.0,98900375.0,99755899.0,104107496.0,115668505.0,121691129.0,133149960.0,126631987.0,118332600.0,113460003.0,118194027.0,116893945.0,117890680.0,120412950.0,121675553.0,142772487.0,125229628.0,129010023.0,123035780.0,142395818.0,152111201.0,127373286.0,130579969.0,129336934.0,145881032.0,142304156.0,170626431.0,176995000.0,136790746.0,129906996.0,140958540.0,164265694.0,170057358.0,144300927.0,139602643.0,140552634.0]}
```
--------------------------------------------------------------------------------
/aderyn_driver/src/interface/json.rs:
--------------------------------------------------------------------------------
```rust
use std::io::{Result, Write};
use aderyn_core::{context::workspace::WorkspaceContext, report::*};
use serde::Serialize;
use super::util::files_details;
#[derive(Serialize)]
pub struct JsonContent {
files_summary: FilesSummary,
files_details: FilesDetails,
issue_count: IssueCount,
high_issues: HighIssues,
low_issues: LowIssues,
detectors_used: Vec<String>,
}
pub fn print_report(
writer: &mut Box<dyn Write>,
report: &Report,
contexts: &[WorkspaceContext],
stdout: bool,
detectors_used: &[(String, String)],
) -> Result<()> {
let mut all_files_details = FilesDetails::default();
for context in contexts {
all_files_details = all_files_details + &files_details(context);
}
all_files_details.files_details.sort_by(|a, b| a.file_path.cmp(&b.file_path));
let mut all_files_summary = FilesSummary::default();
for details in &all_files_details.files_details {
all_files_summary.total_sloc += details.n_sloc;
all_files_summary.total_source_units += 1;
}
let detectors_used_names: Vec<_> = detectors_used.iter().map(|x| x.0.clone()).collect();
let (high_issues, low_issues) = report.detailed_issues(contexts);
let content = JsonContent {
files_summary: all_files_summary,
files_details: all_files_details,
issue_count: report.issue_count(),
high_issues,
low_issues,
detectors_used: detectors_used_names,
};
let value = serde_json::to_value(content).unwrap();
if stdout {
println!("STDOUT START");
}
serde_json::to_writer_pretty(writer, &value)?;
if stdout {
println!("STDOUT END");
}
Ok(())
}
```
--------------------------------------------------------------------------------
/benchmarks/deprecated-oz-functions/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1006510.0,2215152.0,3554716.0,4091990.0,5682613.0,6453365.0,7378327.0,8576627.0,9162264.0,10448454.0,11841783.0,12369392.0,13755864.0,14934742.0,15769384.0,16912640.0,17866343.0,18819957.0,19546146.0,20323796.0,21871599.0,25998587.0,24459712.0,25451519.0,26503399.0,27998613.0,31016497.0,40031024.0,36484818.0,40100119.0,38170212.0,79382198.0,46196325.0,39817230.0,38996227.0,38256820.0,40031103.0,40157996.0,42311847.0,39953932.0,41063187.0,42875381.0,45232392.0,44978101.0,46220347.0,47492029.0,48234010.0,50640185.0,52980246.0,52544943.0,52943090.0,54531563.0,80220163.0,116678060.0,56704130.0,57294197.0,57616697.0,61569779.0,60583445.0,61911680.0,66197857.0,63650080.0,69220801.0,93385989.0,78508870.0,69736597.0,78440192.0,75193062.0,77014532.0,73363708.0,72154190.0,74834161.0,75361865.0,75955572.0,77350895.0,78755665.0,80450993.0,82012860.0,80534978.0,80945942.0,82131572.0,84042498.0,82119901.0,85942303.0,87461865.0,83723538.0,86455348.0,88364880.0,87961076.0,90837976.0,90795692.0,92697807.0,91741233.0,94072382.0,95374844.0,106116490.0,98876275.0,99070286.0,98539711.0,100832687.0]}
```
--------------------------------------------------------------------------------
/benchmarks/deprecated-oz-functions/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1006510.0,2215152.0,3554716.0,4091990.0,5682613.0,6453365.0,7378327.0,8576627.0,9162264.0,10448454.0,11841783.0,12369392.0,13755864.0,14934742.0,15769384.0,16912640.0,17866343.0,18819957.0,19546146.0,20323796.0,21871599.0,25998587.0,24459712.0,25451519.0,26503399.0,27998613.0,31016497.0,40031024.0,36484818.0,40100119.0,38170212.0,79382198.0,46196325.0,39817230.0,38996227.0,38256820.0,40031103.0,40157996.0,42311847.0,39953932.0,41063187.0,42875381.0,45232392.0,44978101.0,46220347.0,47492029.0,48234010.0,50640185.0,52980246.0,52544943.0,52943090.0,54531563.0,80220163.0,116678060.0,56704130.0,57294197.0,57616697.0,61569779.0,60583445.0,61911680.0,66197857.0,63650080.0,69220801.0,93385989.0,78508870.0,69736597.0,78440192.0,75193062.0,77014532.0,73363708.0,72154190.0,74834161.0,75361865.0,75955572.0,77350895.0,78755665.0,80450993.0,82012860.0,80534978.0,80945942.0,82131572.0,84042498.0,82119901.0,85942303.0,87461865.0,83723538.0,86455348.0,88364880.0,87961076.0,90837976.0,90795692.0,92697807.0,91741233.0,94072382.0,95374844.0,106116490.0,98876275.0,99070286.0,98539711.0,100832687.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unsafe-oz-erc721-mint/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1217657.0,2578056.0,3678272.0,5396967.0,6240342.0,7673479.0,8953748.0,10332341.0,11527918.0,12846885.0,13964638.0,15363066.0,16522014.0,17838692.0,19179640.0,20383354.0,21772475.0,22831548.0,23967026.0,25546332.0,27156891.0,28342264.0,29395068.0,30246068.0,31688536.0,33043581.0,34176167.0,35493362.0,36780720.0,37919396.0,39178948.0,40238846.0,41878092.0,43366058.0,43944025.0,45694997.0,46568653.0,49475438.0,52992358.0,50658895.0,52193484.0,52944541.0,54294497.0,55789685.0,56593977.0,58823719.0,59678647.0,61536366.0,60857253.0,60432681.0,61538350.0,62913822.0,63883507.0,65248040.0,66405421.0,68498317.0,78434185.0,79743620.0,73589995.0,72664302.0,74058195.0,74912221.0,76067380.0,77365287.0,78568309.0,79449234.0,77985304.0,78972679.0,80147792.0,81313549.0,82535488.0,83711806.0,85631026.0,85462429.0,84040074.0,85211222.0,86288709.0,86409635.0,85436949.0,86498918.0,87574242.0,88898044.0,89914044.0,90867720.0,92363955.0,92086421.0,90933841.0,91657079.0,93026676.0,101770620.0,94664576.0,93002023.0,93777285.0,94378618.0,95129671.0,94842152.0,95077931.0,95879746.0,96925721.0,97984955.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unsafe-oz-erc721-mint/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1217657.0,2578056.0,3678272.0,5396967.0,6240342.0,7673479.0,8953748.0,10332341.0,11527918.0,12846885.0,13964638.0,15363066.0,16522014.0,17838692.0,19179640.0,20383354.0,21772475.0,22831548.0,23967026.0,25546332.0,27156891.0,28342264.0,29395068.0,30246068.0,31688536.0,33043581.0,34176167.0,35493362.0,36780720.0,37919396.0,39178948.0,40238846.0,41878092.0,43366058.0,43944025.0,45694997.0,46568653.0,49475438.0,52992358.0,50658895.0,52193484.0,52944541.0,54294497.0,55789685.0,56593977.0,58823719.0,59678647.0,61536366.0,60857253.0,60432681.0,61538350.0,62913822.0,63883507.0,65248040.0,66405421.0,68498317.0,78434185.0,79743620.0,73589995.0,72664302.0,74058195.0,74912221.0,76067380.0,77365287.0,78568309.0,79449234.0,77985304.0,78972679.0,80147792.0,81313549.0,82535488.0,83711806.0,85631026.0,85462429.0,84040074.0,85211222.0,86288709.0,86409635.0,85436949.0,86498918.0,87574242.0,88898044.0,89914044.0,90867720.0,92363955.0,92086421.0,90933841.0,91657079.0,93026676.0,101770620.0,94664576.0,93002023.0,93777285.0,94378618.0,95129671.0,94842152.0,95077931.0,95879746.0,96925721.0,97984955.0]}
```
--------------------------------------------------------------------------------
/aderyn_core/tests/common/new_ast_nodes.rs:
--------------------------------------------------------------------------------
```rust
use std::{collections::BTreeMap, error::Error};
use aderyn_core::{
ast::NodeID,
capture,
context::workspace::WorkspaceContext,
detect::detector::{IssueDetector, IssueDetectorNamePool, IssueSeverity},
};
use eyre::Result;
#[derive(Default)]
pub struct NewASTNodesDemonstrator {
// Keys are: [0] source file name, [1] line number, [2] character location of node.
// Do not add items manually, use `capture!` to add nodes to this BTreeMap.
found_instances: BTreeMap<(String, usize, String), NodeID>,
}
impl IssueDetector for NewASTNodesDemonstrator {
fn detect(&mut self, context: &WorkspaceContext) -> Result<bool, Box<dyn Error>> {
for do_while_statement in context.do_while_statements() {
capture!(self, context, do_while_statement);
}
for break_statement in context.break_statements() {
capture!(self, context, break_statement);
}
for continue_statements in context.continue_statements() {
capture!(self, context, continue_statements);
}
for placeholder_statement in context.placeholder_statements() {
capture!(self, context, placeholder_statement);
}
Ok(!self.found_instances.is_empty())
}
fn severity(&self) -> IssueSeverity {
IssueSeverity::High
}
fn title(&self) -> String {
String::from("New AST Nodes Demo")
}
fn description(&self) -> String {
String::from("New AST Nodes Demo")
}
fn instances(&self) -> BTreeMap<(String, usize, String), NodeID> {
self.found_instances.clone()
}
fn name(&self) -> String {
format!("{}", IssueDetectorNamePool::CentralizationRisk)
}
}
```
--------------------------------------------------------------------------------
/benchmarks/block-timestamp-deadline/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1200811.0,2258240.0,4233793.0,4472595.0,5670753.0,7014815.0,8505327.0,8997133.0,10047291.0,10881948.0,11955758.0,13040992.0,14166195.0,15475734.0,16666668.0,17559893.0,18548285.0,19633923.0,20877066.0,21786878.0,22916448.0,23142884.0,24595826.0,25845302.0,26957678.0,28372993.0,30913005.0,34168302.0,35899921.0,36489387.0,36839831.0,38598837.0,39156109.0,39137733.0,38998987.0,39424824.0,41014107.0,42452801.0,42874295.0,42790770.0,44199236.0,44253963.0,46605259.0,49618978.0,55203526.0,55315052.0,55487549.0,59375065.0,52881309.0,53095661.0,53927135.0,54901014.0,56141995.0,57954182.0,59669895.0,66074179.0,67929281.0,68422602.0,70667350.0,66276558.0,67829295.0,68639940.0,69415415.0,70420829.0,71772347.0,73624734.0,75000955.0,76558809.0,76288988.0,77845825.0,79254850.0,80448485.0,82011430.0,83232250.0,83120806.0,84399531.0,87411864.0,87395214.0,87237770.0,90380777.0,89753870.0,91628160.0,91458627.0,94996704.0,96209639.0,95748718.0,96841399.0,99008585.0,100560902.0,100999531.0,103083624.0,103005705.0,107279680.0,107948145.0,109210128.0,111813364.0,111761523.0,111951638.0,142422075.0,119905393.0]}
```
--------------------------------------------------------------------------------
/benchmarks/block-timestamp-deadline/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[1200811.0,2258240.0,4233793.0,4472595.0,5670753.0,7014815.0,8505327.0,8997133.0,10047291.0,10881948.0,11955758.0,13040992.0,14166195.0,15475734.0,16666668.0,17559893.0,18548285.0,19633923.0,20877066.0,21786878.0,22916448.0,23142884.0,24595826.0,25845302.0,26957678.0,28372993.0,30913005.0,34168302.0,35899921.0,36489387.0,36839831.0,38598837.0,39156109.0,39137733.0,38998987.0,39424824.0,41014107.0,42452801.0,42874295.0,42790770.0,44199236.0,44253963.0,46605259.0,49618978.0,55203526.0,55315052.0,55487549.0,59375065.0,52881309.0,53095661.0,53927135.0,54901014.0,56141995.0,57954182.0,59669895.0,66074179.0,67929281.0,68422602.0,70667350.0,66276558.0,67829295.0,68639940.0,69415415.0,70420829.0,71772347.0,73624734.0,75000955.0,76558809.0,76288988.0,77845825.0,79254850.0,80448485.0,82011430.0,83232250.0,83120806.0,84399531.0,87411864.0,87395214.0,87237770.0,90380777.0,89753870.0,91628160.0,91458627.0,94996704.0,96209639.0,95748718.0,96841399.0,99008585.0,100560902.0,100999531.0,103083624.0,103005705.0,107279680.0,107948145.0,109210128.0,111813364.0,111761523.0,111951638.0,142422075.0,119905393.0]}
```
--------------------------------------------------------------------------------
/benchmarks/zero-address-check/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[1417798.0,3537259.0,4804561.0,5878879.0,7638246.0,9762404.0,10105434.0,11192677.0,12576859.0,13965378.0,15363937.0,16749806.0,18140150.0,19539798.0,20930358.0,22315329.0,23876961.0,25255010.0,26100290.0,27619886.0,28940619.0,30310004.0,31688343.0,33009130.0,34373042.0,35783977.0,37681227.0,38667787.0,39792000.0,40691267.0,42311971.0,43339130.0,44706171.0,46867889.0,48201783.0,49581408.0,50903400.0,52305621.0,53665521.0,54452023.0,55615175.0,56915283.0,58788828.0,60766840.0,62034922.0,63468389.0,65325674.0,66347212.0,68200891.0,68850396.0,70211984.0,71193498.0,72938411.0,73987003.0,74187506.0,74732772.0,76383602.0,77666784.0,78791925.0,80821003.0,81836836.0,83213302.0,84369750.0,85734918.0,87023727.0,88108188.0,86421281.0,87826439.0,89683583.0,92583783.0,94164968.0,97049012.0,95181770.0,96741924.0,97311821.0,102150490.0,104796358.0,104105019.0,132682535.0,104273455.0,105817709.0,107791161.0,108579586.0,109983346.0,111063401.0,112693133.0,113923743.0,114217713.0,116201250.0,118269014.0,118897250.0,121090458.0,122148533.0,122965300.0,124127260.0,127429428.0,134806877.0,135536203.0,127969788.0,131701888.0]}
```
--------------------------------------------------------------------------------
/benchmarks/zero-address-check/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[1417798.0,3537259.0,4804561.0,5878879.0,7638246.0,9762404.0,10105434.0,11192677.0,12576859.0,13965378.0,15363937.0,16749806.0,18140150.0,19539798.0,20930358.0,22315329.0,23876961.0,25255010.0,26100290.0,27619886.0,28940619.0,30310004.0,31688343.0,33009130.0,34373042.0,35783977.0,37681227.0,38667787.0,39792000.0,40691267.0,42311971.0,43339130.0,44706171.0,46867889.0,48201783.0,49581408.0,50903400.0,52305621.0,53665521.0,54452023.0,55615175.0,56915283.0,58788828.0,60766840.0,62034922.0,63468389.0,65325674.0,66347212.0,68200891.0,68850396.0,70211984.0,71193498.0,72938411.0,73987003.0,74187506.0,74732772.0,76383602.0,77666784.0,78791925.0,80821003.0,81836836.0,83213302.0,84369750.0,85734918.0,87023727.0,88108188.0,86421281.0,87826439.0,89683583.0,92583783.0,94164968.0,97049012.0,95181770.0,96741924.0,97311821.0,102150490.0,104796358.0,104105019.0,132682535.0,104273455.0,105817709.0,107791161.0,108579586.0,109983346.0,111063401.0,112693133.0,113923743.0,114217713.0,116201250.0,118269014.0,118897250.0,121090458.0,122148533.0,122965300.0,124127260.0,127429428.0,134806877.0,135536203.0,127969788.0,131701888.0]}
```
--------------------------------------------------------------------------------
/benchmarks/useless-public-function/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[1416619.0,3563914.0,4334650.0,5810336.0,7535663.0,8807583.0,10983758.0,11417950.0,12635384.0,14039086.0,15433797.0,17167215.0,17801590.0,19212100.0,20530722.0,21880018.0,23254803.0,24623342.0,25992531.0,27339891.0,28725925.0,30059185.0,31423670.0,32797213.0,35240875.0,36699249.0,37993754.0,39474173.0,40869104.0,42207441.0,42779970.0,44862592.0,47373142.0,48712540.0,49917590.0,49594754.0,52729668.0,54950493.0,52811233.0,54258750.0,55562810.0,56952297.0,58303262.0,60158528.0,61156842.0,60736132.0,63487847.0,64457741.0,65786734.0,69038701.0,71176451.0,71564770.0,73677614.0,75286968.0,75806632.0,77311055.0,85053000.0,78495291.0,81644509.0,82306704.0,83633179.0,84917526.0,86307109.0,87760931.0,89021055.0,88448723.0,90173173.0,92217004.0,90796895.0,93747494.0,93368776.0,97703961.0,114238546.0,106331239.0,116839678.0,107583872.0,105348922.0,129913629.0,155824573.0,110890113.0,109966325.0,113571874.0,113181508.0,115993227.0,126998710.0,122661127.0,118153727.0,120638411.0,126338635.0,127170445.0,128958912.0,129464203.0,128498606.0,128316830.0,131899682.0,147619154.0,160016358.0,132953333.0,134185912.0,134923477.0]}
```
--------------------------------------------------------------------------------
/benchmarks/useless-public-function/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[1416619.0,3563914.0,4334650.0,5810336.0,7535663.0,8807583.0,10983758.0,11417950.0,12635384.0,14039086.0,15433797.0,17167215.0,17801590.0,19212100.0,20530722.0,21880018.0,23254803.0,24623342.0,25992531.0,27339891.0,28725925.0,30059185.0,31423670.0,32797213.0,35240875.0,36699249.0,37993754.0,39474173.0,40869104.0,42207441.0,42779970.0,44862592.0,47373142.0,48712540.0,49917590.0,49594754.0,52729668.0,54950493.0,52811233.0,54258750.0,55562810.0,56952297.0,58303262.0,60158528.0,61156842.0,60736132.0,63487847.0,64457741.0,65786734.0,69038701.0,71176451.0,71564770.0,73677614.0,75286968.0,75806632.0,77311055.0,85053000.0,78495291.0,81644509.0,82306704.0,83633179.0,84917526.0,86307109.0,87760931.0,89021055.0,88448723.0,90173173.0,92217004.0,90796895.0,93747494.0,93368776.0,97703961.0,114238546.0,106331239.0,116839678.0,107583872.0,105348922.0,129913629.0,155824573.0,110890113.0,109966325.0,113571874.0,113181508.0,115993227.0,126998710.0,122661127.0,118153727.0,120638411.0,126338635.0,127170445.0,128958912.0,129464203.0,128498606.0,128316830.0,131899682.0,147619154.0,160016358.0,132953333.0,134185912.0,134923477.0]}
```
--------------------------------------------------------------------------------
/benchmarks/arbitrary-transfer-from/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1497355.0,2532607.0,2973259.0,3999977.0,4847630.0,5910592.0,6992871.0,8401972.0,8454836.0,9282569.0,10386902.0,11237281.0,12194644.0,13173378.0,13934970.0,14892418.0,15813456.0,16742823.0,17674523.0,18761841.0,20160912.0,20276679.0,21317052.0,22768184.0,23297371.0,24223044.0,25102843.0,26025991.0,27004325.0,27893793.0,28865295.0,30842147.0,31350963.0,31878862.0,32737433.0,33456211.0,36292709.0,35617012.0,36004551.0,38974762.0,39445617.0,39100953.0,40421340.0,41159200.0,42093079.0,43133307.0,43932902.0,46188931.0,46231839.0,46890959.0,47890467.0,48764895.0,49562734.0,50596839.0,51592454.0,52425648.0,53558468.0,52382247.0,53308441.0,54626614.0,55632084.0,56666728.0,56998910.0,58179803.0,59084488.0,59768116.0,59397687.0,59841885.0,60965990.0,62213128.0,62594465.0,63562816.0,64374438.0,65182431.0,66092089.0,66945377.0,68199134.0,69088319.0,69229451.0,70206450.0,71729036.0,72124572.0,72489186.0,74947165.0,73911022.0,73302124.0,74023839.0,74934410.0,75378198.0,75853956.0,78337860.0,78826608.0,84755631.0,82627395.0,81161224.0,80044854.0,82115934.0,80735112.0,82216436.0,83150740.0]}
```
--------------------------------------------------------------------------------
/benchmarks/arbitrary-transfer-from/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1497355.0,2532607.0,2973259.0,3999977.0,4847630.0,5910592.0,6992871.0,8401972.0,8454836.0,9282569.0,10386902.0,11237281.0,12194644.0,13173378.0,13934970.0,14892418.0,15813456.0,16742823.0,17674523.0,18761841.0,20160912.0,20276679.0,21317052.0,22768184.0,23297371.0,24223044.0,25102843.0,26025991.0,27004325.0,27893793.0,28865295.0,30842147.0,31350963.0,31878862.0,32737433.0,33456211.0,36292709.0,35617012.0,36004551.0,38974762.0,39445617.0,39100953.0,40421340.0,41159200.0,42093079.0,43133307.0,43932902.0,46188931.0,46231839.0,46890959.0,47890467.0,48764895.0,49562734.0,50596839.0,51592454.0,52425648.0,53558468.0,52382247.0,53308441.0,54626614.0,55632084.0,56666728.0,56998910.0,58179803.0,59084488.0,59768116.0,59397687.0,59841885.0,60965990.0,62213128.0,62594465.0,63562816.0,64374438.0,65182431.0,66092089.0,66945377.0,68199134.0,69088319.0,69229451.0,70206450.0,71729036.0,72124572.0,72489186.0,74947165.0,73911022.0,73302124.0,74023839.0,74934410.0,75378198.0,75853956.0,78337860.0,78826608.0,84755631.0,82627395.0,81161224.0,80044854.0,82115934.0,80735112.0,82216436.0,83150740.0]}
```
--------------------------------------------------------------------------------
/aderyn_core/src/ast/impls/disp/variables.rs:
--------------------------------------------------------------------------------
```rust
use crate::ast::*;
use std::fmt::Display;
impl Display for Mutability {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!("{}", format!("{self:?}").to_lowercase()))
}
}
impl Display for StateMutability {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!("{}", format!("{self:?}").to_lowercase()))
}
}
impl Display for Visibility {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!("{}", format!("{self:?}").to_lowercase()))
}
}
impl Display for StorageLocation {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!("{}", format!("{self:?}").to_lowercase()))
}
}
impl Display for VariableDeclaration {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!("{}", self.type_name.as_ref().unwrap()))?;
if self.storage_location != StorageLocation::Default {
f.write_fmt(format_args!(" {}", self.storage_location))?;
}
if let Some(mutability) = self.mutability.as_ref()
&& mutability != &Mutability::Mutable
{
f.write_fmt(format_args!(" {mutability}"))?;
}
if let Some(true) = self.indexed {
f.write_str(" indexed")?;
}
if self.state_variable {
f.write_fmt(format_args!(" {}", self.visibility))?;
}
if !self.name.is_empty() {
f.write_fmt(format_args!(" {}", self.name))?;
}
if let Some(value) = self.value.as_ref() {
f.write_fmt(format_args!(" = {value}"))?;
}
Ok(())
}
}
```
--------------------------------------------------------------------------------
/benchmarks/large-numeric-literal/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[17.0,34.0,51.0,68.0,85.0,102.0,119.0,136.0,153.0,170.0,187.0,204.0,221.0,238.0,255.0,272.0,289.0,306.0,323.0,340.0,357.0,374.0,391.0,408.0,425.0,442.0,459.0,476.0,493.0,510.0,527.0,544.0,561.0,578.0,595.0,612.0,629.0,646.0,663.0,680.0,697.0,714.0,731.0,748.0,765.0,782.0,799.0,816.0,833.0,850.0,867.0,884.0,901.0,918.0,935.0,952.0,969.0,986.0,1003.0,1020.0,1037.0,1054.0,1071.0,1088.0,1105.0,1122.0,1139.0,1156.0,1173.0,1190.0,1207.0,1224.0,1241.0,1258.0,1275.0,1292.0,1309.0,1326.0,1343.0,1360.0,1377.0,1394.0,1411.0,1428.0,1445.0,1462.0,1479.0,1496.0,1513.0,1530.0,1547.0,1564.0,1581.0,1598.0,1615.0,1632.0,1649.0,1666.0,1683.0,1700.0],"times":[940575.0,2164029.0,3455990.0,4914146.0,5241352.0,6381653.0,7785464.0,7881887.0,12218609.0,9493750.0,10350819.0,11419982.0,12385372.0,13200908.0,14198976.0,14930375.0,16042250.0,16873602.0,17798779.0,18867039.0,19708872.0,20589316.0,21677437.0,22932852.0,23573818.0,24646998.0,25241289.0,26624612.0,27547396.0,28258199.0,29425264.0,33582470.0,33521175.0,33238001.0,34555250.0,35688501.0,35012507.0,35695619.0,36500501.0,38204982.0,39054387.0,50794996.0,51745331.0,42324773.0,43064885.0,44070302.0,44628383.0,45775359.0,48653062.0,47044948.0,47867643.0,49402236.0,60544837.0,54015035.0,52655645.0,53223336.0,53458141.0,54467976.0,55189154.0,56364711.0,57413555.0,63462242.0,64487279.0,65500401.0,66000739.0,62708041.0,62739239.0,63223077.0,64534169.0,65203060.0,66043743.0,67308328.0,67908785.0,69142475.0,69702947.0,70867868.0,72092877.0,73732958.0,77996155.0,81787730.0,83512124.0,82891759.0,79129321.0,79659777.0,79336651.0,80344783.0,81189361.0,81987551.0,83010628.0,84153056.0,84682696.0,85439687.0,86414305.0,87789710.0,88722753.0,89592152.0,90195712.0,91331009.0,92271093.0,93301297.0]}
```
--------------------------------------------------------------------------------
/benchmarks/large-numeric-literal/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[17.0,34.0,51.0,68.0,85.0,102.0,119.0,136.0,153.0,170.0,187.0,204.0,221.0,238.0,255.0,272.0,289.0,306.0,323.0,340.0,357.0,374.0,391.0,408.0,425.0,442.0,459.0,476.0,493.0,510.0,527.0,544.0,561.0,578.0,595.0,612.0,629.0,646.0,663.0,680.0,697.0,714.0,731.0,748.0,765.0,782.0,799.0,816.0,833.0,850.0,867.0,884.0,901.0,918.0,935.0,952.0,969.0,986.0,1003.0,1020.0,1037.0,1054.0,1071.0,1088.0,1105.0,1122.0,1139.0,1156.0,1173.0,1190.0,1207.0,1224.0,1241.0,1258.0,1275.0,1292.0,1309.0,1326.0,1343.0,1360.0,1377.0,1394.0,1411.0,1428.0,1445.0,1462.0,1479.0,1496.0,1513.0,1530.0,1547.0,1564.0,1581.0,1598.0,1615.0,1632.0,1649.0,1666.0,1683.0,1700.0],"times":[940575.0,2164029.0,3455990.0,4914146.0,5241352.0,6381653.0,7785464.0,7881887.0,12218609.0,9493750.0,10350819.0,11419982.0,12385372.0,13200908.0,14198976.0,14930375.0,16042250.0,16873602.0,17798779.0,18867039.0,19708872.0,20589316.0,21677437.0,22932852.0,23573818.0,24646998.0,25241289.0,26624612.0,27547396.0,28258199.0,29425264.0,33582470.0,33521175.0,33238001.0,34555250.0,35688501.0,35012507.0,35695619.0,36500501.0,38204982.0,39054387.0,50794996.0,51745331.0,42324773.0,43064885.0,44070302.0,44628383.0,45775359.0,48653062.0,47044948.0,47867643.0,49402236.0,60544837.0,54015035.0,52655645.0,53223336.0,53458141.0,54467976.0,55189154.0,56364711.0,57413555.0,63462242.0,64487279.0,65500401.0,66000739.0,62708041.0,62739239.0,63223077.0,64534169.0,65203060.0,66043743.0,67308328.0,67908785.0,69142475.0,69702947.0,70867868.0,72092877.0,73732958.0,77996155.0,81787730.0,83512124.0,82891759.0,79129321.0,79659777.0,79336651.0,80344783.0,81189361.0,81987551.0,83010628.0,84153056.0,84682696.0,85439687.0,86414305.0,87789710.0,88722753.0,89592152.0,90195712.0,91331009.0,92271093.0,93301297.0]}
```
--------------------------------------------------------------------------------
/tests/ast/function.json:
--------------------------------------------------------------------------------
```json
{"absolutePath":"a","exportedSymbols":{"C":[6]},"id":7,"nodeType":"SourceUnit","nodes":[{"abstract":false,"baseContracts":[],"canonicalName":"C","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6,"linearizedBaseContracts":[6],"name":"C","nameLocation":"9:1:1","nodeType":"ContractDefinition","nodes":[{"body":{"id":4,"nodeType":"Block","src":"42:68:1","statements":[{"AST":{"nodeType":"YulBlock","src":"61:43:1","statements":[{"body":{"nodeType":"YulBlock","src":"76:22:1","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"92:2:1","type":"","value":"20"}],"functionName":{"name":"blockhash","nodeType":"YulIdentifier","src":"82:9:1"},"nodeType":"YulFunctionCall","src":"82:13:1"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"78:3:1"},"nodeType":"YulFunctionCall","src":"78:18:1"},"nodeType":"YulExpressionStatement","src":"78:18:1"}]},"name":"g","nodeType":"YulFunctionDefinition","src":"63:35:1"},{"expression":{"arguments":[],"functionName":{"name":"g","nodeType":"YulIdentifier","src":"99:1:1"},"nodeType":"YulFunctionCall","src":"99:3:1"},"nodeType":"YulExpressionStatement","src":"99:3:1"}]},"evmVersion":"london","externalReferences":[],"id":3,"nodeType":"InlineAssembly","src":"52:52:1"}]},"functionSelector":"b8c9d365","id":5,"implemented":true,"kind":"function","modifiers":[],"name":"h","nameLocation":"26:1:1","nodeType":"FunctionDefinition","parameters":{"id":1,"nodeType":"ParameterList","parameters":[],"src":"27:2:1"},"returnParameters":{"id":2,"nodeType":"ParameterList","parameters":[],"src":"42:0:1"},"scope":6,"src":"17:93:1","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":7,"src":"0:112:1","usedErrors":[]}],"src":"0:113:1"}
```
--------------------------------------------------------------------------------
/benchmarks/empty-block/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[19.0,38.0,57.0,76.0,95.0,114.0,133.0,152.0,171.0,190.0,209.0,228.0,247.0,266.0,285.0,304.0,323.0,342.0,361.0,380.0,399.0,418.0,437.0,456.0,475.0,494.0,513.0,532.0,551.0,570.0,589.0,608.0,627.0,646.0,665.0,684.0,703.0,722.0,741.0,760.0,779.0,798.0,817.0,836.0,855.0,874.0,893.0,912.0,931.0,950.0,969.0,988.0,1007.0,1026.0,1045.0,1064.0,1083.0,1102.0,1121.0,1140.0,1159.0,1178.0,1197.0,1216.0,1235.0,1254.0,1273.0,1292.0,1311.0,1330.0,1349.0,1368.0,1387.0,1406.0,1425.0,1444.0,1463.0,1482.0,1501.0,1520.0,1539.0,1558.0,1577.0,1596.0,1615.0,1634.0,1653.0,1672.0,1691.0,1710.0,1729.0,1748.0,1767.0,1786.0,1805.0,1824.0,1843.0,1862.0,1881.0,1900.0],"times":[1031170.0,2009053.0,3919582.0,4121913.0,5235126.0,6279340.0,6795543.0,7906720.0,8931617.0,9906779.0,10879156.0,11863284.0,12960902.0,13814366.0,14829343.0,15814156.0,16811069.0,17797324.0,18780899.0,19763411.0,20738865.0,21753449.0,22718942.0,23706022.0,25273780.0,25810434.0,27064897.0,27967527.0,28349815.0,29378933.0,30287926.0,31214709.0,32307851.0,33223958.0,34218516.0,35180635.0,36153233.0,37103229.0,38048998.0,39014346.0,40222362.0,41034517.0,41538584.0,42418883.0,43556510.0,44384993.0,45364285.0,46371083.0,47290924.0,48275221.0,49386513.0,50579653.0,51480538.0,51220511.0,52533739.0,53927491.0,54894027.0,55892735.0,56926650.0,57861325.0,58907785.0,60386379.0,60725491.0,61380744.0,61639036.0,62621958.0,63554701.0,64634605.0,66260160.0,68222697.0,68614318.0,69283997.0,68545097.0,69167902.0,70107979.0,71068115.0,72875134.0,73084079.0,73784672.0,74585978.0,75062912.0,76045287.0,77773425.0,79649824.0,79685592.0,80391665.0,79099591.0,79347530.0,80958381.0,84681355.0,83350516.0,84152224.0,87024763.0,86605396.0,87309952.0,89806999.0,89245972.0,89850549.0,90593530.0,91414567.0]}
```
--------------------------------------------------------------------------------
/benchmarks/empty-block/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[19.0,38.0,57.0,76.0,95.0,114.0,133.0,152.0,171.0,190.0,209.0,228.0,247.0,266.0,285.0,304.0,323.0,342.0,361.0,380.0,399.0,418.0,437.0,456.0,475.0,494.0,513.0,532.0,551.0,570.0,589.0,608.0,627.0,646.0,665.0,684.0,703.0,722.0,741.0,760.0,779.0,798.0,817.0,836.0,855.0,874.0,893.0,912.0,931.0,950.0,969.0,988.0,1007.0,1026.0,1045.0,1064.0,1083.0,1102.0,1121.0,1140.0,1159.0,1178.0,1197.0,1216.0,1235.0,1254.0,1273.0,1292.0,1311.0,1330.0,1349.0,1368.0,1387.0,1406.0,1425.0,1444.0,1463.0,1482.0,1501.0,1520.0,1539.0,1558.0,1577.0,1596.0,1615.0,1634.0,1653.0,1672.0,1691.0,1710.0,1729.0,1748.0,1767.0,1786.0,1805.0,1824.0,1843.0,1862.0,1881.0,1900.0],"times":[1031170.0,2009053.0,3919582.0,4121913.0,5235126.0,6279340.0,6795543.0,7906720.0,8931617.0,9906779.0,10879156.0,11863284.0,12960902.0,13814366.0,14829343.0,15814156.0,16811069.0,17797324.0,18780899.0,19763411.0,20738865.0,21753449.0,22718942.0,23706022.0,25273780.0,25810434.0,27064897.0,27967527.0,28349815.0,29378933.0,30287926.0,31214709.0,32307851.0,33223958.0,34218516.0,35180635.0,36153233.0,37103229.0,38048998.0,39014346.0,40222362.0,41034517.0,41538584.0,42418883.0,43556510.0,44384993.0,45364285.0,46371083.0,47290924.0,48275221.0,49386513.0,50579653.0,51480538.0,51220511.0,52533739.0,53927491.0,54894027.0,55892735.0,56926650.0,57861325.0,58907785.0,60386379.0,60725491.0,61380744.0,61639036.0,62621958.0,63554701.0,64634605.0,66260160.0,68222697.0,68614318.0,69283997.0,68545097.0,69167902.0,70107979.0,71068115.0,72875134.0,73084079.0,73784672.0,74585978.0,75062912.0,76045287.0,77773425.0,79649824.0,79685592.0,80391665.0,79099591.0,79347530.0,80958381.0,84681355.0,83350516.0,84152224.0,87024763.0,86605396.0,87309952.0,89806999.0,89245972.0,89850549.0,90593530.0,91414567.0]}
```
--------------------------------------------------------------------------------
/aderyn_core/src/context/browser/sort_nodes.rs:
--------------------------------------------------------------------------------
```rust
use std::collections::BTreeSet;
use crate::context::workspace::{ASTNode, WorkspaceContext};
pub trait SortNodeReferencesToSequence<'a> {
fn sort_by_src_position(self, context: &'a WorkspaceContext) -> Option<Vec<&'a ASTNode>>;
}
pub trait SortOwnedNodesToSequence<'a> {
fn sort_by_src_position(self, context: &'a WorkspaceContext) -> Option<Vec<ASTNode>>;
}
impl<'a> SortNodeReferencesToSequence<'a> for &[&'a ASTNode] {
fn sort_by_src_position(self, context: &'a WorkspaceContext) -> Option<Vec<&'a ASTNode>> {
sort_by_src_position(self, context)
}
}
impl<'a> SortOwnedNodesToSequence<'a> for &[ASTNode] {
fn sort_by_src_position(self, context: &'a WorkspaceContext) -> Option<Vec<ASTNode>> {
let nodes = self.iter().collect::<Vec<_>>();
let sorted = sort_by_src_position(&nodes, context);
if let Some(sorted_nodes) = sorted {
let owned_nodes = sorted_nodes.iter().map(|&x| x.clone()).collect::<Vec<_>>();
return Some(owned_nodes);
}
None
}
}
fn sort_by_src_position<'a>(
nodes: &[&'a ASTNode],
context: &'a WorkspaceContext,
) -> Option<Vec<&'a ASTNode>> {
if !nodes.iter().all(|x| x.id().is_some()) {
return None;
}
// Make sure all these nodes belong to the same file
let c = nodes
.iter()
.map(|x| {
let key = context.get_node_sort_key_pure(x);
key.0 // src location
})
.collect::<BTreeSet<_>>();
if c.len() != 1 && c.first() != Some(&String::from("")) {
return None;
}
// Now sort them
let mut nodes = nodes.to_vec();
nodes.sort_by(|a, b| {
context.get_relative_location_of_nodes(a.id().unwrap(), b.id().unwrap()).unwrap()
});
Some(nodes)
}
```
--------------------------------------------------------------------------------
/benchmarks/push-zero-opcode/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[22.0,44.0,66.0,88.0,110.0,132.0,154.0,176.0,198.0,220.0,242.0,264.0,286.0,308.0,330.0,352.0,374.0,396.0,418.0,440.0,462.0,484.0,506.0,528.0,550.0,572.0,594.0,616.0,638.0,660.0,682.0,704.0,726.0,748.0,770.0,792.0,814.0,836.0,858.0,880.0,902.0,924.0,946.0,968.0,990.0,1012.0,1034.0,1056.0,1078.0,1100.0,1122.0,1144.0,1166.0,1188.0,1210.0,1232.0,1254.0,1276.0,1298.0,1320.0,1342.0,1364.0,1386.0,1408.0,1430.0,1452.0,1474.0,1496.0,1518.0,1540.0,1562.0,1584.0,1606.0,1628.0,1650.0,1672.0,1694.0,1716.0,1738.0,1760.0,1782.0,1804.0,1826.0,1848.0,1870.0,1892.0,1914.0,1936.0,1958.0,1980.0,2002.0,2024.0,2046.0,2068.0,2090.0,2112.0,2134.0,2156.0,2178.0,2200.0],"times":[979155.0,1987356.0,3603583.0,4069243.0,5053819.0,5951042.0,7230336.0,7840143.0,8883413.0,9746688.0,10689429.0,11661921.0,12636944.0,13608399.0,14620355.0,15549749.0,16529521.0,17492984.0,18458172.0,19461900.0,20402386.0,21399074.0,22325972.0,23346305.0,24261719.0,25266102.0,26192361.0,27190220.0,28176355.0,29100688.0,30098811.0,31055947.0,32033401.0,33017737.0,33970982.0,34965507.0,35732215.0,35922761.0,36901516.0,37843414.0,38811799.0,39758463.0,40708562.0,42006198.0,42442163.0,43365044.0,44281659.0,45566210.0,47017660.0,47462589.0,48307570.0,49438327.0,50455006.0,51077692.0,50518326.0,51433248.0,52469158.0,53612796.0,54352744.0,55180398.0,56292334.0,56876377.0,57703063.0,59380373.0,59604387.0,60502738.0,61528103.0,62768384.0,63232698.0,64140915.0,65022625.0,65963425.0,66916069.0,67764099.0,68304235.0,68105383.0,69746341.0,70522497.0,71374398.0,72962438.0,72544684.0,73364572.0,74268877.0,74970295.0,76044443.0,77118469.0,77992263.0,79206533.0,77653761.0,79265633.0,79791498.0,84781356.0,82111102.0,82613101.0,83090625.0,83713853.0,86863676.0,130712084.0,113620507.0,93261247.0]}
```
--------------------------------------------------------------------------------
/benchmarks/push-zero-opcode/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[22.0,44.0,66.0,88.0,110.0,132.0,154.0,176.0,198.0,220.0,242.0,264.0,286.0,308.0,330.0,352.0,374.0,396.0,418.0,440.0,462.0,484.0,506.0,528.0,550.0,572.0,594.0,616.0,638.0,660.0,682.0,704.0,726.0,748.0,770.0,792.0,814.0,836.0,858.0,880.0,902.0,924.0,946.0,968.0,990.0,1012.0,1034.0,1056.0,1078.0,1100.0,1122.0,1144.0,1166.0,1188.0,1210.0,1232.0,1254.0,1276.0,1298.0,1320.0,1342.0,1364.0,1386.0,1408.0,1430.0,1452.0,1474.0,1496.0,1518.0,1540.0,1562.0,1584.0,1606.0,1628.0,1650.0,1672.0,1694.0,1716.0,1738.0,1760.0,1782.0,1804.0,1826.0,1848.0,1870.0,1892.0,1914.0,1936.0,1958.0,1980.0,2002.0,2024.0,2046.0,2068.0,2090.0,2112.0,2134.0,2156.0,2178.0,2200.0],"times":[979155.0,1987356.0,3603583.0,4069243.0,5053819.0,5951042.0,7230336.0,7840143.0,8883413.0,9746688.0,10689429.0,11661921.0,12636944.0,13608399.0,14620355.0,15549749.0,16529521.0,17492984.0,18458172.0,19461900.0,20402386.0,21399074.0,22325972.0,23346305.0,24261719.0,25266102.0,26192361.0,27190220.0,28176355.0,29100688.0,30098811.0,31055947.0,32033401.0,33017737.0,33970982.0,34965507.0,35732215.0,35922761.0,36901516.0,37843414.0,38811799.0,39758463.0,40708562.0,42006198.0,42442163.0,43365044.0,44281659.0,45566210.0,47017660.0,47462589.0,48307570.0,49438327.0,50455006.0,51077692.0,50518326.0,51433248.0,52469158.0,53612796.0,54352744.0,55180398.0,56292334.0,56876377.0,57703063.0,59380373.0,59604387.0,60502738.0,61528103.0,62768384.0,63232698.0,64140915.0,65022625.0,65963425.0,66916069.0,67764099.0,68304235.0,68105383.0,69746341.0,70522497.0,71374398.0,72962438.0,72544684.0,73364572.0,74268877.0,74970295.0,76044443.0,77118469.0,77992263.0,79206533.0,77653761.0,79265633.0,79791498.0,84781356.0,82111102.0,82613101.0,83090625.0,83713853.0,86863676.0,130712084.0,113620507.0,93261247.0]}
```
--------------------------------------------------------------------------------
/tests/ast/yul_hex_literal.json:
--------------------------------------------------------------------------------
```json
{"absolutePath":"a","exportedSymbols":{"Sample":[6]},"id":7,"nodeType":"SourceUnit","nodes":[{"abstract":false,"baseContracts":[],"canonicalName":"Sample","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6,"linearizedBaseContracts":[6],"name":"Sample","nameLocation":"9:6:1","nodeType":"ContractDefinition","nodes":[{"body":{"id":4,"nodeType":"Block","src":"47:167:1","statements":[{"AST":{"nodeType":"YulBlock","src":"66:142:1","statements":[{"nodeType":"YulVariableDeclaration","src":"80:15:1","value":{"hexValue":"74657374","kind":"string","nodeType":"YulLiteral","src":"89:6:1","type":"","value":"test"},"variables":[{"name":"a","nodeType":"YulTypedName","src":"84:1:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"108:54:1","value":{"hexValue":"112233445566778899aabbccddeeff6677889900","kind":"string","nodeType":"YulLiteral","src":"117:45:1","type":""},"variables":[{"name":"b","nodeType":"YulTypedName","src":"112:1:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"175:23:1","value":{"hexValue":"1234abcd","kind":"string","nodeType":"YulLiteral","src":"184:14:1","type":""},"variables":[{"name":"c","nodeType":"YulTypedName","src":"179:1:1","type":""}]}]},"evmVersion":"loop","externalReferences":[],"id":3,"nodeType":"InlineAssembly","src":"57:151:1"}]},"functionSelector":"26121ff0","id":5,"implemented":true,"kind":"function","modifiers":[],"name":"f","nameLocation":"31:1:1","nodeType":"FunctionDefinition","parameters":{"id":1,"nodeType":"ParameterList","parameters":[],"src":"32:2:1"},"returnParameters":{"id":2,"nodeType":"ParameterList","parameters":[],"src":"47:0:1"},"scope":6,"src":"22:192:1","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":7,"src":"0:216:1","usedErrors":[]}],"src":"0:217:1"}
```
--------------------------------------------------------------------------------
/benchmarks/unsafe-erc20-functions/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[24.0,48.0,72.0,96.0,120.0,144.0,168.0,192.0,216.0,240.0,264.0,288.0,312.0,336.0,360.0,384.0,408.0,432.0,456.0,480.0,504.0,528.0,552.0,576.0,600.0,624.0,648.0,672.0,696.0,720.0,744.0,768.0,792.0,816.0,840.0,864.0,888.0,912.0,936.0,960.0,984.0,1008.0,1032.0,1056.0,1080.0,1104.0,1128.0,1152.0,1176.0,1200.0,1224.0,1248.0,1272.0,1296.0,1320.0,1344.0,1368.0,1392.0,1416.0,1440.0,1464.0,1488.0,1512.0,1536.0,1560.0,1584.0,1608.0,1632.0,1656.0,1680.0,1704.0,1728.0,1752.0,1776.0,1800.0,1824.0,1848.0,1872.0,1896.0,1920.0,1944.0,1968.0,1992.0,2016.0,2040.0,2064.0,2088.0,2112.0,2136.0,2160.0,2184.0,2208.0,2232.0,2256.0,2280.0,2304.0,2328.0,2352.0,2376.0,2400.0],"times":[929925.0,2093737.0,2864412.0,4194411.0,4977021.0,5854662.0,6748239.0,7771009.0,8602381.0,9543903.0,10557953.0,12221008.0,14037438.0,14314033.0,14623265.0,15818586.0,17111159.0,18124388.0,19196431.0,19595067.0,21371561.0,24027938.0,41242219.0,35626455.0,33739004.0,25221273.0,26276578.0,27449298.0,33544788.0,30940337.0,31695670.0,30819319.0,32660674.0,34143345.0,35598315.0,37167398.0,38533699.0,38869075.0,39397942.0,41776063.0,43826327.0,43276354.0,43470099.0,44803377.0,47095595.0,50421068.0,48034482.0,49591431.0,49826823.0,49573432.0,50697645.0,52586705.0,53413817.0,54290984.0,55049895.0,65334728.0,63676702.0,58025098.0,58125584.0,59523592.0,60518922.0,62137699.0,62909172.0,63291780.0,65209807.0,91391270.0,75435165.0,70094066.0,103715111.0,77988954.0,73005449.0,73838773.0,76449486.0,75685707.0,97839547.0,87786092.0,84866911.0,82393965.0,82521273.0,84013978.0,92519354.0,92500671.0,93136186.0,90570069.0,89249987.0,90230854.0,91571489.0,90837107.0,92469954.0,94330707.0,95790286.0,96494179.0,97237940.0,97778998.0,97828431.0,98832285.0,100458356.0,106407352.0,107601737.0,105280155.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unsafe-erc20-functions/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[24.0,48.0,72.0,96.0,120.0,144.0,168.0,192.0,216.0,240.0,264.0,288.0,312.0,336.0,360.0,384.0,408.0,432.0,456.0,480.0,504.0,528.0,552.0,576.0,600.0,624.0,648.0,672.0,696.0,720.0,744.0,768.0,792.0,816.0,840.0,864.0,888.0,912.0,936.0,960.0,984.0,1008.0,1032.0,1056.0,1080.0,1104.0,1128.0,1152.0,1176.0,1200.0,1224.0,1248.0,1272.0,1296.0,1320.0,1344.0,1368.0,1392.0,1416.0,1440.0,1464.0,1488.0,1512.0,1536.0,1560.0,1584.0,1608.0,1632.0,1656.0,1680.0,1704.0,1728.0,1752.0,1776.0,1800.0,1824.0,1848.0,1872.0,1896.0,1920.0,1944.0,1968.0,1992.0,2016.0,2040.0,2064.0,2088.0,2112.0,2136.0,2160.0,2184.0,2208.0,2232.0,2256.0,2280.0,2304.0,2328.0,2352.0,2376.0,2400.0],"times":[929925.0,2093737.0,2864412.0,4194411.0,4977021.0,5854662.0,6748239.0,7771009.0,8602381.0,9543903.0,10557953.0,12221008.0,14037438.0,14314033.0,14623265.0,15818586.0,17111159.0,18124388.0,19196431.0,19595067.0,21371561.0,24027938.0,41242219.0,35626455.0,33739004.0,25221273.0,26276578.0,27449298.0,33544788.0,30940337.0,31695670.0,30819319.0,32660674.0,34143345.0,35598315.0,37167398.0,38533699.0,38869075.0,39397942.0,41776063.0,43826327.0,43276354.0,43470099.0,44803377.0,47095595.0,50421068.0,48034482.0,49591431.0,49826823.0,49573432.0,50697645.0,52586705.0,53413817.0,54290984.0,55049895.0,65334728.0,63676702.0,58025098.0,58125584.0,59523592.0,60518922.0,62137699.0,62909172.0,63291780.0,65209807.0,91391270.0,75435165.0,70094066.0,103715111.0,77988954.0,73005449.0,73838773.0,76449486.0,75685707.0,97839547.0,87786092.0,84866911.0,82393965.0,82521273.0,84013978.0,92519354.0,92500671.0,93136186.0,90570069.0,89249987.0,90230854.0,91571489.0,90837107.0,92469954.0,94330707.0,95790286.0,96494179.0,97237940.0,97778998.0,97828431.0,98832285.0,100458356.0,106407352.0,107601737.0,105280155.0]}
```
--------------------------------------------------------------------------------
/benchmarks/require-with-string/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[28.0,56.0,84.0,112.0,140.0,168.0,196.0,224.0,252.0,280.0,308.0,336.0,364.0,392.0,420.0,448.0,476.0,504.0,532.0,560.0,588.0,616.0,644.0,672.0,700.0,728.0,756.0,784.0,812.0,840.0,868.0,896.0,924.0,952.0,980.0,1008.0,1036.0,1064.0,1092.0,1120.0,1148.0,1176.0,1204.0,1232.0,1260.0,1288.0,1316.0,1344.0,1372.0,1400.0,1428.0,1456.0,1484.0,1512.0,1540.0,1568.0,1596.0,1624.0,1652.0,1680.0,1708.0,1736.0,1764.0,1792.0,1820.0,1848.0,1876.0,1904.0,1932.0,1960.0,1988.0,2016.0,2044.0,2072.0,2100.0,2128.0,2156.0,2184.0,2212.0,2240.0,2268.0,2296.0,2324.0,2352.0,2380.0,2408.0,2436.0,2464.0,2492.0,2520.0,2548.0,2576.0,2604.0,2632.0,2660.0,2688.0,2716.0,2744.0,2772.0,2800.0],"times":[870813.0,1760565.0,3389167.0,3606131.0,4527295.0,5373690.0,6835794.0,7446854.0,7872217.0,8765069.0,9536346.0,14432168.0,11449746.0,12147980.0,13053849.0,14065756.0,14606836.0,15578358.0,16734206.0,17436011.0,18262915.0,19307190.0,19830348.0,20955022.0,21667118.0,22789983.0,23424531.0,24449869.0,24942586.0,26211075.0,26819094.0,28020674.0,28768906.0,29404621.0,30621998.0,31404234.0,31809719.0,32701500.0,32549816.0,33510502.0,34006577.0,34890840.0,35667876.0,36514964.0,37329220.0,38235349.0,38969524.0,39827096.0,40636421.0,41408847.0,41234248.0,41804631.0,42595951.0,43671180.0,44515702.0,45340092.0,46031190.0,46918044.0,47206351.0,46834678.0,47862596.0,48609972.0,74365689.0,49870459.0,50636606.0,51736946.0,52657908.0,53496631.0,53740980.0,54529480.0,55479854.0,56574213.0,57567029.0,57620232.0,58398330.0,59245494.0,58597903.0,59256134.0,60047750.0,61360261.0,61747286.0,61654445.0,62215905.0,62882875.0,62684865.0,63299227.0,63889593.0,64542526.0,65264340.0,66002763.0,66768310.0,67497971.0,68208988.0,68894183.0,70138132.0,71416927.0,71093454.0,71512993.0,70617408.0,71117513.0]}
```
--------------------------------------------------------------------------------
/benchmarks/require-with-string/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[28.0,56.0,84.0,112.0,140.0,168.0,196.0,224.0,252.0,280.0,308.0,336.0,364.0,392.0,420.0,448.0,476.0,504.0,532.0,560.0,588.0,616.0,644.0,672.0,700.0,728.0,756.0,784.0,812.0,840.0,868.0,896.0,924.0,952.0,980.0,1008.0,1036.0,1064.0,1092.0,1120.0,1148.0,1176.0,1204.0,1232.0,1260.0,1288.0,1316.0,1344.0,1372.0,1400.0,1428.0,1456.0,1484.0,1512.0,1540.0,1568.0,1596.0,1624.0,1652.0,1680.0,1708.0,1736.0,1764.0,1792.0,1820.0,1848.0,1876.0,1904.0,1932.0,1960.0,1988.0,2016.0,2044.0,2072.0,2100.0,2128.0,2156.0,2184.0,2212.0,2240.0,2268.0,2296.0,2324.0,2352.0,2380.0,2408.0,2436.0,2464.0,2492.0,2520.0,2548.0,2576.0,2604.0,2632.0,2660.0,2688.0,2716.0,2744.0,2772.0,2800.0],"times":[870813.0,1760565.0,3389167.0,3606131.0,4527295.0,5373690.0,6835794.0,7446854.0,7872217.0,8765069.0,9536346.0,14432168.0,11449746.0,12147980.0,13053849.0,14065756.0,14606836.0,15578358.0,16734206.0,17436011.0,18262915.0,19307190.0,19830348.0,20955022.0,21667118.0,22789983.0,23424531.0,24449869.0,24942586.0,26211075.0,26819094.0,28020674.0,28768906.0,29404621.0,30621998.0,31404234.0,31809719.0,32701500.0,32549816.0,33510502.0,34006577.0,34890840.0,35667876.0,36514964.0,37329220.0,38235349.0,38969524.0,39827096.0,40636421.0,41408847.0,41234248.0,41804631.0,42595951.0,43671180.0,44515702.0,45340092.0,46031190.0,46918044.0,47206351.0,46834678.0,47862596.0,48609972.0,74365689.0,49870459.0,50636606.0,51736946.0,52657908.0,53496631.0,53740980.0,54529480.0,55479854.0,56574213.0,57567029.0,57620232.0,58398330.0,59245494.0,58597903.0,59256134.0,60047750.0,61360261.0,61747286.0,61654445.0,62215905.0,62882875.0,62684865.0,63299227.0,63889593.0,64542526.0,65264340.0,66002763.0,66768310.0,67497971.0,68208988.0,68894183.0,70138132.0,71416927.0,71093454.0,71512993.0,70617408.0,71117513.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unprotected-initializer/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[28.0,56.0,84.0,112.0,140.0,168.0,196.0,224.0,252.0,280.0,308.0,336.0,364.0,392.0,420.0,448.0,476.0,504.0,532.0,560.0,588.0,616.0,644.0,672.0,700.0,728.0,756.0,784.0,812.0,840.0,868.0,896.0,924.0,952.0,980.0,1008.0,1036.0,1064.0,1092.0,1120.0,1148.0,1176.0,1204.0,1232.0,1260.0,1288.0,1316.0,1344.0,1372.0,1400.0,1428.0,1456.0,1484.0,1512.0,1540.0,1568.0,1596.0,1624.0,1652.0,1680.0,1708.0,1736.0,1764.0,1792.0,1820.0,1848.0,1876.0,1904.0,1932.0,1960.0,1988.0,2016.0,2044.0,2072.0,2100.0,2128.0,2156.0,2184.0,2212.0,2240.0,2268.0,2296.0,2324.0,2352.0,2380.0,2408.0,2436.0,2464.0,2492.0,2520.0,2548.0,2576.0,2604.0,2632.0,2660.0,2688.0,2716.0,2744.0,2772.0,2800.0],"times":[908821.0,1815806.0,4081615.0,4197224.0,4879906.0,5629976.0,6947133.0,7274569.0,8187997.0,9066644.0,10671319.0,12204946.0,12173524.0,14135027.0,14337931.0,15500387.0,15825067.0,17137899.0,17662780.0,18338251.0,19112292.0,19960486.0,20756119.0,21764780.0,22444127.0,23255341.0,24577727.0,25251682.0,25942556.0,27988154.0,28770655.0,28728922.0,30196579.0,30967421.0,31373543.0,32991890.0,33852487.0,34705800.0,36005677.0,39949371.0,42643657.0,42091536.0,42990021.0,41210378.0,42339067.0,43302004.0,44355634.0,47730627.0,48375438.0,47019774.0,49614727.0,50272495.0,53125068.0,51800540.0,54127752.0,53879477.0,52994997.0,56050281.0,57244885.0,56434229.0,56629303.0,57292157.0,55487985.0,56056212.0,57692878.0,59458082.0,63054675.0,64044783.0,62361334.0,76653749.0,70135044.0,64266473.0,67121954.0,64375936.0,68310913.0,67531109.0,79274298.0,72378925.0,67560177.0,70500775.0,70732523.0,87519567.0,81579462.0,78620645.0,85601614.0,75997868.0,75985925.0,78749252.0,79483815.0,81271664.0,84356569.0,82997539.0,82321589.0,80451884.0,80191041.0,80634887.0,81512775.0,83619433.0,84087921.0,84512625.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unprotected-initializer/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[28.0,56.0,84.0,112.0,140.0,168.0,196.0,224.0,252.0,280.0,308.0,336.0,364.0,392.0,420.0,448.0,476.0,504.0,532.0,560.0,588.0,616.0,644.0,672.0,700.0,728.0,756.0,784.0,812.0,840.0,868.0,896.0,924.0,952.0,980.0,1008.0,1036.0,1064.0,1092.0,1120.0,1148.0,1176.0,1204.0,1232.0,1260.0,1288.0,1316.0,1344.0,1372.0,1400.0,1428.0,1456.0,1484.0,1512.0,1540.0,1568.0,1596.0,1624.0,1652.0,1680.0,1708.0,1736.0,1764.0,1792.0,1820.0,1848.0,1876.0,1904.0,1932.0,1960.0,1988.0,2016.0,2044.0,2072.0,2100.0,2128.0,2156.0,2184.0,2212.0,2240.0,2268.0,2296.0,2324.0,2352.0,2380.0,2408.0,2436.0,2464.0,2492.0,2520.0,2548.0,2576.0,2604.0,2632.0,2660.0,2688.0,2716.0,2744.0,2772.0,2800.0],"times":[908821.0,1815806.0,4081615.0,4197224.0,4879906.0,5629976.0,6947133.0,7274569.0,8187997.0,9066644.0,10671319.0,12204946.0,12173524.0,14135027.0,14337931.0,15500387.0,15825067.0,17137899.0,17662780.0,18338251.0,19112292.0,19960486.0,20756119.0,21764780.0,22444127.0,23255341.0,24577727.0,25251682.0,25942556.0,27988154.0,28770655.0,28728922.0,30196579.0,30967421.0,31373543.0,32991890.0,33852487.0,34705800.0,36005677.0,39949371.0,42643657.0,42091536.0,42990021.0,41210378.0,42339067.0,43302004.0,44355634.0,47730627.0,48375438.0,47019774.0,49614727.0,50272495.0,53125068.0,51800540.0,54127752.0,53879477.0,52994997.0,56050281.0,57244885.0,56434229.0,56629303.0,57292157.0,55487985.0,56056212.0,57692878.0,59458082.0,63054675.0,64044783.0,62361334.0,76653749.0,70135044.0,64266473.0,67121954.0,64375936.0,68310913.0,67531109.0,79274298.0,72378925.0,67560177.0,70500775.0,70732523.0,87519567.0,81579462.0,78620645.0,85601614.0,75997868.0,75985925.0,78749252.0,79483815.0,81271664.0,84356569.0,82997539.0,82321589.0,80451884.0,80191041.0,80634887.0,81512775.0,83619433.0,84087921.0,84512625.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unindexed-events/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[35.0,70.0,105.0,140.0,175.0,210.0,245.0,280.0,315.0,350.0,385.0,420.0,455.0,490.0,525.0,560.0,595.0,630.0,665.0,700.0,735.0,770.0,805.0,840.0,875.0,910.0,945.0,980.0,1015.0,1050.0,1085.0,1120.0,1155.0,1190.0,1225.0,1260.0,1295.0,1330.0,1365.0,1400.0,1435.0,1470.0,1505.0,1540.0,1575.0,1610.0,1645.0,1680.0,1715.0,1750.0,1785.0,1820.0,1855.0,1890.0,1925.0,1960.0,1995.0,2030.0,2065.0,2100.0,2135.0,2170.0,2205.0,2240.0,2275.0,2310.0,2345.0,2380.0,2415.0,2450.0,2485.0,2520.0,2555.0,2590.0,2625.0,2660.0,2695.0,2730.0,2765.0,2800.0,2835.0,2870.0,2905.0,2940.0,2975.0,3010.0,3045.0,3080.0,3115.0,3150.0,3185.0,3220.0,3255.0,3290.0,3325.0,3360.0,3395.0,3430.0,3465.0,3500.0],"times":[958335.0,2077426.0,3185363.0,3839540.0,4855470.0,5856547.0,6714552.0,7576985.0,8559158.0,9553609.0,10622951.0,11455098.0,12529987.0,13416241.0,14583937.0,15384722.0,16321950.0,17913793.0,18412333.0,19231434.0,20250361.0,22821402.0,24593994.0,26958507.0,32381082.0,30267709.0,29684783.0,31159819.0,37094826.0,32347334.0,30708464.0,31204500.0,32415451.0,33346885.0,34281517.0,35289356.0,36515392.0,37937713.0,38106612.0,39073310.0,40506831.0,41577082.0,42658594.0,43221904.0,44146137.0,45349290.0,45957451.0,46804776.0,47353263.0,48082385.0,48741371.0,50405094.0,55101631.0,59154211.0,56297585.0,57477327.0,57770775.0,57550305.0,58493162.0,60235349.0,60649002.0,61349300.0,62516997.0,63602039.0,64428546.0,65850670.0,67249640.0,68171330.0,69333895.0,69085150.0,69950527.0,71762058.0,72558434.0,72911579.0,73791099.0,75564498.0,74437068.0,74052743.0,77328712.0,84143392.0,84322928.0,86386410.0,85114453.0,82962388.0,84264234.0,86357109.0,87040842.0,86911194.0,88239181.0,89365611.0,90769515.0,91082767.0,92247865.0,96152200.0,94705760.0,95865387.0,96702121.0,98328359.0,99600925.0,101679150.0]}
```
--------------------------------------------------------------------------------
/benchmarks/unindexed-events/new/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[35.0,70.0,105.0,140.0,175.0,210.0,245.0,280.0,315.0,350.0,385.0,420.0,455.0,490.0,525.0,560.0,595.0,630.0,665.0,700.0,735.0,770.0,805.0,840.0,875.0,910.0,945.0,980.0,1015.0,1050.0,1085.0,1120.0,1155.0,1190.0,1225.0,1260.0,1295.0,1330.0,1365.0,1400.0,1435.0,1470.0,1505.0,1540.0,1575.0,1610.0,1645.0,1680.0,1715.0,1750.0,1785.0,1820.0,1855.0,1890.0,1925.0,1960.0,1995.0,2030.0,2065.0,2100.0,2135.0,2170.0,2205.0,2240.0,2275.0,2310.0,2345.0,2380.0,2415.0,2450.0,2485.0,2520.0,2555.0,2590.0,2625.0,2660.0,2695.0,2730.0,2765.0,2800.0,2835.0,2870.0,2905.0,2940.0,2975.0,3010.0,3045.0,3080.0,3115.0,3150.0,3185.0,3220.0,3255.0,3290.0,3325.0,3360.0,3395.0,3430.0,3465.0,3500.0],"times":[958335.0,2077426.0,3185363.0,3839540.0,4855470.0,5856547.0,6714552.0,7576985.0,8559158.0,9553609.0,10622951.0,11455098.0,12529987.0,13416241.0,14583937.0,15384722.0,16321950.0,17913793.0,18412333.0,19231434.0,20250361.0,22821402.0,24593994.0,26958507.0,32381082.0,30267709.0,29684783.0,31159819.0,37094826.0,32347334.0,30708464.0,31204500.0,32415451.0,33346885.0,34281517.0,35289356.0,36515392.0,37937713.0,38106612.0,39073310.0,40506831.0,41577082.0,42658594.0,43221904.0,44146137.0,45349290.0,45957451.0,46804776.0,47353263.0,48082385.0,48741371.0,50405094.0,55101631.0,59154211.0,56297585.0,57477327.0,57770775.0,57550305.0,58493162.0,60235349.0,60649002.0,61349300.0,62516997.0,63602039.0,64428546.0,65850670.0,67249640.0,68171330.0,69333895.0,69085150.0,69950527.0,71762058.0,72558434.0,72911579.0,73791099.0,75564498.0,74437068.0,74052743.0,77328712.0,84143392.0,84322928.0,86386410.0,85114453.0,82962388.0,84264234.0,86357109.0,87040842.0,86911194.0,88239181.0,89365611.0,90769515.0,91082767.0,92247865.0,96152200.0,94705760.0,95865387.0,96702121.0,98328359.0,99600925.0,101679150.0]}
```
--------------------------------------------------------------------------------
/benchmarks/useless-modifier/base/sample.json:
--------------------------------------------------------------------------------
```json
{"sampling_mode":"Linear","iters":[38.0,76.0,114.0,152.0,190.0,228.0,266.0,304.0,342.0,380.0,418.0,456.0,494.0,532.0,570.0,608.0,646.0,684.0,722.0,760.0,798.0,836.0,874.0,912.0,950.0,988.0,1026.0,1064.0,1102.0,1140.0,1178.0,1216.0,1254.0,1292.0,1330.0,1368.0,1406.0,1444.0,1482.0,1520.0,1558.0,1596.0,1634.0,1672.0,1710.0,1748.0,1786.0,1824.0,1862.0,1900.0,1938.0,1976.0,2014.0,2052.0,2090.0,2128.0,2166.0,2204.0,2242.0,2280.0,2318.0,2356.0,2394.0,2432.0,2470.0,2508.0,2546.0,2584.0,2622.0,2660.0,2698.0,2736.0,2774.0,2812.0,2850.0,2888.0,2926.0,2964.0,3002.0,3040.0,3078.0,3116.0,3154.0,3192.0,3230.0,3268.0,3306.0,3344.0,3382.0,3420.0,3458.0,3496.0,3534.0,3572.0,3610.0,3648.0,3686.0,3724.0,3762.0,3800.0],"times":[1000898.0,2000658.0,3807676.0,4091968.0,5206770.0,6350277.0,6859289.0,7841732.0,8817467.0,9799552.0,10779046.0,11759737.0,12733736.0,13758813.0,14704430.0,15680763.0,16659286.0,17640217.0,18625698.0,19629828.0,20592056.0,21599075.0,22666452.0,23909303.0,24932891.0,25895033.0,27572095.0,26676194.0,27622190.0,28563879.0,29557504.0,30507407.0,31437487.0,32594366.0,34333954.0,35380791.0,36235845.0,36859005.0,38093053.0,38454785.0,39468062.0,40914708.0,42229769.0,43156227.0,43457740.0,44458366.0,44308156.0,45653806.0,46398753.0,47565302.0,48569982.0,49212044.0,50313290.0,51570394.0,52407741.0,51777198.0,52736932.0,53669727.0,54607475.0,55546355.0,57049228.0,59755668.0,60082371.0,61267901.0,62096520.0,62598997.0,62979669.0,64034286.0,64981992.0,66508255.0,66074139.0,66681259.0,67597767.0,68264472.0,68592499.0,69514326.0,71079081.0,71982434.0,72176626.0,73020188.0,73861073.0,74895962.0,76078298.0,77085484.0,76528190.0,78570632.0,79045423.0,79948318.0,79543362.0,80751638.0,83012160.0,82077868.0,83052316.0,83754813.0,84337927.0,86710827.0,87147209.0,87471193.0,95634828.0,91797079.0]}
```