Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/0xKitsune/solstat
/ functions
Functions
170 in github.com/0xKitsune/solstat
⨍
Functions
170
◇
Types & classes
9
↓ 187 callers
Method
into
(self)
src/analyzer/ast.rs:1054
↓ 38 callers
Function
extract_target_from_node
(target: Target, node: Node)
src/analyzer/ast.rs:233
↓ 33 callers
Function
report_section_content
()
src/report/report_sections/qa/overview.rs:1
↓ 24 callers
Method
expression
(self)
src/analyzer/ast.rs:992
↓ 10 callers
Function
extract_targets_from_node
(targets: Vec<Target>, node: Node)
src/analyzer/ast.rs:240
↓ 8 callers
Method
contract_part
(self)
src/analyzer/ast.rs:1028
↓ 8 callers
Method
source_unit_part
(self)
src/analyzer/ast.rs:1013
↓ 7 callers
Function
pack_storage_variables_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/pack_storage_variables.rs:9
↓ 5 callers
Function
get_32_byte_storage_variables
( source_unit: pt::SourceUnit, ignore_constants: bool, ignore_immutables: bool, )
src/analyzer/utils.rs:72
↓ 4 callers
Function
check_for_address_zero
(box_expression: Box<pt::Expression>)
src/analyzer/optimizations/address_zero.rs:40
↓ 4 callers
Function
get_solidity_major_minor_patch_version
(solidity_version_str: &str)
src/analyzer/utils.rs:215
↓ 4 callers
Function
storage_slots_used
(variables: Vec<u16>)
src/analyzer/utils.rs:44
↓ 3 callers
Function
analyze_dir
( target_dir: &str, qa: Vec<QualityAssurance>, )
src/analyzer/qa/mod.rs:47
↓ 3 callers
Function
get_line_number
get line number of start of character range
src/analyzer/utils.rs:27
↓ 3 callers
Function
get_solidity_version_from_source_unit
Returns minor, major, patch version from a contract file
src/analyzer/utils.rs:175
↓ 3 callers
Function
short_revert_string_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/short_revert_string.rs:11
↓ 3 callers
Function
string_error_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/string_errors.rs:9
↓ 2 callers
Function
_is_selfdestruct
Check if a given function's name is "selfdestruct" or "suicide"
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:103
↓ 2 callers
Function
address_balance_optimization
Use selfbalance() instead of address(this).balance()
src/analyzer/optimizations/address_balance.rs:9
↓ 2 callers
Function
address_zero_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/address_zero.rs:7
↓ 2 callers
Function
assign_update_array_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/assign_update_array_value.rs:8
↓ 2 callers
Function
bool_equals_bool_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/bool_equals_bool.rs:8
↓ 2 callers
Function
cache_array_length_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/cache_array_length.rs:8
↓ 2 callers
Function
check_for_bool_equals_bool
( box_expression: Box<pt::Expression>, box_expression_1: Box<pt::Expression>, )
src/analyzer/optimizations/bool_equals_bool.rs:41
↓ 2 callers
Function
check_if_inputs_are_power_of_two
( box_expression: Box<Expression>, box_expression_1: Box<Expression>, )
src/analyzer/optimizations/shift_math.rs:38
↓ 2 callers
Function
constant_variable_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/constant_variables.rs:9
↓ 2 callers
Function
constructor_order_qa
Constructor must be placed before any other function
src/analyzer/qa/constructor_order.rs:9
↓ 2 callers
Function
divide_before_multiply_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/divide_before_multiply.rs:8
↓ 2 callers
Function
floating_pragma_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/floating_pragma.rs:8
↓ 2 callers
Function
get_solidity_minor_version
(solidity_version_str: &str)
src/analyzer/utils.rs:206
↓ 2 callers
Function
get_type_size
Returns the size of the type in bits
src/analyzer/utils.rs:9
↓ 2 callers
Function
immutable_variables_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/immutable_variables.rs:9
↓ 2 callers
Function
increment_decrement_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/increment_decrement.rs:8
↓ 2 callers
Method
is_contract_part
(&self)
src/analyzer/ast.rs:1035
↓ 2 callers
Function
memory_to_calldata_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/memory_to_calldata.rs:8
↓ 2 callers
Function
multiple_require_optimization
Use multiple require statements instead of one single require statement with multiple conditions
src/analyzer/optimizations/multiple_require.rs:9
↓ 2 callers
Function
optimal_comparison_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/optimal_comparison.rs:8
↓ 2 callers
Function
pack_struct_variables_optimization
Identifiy opportunities to pack structs to save gas
src/analyzer/optimizations/pack_struct_variables.rs:10
↓ 2 callers
Function
payable_function_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/payable_function.rs:8
↓ 2 callers
Function
private_constant_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/private_constant.rs:7
↓ 2 callers
Function
private_func_leading_underscore
(source_unit: SourceUnit)
src/analyzer/qa/private_func_leading_underscore.rs:8
↓ 2 callers
Function
private_vars_leading_underscore
(source_unit: SourceUnit)
src/analyzer/qa/private_vars_leading_underscore.rs:9
↓ 2 callers
Function
safe_math_optimization
(source_unit: SourceUnit, pre_080: bool)
src/analyzer/optimizations/safe_math.rs:17
↓ 2 callers
Function
safe_math_post_080_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:13
↓ 2 callers
Function
safe_math_pre_080_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:9
↓ 2 callers
Function
shift_math_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/shift_math.rs:9
↓ 2 callers
Function
solidity_keccak256_optimization
Use assembly to hash instead of keccak256
src/analyzer/optimizations/solidity_keccak256.rs:9
↓ 2 callers
Function
solidity_math_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/solidity_math.rs:8
↓ 2 callers
Function
sstore_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/sstore.rs:9
↓ 2 callers
Method
statement
(self)
src/analyzer/ast.rs:999
↓ 2 callers
Function
struct_can_be_packed
(struct_definition: StructDefinition)
src/analyzer/optimizations/pack_struct_variables.rs:38
↓ 2 callers
Function
unprotected_selfdestruct_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:10
↓ 2 callers
Function
unsafe_erc20_operation_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/unsafe_erc20_operation.rs:8
↓ 2 callers
Function
walk_node_for_targets
Extract target ast node types from a parent node
src/analyzer/ast.rs:251
↓ 1 callers
Function
_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 callers
Function
_contains_protection_modifiers
Check if a given function contains any modifier with "only" in its name
src/analyzer/vulnerabilities/unprotected_selfdestruct.rs:116
↓ 1 callers
Function
_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 callers
Function
_template_optimization
(source_unit: SourceUnit)
src/analyzer/optimizations/template.rs:8
↓ 1 callers
Function
_template_qa
(source_unit: SourceUnit)
src/analyzer/qa/template.rs:8
↓ 1 callers
Function
_template_vulnerability
(source_unit: SourceUnit)
src/analyzer/vulnerabilities/template.rs:8
↓ 1 callers
Function
analyze_for_optimization
( file_contents: &str, file_number: usize, optimization: Optimization, )
src/analyzer/optimizations/mod.rs:204
↓ 1 callers
Function
analyze_for_qa
( file_contents: &str, file_number: usize, qa: QualityAssurance, )
src/analyzer/qa/mod.rs:103
↓ 1 callers
Function
analyze_for_vulnerability
( file_contents: &str, file_number: usize, vulnerability: Vulnerability, )
src/analyzer/vulnerabilities/mod.rs:112
↓ 1 callers
Method
as_target
(&self)
src/analyzer/ast.rs:980
↓ 1 callers
Function
check_if_using_safe_math
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:34
↓ 1 callers
Function
contract_part_as_target
(contract_part: &pt::ContractPart)
src/analyzer/ast.rs:219
↓ 1 callers
Function
expression_as_target
(expression: &pt::Expression)
src/analyzer/ast.rs:137
↓ 1 callers
Function
extract_increment_decrement
(node: Node)
src/analyzer/optimizations/increment_decrement.rs:42
↓ 1 callers
Function
extract_pre_increment_pre_decrement
(node: Node)
src/analyzer/optimizations/increment_decrement.rs:79
↓ 1 callers
Function
generate_optimization_report
( optimizations: HashMap<Optimization, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/optimization_report.rs:15
↓ 1 callers
Function
generate_qa_report
( qa_items: HashMap<QualityAssurance, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/qa_report.rs:12
↓ 1 callers
Function
generate_report
( vulnerabilities: HashMap<Vulnerability, Vec<(String, BTreeSet<LineNumber>)>>, optimizations: HashMap
src/report/generation.rs:16
↓ 1 callers
Function
generate_vulnerability_report
( vulnerabilities: HashMap<Vulnerability, Vec<(String, BTreeSet<LineNumber>)>>, )
src/report/vulnerability_report.rs:12
↓ 1 callers
Function
get_all_optimizations
()
src/analyzer/optimizations/mod.rs:87
↓ 1 callers
Function
get_all_qa
()
src/analyzer/qa/mod.rs:28
↓ 1 callers
Function
get_all_vulnerabilities
()
src/analyzer/vulnerabilities/mod.rs:34
↓ 1 callers
Function
get_function_definition_memory_args
( function_definition: Box<pt::FunctionDefinition>, )
src/analyzer/optimizations/memory_to_calldata.rs:89
↓ 1 callers
Function
get_optimization_report_section
(optimization: Optimization)
src/report/optimization_report.rs:58
↓ 1 callers
Function
get_qa_report_section
(qa: QualityAssurance)
src/report/qa_report.rs:50
↓ 1 callers
Function
get_solidity_major_version
(solidity_version_str: &str)
src/analyzer/utils.rs:202
↓ 1 callers
Function
get_solidity_patch_version
(solidity_version_str: &str)
src/analyzer/utils.rs:210
↓ 1 callers
Function
get_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 callers
Function
get_vulnerability_report_section
( vulnerability: Vulnerability, )
src/report/vulnerability_report.rs:89
↓ 1 callers
Function
is_a_non_value_type
(assigned_value: Box<pt::Expression>)
src/analyzer/optimizations/immutable_variables.rs:291
↓ 1 callers
Method
is_source_unit_part
(&self)
src/analyzer/ast.rs:1020
↓ 1 callers
Function
parse_contract_for_safe_math_functions
(source_unit: SourceUnit)
src/analyzer/optimizations/safe_math.rs:72
↓ 1 callers
Function
source_unit_part_as_target
(source_unit_part: &pt::SourceUnitPart)
src/analyzer/ast.rs:203
↓ 1 callers
Function
statement_as_target
(statement: &pt::Statement)
src/analyzer/ast.rs:114
↓ 1 callers
Function
str_to_optimization
(opt: &str)
src/analyzer/optimizations/mod.rs:115
↓ 1 callers
Function
str_to_qa
(qa: &str)
src/analyzer/qa/mod.rs:36
↓ 1 callers
Function
str_to_vulnerability
(vuln: &str)
src/analyzer/vulnerabilities/mod.rs:43
Function
analyze_dir
( target_dir: &str, vulnerabilities: Vec<Vulnerability>, )
src/analyzer/vulnerabilities/mod.rs:55
Function
analyze_dir
( target_dir: &str, optimizations: Vec<Optimization>, )
src/analyzer/optimizations/mod.rs:147
Function
get_constant_variables
(source_unit: pt::SourceUnit)
src/analyzer/utils.rs:124
Function
get_immutable_variables
(source_unit: pt::SourceUnit)
src/analyzer/utils.rs:149
Function
main
()
src/main.rs:12
Function
main
()
examples/parse-contract-into-ast.rs:3
Method
new
()
src/opts.rs:49
Function
new_targets
(targets: Vec<Target>)
src/analyzer/ast.rs:104
Function
report_section_content
()
src/report/report_sections/vulnerabilities/floating_pragma.rs:1
next →
1–100 of 170, ranked by callers