Labels: enhancement, checks-crate, good first issue
Crate: checks
Description
crates/checks/src/zero_address.rs (lines ~16-25, ~106-109) matches sensitive function names with SENSITIVE_NAMES.contains(&fn_name.as_str()) — an exact string match against a fixed list (set_owner, set_admin, initialize, init, transfer_ownership, update_admin, set_manager, set_operator). Common real-world variants like set_owner_v2, initialize_admin, try_set_admin, or set_operator_address never match and are silently skipped, even when they accept an unguarded Address and write it to storage.
Closed issue #30 already established prefix-matching precedent for the (different) admin-detection check; this check never received the equivalent treatment.
Acceptance Criteria
Difficulty: beginner
Labels: enhancement, checks-crate, good first issue
Crate: checks
Description
crates/checks/src/zero_address.rs(lines ~16-25, ~106-109) matches sensitive function names withSENSITIVE_NAMES.contains(&fn_name.as_str())— an exact string match against a fixed list (set_owner,set_admin,initialize,init,transfer_ownership,update_admin,set_manager,set_operator). Common real-world variants likeset_owner_v2,initialize_admin,try_set_admin, orset_operator_addressnever match and are silently skipped, even when they accept an unguardedAddressand write it to storage.Closed issue #30 already established prefix-matching precedent for the (different) admin-detection check; this check never received the equivalent treatment.
Acceptance Criteria
SENSITIVE_NAMES(or otherwise fuzzy-match), consistent withunprotected-admin's approach.Difficulty: beginner