def METHOD_NAME(
    max_calldata_bytes,
    seed,
    max_default_args,
    opt_level,
    default_fn_mutability,
    w3,
    get_contract,
    assert_tx_failed,
    get_logs,
):
    def abi_sig(calldata_words, i, n_default_args):
        args = [] if not calldata_words else [f"uint256[{calldata_words}]"]
        args.extend(["uint256"] * n_default_args)
        argstr = ",".join(args)
        return f"foo{seed + i}({argstr})"
    def generate_func_def(mutability, calldata_words, i, n_default_args):
        arglist = [] if not calldata_words else [f"x: uint256[{calldata_words}]"]
        for j in range(n_default_args):
            arglist.append(f"x{j}: uint256 = 0")
        args = ", ".join(arglist)
        _log_return = f"log _Return({i})" if mutability == "@payable" else ""
        return f"""