MCPcopy Create free account

hub / github.com/0xKitsune/solstat / functions

Functions170 in github.com/0xKitsune/solstat

↓ 187 callersMethodinto
(self)
src/analyzer/ast.rs:1054
↓ 38 callersFunctionextract_target_from_node
(target: Target, node: Node)
src/analyzer/ast.rs:233
↓ 33 callersFunctionreport_section_content
()
src/report/report_sections/qa/overview.rs:1
↓ 24 callersMethodexpression
(self)
src/analyzer/ast.rs:992
↓ 10 callersFunctionextract_targets_from_node
(targets: Vec<Target>, node: Node)
src/analyzer/ast.rs:240
↓ 8 callersMethodcontract_part
(self)
src/analyzer/ast.rs:1028
↓ 8 callersMethodsource_unit_part
(self)
src/analyzer/ast.rs:1013
↓ 7 callersFunctionpack_storage_variables_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/pack_storage_variables.rs:9
↓ 5 callersFunctionget_32_byte_storage_variables
( source_unit: pt::SourceUnit, ignore_constants: bool, ignore_immutables: bool, )
src/analyzer/utils.rs:72
↓ 4 callersFunctioncheck_for_address_zero
(box_expression: Box<pt::Expression>)
src/analyzer/optimizations/address_zero.rs:40
↓ 4 callersFunctionget_solidity_major_minor_patch_version
(solidity_version_str: &str)
src/analyzer/utils.rs:215
↓ 4 callersFunctionstorage_slots_used
(variables: Vec<u16>)
src/analyzer/utils.rs:44
↓ 3 callersFunctionanalyze_dir
( target_dir: &str, qa: Vec<QualityAssurance>, )
src/analyzer/qa/mod.rs:47
↓ 3 callersFunctionget_line_number
get line number of start of character range
src/analyzer/utils.rs:27
↓ 3 callersFunctionget_solidity_version_from_source_unit
Returns minor, major, patch version from a contract file
src/analyzer/utils.rs:175
↓ 3 callersFunctionshort_revert_string_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/short_revert_string.rs:11
↓ 3 callersFunctionstring_error_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/string_errors.rs:9
↓ 2 callersFunction_is_selfdestruct
Check if a given function's name is "selfdestruct" or "suicide"
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:103
↓ 2 callersFunctionaddress_balance_optimization
Use selfbalance() instead of address(this).balance()
src/analyzer/optimizations/address_balance.rs:9
↓ 2 callersFunctionaddress_zero_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/address_zero.rs:7
↓ 2 callersFunctionassign_update_array_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/assign_update_array_value.rs:8
↓ 2 callersFunctionbool_equals_bool_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/bool_equals_bool.rs:8
↓ 2 callersFunctioncache_array_length_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/cache_array_length.rs:8
↓ 2 callersFunctioncheck_for_bool_equals_bool
( box_expression: Box<pt::Expression>, box_expression_1: Box<pt::Expression>, )
src/analyzer/optimizations/bool_equals_bool.rs:41
↓ 2 callersFunctioncheck_if_inputs_are_power_of_two
( box_expression: Box<Expression>, box_expression_1: Box<Expression>, )
src/analyzer/optimizations/shift_math.rs:38
↓ 2 callersFunctionconstant_variable_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/constant_variables.rs:9
↓ 2 callersFunctionconstructor_order_qa
Constructor must be placed before any other function
src/analyzer/qa/constructor_order.rs:9
↓ 2 callersFunctiondivide_before_multiply_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/divide_before_multiply.rs:8
↓ 2 callersFunctionfloating_pragma_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/floating_pragma.rs:8
↓ 2 callersFunctionget_solidity_minor_version
(solidity_version_str: &str)
src/analyzer/utils.rs:206
↓ 2 callersFunctionget_type_size
Returns the size of the type in bits
src/analyzer/utils.rs:9
↓ 2 callersFunctionimmutable_variables_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/immutable_variables.rs:9
↓ 2 callersFunctionincrement_decrement_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/increment_decrement.rs:8
↓ 2 callersMethodis_contract_part
(&self)
src/analyzer/ast.rs:1035
↓ 2 callersFunctionmemory_to_calldata_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/memory_to_calldata.rs:8
↓ 2 callersFunctionmultiple_require_optimization
Use multiple require statements instead of one single require statement with multiple conditions
src/analyzer/optimizations/multiple_require.rs:9
↓ 2 callersFunctionoptimal_comparison_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/optimal_comparison.rs:8
↓ 2 callersFunctionpack_struct_variables_optimization
Identifiy opportunities to pack structs to save gas
src/analyzer/optimizations/pack_struct_variables.rs:10
↓ 2 callersFunctionpayable_function_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/payable_function.rs:8
↓ 2 callersFunctionprivate_constant_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/private_constant.rs:7
↓ 2 callersFunctionprivate_func_leading_underscore
(source_unit: SourceUnit)
src/analyzer/qa/private_func_leading_underscore.rs:8
↓ 2 callersFunctionprivate_vars_leading_underscore
(source_unit: SourceUnit)
src/analyzer/qa/private_vars_leading_underscore.rs:9
↓ 2 callersFunctionsafe_math_optimization
(source_unit: SourceUnit, pre_080: bool)
src/analyzer/optimizations/safe_math.rs:17
↓ 2 callersFunctionsafe_math_post_080_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:13
↓ 2 callersFunctionsafe_math_pre_080_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:9
↓ 2 callersFunctionshift_math_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/shift_math.rs:9
↓ 2 callersFunctionsolidity_keccak256_optimization
Use assembly to hash instead of keccak256
src/analyzer/optimizations/solidity_keccak256.rs:9
↓ 2 callersFunctionsolidity_math_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/solidity_math.rs:8
↓ 2 callersFunctionsstore_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/sstore.rs:9
↓ 2 callersMethodstatement
(self)
src/analyzer/ast.rs:999
↓ 2 callersFunctionstruct_can_be_packed
(struct_definition: StructDefinition)
src/analyzer/optimizations/pack_struct_variables.rs:38
↓ 2 callersFunctionunprotected_selfdestruct_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:10
↓ 2 callersFunctionunsafe_erc20_operation_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/unsafe_erc20_operation.rs:8
↓ 2 callersFunctionwalk_node_for_targets
Extract target ast node types from a parent node
src/analyzer/ast.rs:251
↓ 1 callersFunction_contains_msg_sender_conditions
Check if there are any conditions applied on msg.sender examples: `require(msg.sender == owner)` or `check(msg.sender)`
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:144
↓ 1 callersFunction_contains_protection_modifiers
Check if a given function contains any modifier with "only" in its name
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:116
↓ 1 callersFunction_is_public_or_external
Return true if the visibility of a given function is public or external. Return false otherwise.
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:80
↓ 1 callersFunction_template_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/template.rs:8
↓ 1 callersFunction_template_qa
(source_unit: SourceUnit)
src/analyzer/qa/template.rs:8
↓ 1 callersFunction_template_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/template.rs:8
↓ 1 callersFunctionanalyze_for_optimization
( file_contents: &str, file_number: usize, optimization: Optimization, )
src/analyzer/optimizations/mod.rs:204
↓ 1 callersFunctionanalyze_for_qa
( file_contents: &str, file_number: usize, qa: QualityAssurance, )
src/analyzer/qa/mod.rs:103
↓ 1 callersFunctionanalyze_for_vulnerability
( file_contents: &str, file_number: usize, vulnerability: Vulnerability, )
src/analyzer/vulnerabilities/mod.rs:112
↓ 1 callersMethodas_target
(&self)
src/analyzer/ast.rs:980
↓ 1 callersFunctioncheck_if_using_safe_math
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:34
↓ 1 callersFunctioncontract_part_as_target
(contract_part: &pt::ContractPart)
src/analyzer/ast.rs:219
↓ 1 callersFunctionexpression_as_target
(expression: &pt::Expression)
src/analyzer/ast.rs:137
↓ 1 callersFunctionextract_increment_decrement
(node: Node)
src/analyzer/optimizations/increment_decrement.rs:42
↓ 1 callersFunctionextract_pre_increment_pre_decrement
(node: Node)
src/analyzer/optimizations/increment_decrement.rs:79
↓ 1 callersFunctiongenerate_optimization_report
( optimizations: HashMap<Optimization, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/optimization_report.rs:15
↓ 1 callersFunctiongenerate_qa_report
( qa_items: HashMap<QualityAssurance, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/qa_report.rs:12
↓ 1 callersFunctiongenerate_report
( vulnerabilities: HashMap<Vulnerability, Vec<(String, BTreeSet<LineNumber>)>>, optimizations: HashMap
src/report/generation.rs:16
↓ 1 callersFunctiongenerate_vulnerability_report
( vulnerabilities: HashMap<Vulnerability, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/vulnerability_report.rs:12
↓ 1 callersFunctionget_all_optimizations
()
src/analyzer/optimizations/mod.rs:87
↓ 1 callersFunctionget_all_qa
()
src/analyzer/qa/mod.rs:28
↓ 1 callersFunctionget_all_vulnerabilities
()
src/analyzer/vulnerabilities/mod.rs:34
↓ 1 callersFunctionget_function_definition_memory_args
( function_definition: Box<pt::FunctionDefinition>, )
src/analyzer/optimizations/memory_to_calldata.rs:89
↓ 1 callersFunctionget_optimization_report_section
(optimization: Optimization)
src/report/optimization_report.rs:58
↓ 1 callersFunctionget_qa_report_section
(qa: QualityAssurance)
src/report/qa_report.rs:50
↓ 1 callersFunctionget_solidity_major_version
(solidity_version_str: &str)
src/analyzer/utils.rs:202
↓ 1 callersFunctionget_solidity_patch_version
(solidity_version_str: &str)
src/analyzer/utils.rs:210
↓ 1 callersFunctionget_storage_variables_assigned_in_constructor
( source_unit: SourceUnit, storage_variables: HashMap<String, (Option<Vec<pt::VariableAttribute>>, Loc
src/analyzer/optimizations/immutable_variables.rs:230
↓ 1 callersFunctionget_vulnerability_report_section
( vulnerability: Vulnerability, )
src/report/vulnerability_report.rs:89
↓ 1 callersFunctionis_a_non_value_type
(assigned_value: Box<pt::Expression>)
src/analyzer/optimizations/immutable_variables.rs:291
↓ 1 callersMethodis_source_unit_part
(&self)
src/analyzer/ast.rs:1020
↓ 1 callersFunctionparse_contract_for_safe_math_functions
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:72
↓ 1 callersFunctionsource_unit_part_as_target
(source_unit_part: &pt::SourceUnitPart)
src/analyzer/ast.rs:203
↓ 1 callersFunctionstatement_as_target
(statement: &pt::Statement)
src/analyzer/ast.rs:114
↓ 1 callersFunctionstr_to_optimization
(opt: &str)
src/analyzer/optimizations/mod.rs:115
↓ 1 callersFunctionstr_to_qa
(qa: &str)
src/analyzer/qa/mod.rs:36
↓ 1 callersFunctionstr_to_vulnerability
(vuln: &str)
src/analyzer/vulnerabilities/mod.rs:43
Functionanalyze_dir
( target_dir: &str, vulnerabilities: Vec<Vulnerability>, )
src/analyzer/vulnerabilities/mod.rs:55
Functionanalyze_dir
( target_dir: &str, optimizations: Vec<Optimization>, )
src/analyzer/optimizations/mod.rs:147
Functionget_constant_variables
(source_unit: pt::SourceUnit)
src/analyzer/utils.rs:124
Functionget_immutable_variables
(source_unit: pt::SourceUnit)
src/analyzer/utils.rs:149
Functionmain
()
src/main.rs:12
Functionmain
()
examples/parse-contract-into-ast.rs:3
Methodnew
()
src/opts.rs:49
Functionnew_targets
(targets: Vec<Target>)
src/analyzer/ast.rs:104
Functionreport_section_content
()
src/report/report_sections/vulnerabilities/floating_pragma.rs:1
next →1–100 of 170, ranked by callers