diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index 4cb508fae6..2f75c39016 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1294,7 +1294,12 @@ def convert_to_solidity_func( and len(new_ir.arguments) == 2 and isinstance(new_ir.arguments[1], list) ): - types = list(new_ir.arguments[1]) + types = [] + for arg_type in new_ir.arguments[1]: + decode_type = arg_type + if isinstance(decode_type, (Structure, Enum, Contract)): + decode_type = UserDefinedType(decode_type) + types.append(decode_type) new_ir.lvalue.set_type(types) # abi.decode where the type to decode is a singleton # abi.decode(a, (uint))