eigenlayer_contract_deployer/bindings/core/
upgradeablebeacon.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use UpgradeableBeacon::*;
3
4/**
5
6Generated by the following Solidity interface...
7```solidity
8interface UpgradeableBeacon {
9    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
10    event Upgraded(address indexed implementation);
11
12    constructor(address implementation_);
13
14    function implementation() external view returns (address);
15    function owner() external view returns (address);
16    function renounceOwnership() external;
17    function transferOwnership(address newOwner) external;
18    function upgradeTo(address newImplementation) external;
19}
20```
21
22...which was generated by the following JSON ABI:
23```json
24[
25  {
26    "type": "constructor",
27    "inputs": [
28      {
29        "name": "implementation_",
30        "type": "address",
31        "internalType": "address"
32      }
33    ],
34    "stateMutability": "nonpayable"
35  },
36  {
37    "type": "function",
38    "name": "implementation",
39    "inputs": [],
40    "outputs": [
41      {
42        "name": "",
43        "type": "address",
44        "internalType": "address"
45      }
46    ],
47    "stateMutability": "view"
48  },
49  {
50    "type": "function",
51    "name": "owner",
52    "inputs": [],
53    "outputs": [
54      {
55        "name": "",
56        "type": "address",
57        "internalType": "address"
58      }
59    ],
60    "stateMutability": "view"
61  },
62  {
63    "type": "function",
64    "name": "renounceOwnership",
65    "inputs": [],
66    "outputs": [],
67    "stateMutability": "nonpayable"
68  },
69  {
70    "type": "function",
71    "name": "transferOwnership",
72    "inputs": [
73      {
74        "name": "newOwner",
75        "type": "address",
76        "internalType": "address"
77      }
78    ],
79    "outputs": [],
80    "stateMutability": "nonpayable"
81  },
82  {
83    "type": "function",
84    "name": "upgradeTo",
85    "inputs": [
86      {
87        "name": "newImplementation",
88        "type": "address",
89        "internalType": "address"
90      }
91    ],
92    "outputs": [],
93    "stateMutability": "nonpayable"
94  },
95  {
96    "type": "event",
97    "name": "OwnershipTransferred",
98    "inputs": [
99      {
100        "name": "previousOwner",
101        "type": "address",
102        "indexed": true,
103        "internalType": "address"
104      },
105      {
106        "name": "newOwner",
107        "type": "address",
108        "indexed": true,
109        "internalType": "address"
110      }
111    ],
112    "anonymous": false
113  },
114  {
115    "type": "event",
116    "name": "Upgraded",
117    "inputs": [
118      {
119        "name": "implementation",
120        "type": "address",
121        "indexed": true,
122        "internalType": "address"
123      }
124    ],
125    "anonymous": false
126  }
127]
128```*/
129#[allow(
130    non_camel_case_types,
131    non_snake_case,
132    clippy::pub_underscore_fields,
133    clippy::style,
134    clippy::empty_structs_with_brackets
135)]
136pub mod UpgradeableBeacon {
137    use super::*;
138    use alloy::sol_types as alloy_sol_types;
139    /// The creation / init bytecode of the contract.
140    ///
141    /// ```text
142    ///0x608060405234801561000f575f5ffd5b506040516104ac3803806104ac83398101604081905261002e91610138565b61003733610046565b61004081610095565b50610165565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101165760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215610148575f5ffd5b81516001600160a01b038116811461015e575f5ffd5b9392505050565b61033a806101725f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80633659cfe6146100595780635c60da1b1461006e578063715018a6146100975780638da5cb5b1461009f578063f2fde38b146100af575b5f5ffd5b61006c6100673660046102d7565b6100c2565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006c610109565b5f546001600160a01b031661007b565b61006c6100bd3660046102d7565b61011c565b6100ca61019a565b6100d3816101f3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61011161019a565b61011a5f610288565b565b61012461019a565b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019781610288565b50565b5f546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610185565b6001600160a01b0381163b6102665760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610185565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156102e7575f5ffd5b81356001600160a01b03811681146102fd575f5ffd5b939250505056fea264697066735822122073ada587ce8076ebbcc42ba48f2bc54f12f4cc2547a91be5e00133f3c6ab7f3a64736f6c634300081b0033
143    /// ```
144    #[rustfmt::skip]
145    #[allow(clippy::all)]
146    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
147        b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`@Qa\x04\xAC8\x03\x80a\x04\xAC\x839\x81\x01`@\x81\x90Ra\0.\x91a\x018V[a\x0073a\0FV[a\0@\x81a\0\x95V[Pa\x01eV[_\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16;a\x01\x16W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FUpgradeableBeacon: implementatio`D\x82\x01R\x7Fn is not a contract\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[_` \x82\x84\x03\x12\x15a\x01HW__\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01^W__\xFD[\x93\x92PPPV[a\x03:\x80a\x01r_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0UW_5`\xE0\x1C\x80c6Y\xCF\xE6\x14a\0YW\x80c\\`\xDA\x1B\x14a\0nW\x80cqP\x18\xA6\x14a\0\x97W\x80c\x8D\xA5\xCB[\x14a\0\x9FW\x80c\xF2\xFD\xE3\x8B\x14a\0\xAFW[__\xFD[a\0la\0g6`\x04a\x02\xD7V[a\0\xC2V[\0[`\x01T`\x01`\x01`\xA0\x1B\x03\x16[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0la\x01\tV[_T`\x01`\x01`\xA0\x1B\x03\x16a\0{V[a\0la\0\xBD6`\x04a\x02\xD7V[a\x01\x1CV[a\0\xCAa\x01\x9AV[a\0\xD3\x81a\x01\xF3V[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2PV[a\x01\x11a\x01\x9AV[a\x01\x1A_a\x02\x88V[V[a\x01$a\x01\x9AV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x01\x8EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\x97\x81a\x02\x88V[PV[_T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x01\x1AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x01\x85V[`\x01`\x01`\xA0\x1B\x03\x81\x16;a\x02fW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FUpgradeableBeacon: implementatio`D\x82\x01Rr\x1B\x88\x1A\\\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`j\x1B`d\x82\x01R`\x84\x01a\x01\x85V[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[_\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[_` \x82\x84\x03\x12\x15a\x02\xE7W__\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\xFDW__\xFD[\x93\x92PPPV\xFE\xA2dipfsX\"\x12 s\xAD\xA5\x87\xCE\x80v\xEB\xBC\xC4+\xA4\x8F+\xC5O\x12\xF4\xCC%G\xA9\x1B\xE5\xE0\x013\xF3\xC6\xAB\x7F:dsolcC\0\x08\x1B\x003",
148    );
149    /// The runtime bytecode of the contract, as deployed on the network.
150    ///
151    /// ```text
152    ///0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80633659cfe6146100595780635c60da1b1461006e578063715018a6146100975780638da5cb5b1461009f578063f2fde38b146100af575b5f5ffd5b61006c6100673660046102d7565b6100c2565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006c610109565b5f546001600160a01b031661007b565b61006c6100bd3660046102d7565b61011c565b6100ca61019a565b6100d3816101f3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61011161019a565b61011a5f610288565b565b61012461019a565b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019781610288565b50565b5f546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610185565b6001600160a01b0381163b6102665760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610185565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156102e7575f5ffd5b81356001600160a01b03811681146102fd575f5ffd5b939250505056fea264697066735822122073ada587ce8076ebbcc42ba48f2bc54f12f4cc2547a91be5e00133f3c6ab7f3a64736f6c634300081b0033
153    /// ```
154    #[rustfmt::skip]
155    #[allow(clippy::all)]
156    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
157        b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0UW_5`\xE0\x1C\x80c6Y\xCF\xE6\x14a\0YW\x80c\\`\xDA\x1B\x14a\0nW\x80cqP\x18\xA6\x14a\0\x97W\x80c\x8D\xA5\xCB[\x14a\0\x9FW\x80c\xF2\xFD\xE3\x8B\x14a\0\xAFW[__\xFD[a\0la\0g6`\x04a\x02\xD7V[a\0\xC2V[\0[`\x01T`\x01`\x01`\xA0\x1B\x03\x16[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0la\x01\tV[_T`\x01`\x01`\xA0\x1B\x03\x16a\0{V[a\0la\0\xBD6`\x04a\x02\xD7V[a\x01\x1CV[a\0\xCAa\x01\x9AV[a\0\xD3\x81a\x01\xF3V[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2PV[a\x01\x11a\x01\x9AV[a\x01\x1A_a\x02\x88V[V[a\x01$a\x01\x9AV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x01\x8EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\x97\x81a\x02\x88V[PV[_T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x01\x1AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x01\x85V[`\x01`\x01`\xA0\x1B\x03\x81\x16;a\x02fW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FUpgradeableBeacon: implementatio`D\x82\x01Rr\x1B\x88\x1A\\\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`j\x1B`d\x82\x01R`\x84\x01a\x01\x85V[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[_\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[_` \x82\x84\x03\x12\x15a\x02\xE7W__\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\xFDW__\xFD[\x93\x92PPPV\xFE\xA2dipfsX\"\x12 s\xAD\xA5\x87\xCE\x80v\xEB\xBC\xC4+\xA4\x8F+\xC5O\x12\xF4\xCC%G\xA9\x1B\xE5\xE0\x013\xF3\xC6\xAB\x7F:dsolcC\0\x08\x1B\x003",
158    );
159    #[derive(Default, Debug, PartialEq, Eq, Hash)]
160    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
161```solidity
162event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
163```*/
164    #[allow(
165        non_camel_case_types,
166        non_snake_case,
167        clippy::pub_underscore_fields,
168        clippy::style
169    )]
170    #[derive(Clone)]
171    pub struct OwnershipTransferred {
172        #[allow(missing_docs)]
173        pub previousOwner: alloy::sol_types::private::Address,
174        #[allow(missing_docs)]
175        pub newOwner: alloy::sol_types::private::Address,
176    }
177    #[allow(
178        non_camel_case_types,
179        non_snake_case,
180        clippy::pub_underscore_fields,
181        clippy::style
182    )]
183    const _: () = {
184        use alloy::sol_types as alloy_sol_types;
185        #[automatically_derived]
186        impl alloy_sol_types::SolEvent for OwnershipTransferred {
187            type DataTuple<'a> = ();
188            type DataToken<'a> = <Self::DataTuple<
189                'a,
190            > as alloy_sol_types::SolType>::Token<'a>;
191            type TopicList = (
192                alloy_sol_types::sol_data::FixedBytes<32>,
193                alloy::sol_types::sol_data::Address,
194                alloy::sol_types::sol_data::Address,
195            );
196            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
197            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
198                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
199                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
200                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
201            ]);
202            const ANONYMOUS: bool = false;
203            #[allow(unused_variables)]
204            #[inline]
205            fn new(
206                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
207                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
208            ) -> Self {
209                Self {
210                    previousOwner: topics.1,
211                    newOwner: topics.2,
212                }
213            }
214            #[inline]
215            fn check_signature(
216                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
217            ) -> alloy_sol_types::Result<()> {
218                if topics.0 != Self::SIGNATURE_HASH {
219                    return Err(
220                        alloy_sol_types::Error::invalid_event_signature_hash(
221                            Self::SIGNATURE,
222                            topics.0,
223                            Self::SIGNATURE_HASH,
224                        ),
225                    );
226                }
227                Ok(())
228            }
229            #[inline]
230            fn tokenize_body(&self) -> Self::DataToken<'_> {
231                ()
232            }
233            #[inline]
234            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
235                (
236                    Self::SIGNATURE_HASH.into(),
237                    self.previousOwner.clone(),
238                    self.newOwner.clone(),
239                )
240            }
241            #[inline]
242            fn encode_topics_raw(
243                &self,
244                out: &mut [alloy_sol_types::abi::token::WordToken],
245            ) -> alloy_sol_types::Result<()> {
246                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
247                    return Err(alloy_sol_types::Error::Overrun);
248                }
249                out[0usize] = alloy_sol_types::abi::token::WordToken(
250                    Self::SIGNATURE_HASH,
251                );
252                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
253                    &self.previousOwner,
254                );
255                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
256                    &self.newOwner,
257                );
258                Ok(())
259            }
260        }
261        #[automatically_derived]
262        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
263            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
264                From::from(self)
265            }
266            fn into_log_data(self) -> alloy_sol_types::private::LogData {
267                From::from(&self)
268            }
269        }
270        #[automatically_derived]
271        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
272            #[inline]
273            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
274                alloy_sol_types::SolEvent::encode_log_data(this)
275            }
276        }
277    };
278    #[derive(Default, Debug, PartialEq, Eq, Hash)]
279    /**Event with signature `Upgraded(address)` and selector `0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b`.
280```solidity
281event Upgraded(address indexed implementation);
282```*/
283    #[allow(
284        non_camel_case_types,
285        non_snake_case,
286        clippy::pub_underscore_fields,
287        clippy::style
288    )]
289    #[derive(Clone)]
290    pub struct Upgraded {
291        #[allow(missing_docs)]
292        pub implementation: alloy::sol_types::private::Address,
293    }
294    #[allow(
295        non_camel_case_types,
296        non_snake_case,
297        clippy::pub_underscore_fields,
298        clippy::style
299    )]
300    const _: () = {
301        use alloy::sol_types as alloy_sol_types;
302        #[automatically_derived]
303        impl alloy_sol_types::SolEvent for Upgraded {
304            type DataTuple<'a> = ();
305            type DataToken<'a> = <Self::DataTuple<
306                'a,
307            > as alloy_sol_types::SolType>::Token<'a>;
308            type TopicList = (
309                alloy_sol_types::sol_data::FixedBytes<32>,
310                alloy::sol_types::sol_data::Address,
311            );
312            const SIGNATURE: &'static str = "Upgraded(address)";
313            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
314                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
315                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
316                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
317            ]);
318            const ANONYMOUS: bool = false;
319            #[allow(unused_variables)]
320            #[inline]
321            fn new(
322                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
323                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
324            ) -> Self {
325                Self { implementation: topics.1 }
326            }
327            #[inline]
328            fn check_signature(
329                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
330            ) -> alloy_sol_types::Result<()> {
331                if topics.0 != Self::SIGNATURE_HASH {
332                    return Err(
333                        alloy_sol_types::Error::invalid_event_signature_hash(
334                            Self::SIGNATURE,
335                            topics.0,
336                            Self::SIGNATURE_HASH,
337                        ),
338                    );
339                }
340                Ok(())
341            }
342            #[inline]
343            fn tokenize_body(&self) -> Self::DataToken<'_> {
344                ()
345            }
346            #[inline]
347            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
348                (Self::SIGNATURE_HASH.into(), self.implementation.clone())
349            }
350            #[inline]
351            fn encode_topics_raw(
352                &self,
353                out: &mut [alloy_sol_types::abi::token::WordToken],
354            ) -> alloy_sol_types::Result<()> {
355                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
356                    return Err(alloy_sol_types::Error::Overrun);
357                }
358                out[0usize] = alloy_sol_types::abi::token::WordToken(
359                    Self::SIGNATURE_HASH,
360                );
361                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
362                    &self.implementation,
363                );
364                Ok(())
365            }
366        }
367        #[automatically_derived]
368        impl alloy_sol_types::private::IntoLogData for Upgraded {
369            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
370                From::from(self)
371            }
372            fn into_log_data(self) -> alloy_sol_types::private::LogData {
373                From::from(&self)
374            }
375        }
376        #[automatically_derived]
377        impl From<&Upgraded> for alloy_sol_types::private::LogData {
378            #[inline]
379            fn from(this: &Upgraded) -> alloy_sol_types::private::LogData {
380                alloy_sol_types::SolEvent::encode_log_data(this)
381            }
382        }
383    };
384    /**Constructor`.
385```solidity
386constructor(address implementation_);
387```*/
388    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
389    #[derive(Clone)]
390    pub struct constructorCall {
391        #[allow(missing_docs)]
392        pub implementation_: alloy::sol_types::private::Address,
393    }
394    const _: () = {
395        use alloy::sol_types as alloy_sol_types;
396        {
397            #[doc(hidden)]
398            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
399            #[doc(hidden)]
400            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
401            #[cfg(test)]
402            #[allow(dead_code, unreachable_patterns)]
403            fn _type_assertion(
404                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
405            ) {
406                match _t {
407                    alloy_sol_types::private::AssertTypeEq::<
408                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
409                    >(_) => {}
410                }
411            }
412            #[automatically_derived]
413            #[doc(hidden)]
414            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
415                fn from(value: constructorCall) -> Self {
416                    (value.implementation_,)
417                }
418            }
419            #[automatically_derived]
420            #[doc(hidden)]
421            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
422                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
423                    Self { implementation_: tuple.0 }
424                }
425            }
426        }
427        #[automatically_derived]
428        impl alloy_sol_types::SolConstructor for constructorCall {
429            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
430            type Token<'a> = <Self::Parameters<
431                'a,
432            > as alloy_sol_types::SolType>::Token<'a>;
433            #[inline]
434            fn new<'a>(
435                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
436            ) -> Self {
437                tuple.into()
438            }
439            #[inline]
440            fn tokenize(&self) -> Self::Token<'_> {
441                (
442                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
443                        &self.implementation_,
444                    ),
445                )
446            }
447        }
448    };
449    #[derive(Default, Debug, PartialEq, Eq, Hash)]
450    /**Function with signature `implementation()` and selector `0x5c60da1b`.
451```solidity
452function implementation() external view returns (address);
453```*/
454    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
455    #[derive(Clone)]
456    pub struct implementationCall {}
457    #[derive(Default, Debug, PartialEq, Eq, Hash)]
458    ///Container type for the return parameters of the [`implementation()`](implementationCall) function.
459    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
460    #[derive(Clone)]
461    pub struct implementationReturn {
462        #[allow(missing_docs)]
463        pub _0: alloy::sol_types::private::Address,
464    }
465    #[allow(
466        non_camel_case_types,
467        non_snake_case,
468        clippy::pub_underscore_fields,
469        clippy::style
470    )]
471    const _: () = {
472        use alloy::sol_types as alloy_sol_types;
473        {
474            #[doc(hidden)]
475            type UnderlyingSolTuple<'a> = ();
476            #[doc(hidden)]
477            type UnderlyingRustTuple<'a> = ();
478            #[cfg(test)]
479            #[allow(dead_code, unreachable_patterns)]
480            fn _type_assertion(
481                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
482            ) {
483                match _t {
484                    alloy_sol_types::private::AssertTypeEq::<
485                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
486                    >(_) => {}
487                }
488            }
489            #[automatically_derived]
490            #[doc(hidden)]
491            impl ::core::convert::From<implementationCall> for UnderlyingRustTuple<'_> {
492                fn from(value: implementationCall) -> Self {
493                    ()
494                }
495            }
496            #[automatically_derived]
497            #[doc(hidden)]
498            impl ::core::convert::From<UnderlyingRustTuple<'_>> for implementationCall {
499                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
500                    Self {}
501                }
502            }
503        }
504        {
505            #[doc(hidden)]
506            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
507            #[doc(hidden)]
508            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
509            #[cfg(test)]
510            #[allow(dead_code, unreachable_patterns)]
511            fn _type_assertion(
512                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
513            ) {
514                match _t {
515                    alloy_sol_types::private::AssertTypeEq::<
516                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
517                    >(_) => {}
518                }
519            }
520            #[automatically_derived]
521            #[doc(hidden)]
522            impl ::core::convert::From<implementationReturn>
523            for UnderlyingRustTuple<'_> {
524                fn from(value: implementationReturn) -> Self {
525                    (value._0,)
526                }
527            }
528            #[automatically_derived]
529            #[doc(hidden)]
530            impl ::core::convert::From<UnderlyingRustTuple<'_>>
531            for implementationReturn {
532                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
533                    Self { _0: tuple.0 }
534                }
535            }
536        }
537        #[automatically_derived]
538        impl alloy_sol_types::SolCall for implementationCall {
539            type Parameters<'a> = ();
540            type Token<'a> = <Self::Parameters<
541                'a,
542            > as alloy_sol_types::SolType>::Token<'a>;
543            type Return = implementationReturn;
544            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
545            type ReturnToken<'a> = <Self::ReturnTuple<
546                'a,
547            > as alloy_sol_types::SolType>::Token<'a>;
548            const SIGNATURE: &'static str = "implementation()";
549            const SELECTOR: [u8; 4] = [92u8, 96u8, 218u8, 27u8];
550            #[inline]
551            fn new<'a>(
552                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
553            ) -> Self {
554                tuple.into()
555            }
556            #[inline]
557            fn tokenize(&self) -> Self::Token<'_> {
558                ()
559            }
560            #[inline]
561            fn abi_decode_returns(
562                data: &[u8],
563                validate: bool,
564            ) -> alloy_sol_types::Result<Self::Return> {
565                <Self::ReturnTuple<
566                    '_,
567                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
568                    .map(Into::into)
569            }
570        }
571    };
572    #[derive(Default, Debug, PartialEq, Eq, Hash)]
573    /**Function with signature `owner()` and selector `0x8da5cb5b`.
574```solidity
575function owner() external view returns (address);
576```*/
577    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
578    #[derive(Clone)]
579    pub struct ownerCall {}
580    #[derive(Default, Debug, PartialEq, Eq, Hash)]
581    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
582    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
583    #[derive(Clone)]
584    pub struct ownerReturn {
585        #[allow(missing_docs)]
586        pub _0: alloy::sol_types::private::Address,
587    }
588    #[allow(
589        non_camel_case_types,
590        non_snake_case,
591        clippy::pub_underscore_fields,
592        clippy::style
593    )]
594    const _: () = {
595        use alloy::sol_types as alloy_sol_types;
596        {
597            #[doc(hidden)]
598            type UnderlyingSolTuple<'a> = ();
599            #[doc(hidden)]
600            type UnderlyingRustTuple<'a> = ();
601            #[cfg(test)]
602            #[allow(dead_code, unreachable_patterns)]
603            fn _type_assertion(
604                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
605            ) {
606                match _t {
607                    alloy_sol_types::private::AssertTypeEq::<
608                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
609                    >(_) => {}
610                }
611            }
612            #[automatically_derived]
613            #[doc(hidden)]
614            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
615                fn from(value: ownerCall) -> Self {
616                    ()
617                }
618            }
619            #[automatically_derived]
620            #[doc(hidden)]
621            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
622                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
623                    Self {}
624                }
625            }
626        }
627        {
628            #[doc(hidden)]
629            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
630            #[doc(hidden)]
631            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
632            #[cfg(test)]
633            #[allow(dead_code, unreachable_patterns)]
634            fn _type_assertion(
635                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
636            ) {
637                match _t {
638                    alloy_sol_types::private::AssertTypeEq::<
639                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
640                    >(_) => {}
641                }
642            }
643            #[automatically_derived]
644            #[doc(hidden)]
645            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
646                fn from(value: ownerReturn) -> Self {
647                    (value._0,)
648                }
649            }
650            #[automatically_derived]
651            #[doc(hidden)]
652            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
653                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
654                    Self { _0: tuple.0 }
655                }
656            }
657        }
658        #[automatically_derived]
659        impl alloy_sol_types::SolCall for ownerCall {
660            type Parameters<'a> = ();
661            type Token<'a> = <Self::Parameters<
662                'a,
663            > as alloy_sol_types::SolType>::Token<'a>;
664            type Return = ownerReturn;
665            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
666            type ReturnToken<'a> = <Self::ReturnTuple<
667                'a,
668            > as alloy_sol_types::SolType>::Token<'a>;
669            const SIGNATURE: &'static str = "owner()";
670            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
671            #[inline]
672            fn new<'a>(
673                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
674            ) -> Self {
675                tuple.into()
676            }
677            #[inline]
678            fn tokenize(&self) -> Self::Token<'_> {
679                ()
680            }
681            #[inline]
682            fn abi_decode_returns(
683                data: &[u8],
684                validate: bool,
685            ) -> alloy_sol_types::Result<Self::Return> {
686                <Self::ReturnTuple<
687                    '_,
688                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
689                    .map(Into::into)
690            }
691        }
692    };
693    #[derive(Default, Debug, PartialEq, Eq, Hash)]
694    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
695```solidity
696function renounceOwnership() external;
697```*/
698    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
699    #[derive(Clone)]
700    pub struct renounceOwnershipCall {}
701    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
702    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
703    #[derive(Clone)]
704    pub struct renounceOwnershipReturn {}
705    #[allow(
706        non_camel_case_types,
707        non_snake_case,
708        clippy::pub_underscore_fields,
709        clippy::style
710    )]
711    const _: () = {
712        use alloy::sol_types as alloy_sol_types;
713        {
714            #[doc(hidden)]
715            type UnderlyingSolTuple<'a> = ();
716            #[doc(hidden)]
717            type UnderlyingRustTuple<'a> = ();
718            #[cfg(test)]
719            #[allow(dead_code, unreachable_patterns)]
720            fn _type_assertion(
721                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
722            ) {
723                match _t {
724                    alloy_sol_types::private::AssertTypeEq::<
725                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
726                    >(_) => {}
727                }
728            }
729            #[automatically_derived]
730            #[doc(hidden)]
731            impl ::core::convert::From<renounceOwnershipCall>
732            for UnderlyingRustTuple<'_> {
733                fn from(value: renounceOwnershipCall) -> Self {
734                    ()
735                }
736            }
737            #[automatically_derived]
738            #[doc(hidden)]
739            impl ::core::convert::From<UnderlyingRustTuple<'_>>
740            for renounceOwnershipCall {
741                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
742                    Self {}
743                }
744            }
745        }
746        {
747            #[doc(hidden)]
748            type UnderlyingSolTuple<'a> = ();
749            #[doc(hidden)]
750            type UnderlyingRustTuple<'a> = ();
751            #[cfg(test)]
752            #[allow(dead_code, unreachable_patterns)]
753            fn _type_assertion(
754                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
755            ) {
756                match _t {
757                    alloy_sol_types::private::AssertTypeEq::<
758                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
759                    >(_) => {}
760                }
761            }
762            #[automatically_derived]
763            #[doc(hidden)]
764            impl ::core::convert::From<renounceOwnershipReturn>
765            for UnderlyingRustTuple<'_> {
766                fn from(value: renounceOwnershipReturn) -> Self {
767                    ()
768                }
769            }
770            #[automatically_derived]
771            #[doc(hidden)]
772            impl ::core::convert::From<UnderlyingRustTuple<'_>>
773            for renounceOwnershipReturn {
774                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
775                    Self {}
776                }
777            }
778        }
779        #[automatically_derived]
780        impl alloy_sol_types::SolCall for renounceOwnershipCall {
781            type Parameters<'a> = ();
782            type Token<'a> = <Self::Parameters<
783                'a,
784            > as alloy_sol_types::SolType>::Token<'a>;
785            type Return = renounceOwnershipReturn;
786            type ReturnTuple<'a> = ();
787            type ReturnToken<'a> = <Self::ReturnTuple<
788                'a,
789            > as alloy_sol_types::SolType>::Token<'a>;
790            const SIGNATURE: &'static str = "renounceOwnership()";
791            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
792            #[inline]
793            fn new<'a>(
794                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
795            ) -> Self {
796                tuple.into()
797            }
798            #[inline]
799            fn tokenize(&self) -> Self::Token<'_> {
800                ()
801            }
802            #[inline]
803            fn abi_decode_returns(
804                data: &[u8],
805                validate: bool,
806            ) -> alloy_sol_types::Result<Self::Return> {
807                <Self::ReturnTuple<
808                    '_,
809                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
810                    .map(Into::into)
811            }
812        }
813    };
814    #[derive(Default, Debug, PartialEq, Eq, Hash)]
815    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
816```solidity
817function transferOwnership(address newOwner) external;
818```*/
819    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
820    #[derive(Clone)]
821    pub struct transferOwnershipCall {
822        #[allow(missing_docs)]
823        pub newOwner: alloy::sol_types::private::Address,
824    }
825    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
826    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
827    #[derive(Clone)]
828    pub struct transferOwnershipReturn {}
829    #[allow(
830        non_camel_case_types,
831        non_snake_case,
832        clippy::pub_underscore_fields,
833        clippy::style
834    )]
835    const _: () = {
836        use alloy::sol_types as alloy_sol_types;
837        {
838            #[doc(hidden)]
839            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
840            #[doc(hidden)]
841            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
842            #[cfg(test)]
843            #[allow(dead_code, unreachable_patterns)]
844            fn _type_assertion(
845                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
846            ) {
847                match _t {
848                    alloy_sol_types::private::AssertTypeEq::<
849                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
850                    >(_) => {}
851                }
852            }
853            #[automatically_derived]
854            #[doc(hidden)]
855            impl ::core::convert::From<transferOwnershipCall>
856            for UnderlyingRustTuple<'_> {
857                fn from(value: transferOwnershipCall) -> Self {
858                    (value.newOwner,)
859                }
860            }
861            #[automatically_derived]
862            #[doc(hidden)]
863            impl ::core::convert::From<UnderlyingRustTuple<'_>>
864            for transferOwnershipCall {
865                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
866                    Self { newOwner: tuple.0 }
867                }
868            }
869        }
870        {
871            #[doc(hidden)]
872            type UnderlyingSolTuple<'a> = ();
873            #[doc(hidden)]
874            type UnderlyingRustTuple<'a> = ();
875            #[cfg(test)]
876            #[allow(dead_code, unreachable_patterns)]
877            fn _type_assertion(
878                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
879            ) {
880                match _t {
881                    alloy_sol_types::private::AssertTypeEq::<
882                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
883                    >(_) => {}
884                }
885            }
886            #[automatically_derived]
887            #[doc(hidden)]
888            impl ::core::convert::From<transferOwnershipReturn>
889            for UnderlyingRustTuple<'_> {
890                fn from(value: transferOwnershipReturn) -> Self {
891                    ()
892                }
893            }
894            #[automatically_derived]
895            #[doc(hidden)]
896            impl ::core::convert::From<UnderlyingRustTuple<'_>>
897            for transferOwnershipReturn {
898                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
899                    Self {}
900                }
901            }
902        }
903        #[automatically_derived]
904        impl alloy_sol_types::SolCall for transferOwnershipCall {
905            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
906            type Token<'a> = <Self::Parameters<
907                'a,
908            > as alloy_sol_types::SolType>::Token<'a>;
909            type Return = transferOwnershipReturn;
910            type ReturnTuple<'a> = ();
911            type ReturnToken<'a> = <Self::ReturnTuple<
912                'a,
913            > as alloy_sol_types::SolType>::Token<'a>;
914            const SIGNATURE: &'static str = "transferOwnership(address)";
915            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
916            #[inline]
917            fn new<'a>(
918                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
919            ) -> Self {
920                tuple.into()
921            }
922            #[inline]
923            fn tokenize(&self) -> Self::Token<'_> {
924                (
925                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
926                        &self.newOwner,
927                    ),
928                )
929            }
930            #[inline]
931            fn abi_decode_returns(
932                data: &[u8],
933                validate: bool,
934            ) -> alloy_sol_types::Result<Self::Return> {
935                <Self::ReturnTuple<
936                    '_,
937                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
938                    .map(Into::into)
939            }
940        }
941    };
942    #[derive(Default, Debug, PartialEq, Eq, Hash)]
943    /**Function with signature `upgradeTo(address)` and selector `0x3659cfe6`.
944```solidity
945function upgradeTo(address newImplementation) external;
946```*/
947    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
948    #[derive(Clone)]
949    pub struct upgradeToCall {
950        #[allow(missing_docs)]
951        pub newImplementation: alloy::sol_types::private::Address,
952    }
953    ///Container type for the return parameters of the [`upgradeTo(address)`](upgradeToCall) function.
954    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
955    #[derive(Clone)]
956    pub struct upgradeToReturn {}
957    #[allow(
958        non_camel_case_types,
959        non_snake_case,
960        clippy::pub_underscore_fields,
961        clippy::style
962    )]
963    const _: () = {
964        use alloy::sol_types as alloy_sol_types;
965        {
966            #[doc(hidden)]
967            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
968            #[doc(hidden)]
969            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
970            #[cfg(test)]
971            #[allow(dead_code, unreachable_patterns)]
972            fn _type_assertion(
973                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
974            ) {
975                match _t {
976                    alloy_sol_types::private::AssertTypeEq::<
977                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
978                    >(_) => {}
979                }
980            }
981            #[automatically_derived]
982            #[doc(hidden)]
983            impl ::core::convert::From<upgradeToCall> for UnderlyingRustTuple<'_> {
984                fn from(value: upgradeToCall) -> Self {
985                    (value.newImplementation,)
986                }
987            }
988            #[automatically_derived]
989            #[doc(hidden)]
990            impl ::core::convert::From<UnderlyingRustTuple<'_>> for upgradeToCall {
991                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
992                    Self { newImplementation: tuple.0 }
993                }
994            }
995        }
996        {
997            #[doc(hidden)]
998            type UnderlyingSolTuple<'a> = ();
999            #[doc(hidden)]
1000            type UnderlyingRustTuple<'a> = ();
1001            #[cfg(test)]
1002            #[allow(dead_code, unreachable_patterns)]
1003            fn _type_assertion(
1004                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1005            ) {
1006                match _t {
1007                    alloy_sol_types::private::AssertTypeEq::<
1008                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1009                    >(_) => {}
1010                }
1011            }
1012            #[automatically_derived]
1013            #[doc(hidden)]
1014            impl ::core::convert::From<upgradeToReturn> for UnderlyingRustTuple<'_> {
1015                fn from(value: upgradeToReturn) -> Self {
1016                    ()
1017                }
1018            }
1019            #[automatically_derived]
1020            #[doc(hidden)]
1021            impl ::core::convert::From<UnderlyingRustTuple<'_>> for upgradeToReturn {
1022                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1023                    Self {}
1024                }
1025            }
1026        }
1027        #[automatically_derived]
1028        impl alloy_sol_types::SolCall for upgradeToCall {
1029            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
1030            type Token<'a> = <Self::Parameters<
1031                'a,
1032            > as alloy_sol_types::SolType>::Token<'a>;
1033            type Return = upgradeToReturn;
1034            type ReturnTuple<'a> = ();
1035            type ReturnToken<'a> = <Self::ReturnTuple<
1036                'a,
1037            > as alloy_sol_types::SolType>::Token<'a>;
1038            const SIGNATURE: &'static str = "upgradeTo(address)";
1039            const SELECTOR: [u8; 4] = [54u8, 89u8, 207u8, 230u8];
1040            #[inline]
1041            fn new<'a>(
1042                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1043            ) -> Self {
1044                tuple.into()
1045            }
1046            #[inline]
1047            fn tokenize(&self) -> Self::Token<'_> {
1048                (
1049                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1050                        &self.newImplementation,
1051                    ),
1052                )
1053            }
1054            #[inline]
1055            fn abi_decode_returns(
1056                data: &[u8],
1057                validate: bool,
1058            ) -> alloy_sol_types::Result<Self::Return> {
1059                <Self::ReturnTuple<
1060                    '_,
1061                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
1062                    .map(Into::into)
1063            }
1064        }
1065    };
1066    ///Container for all the [`UpgradeableBeacon`](self) function calls.
1067    #[derive()]
1068    pub enum UpgradeableBeaconCalls {
1069        #[allow(missing_docs)]
1070        implementation(implementationCall),
1071        #[allow(missing_docs)]
1072        owner(ownerCall),
1073        #[allow(missing_docs)]
1074        renounceOwnership(renounceOwnershipCall),
1075        #[allow(missing_docs)]
1076        transferOwnership(transferOwnershipCall),
1077        #[allow(missing_docs)]
1078        upgradeTo(upgradeToCall),
1079    }
1080    #[automatically_derived]
1081    impl UpgradeableBeaconCalls {
1082        /// All the selectors of this enum.
1083        ///
1084        /// Note that the selectors might not be in the same order as the variants.
1085        /// No guarantees are made about the order of the selectors.
1086        ///
1087        /// Prefer using `SolInterface` methods instead.
1088        pub const SELECTORS: &'static [[u8; 4usize]] = &[
1089            [54u8, 89u8, 207u8, 230u8],
1090            [92u8, 96u8, 218u8, 27u8],
1091            [113u8, 80u8, 24u8, 166u8],
1092            [141u8, 165u8, 203u8, 91u8],
1093            [242u8, 253u8, 227u8, 139u8],
1094        ];
1095    }
1096    #[automatically_derived]
1097    impl alloy_sol_types::SolInterface for UpgradeableBeaconCalls {
1098        const NAME: &'static str = "UpgradeableBeaconCalls";
1099        const MIN_DATA_LENGTH: usize = 0usize;
1100        const COUNT: usize = 5usize;
1101        #[inline]
1102        fn selector(&self) -> [u8; 4] {
1103            match self {
1104                Self::implementation(_) => {
1105                    <implementationCall as alloy_sol_types::SolCall>::SELECTOR
1106                }
1107                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
1108                Self::renounceOwnership(_) => {
1109                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
1110                }
1111                Self::transferOwnership(_) => {
1112                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
1113                }
1114                Self::upgradeTo(_) => {
1115                    <upgradeToCall as alloy_sol_types::SolCall>::SELECTOR
1116                }
1117            }
1118        }
1119        #[inline]
1120        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
1121            Self::SELECTORS.get(i).copied()
1122        }
1123        #[inline]
1124        fn valid_selector(selector: [u8; 4]) -> bool {
1125            Self::SELECTORS.binary_search(&selector).is_ok()
1126        }
1127        #[inline]
1128        #[allow(non_snake_case)]
1129        fn abi_decode_raw(
1130            selector: [u8; 4],
1131            data: &[u8],
1132            validate: bool,
1133        ) -> alloy_sol_types::Result<Self> {
1134            static DECODE_SHIMS: &[fn(
1135                &[u8],
1136                bool,
1137            ) -> alloy_sol_types::Result<UpgradeableBeaconCalls>] = &[
1138                {
1139                    fn upgradeTo(
1140                        data: &[u8],
1141                        validate: bool,
1142                    ) -> alloy_sol_types::Result<UpgradeableBeaconCalls> {
1143                        <upgradeToCall as alloy_sol_types::SolCall>::abi_decode_raw(
1144                                data,
1145                                validate,
1146                            )
1147                            .map(UpgradeableBeaconCalls::upgradeTo)
1148                    }
1149                    upgradeTo
1150                },
1151                {
1152                    fn implementation(
1153                        data: &[u8],
1154                        validate: bool,
1155                    ) -> alloy_sol_types::Result<UpgradeableBeaconCalls> {
1156                        <implementationCall as alloy_sol_types::SolCall>::abi_decode_raw(
1157                                data,
1158                                validate,
1159                            )
1160                            .map(UpgradeableBeaconCalls::implementation)
1161                    }
1162                    implementation
1163                },
1164                {
1165                    fn renounceOwnership(
1166                        data: &[u8],
1167                        validate: bool,
1168                    ) -> alloy_sol_types::Result<UpgradeableBeaconCalls> {
1169                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
1170                                data,
1171                                validate,
1172                            )
1173                            .map(UpgradeableBeaconCalls::renounceOwnership)
1174                    }
1175                    renounceOwnership
1176                },
1177                {
1178                    fn owner(
1179                        data: &[u8],
1180                        validate: bool,
1181                    ) -> alloy_sol_types::Result<UpgradeableBeaconCalls> {
1182                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(
1183                                data,
1184                                validate,
1185                            )
1186                            .map(UpgradeableBeaconCalls::owner)
1187                    }
1188                    owner
1189                },
1190                {
1191                    fn transferOwnership(
1192                        data: &[u8],
1193                        validate: bool,
1194                    ) -> alloy_sol_types::Result<UpgradeableBeaconCalls> {
1195                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
1196                                data,
1197                                validate,
1198                            )
1199                            .map(UpgradeableBeaconCalls::transferOwnership)
1200                    }
1201                    transferOwnership
1202                },
1203            ];
1204            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1205                return Err(
1206                    alloy_sol_types::Error::unknown_selector(
1207                        <Self as alloy_sol_types::SolInterface>::NAME,
1208                        selector,
1209                    ),
1210                );
1211            };
1212            DECODE_SHIMS[idx](data, validate)
1213        }
1214        #[inline]
1215        fn abi_encoded_size(&self) -> usize {
1216            match self {
1217                Self::implementation(inner) => {
1218                    <implementationCall as alloy_sol_types::SolCall>::abi_encoded_size(
1219                        inner,
1220                    )
1221                }
1222                Self::owner(inner) => {
1223                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1224                }
1225                Self::renounceOwnership(inner) => {
1226                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
1227                        inner,
1228                    )
1229                }
1230                Self::transferOwnership(inner) => {
1231                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
1232                        inner,
1233                    )
1234                }
1235                Self::upgradeTo(inner) => {
1236                    <upgradeToCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1237                }
1238            }
1239        }
1240        #[inline]
1241        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1242            match self {
1243                Self::implementation(inner) => {
1244                    <implementationCall as alloy_sol_types::SolCall>::abi_encode_raw(
1245                        inner,
1246                        out,
1247                    )
1248                }
1249                Self::owner(inner) => {
1250                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
1251                }
1252                Self::renounceOwnership(inner) => {
1253                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
1254                        inner,
1255                        out,
1256                    )
1257                }
1258                Self::transferOwnership(inner) => {
1259                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
1260                        inner,
1261                        out,
1262                    )
1263                }
1264                Self::upgradeTo(inner) => {
1265                    <upgradeToCall as alloy_sol_types::SolCall>::abi_encode_raw(
1266                        inner,
1267                        out,
1268                    )
1269                }
1270            }
1271        }
1272    }
1273    ///Container for all the [`UpgradeableBeacon`](self) events.
1274    #[derive(Debug, PartialEq, Eq, Hash)]
1275    pub enum UpgradeableBeaconEvents {
1276        #[allow(missing_docs)]
1277        OwnershipTransferred(OwnershipTransferred),
1278        #[allow(missing_docs)]
1279        Upgraded(Upgraded),
1280    }
1281    #[automatically_derived]
1282    impl UpgradeableBeaconEvents {
1283        /// All the selectors of this enum.
1284        ///
1285        /// Note that the selectors might not be in the same order as the variants.
1286        /// No guarantees are made about the order of the selectors.
1287        ///
1288        /// Prefer using `SolInterface` methods instead.
1289        pub const SELECTORS: &'static [[u8; 32usize]] = &[
1290            [
1291                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
1292                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
1293                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
1294            ],
1295            [
1296                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
1297                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
1298                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
1299            ],
1300        ];
1301    }
1302    #[automatically_derived]
1303    impl alloy_sol_types::SolEventInterface for UpgradeableBeaconEvents {
1304        const NAME: &'static str = "UpgradeableBeaconEvents";
1305        const COUNT: usize = 2usize;
1306        fn decode_raw_log(
1307            topics: &[alloy_sol_types::Word],
1308            data: &[u8],
1309            validate: bool,
1310        ) -> alloy_sol_types::Result<Self> {
1311            match topics.first().copied() {
1312                Some(
1313                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1314                ) => {
1315                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
1316                            topics,
1317                            data,
1318                            validate,
1319                        )
1320                        .map(Self::OwnershipTransferred)
1321                }
1322                Some(<Upgraded as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1323                    <Upgraded as alloy_sol_types::SolEvent>::decode_raw_log(
1324                            topics,
1325                            data,
1326                            validate,
1327                        )
1328                        .map(Self::Upgraded)
1329                }
1330                _ => {
1331                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
1332                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
1333                        log: alloy_sol_types::private::Box::new(
1334                            alloy_sol_types::private::LogData::new_unchecked(
1335                                topics.to_vec(),
1336                                data.to_vec().into(),
1337                            ),
1338                        ),
1339                    })
1340                }
1341            }
1342        }
1343    }
1344    #[automatically_derived]
1345    impl alloy_sol_types::private::IntoLogData for UpgradeableBeaconEvents {
1346        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1347            match self {
1348                Self::OwnershipTransferred(inner) => {
1349                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1350                }
1351                Self::Upgraded(inner) => {
1352                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1353                }
1354            }
1355        }
1356        fn into_log_data(self) -> alloy_sol_types::private::LogData {
1357            match self {
1358                Self::OwnershipTransferred(inner) => {
1359                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1360                }
1361                Self::Upgraded(inner) => {
1362                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1363                }
1364            }
1365        }
1366    }
1367    use alloy::contract as alloy_contract;
1368    /**Creates a new wrapper around an on-chain [`UpgradeableBeacon`](self) contract instance.
1369
1370See the [wrapper's documentation](`UpgradeableBeaconInstance`) for more details.*/
1371    #[inline]
1372    pub const fn new<
1373        T: alloy_contract::private::Transport + ::core::clone::Clone,
1374        P: alloy_contract::private::Provider<T, N>,
1375        N: alloy_contract::private::Network,
1376    >(
1377        address: alloy_sol_types::private::Address,
1378        provider: P,
1379    ) -> UpgradeableBeaconInstance<T, P, N> {
1380        UpgradeableBeaconInstance::<T, P, N>::new(address, provider)
1381    }
1382    /**Deploys this contract using the given `provider` and constructor arguments, if any.
1383
1384Returns a new instance of the contract, if the deployment was successful.
1385
1386For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1387    #[inline]
1388    pub fn deploy<
1389        T: alloy_contract::private::Transport + ::core::clone::Clone,
1390        P: alloy_contract::private::Provider<T, N>,
1391        N: alloy_contract::private::Network,
1392    >(
1393        provider: P,
1394        implementation_: alloy::sol_types::private::Address,
1395    ) -> impl ::core::future::Future<
1396        Output = alloy_contract::Result<UpgradeableBeaconInstance<T, P, N>>,
1397    > {
1398        UpgradeableBeaconInstance::<T, P, N>::deploy(provider, implementation_)
1399    }
1400    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1401and constructor arguments, if any.
1402
1403This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1404the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1405    #[inline]
1406    pub fn deploy_builder<
1407        T: alloy_contract::private::Transport + ::core::clone::Clone,
1408        P: alloy_contract::private::Provider<T, N>,
1409        N: alloy_contract::private::Network,
1410    >(
1411        provider: P,
1412        implementation_: alloy::sol_types::private::Address,
1413    ) -> alloy_contract::RawCallBuilder<T, P, N> {
1414        UpgradeableBeaconInstance::<T, P, N>::deploy_builder(provider, implementation_)
1415    }
1416    /**A [`UpgradeableBeacon`](self) instance.
1417
1418Contains type-safe methods for interacting with an on-chain instance of the
1419[`UpgradeableBeacon`](self) contract located at a given `address`, using a given
1420provider `P`.
1421
1422If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1423documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1424be used to deploy a new instance of the contract.
1425
1426See the [module-level documentation](self) for all the available methods.*/
1427    #[derive(Clone)]
1428    pub struct UpgradeableBeaconInstance<T, P, N = alloy_contract::private::Ethereum> {
1429        address: alloy_sol_types::private::Address,
1430        provider: P,
1431        _network_transport: ::core::marker::PhantomData<(N, T)>,
1432    }
1433    #[automatically_derived]
1434    impl<T, P, N> ::core::fmt::Debug for UpgradeableBeaconInstance<T, P, N> {
1435        #[inline]
1436        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1437            f.debug_tuple("UpgradeableBeaconInstance").field(&self.address).finish()
1438        }
1439    }
1440    /// Instantiation and getters/setters.
1441    #[automatically_derived]
1442    impl<
1443        T: alloy_contract::private::Transport + ::core::clone::Clone,
1444        P: alloy_contract::private::Provider<T, N>,
1445        N: alloy_contract::private::Network,
1446    > UpgradeableBeaconInstance<T, P, N> {
1447        /**Creates a new wrapper around an on-chain [`UpgradeableBeacon`](self) contract instance.
1448
1449See the [wrapper's documentation](`UpgradeableBeaconInstance`) for more details.*/
1450        #[inline]
1451        pub const fn new(
1452            address: alloy_sol_types::private::Address,
1453            provider: P,
1454        ) -> Self {
1455            Self {
1456                address,
1457                provider,
1458                _network_transport: ::core::marker::PhantomData,
1459            }
1460        }
1461        /**Deploys this contract using the given `provider` and constructor arguments, if any.
1462
1463Returns a new instance of the contract, if the deployment was successful.
1464
1465For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1466        #[inline]
1467        pub async fn deploy(
1468            provider: P,
1469            implementation_: alloy::sol_types::private::Address,
1470        ) -> alloy_contract::Result<UpgradeableBeaconInstance<T, P, N>> {
1471            let call_builder = Self::deploy_builder(provider, implementation_);
1472            let contract_address = call_builder.deploy().await?;
1473            Ok(Self::new(contract_address, call_builder.provider))
1474        }
1475        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1476and constructor arguments, if any.
1477
1478This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1479the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1480        #[inline]
1481        pub fn deploy_builder(
1482            provider: P,
1483            implementation_: alloy::sol_types::private::Address,
1484        ) -> alloy_contract::RawCallBuilder<T, P, N> {
1485            alloy_contract::RawCallBuilder::new_raw_deploy(
1486                provider,
1487                [
1488                    &BYTECODE[..],
1489                    &alloy_sol_types::SolConstructor::abi_encode(
1490                        &constructorCall { implementation_ },
1491                    )[..],
1492                ]
1493                    .concat()
1494                    .into(),
1495            )
1496        }
1497        /// Returns a reference to the address.
1498        #[inline]
1499        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1500            &self.address
1501        }
1502        /// Sets the address.
1503        #[inline]
1504        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1505            self.address = address;
1506        }
1507        /// Sets the address and returns `self`.
1508        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1509            self.set_address(address);
1510            self
1511        }
1512        /// Returns a reference to the provider.
1513        #[inline]
1514        pub const fn provider(&self) -> &P {
1515            &self.provider
1516        }
1517    }
1518    impl<T, P: ::core::clone::Clone, N> UpgradeableBeaconInstance<T, &P, N> {
1519        /// Clones the provider and returns a new instance with the cloned provider.
1520        #[inline]
1521        pub fn with_cloned_provider(self) -> UpgradeableBeaconInstance<T, P, N> {
1522            UpgradeableBeaconInstance {
1523                address: self.address,
1524                provider: ::core::clone::Clone::clone(&self.provider),
1525                _network_transport: ::core::marker::PhantomData,
1526            }
1527        }
1528    }
1529    /// Function calls.
1530    #[automatically_derived]
1531    impl<
1532        T: alloy_contract::private::Transport + ::core::clone::Clone,
1533        P: alloy_contract::private::Provider<T, N>,
1534        N: alloy_contract::private::Network,
1535    > UpgradeableBeaconInstance<T, P, N> {
1536        /// Creates a new call builder using this contract instance's provider and address.
1537        ///
1538        /// Note that the call can be any function call, not just those defined in this
1539        /// contract. Prefer using the other methods for building type-safe contract calls.
1540        pub fn call_builder<C: alloy_sol_types::SolCall>(
1541            &self,
1542            call: &C,
1543        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
1544            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1545        }
1546        ///Creates a new call builder for the [`implementation`] function.
1547        pub fn implementation(
1548            &self,
1549        ) -> alloy_contract::SolCallBuilder<T, &P, implementationCall, N> {
1550            self.call_builder(&implementationCall {})
1551        }
1552        ///Creates a new call builder for the [`owner`] function.
1553        pub fn owner(&self) -> alloy_contract::SolCallBuilder<T, &P, ownerCall, N> {
1554            self.call_builder(&ownerCall {})
1555        }
1556        ///Creates a new call builder for the [`renounceOwnership`] function.
1557        pub fn renounceOwnership(
1558            &self,
1559        ) -> alloy_contract::SolCallBuilder<T, &P, renounceOwnershipCall, N> {
1560            self.call_builder(&renounceOwnershipCall {})
1561        }
1562        ///Creates a new call builder for the [`transferOwnership`] function.
1563        pub fn transferOwnership(
1564            &self,
1565            newOwner: alloy::sol_types::private::Address,
1566        ) -> alloy_contract::SolCallBuilder<T, &P, transferOwnershipCall, N> {
1567            self.call_builder(&transferOwnershipCall { newOwner })
1568        }
1569        ///Creates a new call builder for the [`upgradeTo`] function.
1570        pub fn upgradeTo(
1571            &self,
1572            newImplementation: alloy::sol_types::private::Address,
1573        ) -> alloy_contract::SolCallBuilder<T, &P, upgradeToCall, N> {
1574            self.call_builder(&upgradeToCall { newImplementation })
1575        }
1576    }
1577    /// Event filters.
1578    #[automatically_derived]
1579    impl<
1580        T: alloy_contract::private::Transport + ::core::clone::Clone,
1581        P: alloy_contract::private::Provider<T, N>,
1582        N: alloy_contract::private::Network,
1583    > UpgradeableBeaconInstance<T, P, N> {
1584        /// Creates a new event filter using this contract instance's provider and address.
1585        ///
1586        /// Note that the type can be any event, not just those defined in this contract.
1587        /// Prefer using the other methods for building type-safe event filters.
1588        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1589            &self,
1590        ) -> alloy_contract::Event<T, &P, E, N> {
1591            alloy_contract::Event::new_sol(&self.provider, &self.address)
1592        }
1593        ///Creates a new event filter for the [`OwnershipTransferred`] event.
1594        pub fn OwnershipTransferred_filter(
1595            &self,
1596        ) -> alloy_contract::Event<T, &P, OwnershipTransferred, N> {
1597            self.event_filter::<OwnershipTransferred>()
1598        }
1599        ///Creates a new event filter for the [`Upgraded`] event.
1600        pub fn Upgraded_filter(&self) -> alloy_contract::Event<T, &P, Upgraded, N> {
1601            self.event_filter::<Upgraded>()
1602        }
1603    }
1604}