Skip to main content

Module locked_ether

Module locked_ether 

Source

StructsΒ§

SendChecker πŸ”’
HIR visitor that short-circuits on the first ETH-sending expression and queues internally-resolved callees for transitive exploration by the outer worklist loop.

ConstantsΒ§

FALLTHROUGH πŸ”’
NON_REVERT_EXIT πŸ”’
REVERT πŸ”’
What execution of a statement (or list) may do. A block β€œalways reverts” iff its outcome set is exactly REVERT β€” no FALLTHROUGH and no NON_REVERT_EXIT.

StaticsΒ§

LOCKED_ETHER

FunctionsΒ§

args_match πŸ”’
Returns true if args can target params by arity and (when inferable) by type at each position. Arguments whose type cannot be inferred do not reject a candidate.
effective_runtime_dispatch_surface πŸ”’
Runtime entry points reachable on the deployed contract: the most-derived implementation of each (name, parameter signature) plus the most-derived receive / fallback. bases must be the C3 linearization (leaf first). Later entries with the same key are overridden and dropped. Constructors and modifiers are excluded.
expr_sends_ether πŸ”’
Returns true if expr unambiguously moves ETH out of the contract: a non-zero {value: x} call option, .transfer/.send with a non-zero amount, low-level .delegatecall/.callcode (drainable via selfdestruct), or the selfdestruct builtin. Only literal 0 is treated as a zero amount; any other expression is assumed non-zero.
expr_type πŸ”’
Best-effort static type of an expression. Returns None when the type cannot be inferred from the expression’s shape alone; callers treat that as β€œdo not narrow on this position”.
function_always_reverts πŸ”’
Returns true if invoking func always reverts, either via its body or an attached modifier.
is_address_builtin_member πŸ”’
msg.sender, tx.origin, block.coinbase.
is_literal_false πŸ”’
is_literal_zero πŸ”’
Returns true if the expression is the integer literal 0.
is_self_address πŸ”’
Returns true when expr syntactically denotes this contract’s own address: this, address(this), payable(this), a contract/interface cast IFoo(<self>), or any nested combination thereof.
is_type_cast_callee πŸ”’
T(...) callee where T names a type: an elementary type, a contract/interface, or any other item used in a single-argument cast position.
is_unconditional_revert_call πŸ”’
Matches revert()/revert("msg"), require(false[, "msg"]), and assert(false).
modifier_always_reverts πŸ”’
Returns true if the modifier always reverts: before the first _, or after the last one.
parameter_signature πŸ”’
Structural string for a parameter list, used as a hash key to dedup overloads across the inheritance chain.
receiver_is_address πŸ”’
Returns true if expr is statically typed as address/address payable. Contract-typed receivers are intentionally rejected: .transfer / .send on them dispatch to a user-defined member, not the EVM opcode.
resolve_member_return_type πŸ”’
Single-return type of name defined on cid or any of its bases, restricted to overloads compatible with args. Walks the linearization most-derived first.
single_return_type πŸ”’
Return type of fid when it has exactly one return value.
stmt_outcomes πŸ”’
stmts_always_revert πŸ”’
stmts_outcomes πŸ”’
Walks stmts left-to-right. Each statement’s outcome set replaces the prior FALLTHROUGH bit (since we only reach the next stmt by falling through). We stop as soon as a stmt cannot fall through, because nothing after it is reachable.
struct_field_type πŸ”’
Type of struct field name declared in sid.
types_compatible πŸ”’
Conservative type-compatibility check: only obvious matches and standard widenings count. Anything else returns false.
write_type_signature πŸ”’