Skip to main content Module arbitrary_send_eth Copy item path Source Analyzer π AssignedParamCollector π Collects every VariableId that appears as the target of an assignment or delete. FlowState π SelfAliasAnalysis π Memoized state-var self-alias analysis used by caller-restriction checks. SelfAssignScan π Per-function scan state for SelfAliasAnalysis::contract_function_assigns_to_self . HELPER_CALL_DEPTH π Cap helper-call recursion (covers ctor β _init β _initInner β _initLeaf). HELPER_DEPTH π Recursion budget for _msgSender()-style helper chains. SELF_ALIAS_DEPTH π Recursion budget for self-alias chains. ARBITRARY_SEND_ETH arg π Looks up call-site arg pos (positional) or any name in names (named-arg form). arg_for_param π Call-site argument expression bound to param, supporting positional and named args. branch_always_exits π return, custom-error revert, revert(...), or assert(false) / require(false, ...).callee_no_arg_returns π True when callee is a zero-arg function whose body is return <pred-matching>;. collect_modifier_safety π Hoists require(modParam == msg.sender)-style guards from the modifier prefix. collect_stmts_before_placeholder π Statements preceding the unique _; in a modifier body, in execution order. cond_restricts_caller π True when cond entails msg.sender == trusted along every accepting path. count_placeholders π count_placeholders_in_stmt π do_while_user_stmts π Strips the trailing if (...) break; that lowers do { ... } while (cond);. expr_is_array_or_bytes π expr_is_function π expr_restricts_caller π expr_touches_param π True when any sub-expression references one of the supplied VariableIds. expr_ty π find_in_bases_or_self π Applies f to each contract in cidβs linearization, or just cid itself when
linearization failed, returning the first Some result. function_no_arg_returns π True when fid is a zero-parameter function whose body is return expr;,
or namedRet = expr; (with an optional trailing bare return;). function_returns_param π Parameter returned verbatim by a single-statement function body. identity_helper_arg π Resolves a bare id(addr) or library-static Lib.id(addr) identity-helper call. index_is_static π True when every sub-expression of expr is independent of the callβs parameters. invoked_function π Resolves the FunctionId invoked by a modifier or base-constructor invocation. is_address_like_cast_callee π Callee of a single-argument cast that yields an address-shaped value. is_address_self π address(this), payable(this), IFoo(this), IFoo(address(this)), or bare this.is_break_stmt π is_builtin π is_caller_like π Shared shape for msg.sender / tx.origin recognition. is_exit_call π is_literal_zero π is_msg_sender_like π msg.sender modulo parens / casts / payable(...) / no-arg helpers.is_numeric_cast_callee π uint<N>(x) / int<N>(x) cast callee, for unwrapping integer-round-trip launderings.is_require_or_assert π is_trusted_principal_inner π Conservatively recognises deploy-time-fixed caller principals. is_tx_origin_like π tx.origin modulo parens / casts / payable(...) / no-arg helpers.lhs_root_var π Variable at the root of an LHS expression. match_eth_library_call π Recognises common OZ/Solady ETH-sending helpers and returns the destination expression. match_sink π Returns the destination expression when expr is an ETH-sending sink. modifier_function_restricts_caller π modifier_prefix π Returns the modifier function and the statements preceding its unique _; placeholder,
or None when fid is not an eligible single-placeholder modifier. modifier_restricts_caller π True when a modifier reverts unless msg.sender equals a trusted principal. receiver_is_address π True when exprβs static type is address / address payable. stmt_contains_return π True when any reachable statement is return. Used to disqualify caller-restricting
helpers that might return without reverting. stmt_has_break_or_continue π stmt_restricts_caller π tuple_elems π Returns the slot expressions of a tuple literal (after peeling parens), or None when
expr is not a tuple. Slots themselves may be None (gaps in a tuple LHS). tuple_slot π Looks up a single slot from the result of tuple_elems . ty_is_address π underlying_var π Resolves a VariableId for bare idents and address-like wrappers. var_is_address_like π address / address payable or a contract/interface type.