Skip to main content

Module arbitrary_send_eth

Module arbitrary_send_eth 

Source

StructsΒ§

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.

ConstantsΒ§

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.

StaticsΒ§

ARBITRARY_SEND_ETH

FunctionsΒ§

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.