openzeppelin_rs/contracts/
ERC721Wrapper.rs

1pub use erc721_wrapper::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod erc721_wrapper {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"depositFor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"contract IERC721\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdrawTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static ERC721WRAPPER_ABI: ::ethers_contract::Lazy<::ethers_core::abi::Abi> = ::ethers_contract::Lazy::new(||
17    ::ethers_core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid"));
18    pub struct ERC721Wrapper<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for ERC721Wrapper<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for ERC721Wrapper<M> {
25        type Target = ::ethers_contract::Contract<M>;
26        fn deref(&self) -> &Self::Target {
27            &self.0
28        }
29    }
30    impl<M> ::core::ops::DerefMut for ERC721Wrapper<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for ERC721Wrapper<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(ERC721Wrapper)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> ERC721Wrapper<M> {
41        /// Creates a new contract instance with the specified `ethers` client at
42        /// `address`. The contract derefs to a `ethers::Contract` object.
43        pub fn new<T: Into<::ethers_core::types::Address>>(
44            address: T,
45            client: ::std::sync::Arc<M>,
46        ) -> Self {
47            Self(
48                ::ethers_contract::Contract::new(
49                    address.into(),
50                    ERC721WRAPPER_ABI.clone(),
51                    client,
52                ),
53            )
54        }
55        ///Calls the contract's `approve` (0x095ea7b3) function
56        pub fn approve(
57            &self,
58            to: ::ethers_core::types::Address,
59            token_id: ::ethers_core::types::U256,
60        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
61            self.0
62                .method_hash([9, 94, 167, 179], (to, token_id))
63                .expect("method not found (this should never happen)")
64        }
65        ///Calls the contract's `balanceOf` (0x70a08231) function
66        pub fn balance_of(
67            &self,
68            owner: ::ethers_core::types::Address,
69        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
70            self.0
71                .method_hash([112, 160, 130, 49], owner)
72                .expect("method not found (this should never happen)")
73        }
74        ///Calls the contract's `depositFor` (0xcace6eb2) function
75        pub fn deposit_for(
76            &self,
77            account: ::ethers_core::types::Address,
78            token_ids: ::std::vec::Vec<::ethers_core::types::U256>,
79        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
80            self.0
81                .method_hash([202, 206, 110, 178], (account, token_ids))
82                .expect("method not found (this should never happen)")
83        }
84        ///Calls the contract's `getApproved` (0x081812fc) function
85        pub fn get_approved(
86            &self,
87            token_id: ::ethers_core::types::U256,
88        ) -> ::ethers_contract::builders::ContractCall<
89            M,
90            ::ethers_core::types::Address,
91        > {
92            self.0
93                .method_hash([8, 24, 18, 252], token_id)
94                .expect("method not found (this should never happen)")
95        }
96        ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function
97        pub fn is_approved_for_all(
98            &self,
99            owner: ::ethers_core::types::Address,
100            operator: ::ethers_core::types::Address,
101        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
102            self.0
103                .method_hash([233, 133, 233, 197], (owner, operator))
104                .expect("method not found (this should never happen)")
105        }
106        ///Calls the contract's `name` (0x06fdde03) function
107        pub fn name(
108            &self,
109        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
110            self.0
111                .method_hash([6, 253, 222, 3], ())
112                .expect("method not found (this should never happen)")
113        }
114        ///Calls the contract's `onERC721Received` (0x150b7a02) function
115        pub fn on_erc721_received(
116            &self,
117            p0: ::ethers_core::types::Address,
118            from: ::ethers_core::types::Address,
119            token_id: ::ethers_core::types::U256,
120            p3: ::ethers_core::types::Bytes,
121        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 4]> {
122            self.0
123                .method_hash([21, 11, 122, 2], (p0, from, token_id, p3))
124                .expect("method not found (this should never happen)")
125        }
126        ///Calls the contract's `ownerOf` (0x6352211e) function
127        pub fn owner_of(
128            &self,
129            token_id: ::ethers_core::types::U256,
130        ) -> ::ethers_contract::builders::ContractCall<
131            M,
132            ::ethers_core::types::Address,
133        > {
134            self.0
135                .method_hash([99, 82, 33, 30], token_id)
136                .expect("method not found (this should never happen)")
137        }
138        ///Calls the contract's `safeTransferFrom` (0x42842e0e) function
139        pub fn safe_transfer_from(
140            &self,
141            from: ::ethers_core::types::Address,
142            to: ::ethers_core::types::Address,
143            token_id: ::ethers_core::types::U256,
144        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
145            self.0
146                .method_hash([66, 132, 46, 14], (from, to, token_id))
147                .expect("method not found (this should never happen)")
148        }
149        ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function
150        pub fn safe_transfer_from_with_from_and_to_and_data(
151            &self,
152            from: ::ethers_core::types::Address,
153            to: ::ethers_core::types::Address,
154            token_id: ::ethers_core::types::U256,
155            data: ::ethers_core::types::Bytes,
156        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
157            self.0
158                .method_hash([184, 141, 79, 222], (from, to, token_id, data))
159                .expect("method not found (this should never happen)")
160        }
161        ///Calls the contract's `setApprovalForAll` (0xa22cb465) function
162        pub fn set_approval_for_all(
163            &self,
164            operator: ::ethers_core::types::Address,
165            approved: bool,
166        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
167            self.0
168                .method_hash([162, 44, 180, 101], (operator, approved))
169                .expect("method not found (this should never happen)")
170        }
171        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
172        pub fn supports_interface(
173            &self,
174            interface_id: [u8; 4],
175        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
176            self.0
177                .method_hash([1, 255, 201, 167], interface_id)
178                .expect("method not found (this should never happen)")
179        }
180        ///Calls the contract's `symbol` (0x95d89b41) function
181        pub fn symbol(
182            &self,
183        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
184            self.0
185                .method_hash([149, 216, 155, 65], ())
186                .expect("method not found (this should never happen)")
187        }
188        ///Calls the contract's `tokenURI` (0xc87b56dd) function
189        pub fn token_uri(
190            &self,
191            token_id: ::ethers_core::types::U256,
192        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
193            self.0
194                .method_hash([200, 123, 86, 221], token_id)
195                .expect("method not found (this should never happen)")
196        }
197        ///Calls the contract's `transferFrom` (0x23b872dd) function
198        pub fn transfer_from(
199            &self,
200            from: ::ethers_core::types::Address,
201            to: ::ethers_core::types::Address,
202            token_id: ::ethers_core::types::U256,
203        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
204            self.0
205                .method_hash([35, 184, 114, 221], (from, to, token_id))
206                .expect("method not found (this should never happen)")
207        }
208        ///Calls the contract's `underlying` (0x6f307dc3) function
209        pub fn underlying(
210            &self,
211        ) -> ::ethers_contract::builders::ContractCall<
212            M,
213            ::ethers_core::types::Address,
214        > {
215            self.0
216                .method_hash([111, 48, 125, 195], ())
217                .expect("method not found (this should never happen)")
218        }
219        ///Calls the contract's `withdrawTo` (0x7c1b126c) function
220        pub fn withdraw_to(
221            &self,
222            account: ::ethers_core::types::Address,
223            token_ids: ::std::vec::Vec<::ethers_core::types::U256>,
224        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
225            self.0
226                .method_hash([124, 27, 18, 108], (account, token_ids))
227                .expect("method not found (this should never happen)")
228        }
229        ///Gets the contract's `Approval` event
230        pub fn approval_filter(
231            &self,
232        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, ApprovalFilter> {
233            self.0.event()
234        }
235        ///Gets the contract's `ApprovalForAll` event
236        pub fn approval_for_all_filter(
237            &self,
238        ) -> ::ethers_contract::builders::Event<
239            ::std::sync::Arc<M>,
240            M,
241            ApprovalForAllFilter,
242        > {
243            self.0.event()
244        }
245        ///Gets the contract's `Transfer` event
246        pub fn transfer_filter(
247            &self,
248        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, TransferFilter> {
249            self.0.event()
250        }
251        /// Returns an `Event` builder for all the events of this contract.
252        pub fn events(
253            &self,
254        ) -> ::ethers_contract::builders::Event<
255            ::std::sync::Arc<M>,
256            M,
257            ERC721WrapperEvents,
258        > {
259            self.0.event_with_filter(::core::default::Default::default())
260        }
261    }
262    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
263    for ERC721Wrapper<M> {
264        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
265            Self::new(contract.address(), contract.client())
266        }
267    }
268    #[derive(
269        Clone,
270        ::ethers_contract::EthEvent,
271        ::ethers_contract::EthDisplay,
272        Default,
273        Debug,
274        PartialEq,
275        Eq,
276        Hash
277    )]
278    #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
279    pub struct ApprovalFilter {
280        #[ethevent(indexed)]
281        pub owner: ::ethers_core::types::Address,
282        #[ethevent(indexed)]
283        pub approved: ::ethers_core::types::Address,
284        #[ethevent(indexed)]
285        pub token_id: ::ethers_core::types::U256,
286    }
287    #[derive(
288        Clone,
289        ::ethers_contract::EthEvent,
290        ::ethers_contract::EthDisplay,
291        Default,
292        Debug,
293        PartialEq,
294        Eq,
295        Hash
296    )]
297    #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")]
298    pub struct ApprovalForAllFilter {
299        #[ethevent(indexed)]
300        pub owner: ::ethers_core::types::Address,
301        #[ethevent(indexed)]
302        pub operator: ::ethers_core::types::Address,
303        pub approved: bool,
304    }
305    #[derive(
306        Clone,
307        ::ethers_contract::EthEvent,
308        ::ethers_contract::EthDisplay,
309        Default,
310        Debug,
311        PartialEq,
312        Eq,
313        Hash
314    )]
315    #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
316    pub struct TransferFilter {
317        #[ethevent(indexed)]
318        pub from: ::ethers_core::types::Address,
319        #[ethevent(indexed)]
320        pub to: ::ethers_core::types::Address,
321        #[ethevent(indexed)]
322        pub token_id: ::ethers_core::types::U256,
323    }
324    ///Container type for all of the contract's events
325    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
326    pub enum ERC721WrapperEvents {
327        ApprovalFilter(ApprovalFilter),
328        ApprovalForAllFilter(ApprovalForAllFilter),
329        TransferFilter(TransferFilter),
330    }
331    impl ::ethers_contract::EthLogDecode for ERC721WrapperEvents {
332        fn decode_log(
333            log: &::ethers_core::abi::RawLog,
334        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
335            if let Ok(decoded) = ApprovalFilter::decode_log(log) {
336                return Ok(ERC721WrapperEvents::ApprovalFilter(decoded));
337            }
338            if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) {
339                return Ok(ERC721WrapperEvents::ApprovalForAllFilter(decoded));
340            }
341            if let Ok(decoded) = TransferFilter::decode_log(log) {
342                return Ok(ERC721WrapperEvents::TransferFilter(decoded));
343            }
344            Err(::ethers_core::abi::Error::InvalidData)
345        }
346    }
347    impl ::core::fmt::Display for ERC721WrapperEvents {
348        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
349            match self {
350                Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
351                Self::ApprovalForAllFilter(element) => {
352                    ::core::fmt::Display::fmt(element, f)
353                }
354                Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f),
355            }
356        }
357    }
358    impl ::core::convert::From<ApprovalFilter> for ERC721WrapperEvents {
359        fn from(value: ApprovalFilter) -> Self {
360            Self::ApprovalFilter(value)
361        }
362    }
363    impl ::core::convert::From<ApprovalForAllFilter> for ERC721WrapperEvents {
364        fn from(value: ApprovalForAllFilter) -> Self {
365            Self::ApprovalForAllFilter(value)
366        }
367    }
368    impl ::core::convert::From<TransferFilter> for ERC721WrapperEvents {
369        fn from(value: TransferFilter) -> Self {
370            Self::TransferFilter(value)
371        }
372    }
373    ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3`
374    #[derive(
375        Clone,
376        ::ethers_contract::EthCall,
377        ::ethers_contract::EthDisplay,
378        Default,
379        Debug,
380        PartialEq,
381        Eq,
382        Hash
383    )]
384    #[ethcall(name = "approve", abi = "approve(address,uint256)")]
385    pub struct ApproveCall {
386        pub to: ::ethers_core::types::Address,
387        pub token_id: ::ethers_core::types::U256,
388    }
389    ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
390    #[derive(
391        Clone,
392        ::ethers_contract::EthCall,
393        ::ethers_contract::EthDisplay,
394        Default,
395        Debug,
396        PartialEq,
397        Eq,
398        Hash
399    )]
400    #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
401    pub struct BalanceOfCall {
402        pub owner: ::ethers_core::types::Address,
403    }
404    ///Container type for all input parameters for the `depositFor` function with signature `depositFor(address,uint256[])` and selector `0xcace6eb2`
405    #[derive(
406        Clone,
407        ::ethers_contract::EthCall,
408        ::ethers_contract::EthDisplay,
409        Default,
410        Debug,
411        PartialEq,
412        Eq,
413        Hash
414    )]
415    #[ethcall(name = "depositFor", abi = "depositFor(address,uint256[])")]
416    pub struct DepositForCall {
417        pub account: ::ethers_core::types::Address,
418        pub token_ids: ::std::vec::Vec<::ethers_core::types::U256>,
419    }
420    ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
421    #[derive(
422        Clone,
423        ::ethers_contract::EthCall,
424        ::ethers_contract::EthDisplay,
425        Default,
426        Debug,
427        PartialEq,
428        Eq,
429        Hash
430    )]
431    #[ethcall(name = "getApproved", abi = "getApproved(uint256)")]
432    pub struct GetApprovedCall {
433        pub token_id: ::ethers_core::types::U256,
434    }
435    ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
436    #[derive(
437        Clone,
438        ::ethers_contract::EthCall,
439        ::ethers_contract::EthDisplay,
440        Default,
441        Debug,
442        PartialEq,
443        Eq,
444        Hash
445    )]
446    #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")]
447    pub struct IsApprovedForAllCall {
448        pub owner: ::ethers_core::types::Address,
449        pub operator: ::ethers_core::types::Address,
450    }
451    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
452    #[derive(
453        Clone,
454        ::ethers_contract::EthCall,
455        ::ethers_contract::EthDisplay,
456        Default,
457        Debug,
458        PartialEq,
459        Eq,
460        Hash
461    )]
462    #[ethcall(name = "name", abi = "name()")]
463    pub struct NameCall;
464    ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
465    #[derive(
466        Clone,
467        ::ethers_contract::EthCall,
468        ::ethers_contract::EthDisplay,
469        Default,
470        Debug,
471        PartialEq,
472        Eq,
473        Hash
474    )]
475    #[ethcall(
476        name = "onERC721Received",
477        abi = "onERC721Received(address,address,uint256,bytes)"
478    )]
479    pub struct OnERC721ReceivedCall {
480        pub p0: ::ethers_core::types::Address,
481        pub from: ::ethers_core::types::Address,
482        pub token_id: ::ethers_core::types::U256,
483        pub p3: ::ethers_core::types::Bytes,
484    }
485    ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
486    #[derive(
487        Clone,
488        ::ethers_contract::EthCall,
489        ::ethers_contract::EthDisplay,
490        Default,
491        Debug,
492        PartialEq,
493        Eq,
494        Hash
495    )]
496    #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")]
497    pub struct OwnerOfCall {
498        pub token_id: ::ethers_core::types::U256,
499    }
500    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e`
501    #[derive(
502        Clone,
503        ::ethers_contract::EthCall,
504        ::ethers_contract::EthDisplay,
505        Default,
506        Debug,
507        PartialEq,
508        Eq,
509        Hash
510    )]
511    #[ethcall(
512        name = "safeTransferFrom",
513        abi = "safeTransferFrom(address,address,uint256)"
514    )]
515    pub struct SafeTransferFromCall {
516        pub from: ::ethers_core::types::Address,
517        pub to: ::ethers_core::types::Address,
518        pub token_id: ::ethers_core::types::U256,
519    }
520    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde`
521    #[derive(
522        Clone,
523        ::ethers_contract::EthCall,
524        ::ethers_contract::EthDisplay,
525        Default,
526        Debug,
527        PartialEq,
528        Eq,
529        Hash
530    )]
531    #[ethcall(
532        name = "safeTransferFrom",
533        abi = "safeTransferFrom(address,address,uint256,bytes)"
534    )]
535    pub struct SafeTransferFromWithFromAndToAndDataCall {
536        pub from: ::ethers_core::types::Address,
537        pub to: ::ethers_core::types::Address,
538        pub token_id: ::ethers_core::types::U256,
539        pub data: ::ethers_core::types::Bytes,
540    }
541    ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465`
542    #[derive(
543        Clone,
544        ::ethers_contract::EthCall,
545        ::ethers_contract::EthDisplay,
546        Default,
547        Debug,
548        PartialEq,
549        Eq,
550        Hash
551    )]
552    #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")]
553    pub struct SetApprovalForAllCall {
554        pub operator: ::ethers_core::types::Address,
555        pub approved: bool,
556    }
557    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
558    #[derive(
559        Clone,
560        ::ethers_contract::EthCall,
561        ::ethers_contract::EthDisplay,
562        Default,
563        Debug,
564        PartialEq,
565        Eq,
566        Hash
567    )]
568    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
569    pub struct SupportsInterfaceCall {
570        pub interface_id: [u8; 4],
571    }
572    ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41`
573    #[derive(
574        Clone,
575        ::ethers_contract::EthCall,
576        ::ethers_contract::EthDisplay,
577        Default,
578        Debug,
579        PartialEq,
580        Eq,
581        Hash
582    )]
583    #[ethcall(name = "symbol", abi = "symbol()")]
584    pub struct SymbolCall;
585    ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
586    #[derive(
587        Clone,
588        ::ethers_contract::EthCall,
589        ::ethers_contract::EthDisplay,
590        Default,
591        Debug,
592        PartialEq,
593        Eq,
594        Hash
595    )]
596    #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")]
597    pub struct TokenURICall {
598        pub token_id: ::ethers_core::types::U256,
599    }
600    ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`
601    #[derive(
602        Clone,
603        ::ethers_contract::EthCall,
604        ::ethers_contract::EthDisplay,
605        Default,
606        Debug,
607        PartialEq,
608        Eq,
609        Hash
610    )]
611    #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
612    pub struct TransferFromCall {
613        pub from: ::ethers_core::types::Address,
614        pub to: ::ethers_core::types::Address,
615        pub token_id: ::ethers_core::types::U256,
616    }
617    ///Container type for all input parameters for the `underlying` function with signature `underlying()` and selector `0x6f307dc3`
618    #[derive(
619        Clone,
620        ::ethers_contract::EthCall,
621        ::ethers_contract::EthDisplay,
622        Default,
623        Debug,
624        PartialEq,
625        Eq,
626        Hash
627    )]
628    #[ethcall(name = "underlying", abi = "underlying()")]
629    pub struct UnderlyingCall;
630    ///Container type for all input parameters for the `withdrawTo` function with signature `withdrawTo(address,uint256[])` and selector `0x7c1b126c`
631    #[derive(
632        Clone,
633        ::ethers_contract::EthCall,
634        ::ethers_contract::EthDisplay,
635        Default,
636        Debug,
637        PartialEq,
638        Eq,
639        Hash
640    )]
641    #[ethcall(name = "withdrawTo", abi = "withdrawTo(address,uint256[])")]
642    pub struct WithdrawToCall {
643        pub account: ::ethers_core::types::Address,
644        pub token_ids: ::std::vec::Vec<::ethers_core::types::U256>,
645    }
646    ///Container type for all of the contract's call
647    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
648    pub enum ERC721WrapperCalls {
649        Approve(ApproveCall),
650        BalanceOf(BalanceOfCall),
651        DepositFor(DepositForCall),
652        GetApproved(GetApprovedCall),
653        IsApprovedForAll(IsApprovedForAllCall),
654        Name(NameCall),
655        OnERC721Received(OnERC721ReceivedCall),
656        OwnerOf(OwnerOfCall),
657        SafeTransferFrom(SafeTransferFromCall),
658        SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall),
659        SetApprovalForAll(SetApprovalForAllCall),
660        SupportsInterface(SupportsInterfaceCall),
661        Symbol(SymbolCall),
662        TokenURI(TokenURICall),
663        TransferFrom(TransferFromCall),
664        Underlying(UnderlyingCall),
665        WithdrawTo(WithdrawToCall),
666    }
667    impl ::ethers_core::abi::AbiDecode for ERC721WrapperCalls {
668        fn decode(
669            data: impl AsRef<[u8]>,
670        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
671            let data = data.as_ref();
672            if let Ok(decoded)
673                = <ApproveCall as ::ethers_core::abi::AbiDecode>::decode(data) {
674                return Ok(Self::Approve(decoded));
675            }
676            if let Ok(decoded)
677                = <BalanceOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
678                return Ok(Self::BalanceOf(decoded));
679            }
680            if let Ok(decoded)
681                = <DepositForCall as ::ethers_core::abi::AbiDecode>::decode(data) {
682                return Ok(Self::DepositFor(decoded));
683            }
684            if let Ok(decoded)
685                = <GetApprovedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
686                return Ok(Self::GetApproved(decoded));
687            }
688            if let Ok(decoded)
689                = <IsApprovedForAllCall as ::ethers_core::abi::AbiDecode>::decode(data) {
690                return Ok(Self::IsApprovedForAll(decoded));
691            }
692            if let Ok(decoded)
693                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
694                return Ok(Self::Name(decoded));
695            }
696            if let Ok(decoded)
697                = <OnERC721ReceivedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
698                return Ok(Self::OnERC721Received(decoded));
699            }
700            if let Ok(decoded)
701                = <OwnerOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
702                return Ok(Self::OwnerOf(decoded));
703            }
704            if let Ok(decoded)
705                = <SafeTransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
706                return Ok(Self::SafeTransferFrom(decoded));
707            }
708            if let Ok(decoded)
709                = <SafeTransferFromWithFromAndToAndDataCall as ::ethers_core::abi::AbiDecode>::decode(
710                    data,
711                ) {
712                return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded));
713            }
714            if let Ok(decoded)
715                = <SetApprovalForAllCall as ::ethers_core::abi::AbiDecode>::decode(
716                    data,
717                ) {
718                return Ok(Self::SetApprovalForAll(decoded));
719            }
720            if let Ok(decoded)
721                = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
722                    data,
723                ) {
724                return Ok(Self::SupportsInterface(decoded));
725            }
726            if let Ok(decoded)
727                = <SymbolCall as ::ethers_core::abi::AbiDecode>::decode(data) {
728                return Ok(Self::Symbol(decoded));
729            }
730            if let Ok(decoded)
731                = <TokenURICall as ::ethers_core::abi::AbiDecode>::decode(data) {
732                return Ok(Self::TokenURI(decoded));
733            }
734            if let Ok(decoded)
735                = <TransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
736                return Ok(Self::TransferFrom(decoded));
737            }
738            if let Ok(decoded)
739                = <UnderlyingCall as ::ethers_core::abi::AbiDecode>::decode(data) {
740                return Ok(Self::Underlying(decoded));
741            }
742            if let Ok(decoded)
743                = <WithdrawToCall as ::ethers_core::abi::AbiDecode>::decode(data) {
744                return Ok(Self::WithdrawTo(decoded));
745            }
746            Err(::ethers_core::abi::Error::InvalidData.into())
747        }
748    }
749    impl ::ethers_core::abi::AbiEncode for ERC721WrapperCalls {
750        fn encode(self) -> Vec<u8> {
751            match self {
752                Self::Approve(element) => ::ethers_core::abi::AbiEncode::encode(element),
753                Self::BalanceOf(element) => {
754                    ::ethers_core::abi::AbiEncode::encode(element)
755                }
756                Self::DepositFor(element) => {
757                    ::ethers_core::abi::AbiEncode::encode(element)
758                }
759                Self::GetApproved(element) => {
760                    ::ethers_core::abi::AbiEncode::encode(element)
761                }
762                Self::IsApprovedForAll(element) => {
763                    ::ethers_core::abi::AbiEncode::encode(element)
764                }
765                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
766                Self::OnERC721Received(element) => {
767                    ::ethers_core::abi::AbiEncode::encode(element)
768                }
769                Self::OwnerOf(element) => ::ethers_core::abi::AbiEncode::encode(element),
770                Self::SafeTransferFrom(element) => {
771                    ::ethers_core::abi::AbiEncode::encode(element)
772                }
773                Self::SafeTransferFromWithFromAndToAndData(element) => {
774                    ::ethers_core::abi::AbiEncode::encode(element)
775                }
776                Self::SetApprovalForAll(element) => {
777                    ::ethers_core::abi::AbiEncode::encode(element)
778                }
779                Self::SupportsInterface(element) => {
780                    ::ethers_core::abi::AbiEncode::encode(element)
781                }
782                Self::Symbol(element) => ::ethers_core::abi::AbiEncode::encode(element),
783                Self::TokenURI(element) => ::ethers_core::abi::AbiEncode::encode(element),
784                Self::TransferFrom(element) => {
785                    ::ethers_core::abi::AbiEncode::encode(element)
786                }
787                Self::Underlying(element) => {
788                    ::ethers_core::abi::AbiEncode::encode(element)
789                }
790                Self::WithdrawTo(element) => {
791                    ::ethers_core::abi::AbiEncode::encode(element)
792                }
793            }
794        }
795    }
796    impl ::core::fmt::Display for ERC721WrapperCalls {
797        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
798            match self {
799                Self::Approve(element) => ::core::fmt::Display::fmt(element, f),
800                Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f),
801                Self::DepositFor(element) => ::core::fmt::Display::fmt(element, f),
802                Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f),
803                Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f),
804                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
805                Self::OnERC721Received(element) => ::core::fmt::Display::fmt(element, f),
806                Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f),
807                Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f),
808                Self::SafeTransferFromWithFromAndToAndData(element) => {
809                    ::core::fmt::Display::fmt(element, f)
810                }
811                Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f),
812                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
813                Self::Symbol(element) => ::core::fmt::Display::fmt(element, f),
814                Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f),
815                Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f),
816                Self::Underlying(element) => ::core::fmt::Display::fmt(element, f),
817                Self::WithdrawTo(element) => ::core::fmt::Display::fmt(element, f),
818            }
819        }
820    }
821    impl ::core::convert::From<ApproveCall> for ERC721WrapperCalls {
822        fn from(value: ApproveCall) -> Self {
823            Self::Approve(value)
824        }
825    }
826    impl ::core::convert::From<BalanceOfCall> for ERC721WrapperCalls {
827        fn from(value: BalanceOfCall) -> Self {
828            Self::BalanceOf(value)
829        }
830    }
831    impl ::core::convert::From<DepositForCall> for ERC721WrapperCalls {
832        fn from(value: DepositForCall) -> Self {
833            Self::DepositFor(value)
834        }
835    }
836    impl ::core::convert::From<GetApprovedCall> for ERC721WrapperCalls {
837        fn from(value: GetApprovedCall) -> Self {
838            Self::GetApproved(value)
839        }
840    }
841    impl ::core::convert::From<IsApprovedForAllCall> for ERC721WrapperCalls {
842        fn from(value: IsApprovedForAllCall) -> Self {
843            Self::IsApprovedForAll(value)
844        }
845    }
846    impl ::core::convert::From<NameCall> for ERC721WrapperCalls {
847        fn from(value: NameCall) -> Self {
848            Self::Name(value)
849        }
850    }
851    impl ::core::convert::From<OnERC721ReceivedCall> for ERC721WrapperCalls {
852        fn from(value: OnERC721ReceivedCall) -> Self {
853            Self::OnERC721Received(value)
854        }
855    }
856    impl ::core::convert::From<OwnerOfCall> for ERC721WrapperCalls {
857        fn from(value: OwnerOfCall) -> Self {
858            Self::OwnerOf(value)
859        }
860    }
861    impl ::core::convert::From<SafeTransferFromCall> for ERC721WrapperCalls {
862        fn from(value: SafeTransferFromCall) -> Self {
863            Self::SafeTransferFrom(value)
864        }
865    }
866    impl ::core::convert::From<SafeTransferFromWithFromAndToAndDataCall>
867    for ERC721WrapperCalls {
868        fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self {
869            Self::SafeTransferFromWithFromAndToAndData(value)
870        }
871    }
872    impl ::core::convert::From<SetApprovalForAllCall> for ERC721WrapperCalls {
873        fn from(value: SetApprovalForAllCall) -> Self {
874            Self::SetApprovalForAll(value)
875        }
876    }
877    impl ::core::convert::From<SupportsInterfaceCall> for ERC721WrapperCalls {
878        fn from(value: SupportsInterfaceCall) -> Self {
879            Self::SupportsInterface(value)
880        }
881    }
882    impl ::core::convert::From<SymbolCall> for ERC721WrapperCalls {
883        fn from(value: SymbolCall) -> Self {
884            Self::Symbol(value)
885        }
886    }
887    impl ::core::convert::From<TokenURICall> for ERC721WrapperCalls {
888        fn from(value: TokenURICall) -> Self {
889            Self::TokenURI(value)
890        }
891    }
892    impl ::core::convert::From<TransferFromCall> for ERC721WrapperCalls {
893        fn from(value: TransferFromCall) -> Self {
894            Self::TransferFrom(value)
895        }
896    }
897    impl ::core::convert::From<UnderlyingCall> for ERC721WrapperCalls {
898        fn from(value: UnderlyingCall) -> Self {
899            Self::Underlying(value)
900        }
901    }
902    impl ::core::convert::From<WithdrawToCall> for ERC721WrapperCalls {
903        fn from(value: WithdrawToCall) -> Self {
904            Self::WithdrawTo(value)
905        }
906    }
907    ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
908    #[derive(
909        Clone,
910        ::ethers_contract::EthAbiType,
911        ::ethers_contract::EthAbiCodec,
912        Default,
913        Debug,
914        PartialEq,
915        Eq,
916        Hash
917    )]
918    pub struct BalanceOfReturn(pub ::ethers_core::types::U256);
919    ///Container type for all return fields from the `depositFor` function with signature `depositFor(address,uint256[])` and selector `0xcace6eb2`
920    #[derive(
921        Clone,
922        ::ethers_contract::EthAbiType,
923        ::ethers_contract::EthAbiCodec,
924        Default,
925        Debug,
926        PartialEq,
927        Eq,
928        Hash
929    )]
930    pub struct DepositForReturn(pub bool);
931    ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
932    #[derive(
933        Clone,
934        ::ethers_contract::EthAbiType,
935        ::ethers_contract::EthAbiCodec,
936        Default,
937        Debug,
938        PartialEq,
939        Eq,
940        Hash
941    )]
942    pub struct GetApprovedReturn(pub ::ethers_core::types::Address);
943    ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
944    #[derive(
945        Clone,
946        ::ethers_contract::EthAbiType,
947        ::ethers_contract::EthAbiCodec,
948        Default,
949        Debug,
950        PartialEq,
951        Eq,
952        Hash
953    )]
954    pub struct IsApprovedForAllReturn(pub bool);
955    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
956    #[derive(
957        Clone,
958        ::ethers_contract::EthAbiType,
959        ::ethers_contract::EthAbiCodec,
960        Default,
961        Debug,
962        PartialEq,
963        Eq,
964        Hash
965    )]
966    pub struct NameReturn(pub ::std::string::String);
967    ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
968    #[derive(
969        Clone,
970        ::ethers_contract::EthAbiType,
971        ::ethers_contract::EthAbiCodec,
972        Default,
973        Debug,
974        PartialEq,
975        Eq,
976        Hash
977    )]
978    pub struct OnERC721ReceivedReturn(pub [u8; 4]);
979    ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
980    #[derive(
981        Clone,
982        ::ethers_contract::EthAbiType,
983        ::ethers_contract::EthAbiCodec,
984        Default,
985        Debug,
986        PartialEq,
987        Eq,
988        Hash
989    )]
990    pub struct OwnerOfReturn(pub ::ethers_core::types::Address);
991    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
992    #[derive(
993        Clone,
994        ::ethers_contract::EthAbiType,
995        ::ethers_contract::EthAbiCodec,
996        Default,
997        Debug,
998        PartialEq,
999        Eq,
1000        Hash
1001    )]
1002    pub struct SupportsInterfaceReturn(pub bool);
1003    ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41`
1004    #[derive(
1005        Clone,
1006        ::ethers_contract::EthAbiType,
1007        ::ethers_contract::EthAbiCodec,
1008        Default,
1009        Debug,
1010        PartialEq,
1011        Eq,
1012        Hash
1013    )]
1014    pub struct SymbolReturn(pub ::std::string::String);
1015    ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
1016    #[derive(
1017        Clone,
1018        ::ethers_contract::EthAbiType,
1019        ::ethers_contract::EthAbiCodec,
1020        Default,
1021        Debug,
1022        PartialEq,
1023        Eq,
1024        Hash
1025    )]
1026    pub struct TokenURIReturn(pub ::std::string::String);
1027    ///Container type for all return fields from the `underlying` function with signature `underlying()` and selector `0x6f307dc3`
1028    #[derive(
1029        Clone,
1030        ::ethers_contract::EthAbiType,
1031        ::ethers_contract::EthAbiCodec,
1032        Default,
1033        Debug,
1034        PartialEq,
1035        Eq,
1036        Hash
1037    )]
1038    pub struct UnderlyingReturn(pub ::ethers_core::types::Address);
1039    ///Container type for all return fields from the `withdrawTo` function with signature `withdrawTo(address,uint256[])` and selector `0x7c1b126c`
1040    #[derive(
1041        Clone,
1042        ::ethers_contract::EthAbiType,
1043        ::ethers_contract::EthAbiCodec,
1044        Default,
1045        Debug,
1046        PartialEq,
1047        Eq,
1048        Hash
1049    )]
1050    pub struct WithdrawToReturn(pub bool);
1051}