slither.utils.using_for
1from typing import Dict, List, TYPE_CHECKING, Union 2from slither.core.solidity_types import Type, UserDefinedType 3 4if TYPE_CHECKING: 5 from slither.core.declarations import Function 6 7USING_FOR_KEY = Union[str, Type] # "*" is wildcard 8USING_FOR_ITEM = List[Union[UserDefinedType, "Function"]] # UserDefinedType.type is a library 9USING_FOR = Dict[USING_FOR_KEY, USING_FOR_ITEM] 10 11 12def merge_using_for(uf1: USING_FOR, uf2: USING_FOR) -> USING_FOR: 13 result = {**uf1, **uf2} 14 for key, value in result.items(): 15 if key in uf1 and key in uf2: 16 result[key] = value + uf1[key] 17 return result
USING_FOR_KEY =
typing.Union[str, slither.core.solidity_types.type.Type]
USING_FOR_ITEM =
typing.List[typing.Union[slither.core.solidity_types.user_defined_type.UserDefinedType, ForwardRef('Function')]]
USING_FOR =
typing.Dict[typing.Union[str, slither.core.solidity_types.type.Type], typing.List[typing.Union[slither.core.solidity_types.user_defined_type.UserDefinedType, ForwardRef('Function')]]]
def
merge_using_for( uf1: dict[typing.Union[str, slither.core.solidity_types.type.Type], list[typing.Union[slither.core.solidity_types.user_defined_type.UserDefinedType, slither.core.declarations.function.Function]]], uf2: dict[typing.Union[str, slither.core.solidity_types.type.Type], list[typing.Union[slither.core.solidity_types.user_defined_type.UserDefinedType, slither.core.declarations.function.Function]]]) -> dict[typing.Union[str, slither.core.solidity_types.type.Type], list[typing.Union[slither.core.solidity_types.user_defined_type.UserDefinedType, slither.core.declarations.function.Function]]]: