Resolves positional or named call args to a fixed positional ordering. aliases[i]
holds the parameter names accepted for slot i in the named form. Returns None if
arity differs or any slot is unmatched.
Hoists require(modParam == msg.sender | address(this)) guards from the modifier
prefix (statements before _;) to the callerβs argument. out_self receives params
proven equal to address(this).
4-arg safeTransferFrom(token, address, address, uint256). token is either address
(Solady) or a contract declaring ERC20βs transferFrom(...)βbool (OZ SafeERC20);
ERC721/1155 helpers are excluded since their transferFrom has no return.
EIP-3156 onFlashLoan(address,address,uint256,uint256,bytes) returns (bytes32). Only
returns a record when the receiver type declares the exact sig and every tracked arg
resolves to a VariableId; literal args yield None.
Matches an ERC20-like transfer sink. Returns (from_arg, token_var) where token_var is
the receiverβs underlying variable id when available (used for permit correlation).
Resolves a callβs callee to a FunctionId for plain name() / this.name()
patterns inside the same contract. Returns None for external / library /
member-of-state-var / unresolved calls.
Constructs a TokenKey for the receiver of a permit/sink call. Supports
<var> (with cast / payable peeling via underlying_var) and
<var>.<field> (a struct-field path).