@@ -47,6 +47,34 @@ def name_to_address_middleware(w3: "Web3") -> Middleware:
4747# -- async -- #
4848
4949
50+ async def async_format_all_ens_names_to_address (
51+ async_web3 : "AsyncWeb3" ,
52+ abi_types_for_method : Sequence [Any ],
53+ data : Sequence [Any ],
54+ ) -> Sequence [Any ]:
55+ abi_typed_params = abi_data_tree (abi_types_for_method , data )
56+
57+ formatted_params = []
58+ for param in abi_typed_params :
59+ if param .abi_type == "address[]" :
60+ # handle name conversion in an address list
61+ # Note: only supports single list atm, as is true the sync middleware
62+ # TODO: handle address[][], etc...
63+ formatted_data = await async_format_all_ens_names_to_address (
64+ async_web3 ,
65+ [param .abi_type [:- 2 ]] * len (param .data ),
66+ [subparam .data for subparam in param .data ],
67+ )
68+ else :
69+ _abi_type , formatted_data = await async_abi_ens_resolver (
70+ async_web3 ,
71+ param .abi_type ,
72+ param .data ,
73+ )
74+ formatted_params .append (formatted_data )
75+ return formatted_params
76+
77+
5078async def async_apply_ens_to_address_conversion (
5179 async_web3 : "AsyncWeb3" ,
5280 params : Any ,
@@ -75,23 +103,6 @@ async def async_apply_ens_to_address_conversion(
75103 )
76104
77105
78- async def async_format_all_ens_names_to_address (
79- async_web3 : "AsyncWeb3" ,
80- abi_types_for_method : Sequence [Any ],
81- abi_typed_data : Sequence [Any ],
82- ) -> Sequence [Any ]:
83- formatted_params = []
84- abi_typed_params = abi_data_tree (abi_types_for_method , abi_typed_data )
85- for param in abi_typed_params :
86- _abi_type , formatted_data = await async_abi_ens_resolver (
87- async_web3 ,
88- param .abi_type ,
89- param .data ,
90- )
91- formatted_params .append (formatted_data )
92- return formatted_params
93-
94-
95106async def async_name_to_address_middleware (
96107 make_request : Callable [[RPCEndpoint , Any ], Any ],
97108 async_w3 : "AsyncWeb3" ,
0 commit comments