openzeppelin_rs/contracts/
IAccessControlEnumerable.rs

1pub use i_access_control_enumerable::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod i_access_control_enumerable {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"RoleGranted\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"RoleRevoked\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"grantRole\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"renounceRole\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"revokeRole\",\"outputs\":[]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static IACCESSCONTROLENUMERABLE_ABI: ::ethers_contract::Lazy<
17        ::ethers_core::abi::Abi,
18    > = ::ethers_contract::Lazy::new(|| {
19        ::ethers_core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")
20    });
21    pub struct IAccessControlEnumerable<M>(::ethers_contract::Contract<M>);
22    impl<M> ::core::clone::Clone for IAccessControlEnumerable<M> {
23        fn clone(&self) -> Self {
24            Self(::core::clone::Clone::clone(&self.0))
25        }
26    }
27    impl<M> ::core::ops::Deref for IAccessControlEnumerable<M> {
28        type Target = ::ethers_contract::Contract<M>;
29        fn deref(&self) -> &Self::Target {
30            &self.0
31        }
32    }
33    impl<M> ::core::ops::DerefMut for IAccessControlEnumerable<M> {
34        fn deref_mut(&mut self) -> &mut Self::Target {
35            &mut self.0
36        }
37    }
38    impl<M> ::core::fmt::Debug for IAccessControlEnumerable<M> {
39        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
40            f.debug_tuple(stringify!(IAccessControlEnumerable))
41                .field(&self.address())
42                .finish()
43        }
44    }
45    impl<M: ::ethers_providers::Middleware> IAccessControlEnumerable<M> {
46        /// Creates a new contract instance with the specified `ethers` client at
47        /// `address`. The contract derefs to a `ethers::Contract` object.
48        pub fn new<T: Into<::ethers_core::types::Address>>(
49            address: T,
50            client: ::std::sync::Arc<M>,
51        ) -> Self {
52            Self(
53                ::ethers_contract::Contract::new(
54                    address.into(),
55                    IACCESSCONTROLENUMERABLE_ABI.clone(),
56                    client,
57                ),
58            )
59        }
60        ///Calls the contract's `getRoleAdmin` (0x248a9ca3) function
61        pub fn get_role_admin(
62            &self,
63            role: [u8; 32],
64        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
65            self.0
66                .method_hash([36, 138, 156, 163], role)
67                .expect("method not found (this should never happen)")
68        }
69        ///Calls the contract's `getRoleMember` (0x9010d07c) function
70        pub fn get_role_member(
71            &self,
72            role: [u8; 32],
73            index: ::ethers_core::types::U256,
74        ) -> ::ethers_contract::builders::ContractCall<
75            M,
76            ::ethers_core::types::Address,
77        > {
78            self.0
79                .method_hash([144, 16, 208, 124], (role, index))
80                .expect("method not found (this should never happen)")
81        }
82        ///Calls the contract's `getRoleMemberCount` (0xca15c873) function
83        pub fn get_role_member_count(
84            &self,
85            role: [u8; 32],
86        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
87            self.0
88                .method_hash([202, 21, 200, 115], role)
89                .expect("method not found (this should never happen)")
90        }
91        ///Calls the contract's `grantRole` (0x2f2ff15d) function
92        pub fn grant_role(
93            &self,
94            role: [u8; 32],
95            account: ::ethers_core::types::Address,
96        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
97            self.0
98                .method_hash([47, 47, 241, 93], (role, account))
99                .expect("method not found (this should never happen)")
100        }
101        ///Calls the contract's `hasRole` (0x91d14854) function
102        pub fn has_role(
103            &self,
104            role: [u8; 32],
105            account: ::ethers_core::types::Address,
106        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
107            self.0
108                .method_hash([145, 209, 72, 84], (role, account))
109                .expect("method not found (this should never happen)")
110        }
111        ///Calls the contract's `renounceRole` (0x36568abe) function
112        pub fn renounce_role(
113            &self,
114            role: [u8; 32],
115            account: ::ethers_core::types::Address,
116        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
117            self.0
118                .method_hash([54, 86, 138, 190], (role, account))
119                .expect("method not found (this should never happen)")
120        }
121        ///Calls the contract's `revokeRole` (0xd547741f) function
122        pub fn revoke_role(
123            &self,
124            role: [u8; 32],
125            account: ::ethers_core::types::Address,
126        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
127            self.0
128                .method_hash([213, 71, 116, 31], (role, account))
129                .expect("method not found (this should never happen)")
130        }
131        ///Gets the contract's `RoleAdminChanged` event
132        pub fn role_admin_changed_filter(
133            &self,
134        ) -> ::ethers_contract::builders::Event<
135            ::std::sync::Arc<M>,
136            M,
137            RoleAdminChangedFilter,
138        > {
139            self.0.event()
140        }
141        ///Gets the contract's `RoleGranted` event
142        pub fn role_granted_filter(
143            &self,
144        ) -> ::ethers_contract::builders::Event<
145            ::std::sync::Arc<M>,
146            M,
147            RoleGrantedFilter,
148        > {
149            self.0.event()
150        }
151        ///Gets the contract's `RoleRevoked` event
152        pub fn role_revoked_filter(
153            &self,
154        ) -> ::ethers_contract::builders::Event<
155            ::std::sync::Arc<M>,
156            M,
157            RoleRevokedFilter,
158        > {
159            self.0.event()
160        }
161        /// Returns an `Event` builder for all the events of this contract.
162        pub fn events(
163            &self,
164        ) -> ::ethers_contract::builders::Event<
165            ::std::sync::Arc<M>,
166            M,
167            IAccessControlEnumerableEvents,
168        > {
169            self.0.event_with_filter(::core::default::Default::default())
170        }
171    }
172    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
173    for IAccessControlEnumerable<M> {
174        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
175            Self::new(contract.address(), contract.client())
176        }
177    }
178    #[derive(
179        Clone,
180        ::ethers_contract::EthEvent,
181        ::ethers_contract::EthDisplay,
182        Default,
183        Debug,
184        PartialEq,
185        Eq,
186        Hash
187    )]
188    #[ethevent(
189        name = "RoleAdminChanged",
190        abi = "RoleAdminChanged(bytes32,bytes32,bytes32)"
191    )]
192    pub struct RoleAdminChangedFilter {
193        #[ethevent(indexed)]
194        pub role: [u8; 32],
195        #[ethevent(indexed)]
196        pub previous_admin_role: [u8; 32],
197        #[ethevent(indexed)]
198        pub new_admin_role: [u8; 32],
199    }
200    #[derive(
201        Clone,
202        ::ethers_contract::EthEvent,
203        ::ethers_contract::EthDisplay,
204        Default,
205        Debug,
206        PartialEq,
207        Eq,
208        Hash
209    )]
210    #[ethevent(name = "RoleGranted", abi = "RoleGranted(bytes32,address,address)")]
211    pub struct RoleGrantedFilter {
212        #[ethevent(indexed)]
213        pub role: [u8; 32],
214        #[ethevent(indexed)]
215        pub account: ::ethers_core::types::Address,
216        #[ethevent(indexed)]
217        pub sender: ::ethers_core::types::Address,
218    }
219    #[derive(
220        Clone,
221        ::ethers_contract::EthEvent,
222        ::ethers_contract::EthDisplay,
223        Default,
224        Debug,
225        PartialEq,
226        Eq,
227        Hash
228    )]
229    #[ethevent(name = "RoleRevoked", abi = "RoleRevoked(bytes32,address,address)")]
230    pub struct RoleRevokedFilter {
231        #[ethevent(indexed)]
232        pub role: [u8; 32],
233        #[ethevent(indexed)]
234        pub account: ::ethers_core::types::Address,
235        #[ethevent(indexed)]
236        pub sender: ::ethers_core::types::Address,
237    }
238    ///Container type for all of the contract's events
239    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
240    pub enum IAccessControlEnumerableEvents {
241        RoleAdminChangedFilter(RoleAdminChangedFilter),
242        RoleGrantedFilter(RoleGrantedFilter),
243        RoleRevokedFilter(RoleRevokedFilter),
244    }
245    impl ::ethers_contract::EthLogDecode for IAccessControlEnumerableEvents {
246        fn decode_log(
247            log: &::ethers_core::abi::RawLog,
248        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
249            if let Ok(decoded) = RoleAdminChangedFilter::decode_log(log) {
250                return Ok(
251                    IAccessControlEnumerableEvents::RoleAdminChangedFilter(decoded),
252                );
253            }
254            if let Ok(decoded) = RoleGrantedFilter::decode_log(log) {
255                return Ok(IAccessControlEnumerableEvents::RoleGrantedFilter(decoded));
256            }
257            if let Ok(decoded) = RoleRevokedFilter::decode_log(log) {
258                return Ok(IAccessControlEnumerableEvents::RoleRevokedFilter(decoded));
259            }
260            Err(::ethers_core::abi::Error::InvalidData)
261        }
262    }
263    impl ::core::fmt::Display for IAccessControlEnumerableEvents {
264        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
265            match self {
266                Self::RoleAdminChangedFilter(element) => {
267                    ::core::fmt::Display::fmt(element, f)
268                }
269                Self::RoleGrantedFilter(element) => ::core::fmt::Display::fmt(element, f),
270                Self::RoleRevokedFilter(element) => ::core::fmt::Display::fmt(element, f),
271            }
272        }
273    }
274    impl ::core::convert::From<RoleAdminChangedFilter>
275    for IAccessControlEnumerableEvents {
276        fn from(value: RoleAdminChangedFilter) -> Self {
277            Self::RoleAdminChangedFilter(value)
278        }
279    }
280    impl ::core::convert::From<RoleGrantedFilter> for IAccessControlEnumerableEvents {
281        fn from(value: RoleGrantedFilter) -> Self {
282            Self::RoleGrantedFilter(value)
283        }
284    }
285    impl ::core::convert::From<RoleRevokedFilter> for IAccessControlEnumerableEvents {
286        fn from(value: RoleRevokedFilter) -> Self {
287            Self::RoleRevokedFilter(value)
288        }
289    }
290    ///Container type for all input parameters for the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
291    #[derive(
292        Clone,
293        ::ethers_contract::EthCall,
294        ::ethers_contract::EthDisplay,
295        Default,
296        Debug,
297        PartialEq,
298        Eq,
299        Hash
300    )]
301    #[ethcall(name = "getRoleAdmin", abi = "getRoleAdmin(bytes32)")]
302    pub struct GetRoleAdminCall {
303        pub role: [u8; 32],
304    }
305    ///Container type for all input parameters for the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
306    #[derive(
307        Clone,
308        ::ethers_contract::EthCall,
309        ::ethers_contract::EthDisplay,
310        Default,
311        Debug,
312        PartialEq,
313        Eq,
314        Hash
315    )]
316    #[ethcall(name = "getRoleMember", abi = "getRoleMember(bytes32,uint256)")]
317    pub struct GetRoleMemberCall {
318        pub role: [u8; 32],
319        pub index: ::ethers_core::types::U256,
320    }
321    ///Container type for all input parameters for the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
322    #[derive(
323        Clone,
324        ::ethers_contract::EthCall,
325        ::ethers_contract::EthDisplay,
326        Default,
327        Debug,
328        PartialEq,
329        Eq,
330        Hash
331    )]
332    #[ethcall(name = "getRoleMemberCount", abi = "getRoleMemberCount(bytes32)")]
333    pub struct GetRoleMemberCountCall {
334        pub role: [u8; 32],
335    }
336    ///Container type for all input parameters for the `grantRole` function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`
337    #[derive(
338        Clone,
339        ::ethers_contract::EthCall,
340        ::ethers_contract::EthDisplay,
341        Default,
342        Debug,
343        PartialEq,
344        Eq,
345        Hash
346    )]
347    #[ethcall(name = "grantRole", abi = "grantRole(bytes32,address)")]
348    pub struct GrantRoleCall {
349        pub role: [u8; 32],
350        pub account: ::ethers_core::types::Address,
351    }
352    ///Container type for all input parameters for the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
353    #[derive(
354        Clone,
355        ::ethers_contract::EthCall,
356        ::ethers_contract::EthDisplay,
357        Default,
358        Debug,
359        PartialEq,
360        Eq,
361        Hash
362    )]
363    #[ethcall(name = "hasRole", abi = "hasRole(bytes32,address)")]
364    pub struct HasRoleCall {
365        pub role: [u8; 32],
366        pub account: ::ethers_core::types::Address,
367    }
368    ///Container type for all input parameters for the `renounceRole` function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`
369    #[derive(
370        Clone,
371        ::ethers_contract::EthCall,
372        ::ethers_contract::EthDisplay,
373        Default,
374        Debug,
375        PartialEq,
376        Eq,
377        Hash
378    )]
379    #[ethcall(name = "renounceRole", abi = "renounceRole(bytes32,address)")]
380    pub struct RenounceRoleCall {
381        pub role: [u8; 32],
382        pub account: ::ethers_core::types::Address,
383    }
384    ///Container type for all input parameters for the `revokeRole` function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`
385    #[derive(
386        Clone,
387        ::ethers_contract::EthCall,
388        ::ethers_contract::EthDisplay,
389        Default,
390        Debug,
391        PartialEq,
392        Eq,
393        Hash
394    )]
395    #[ethcall(name = "revokeRole", abi = "revokeRole(bytes32,address)")]
396    pub struct RevokeRoleCall {
397        pub role: [u8; 32],
398        pub account: ::ethers_core::types::Address,
399    }
400    ///Container type for all of the contract's call
401    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
402    pub enum IAccessControlEnumerableCalls {
403        GetRoleAdmin(GetRoleAdminCall),
404        GetRoleMember(GetRoleMemberCall),
405        GetRoleMemberCount(GetRoleMemberCountCall),
406        GrantRole(GrantRoleCall),
407        HasRole(HasRoleCall),
408        RenounceRole(RenounceRoleCall),
409        RevokeRole(RevokeRoleCall),
410    }
411    impl ::ethers_core::abi::AbiDecode for IAccessControlEnumerableCalls {
412        fn decode(
413            data: impl AsRef<[u8]>,
414        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
415            let data = data.as_ref();
416            if let Ok(decoded)
417                = <GetRoleAdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
418                return Ok(Self::GetRoleAdmin(decoded));
419            }
420            if let Ok(decoded)
421                = <GetRoleMemberCall as ::ethers_core::abi::AbiDecode>::decode(data) {
422                return Ok(Self::GetRoleMember(decoded));
423            }
424            if let Ok(decoded)
425                = <GetRoleMemberCountCall as ::ethers_core::abi::AbiDecode>::decode(
426                    data,
427                ) {
428                return Ok(Self::GetRoleMemberCount(decoded));
429            }
430            if let Ok(decoded)
431                = <GrantRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
432                return Ok(Self::GrantRole(decoded));
433            }
434            if let Ok(decoded)
435                = <HasRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
436                return Ok(Self::HasRole(decoded));
437            }
438            if let Ok(decoded)
439                = <RenounceRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
440                return Ok(Self::RenounceRole(decoded));
441            }
442            if let Ok(decoded)
443                = <RevokeRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
444                return Ok(Self::RevokeRole(decoded));
445            }
446            Err(::ethers_core::abi::Error::InvalidData.into())
447        }
448    }
449    impl ::ethers_core::abi::AbiEncode for IAccessControlEnumerableCalls {
450        fn encode(self) -> Vec<u8> {
451            match self {
452                Self::GetRoleAdmin(element) => {
453                    ::ethers_core::abi::AbiEncode::encode(element)
454                }
455                Self::GetRoleMember(element) => {
456                    ::ethers_core::abi::AbiEncode::encode(element)
457                }
458                Self::GetRoleMemberCount(element) => {
459                    ::ethers_core::abi::AbiEncode::encode(element)
460                }
461                Self::GrantRole(element) => {
462                    ::ethers_core::abi::AbiEncode::encode(element)
463                }
464                Self::HasRole(element) => ::ethers_core::abi::AbiEncode::encode(element),
465                Self::RenounceRole(element) => {
466                    ::ethers_core::abi::AbiEncode::encode(element)
467                }
468                Self::RevokeRole(element) => {
469                    ::ethers_core::abi::AbiEncode::encode(element)
470                }
471            }
472        }
473    }
474    impl ::core::fmt::Display for IAccessControlEnumerableCalls {
475        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
476            match self {
477                Self::GetRoleAdmin(element) => ::core::fmt::Display::fmt(element, f),
478                Self::GetRoleMember(element) => ::core::fmt::Display::fmt(element, f),
479                Self::GetRoleMemberCount(element) => {
480                    ::core::fmt::Display::fmt(element, f)
481                }
482                Self::GrantRole(element) => ::core::fmt::Display::fmt(element, f),
483                Self::HasRole(element) => ::core::fmt::Display::fmt(element, f),
484                Self::RenounceRole(element) => ::core::fmt::Display::fmt(element, f),
485                Self::RevokeRole(element) => ::core::fmt::Display::fmt(element, f),
486            }
487        }
488    }
489    impl ::core::convert::From<GetRoleAdminCall> for IAccessControlEnumerableCalls {
490        fn from(value: GetRoleAdminCall) -> Self {
491            Self::GetRoleAdmin(value)
492        }
493    }
494    impl ::core::convert::From<GetRoleMemberCall> for IAccessControlEnumerableCalls {
495        fn from(value: GetRoleMemberCall) -> Self {
496            Self::GetRoleMember(value)
497        }
498    }
499    impl ::core::convert::From<GetRoleMemberCountCall>
500    for IAccessControlEnumerableCalls {
501        fn from(value: GetRoleMemberCountCall) -> Self {
502            Self::GetRoleMemberCount(value)
503        }
504    }
505    impl ::core::convert::From<GrantRoleCall> for IAccessControlEnumerableCalls {
506        fn from(value: GrantRoleCall) -> Self {
507            Self::GrantRole(value)
508        }
509    }
510    impl ::core::convert::From<HasRoleCall> for IAccessControlEnumerableCalls {
511        fn from(value: HasRoleCall) -> Self {
512            Self::HasRole(value)
513        }
514    }
515    impl ::core::convert::From<RenounceRoleCall> for IAccessControlEnumerableCalls {
516        fn from(value: RenounceRoleCall) -> Self {
517            Self::RenounceRole(value)
518        }
519    }
520    impl ::core::convert::From<RevokeRoleCall> for IAccessControlEnumerableCalls {
521        fn from(value: RevokeRoleCall) -> Self {
522            Self::RevokeRole(value)
523        }
524    }
525    ///Container type for all return fields from the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
526    #[derive(
527        Clone,
528        ::ethers_contract::EthAbiType,
529        ::ethers_contract::EthAbiCodec,
530        Default,
531        Debug,
532        PartialEq,
533        Eq,
534        Hash
535    )]
536    pub struct GetRoleAdminReturn(pub [u8; 32]);
537    ///Container type for all return fields from the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
538    #[derive(
539        Clone,
540        ::ethers_contract::EthAbiType,
541        ::ethers_contract::EthAbiCodec,
542        Default,
543        Debug,
544        PartialEq,
545        Eq,
546        Hash
547    )]
548    pub struct GetRoleMemberReturn(pub ::ethers_core::types::Address);
549    ///Container type for all return fields from the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
550    #[derive(
551        Clone,
552        ::ethers_contract::EthAbiType,
553        ::ethers_contract::EthAbiCodec,
554        Default,
555        Debug,
556        PartialEq,
557        Eq,
558        Hash
559    )]
560    pub struct GetRoleMemberCountReturn(pub ::ethers_core::types::U256);
561    ///Container type for all return fields from the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
562    #[derive(
563        Clone,
564        ::ethers_contract::EthAbiType,
565        ::ethers_contract::EthAbiCodec,
566        Default,
567        Debug,
568        PartialEq,
569        Eq,
570        Hash
571    )]
572    pub struct HasRoleReturn(pub bool);
573}