1pub use access_control_cross_chain::*;
2#[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 access_control_cross_chain {
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\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"CROSSCHAIN_ALIAS\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"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\":\"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\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]";
15 pub static ACCESSCONTROLCROSSCHAIN_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 AccessControlCrossChain<M>(::ethers_contract::Contract<M>);
22 impl<M> ::core::clone::Clone for AccessControlCrossChain<M> {
23 fn clone(&self) -> Self {
24 Self(::core::clone::Clone::clone(&self.0))
25 }
26 }
27 impl<M> ::core::ops::Deref for AccessControlCrossChain<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 AccessControlCrossChain<M> {
34 fn deref_mut(&mut self) -> &mut Self::Target {
35 &mut self.0
36 }
37 }
38 impl<M> ::core::fmt::Debug for AccessControlCrossChain<M> {
39 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
40 f.debug_tuple(stringify!(AccessControlCrossChain))
41 .field(&self.address())
42 .finish()
43 }
44 }
45 impl<M: ::ethers_providers::Middleware> AccessControlCrossChain<M> {
46 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 ACCESSCONTROLCROSSCHAIN_ABI.clone(),
56 client,
57 ),
58 )
59 }
60 pub fn crosschain_alias(
62 &self,
63 ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
64 self.0
65 .method_hash([249, 208, 66, 149], ())
66 .expect("method not found (this should never happen)")
67 }
68 pub fn default_admin_role(
70 &self,
71 ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
72 self.0
73 .method_hash([162, 23, 253, 223], ())
74 .expect("method not found (this should never happen)")
75 }
76 pub fn get_role_admin(
78 &self,
79 role: [u8; 32],
80 ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
81 self.0
82 .method_hash([36, 138, 156, 163], role)
83 .expect("method not found (this should never happen)")
84 }
85 pub fn grant_role(
87 &self,
88 role: [u8; 32],
89 account: ::ethers_core::types::Address,
90 ) -> ::ethers_contract::builders::ContractCall<M, ()> {
91 self.0
92 .method_hash([47, 47, 241, 93], (role, account))
93 .expect("method not found (this should never happen)")
94 }
95 pub fn has_role(
97 &self,
98 role: [u8; 32],
99 account: ::ethers_core::types::Address,
100 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
101 self.0
102 .method_hash([145, 209, 72, 84], (role, account))
103 .expect("method not found (this should never happen)")
104 }
105 pub fn renounce_role(
107 &self,
108 role: [u8; 32],
109 account: ::ethers_core::types::Address,
110 ) -> ::ethers_contract::builders::ContractCall<M, ()> {
111 self.0
112 .method_hash([54, 86, 138, 190], (role, account))
113 .expect("method not found (this should never happen)")
114 }
115 pub fn revoke_role(
117 &self,
118 role: [u8; 32],
119 account: ::ethers_core::types::Address,
120 ) -> ::ethers_contract::builders::ContractCall<M, ()> {
121 self.0
122 .method_hash([213, 71, 116, 31], (role, account))
123 .expect("method not found (this should never happen)")
124 }
125 pub fn supports_interface(
127 &self,
128 interface_id: [u8; 4],
129 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
130 self.0
131 .method_hash([1, 255, 201, 167], interface_id)
132 .expect("method not found (this should never happen)")
133 }
134 pub fn role_admin_changed_filter(
136 &self,
137 ) -> ::ethers_contract::builders::Event<
138 ::std::sync::Arc<M>,
139 M,
140 RoleAdminChangedFilter,
141 > {
142 self.0.event()
143 }
144 pub fn role_granted_filter(
146 &self,
147 ) -> ::ethers_contract::builders::Event<
148 ::std::sync::Arc<M>,
149 M,
150 RoleGrantedFilter,
151 > {
152 self.0.event()
153 }
154 pub fn role_revoked_filter(
156 &self,
157 ) -> ::ethers_contract::builders::Event<
158 ::std::sync::Arc<M>,
159 M,
160 RoleRevokedFilter,
161 > {
162 self.0.event()
163 }
164 pub fn events(
166 &self,
167 ) -> ::ethers_contract::builders::Event<
168 ::std::sync::Arc<M>,
169 M,
170 AccessControlCrossChainEvents,
171 > {
172 self.0.event_with_filter(::core::default::Default::default())
173 }
174 }
175 impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
176 for AccessControlCrossChain<M> {
177 fn from(contract: ::ethers_contract::Contract<M>) -> Self {
178 Self::new(contract.address(), contract.client())
179 }
180 }
181 #[derive(
182 Clone,
183 ::ethers_contract::EthEvent,
184 ::ethers_contract::EthDisplay,
185 Default,
186 Debug,
187 PartialEq,
188 Eq,
189 Hash
190 )]
191 #[ethevent(
192 name = "RoleAdminChanged",
193 abi = "RoleAdminChanged(bytes32,bytes32,bytes32)"
194 )]
195 pub struct RoleAdminChangedFilter {
196 #[ethevent(indexed)]
197 pub role: [u8; 32],
198 #[ethevent(indexed)]
199 pub previous_admin_role: [u8; 32],
200 #[ethevent(indexed)]
201 pub new_admin_role: [u8; 32],
202 }
203 #[derive(
204 Clone,
205 ::ethers_contract::EthEvent,
206 ::ethers_contract::EthDisplay,
207 Default,
208 Debug,
209 PartialEq,
210 Eq,
211 Hash
212 )]
213 #[ethevent(name = "RoleGranted", abi = "RoleGranted(bytes32,address,address)")]
214 pub struct RoleGrantedFilter {
215 #[ethevent(indexed)]
216 pub role: [u8; 32],
217 #[ethevent(indexed)]
218 pub account: ::ethers_core::types::Address,
219 #[ethevent(indexed)]
220 pub sender: ::ethers_core::types::Address,
221 }
222 #[derive(
223 Clone,
224 ::ethers_contract::EthEvent,
225 ::ethers_contract::EthDisplay,
226 Default,
227 Debug,
228 PartialEq,
229 Eq,
230 Hash
231 )]
232 #[ethevent(name = "RoleRevoked", abi = "RoleRevoked(bytes32,address,address)")]
233 pub struct RoleRevokedFilter {
234 #[ethevent(indexed)]
235 pub role: [u8; 32],
236 #[ethevent(indexed)]
237 pub account: ::ethers_core::types::Address,
238 #[ethevent(indexed)]
239 pub sender: ::ethers_core::types::Address,
240 }
241 #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
243 pub enum AccessControlCrossChainEvents {
244 RoleAdminChangedFilter(RoleAdminChangedFilter),
245 RoleGrantedFilter(RoleGrantedFilter),
246 RoleRevokedFilter(RoleRevokedFilter),
247 }
248 impl ::ethers_contract::EthLogDecode for AccessControlCrossChainEvents {
249 fn decode_log(
250 log: &::ethers_core::abi::RawLog,
251 ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
252 if let Ok(decoded) = RoleAdminChangedFilter::decode_log(log) {
253 return Ok(
254 AccessControlCrossChainEvents::RoleAdminChangedFilter(decoded),
255 );
256 }
257 if let Ok(decoded) = RoleGrantedFilter::decode_log(log) {
258 return Ok(AccessControlCrossChainEvents::RoleGrantedFilter(decoded));
259 }
260 if let Ok(decoded) = RoleRevokedFilter::decode_log(log) {
261 return Ok(AccessControlCrossChainEvents::RoleRevokedFilter(decoded));
262 }
263 Err(::ethers_core::abi::Error::InvalidData)
264 }
265 }
266 impl ::core::fmt::Display for AccessControlCrossChainEvents {
267 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
268 match self {
269 Self::RoleAdminChangedFilter(element) => {
270 ::core::fmt::Display::fmt(element, f)
271 }
272 Self::RoleGrantedFilter(element) => ::core::fmt::Display::fmt(element, f),
273 Self::RoleRevokedFilter(element) => ::core::fmt::Display::fmt(element, f),
274 }
275 }
276 }
277 impl ::core::convert::From<RoleAdminChangedFilter>
278 for AccessControlCrossChainEvents {
279 fn from(value: RoleAdminChangedFilter) -> Self {
280 Self::RoleAdminChangedFilter(value)
281 }
282 }
283 impl ::core::convert::From<RoleGrantedFilter> for AccessControlCrossChainEvents {
284 fn from(value: RoleGrantedFilter) -> Self {
285 Self::RoleGrantedFilter(value)
286 }
287 }
288 impl ::core::convert::From<RoleRevokedFilter> for AccessControlCrossChainEvents {
289 fn from(value: RoleRevokedFilter) -> Self {
290 Self::RoleRevokedFilter(value)
291 }
292 }
293 #[derive(
295 Clone,
296 ::ethers_contract::EthCall,
297 ::ethers_contract::EthDisplay,
298 Default,
299 Debug,
300 PartialEq,
301 Eq,
302 Hash
303 )]
304 #[ethcall(name = "CROSSCHAIN_ALIAS", abi = "CROSSCHAIN_ALIAS()")]
305 pub struct CrosschainAliasCall;
306 #[derive(
308 Clone,
309 ::ethers_contract::EthCall,
310 ::ethers_contract::EthDisplay,
311 Default,
312 Debug,
313 PartialEq,
314 Eq,
315 Hash
316 )]
317 #[ethcall(name = "DEFAULT_ADMIN_ROLE", abi = "DEFAULT_ADMIN_ROLE()")]
318 pub struct DefaultAdminRoleCall;
319 #[derive(
321 Clone,
322 ::ethers_contract::EthCall,
323 ::ethers_contract::EthDisplay,
324 Default,
325 Debug,
326 PartialEq,
327 Eq,
328 Hash
329 )]
330 #[ethcall(name = "getRoleAdmin", abi = "getRoleAdmin(bytes32)")]
331 pub struct GetRoleAdminCall {
332 pub role: [u8; 32],
333 }
334 #[derive(
336 Clone,
337 ::ethers_contract::EthCall,
338 ::ethers_contract::EthDisplay,
339 Default,
340 Debug,
341 PartialEq,
342 Eq,
343 Hash
344 )]
345 #[ethcall(name = "grantRole", abi = "grantRole(bytes32,address)")]
346 pub struct GrantRoleCall {
347 pub role: [u8; 32],
348 pub account: ::ethers_core::types::Address,
349 }
350 #[derive(
352 Clone,
353 ::ethers_contract::EthCall,
354 ::ethers_contract::EthDisplay,
355 Default,
356 Debug,
357 PartialEq,
358 Eq,
359 Hash
360 )]
361 #[ethcall(name = "hasRole", abi = "hasRole(bytes32,address)")]
362 pub struct HasRoleCall {
363 pub role: [u8; 32],
364 pub account: ::ethers_core::types::Address,
365 }
366 #[derive(
368 Clone,
369 ::ethers_contract::EthCall,
370 ::ethers_contract::EthDisplay,
371 Default,
372 Debug,
373 PartialEq,
374 Eq,
375 Hash
376 )]
377 #[ethcall(name = "renounceRole", abi = "renounceRole(bytes32,address)")]
378 pub struct RenounceRoleCall {
379 pub role: [u8; 32],
380 pub account: ::ethers_core::types::Address,
381 }
382 #[derive(
384 Clone,
385 ::ethers_contract::EthCall,
386 ::ethers_contract::EthDisplay,
387 Default,
388 Debug,
389 PartialEq,
390 Eq,
391 Hash
392 )]
393 #[ethcall(name = "revokeRole", abi = "revokeRole(bytes32,address)")]
394 pub struct RevokeRoleCall {
395 pub role: [u8; 32],
396 pub account: ::ethers_core::types::Address,
397 }
398 #[derive(
400 Clone,
401 ::ethers_contract::EthCall,
402 ::ethers_contract::EthDisplay,
403 Default,
404 Debug,
405 PartialEq,
406 Eq,
407 Hash
408 )]
409 #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
410 pub struct SupportsInterfaceCall {
411 pub interface_id: [u8; 4],
412 }
413 #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
415 pub enum AccessControlCrossChainCalls {
416 CrosschainAlias(CrosschainAliasCall),
417 DefaultAdminRole(DefaultAdminRoleCall),
418 GetRoleAdmin(GetRoleAdminCall),
419 GrantRole(GrantRoleCall),
420 HasRole(HasRoleCall),
421 RenounceRole(RenounceRoleCall),
422 RevokeRole(RevokeRoleCall),
423 SupportsInterface(SupportsInterfaceCall),
424 }
425 impl ::ethers_core::abi::AbiDecode for AccessControlCrossChainCalls {
426 fn decode(
427 data: impl AsRef<[u8]>,
428 ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
429 let data = data.as_ref();
430 if let Ok(decoded)
431 = <CrosschainAliasCall as ::ethers_core::abi::AbiDecode>::decode(data) {
432 return Ok(Self::CrosschainAlias(decoded));
433 }
434 if let Ok(decoded)
435 = <DefaultAdminRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
436 return Ok(Self::DefaultAdminRole(decoded));
437 }
438 if let Ok(decoded)
439 = <GetRoleAdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
440 return Ok(Self::GetRoleAdmin(decoded));
441 }
442 if let Ok(decoded)
443 = <GrantRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
444 return Ok(Self::GrantRole(decoded));
445 }
446 if let Ok(decoded)
447 = <HasRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
448 return Ok(Self::HasRole(decoded));
449 }
450 if let Ok(decoded)
451 = <RenounceRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
452 return Ok(Self::RenounceRole(decoded));
453 }
454 if let Ok(decoded)
455 = <RevokeRoleCall as ::ethers_core::abi::AbiDecode>::decode(data) {
456 return Ok(Self::RevokeRole(decoded));
457 }
458 if let Ok(decoded)
459 = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
460 data,
461 ) {
462 return Ok(Self::SupportsInterface(decoded));
463 }
464 Err(::ethers_core::abi::Error::InvalidData.into())
465 }
466 }
467 impl ::ethers_core::abi::AbiEncode for AccessControlCrossChainCalls {
468 fn encode(self) -> Vec<u8> {
469 match self {
470 Self::CrosschainAlias(element) => {
471 ::ethers_core::abi::AbiEncode::encode(element)
472 }
473 Self::DefaultAdminRole(element) => {
474 ::ethers_core::abi::AbiEncode::encode(element)
475 }
476 Self::GetRoleAdmin(element) => {
477 ::ethers_core::abi::AbiEncode::encode(element)
478 }
479 Self::GrantRole(element) => {
480 ::ethers_core::abi::AbiEncode::encode(element)
481 }
482 Self::HasRole(element) => ::ethers_core::abi::AbiEncode::encode(element),
483 Self::RenounceRole(element) => {
484 ::ethers_core::abi::AbiEncode::encode(element)
485 }
486 Self::RevokeRole(element) => {
487 ::ethers_core::abi::AbiEncode::encode(element)
488 }
489 Self::SupportsInterface(element) => {
490 ::ethers_core::abi::AbiEncode::encode(element)
491 }
492 }
493 }
494 }
495 impl ::core::fmt::Display for AccessControlCrossChainCalls {
496 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
497 match self {
498 Self::CrosschainAlias(element) => ::core::fmt::Display::fmt(element, f),
499 Self::DefaultAdminRole(element) => ::core::fmt::Display::fmt(element, f),
500 Self::GetRoleAdmin(element) => ::core::fmt::Display::fmt(element, f),
501 Self::GrantRole(element) => ::core::fmt::Display::fmt(element, f),
502 Self::HasRole(element) => ::core::fmt::Display::fmt(element, f),
503 Self::RenounceRole(element) => ::core::fmt::Display::fmt(element, f),
504 Self::RevokeRole(element) => ::core::fmt::Display::fmt(element, f),
505 Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
506 }
507 }
508 }
509 impl ::core::convert::From<CrosschainAliasCall> for AccessControlCrossChainCalls {
510 fn from(value: CrosschainAliasCall) -> Self {
511 Self::CrosschainAlias(value)
512 }
513 }
514 impl ::core::convert::From<DefaultAdminRoleCall> for AccessControlCrossChainCalls {
515 fn from(value: DefaultAdminRoleCall) -> Self {
516 Self::DefaultAdminRole(value)
517 }
518 }
519 impl ::core::convert::From<GetRoleAdminCall> for AccessControlCrossChainCalls {
520 fn from(value: GetRoleAdminCall) -> Self {
521 Self::GetRoleAdmin(value)
522 }
523 }
524 impl ::core::convert::From<GrantRoleCall> for AccessControlCrossChainCalls {
525 fn from(value: GrantRoleCall) -> Self {
526 Self::GrantRole(value)
527 }
528 }
529 impl ::core::convert::From<HasRoleCall> for AccessControlCrossChainCalls {
530 fn from(value: HasRoleCall) -> Self {
531 Self::HasRole(value)
532 }
533 }
534 impl ::core::convert::From<RenounceRoleCall> for AccessControlCrossChainCalls {
535 fn from(value: RenounceRoleCall) -> Self {
536 Self::RenounceRole(value)
537 }
538 }
539 impl ::core::convert::From<RevokeRoleCall> for AccessControlCrossChainCalls {
540 fn from(value: RevokeRoleCall) -> Self {
541 Self::RevokeRole(value)
542 }
543 }
544 impl ::core::convert::From<SupportsInterfaceCall> for AccessControlCrossChainCalls {
545 fn from(value: SupportsInterfaceCall) -> Self {
546 Self::SupportsInterface(value)
547 }
548 }
549 #[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 CrosschainAliasReturn(pub [u8; 32]);
561 #[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 DefaultAdminRoleReturn(pub [u8; 32]);
573 #[derive(
575 Clone,
576 ::ethers_contract::EthAbiType,
577 ::ethers_contract::EthAbiCodec,
578 Default,
579 Debug,
580 PartialEq,
581 Eq,
582 Hash
583 )]
584 pub struct GetRoleAdminReturn(pub [u8; 32]);
585 #[derive(
587 Clone,
588 ::ethers_contract::EthAbiType,
589 ::ethers_contract::EthAbiCodec,
590 Default,
591 Debug,
592 PartialEq,
593 Eq,
594 Hash
595 )]
596 pub struct HasRoleReturn(pub bool);
597 #[derive(
599 Clone,
600 ::ethers_contract::EthAbiType,
601 ::ethers_contract::EthAbiCodec,
602 Default,
603 Debug,
604 PartialEq,
605 Eq,
606 Hash
607 )]
608 pub struct SupportsInterfaceReturn(pub bool);
609}