openzeppelin_rs/contracts/
ERC721URIStorage.rs

1pub use erc721uri_storage::*;
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 erc721uri_storage {
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\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"BatchMetadataUpdate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"MetadataUpdate\",\"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\":\"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\":\"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\":[]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static ERC721URISTORAGE_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 ERC721URIStorage<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for ERC721URIStorage<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for ERC721URIStorage<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 ERC721URIStorage<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for ERC721URIStorage<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(ERC721URIStorage)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> ERC721URIStorage<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                    ERC721URISTORAGE_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 `getApproved` (0x081812fc) function
75        pub fn get_approved(
76            &self,
77            token_id: ::ethers_core::types::U256,
78        ) -> ::ethers_contract::builders::ContractCall<
79            M,
80            ::ethers_core::types::Address,
81        > {
82            self.0
83                .method_hash([8, 24, 18, 252], token_id)
84                .expect("method not found (this should never happen)")
85        }
86        ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function
87        pub fn is_approved_for_all(
88            &self,
89            owner: ::ethers_core::types::Address,
90            operator: ::ethers_core::types::Address,
91        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
92            self.0
93                .method_hash([233, 133, 233, 197], (owner, operator))
94                .expect("method not found (this should never happen)")
95        }
96        ///Calls the contract's `name` (0x06fdde03) function
97        pub fn name(
98            &self,
99        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
100            self.0
101                .method_hash([6, 253, 222, 3], ())
102                .expect("method not found (this should never happen)")
103        }
104        ///Calls the contract's `ownerOf` (0x6352211e) function
105        pub fn owner_of(
106            &self,
107            token_id: ::ethers_core::types::U256,
108        ) -> ::ethers_contract::builders::ContractCall<
109            M,
110            ::ethers_core::types::Address,
111        > {
112            self.0
113                .method_hash([99, 82, 33, 30], token_id)
114                .expect("method not found (this should never happen)")
115        }
116        ///Calls the contract's `safeTransferFrom` (0x42842e0e) function
117        pub fn safe_transfer_from(
118            &self,
119            from: ::ethers_core::types::Address,
120            to: ::ethers_core::types::Address,
121            token_id: ::ethers_core::types::U256,
122        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
123            self.0
124                .method_hash([66, 132, 46, 14], (from, to, token_id))
125                .expect("method not found (this should never happen)")
126        }
127        ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function
128        pub fn safe_transfer_from_with_from_and_to_and_data(
129            &self,
130            from: ::ethers_core::types::Address,
131            to: ::ethers_core::types::Address,
132            token_id: ::ethers_core::types::U256,
133            data: ::ethers_core::types::Bytes,
134        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
135            self.0
136                .method_hash([184, 141, 79, 222], (from, to, token_id, data))
137                .expect("method not found (this should never happen)")
138        }
139        ///Calls the contract's `setApprovalForAll` (0xa22cb465) function
140        pub fn set_approval_for_all(
141            &self,
142            operator: ::ethers_core::types::Address,
143            approved: bool,
144        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
145            self.0
146                .method_hash([162, 44, 180, 101], (operator, approved))
147                .expect("method not found (this should never happen)")
148        }
149        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
150        pub fn supports_interface(
151            &self,
152            interface_id: [u8; 4],
153        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
154            self.0
155                .method_hash([1, 255, 201, 167], interface_id)
156                .expect("method not found (this should never happen)")
157        }
158        ///Calls the contract's `symbol` (0x95d89b41) function
159        pub fn symbol(
160            &self,
161        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
162            self.0
163                .method_hash([149, 216, 155, 65], ())
164                .expect("method not found (this should never happen)")
165        }
166        ///Calls the contract's `tokenURI` (0xc87b56dd) function
167        pub fn token_uri(
168            &self,
169            token_id: ::ethers_core::types::U256,
170        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
171            self.0
172                .method_hash([200, 123, 86, 221], token_id)
173                .expect("method not found (this should never happen)")
174        }
175        ///Calls the contract's `transferFrom` (0x23b872dd) function
176        pub fn transfer_from(
177            &self,
178            from: ::ethers_core::types::Address,
179            to: ::ethers_core::types::Address,
180            token_id: ::ethers_core::types::U256,
181        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
182            self.0
183                .method_hash([35, 184, 114, 221], (from, to, token_id))
184                .expect("method not found (this should never happen)")
185        }
186        ///Gets the contract's `Approval` event
187        pub fn approval_filter(
188            &self,
189        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, ApprovalFilter> {
190            self.0.event()
191        }
192        ///Gets the contract's `ApprovalForAll` event
193        pub fn approval_for_all_filter(
194            &self,
195        ) -> ::ethers_contract::builders::Event<
196            ::std::sync::Arc<M>,
197            M,
198            ApprovalForAllFilter,
199        > {
200            self.0.event()
201        }
202        ///Gets the contract's `BatchMetadataUpdate` event
203        pub fn batch_metadata_update_filter(
204            &self,
205        ) -> ::ethers_contract::builders::Event<
206            ::std::sync::Arc<M>,
207            M,
208            BatchMetadataUpdateFilter,
209        > {
210            self.0.event()
211        }
212        ///Gets the contract's `MetadataUpdate` event
213        pub fn metadata_update_filter(
214            &self,
215        ) -> ::ethers_contract::builders::Event<
216            ::std::sync::Arc<M>,
217            M,
218            MetadataUpdateFilter,
219        > {
220            self.0.event()
221        }
222        ///Gets the contract's `Transfer` event
223        pub fn transfer_filter(
224            &self,
225        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, TransferFilter> {
226            self.0.event()
227        }
228        /// Returns an `Event` builder for all the events of this contract.
229        pub fn events(
230            &self,
231        ) -> ::ethers_contract::builders::Event<
232            ::std::sync::Arc<M>,
233            M,
234            ERC721URIStorageEvents,
235        > {
236            self.0.event_with_filter(::core::default::Default::default())
237        }
238    }
239    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
240    for ERC721URIStorage<M> {
241        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
242            Self::new(contract.address(), contract.client())
243        }
244    }
245    #[derive(
246        Clone,
247        ::ethers_contract::EthEvent,
248        ::ethers_contract::EthDisplay,
249        Default,
250        Debug,
251        PartialEq,
252        Eq,
253        Hash
254    )]
255    #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
256    pub struct ApprovalFilter {
257        #[ethevent(indexed)]
258        pub owner: ::ethers_core::types::Address,
259        #[ethevent(indexed)]
260        pub approved: ::ethers_core::types::Address,
261        #[ethevent(indexed)]
262        pub token_id: ::ethers_core::types::U256,
263    }
264    #[derive(
265        Clone,
266        ::ethers_contract::EthEvent,
267        ::ethers_contract::EthDisplay,
268        Default,
269        Debug,
270        PartialEq,
271        Eq,
272        Hash
273    )]
274    #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")]
275    pub struct ApprovalForAllFilter {
276        #[ethevent(indexed)]
277        pub owner: ::ethers_core::types::Address,
278        #[ethevent(indexed)]
279        pub operator: ::ethers_core::types::Address,
280        pub approved: bool,
281    }
282    #[derive(
283        Clone,
284        ::ethers_contract::EthEvent,
285        ::ethers_contract::EthDisplay,
286        Default,
287        Debug,
288        PartialEq,
289        Eq,
290        Hash
291    )]
292    #[ethevent(
293        name = "BatchMetadataUpdate",
294        abi = "BatchMetadataUpdate(uint256,uint256)"
295    )]
296    pub struct BatchMetadataUpdateFilter {
297        pub from_token_id: ::ethers_core::types::U256,
298        pub to_token_id: ::ethers_core::types::U256,
299    }
300    #[derive(
301        Clone,
302        ::ethers_contract::EthEvent,
303        ::ethers_contract::EthDisplay,
304        Default,
305        Debug,
306        PartialEq,
307        Eq,
308        Hash
309    )]
310    #[ethevent(name = "MetadataUpdate", abi = "MetadataUpdate(uint256)")]
311    pub struct MetadataUpdateFilter {
312        pub token_id: ::ethers_core::types::U256,
313    }
314    #[derive(
315        Clone,
316        ::ethers_contract::EthEvent,
317        ::ethers_contract::EthDisplay,
318        Default,
319        Debug,
320        PartialEq,
321        Eq,
322        Hash
323    )]
324    #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
325    pub struct TransferFilter {
326        #[ethevent(indexed)]
327        pub from: ::ethers_core::types::Address,
328        #[ethevent(indexed)]
329        pub to: ::ethers_core::types::Address,
330        #[ethevent(indexed)]
331        pub token_id: ::ethers_core::types::U256,
332    }
333    ///Container type for all of the contract's events
334    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
335    pub enum ERC721URIStorageEvents {
336        ApprovalFilter(ApprovalFilter),
337        ApprovalForAllFilter(ApprovalForAllFilter),
338        BatchMetadataUpdateFilter(BatchMetadataUpdateFilter),
339        MetadataUpdateFilter(MetadataUpdateFilter),
340        TransferFilter(TransferFilter),
341    }
342    impl ::ethers_contract::EthLogDecode for ERC721URIStorageEvents {
343        fn decode_log(
344            log: &::ethers_core::abi::RawLog,
345        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
346            if let Ok(decoded) = ApprovalFilter::decode_log(log) {
347                return Ok(ERC721URIStorageEvents::ApprovalFilter(decoded));
348            }
349            if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) {
350                return Ok(ERC721URIStorageEvents::ApprovalForAllFilter(decoded));
351            }
352            if let Ok(decoded) = BatchMetadataUpdateFilter::decode_log(log) {
353                return Ok(ERC721URIStorageEvents::BatchMetadataUpdateFilter(decoded));
354            }
355            if let Ok(decoded) = MetadataUpdateFilter::decode_log(log) {
356                return Ok(ERC721URIStorageEvents::MetadataUpdateFilter(decoded));
357            }
358            if let Ok(decoded) = TransferFilter::decode_log(log) {
359                return Ok(ERC721URIStorageEvents::TransferFilter(decoded));
360            }
361            Err(::ethers_core::abi::Error::InvalidData)
362        }
363    }
364    impl ::core::fmt::Display for ERC721URIStorageEvents {
365        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
366            match self {
367                Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
368                Self::ApprovalForAllFilter(element) => {
369                    ::core::fmt::Display::fmt(element, f)
370                }
371                Self::BatchMetadataUpdateFilter(element) => {
372                    ::core::fmt::Display::fmt(element, f)
373                }
374                Self::MetadataUpdateFilter(element) => {
375                    ::core::fmt::Display::fmt(element, f)
376                }
377                Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f),
378            }
379        }
380    }
381    impl ::core::convert::From<ApprovalFilter> for ERC721URIStorageEvents {
382        fn from(value: ApprovalFilter) -> Self {
383            Self::ApprovalFilter(value)
384        }
385    }
386    impl ::core::convert::From<ApprovalForAllFilter> for ERC721URIStorageEvents {
387        fn from(value: ApprovalForAllFilter) -> Self {
388            Self::ApprovalForAllFilter(value)
389        }
390    }
391    impl ::core::convert::From<BatchMetadataUpdateFilter> for ERC721URIStorageEvents {
392        fn from(value: BatchMetadataUpdateFilter) -> Self {
393            Self::BatchMetadataUpdateFilter(value)
394        }
395    }
396    impl ::core::convert::From<MetadataUpdateFilter> for ERC721URIStorageEvents {
397        fn from(value: MetadataUpdateFilter) -> Self {
398            Self::MetadataUpdateFilter(value)
399        }
400    }
401    impl ::core::convert::From<TransferFilter> for ERC721URIStorageEvents {
402        fn from(value: TransferFilter) -> Self {
403            Self::TransferFilter(value)
404        }
405    }
406    ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3`
407    #[derive(
408        Clone,
409        ::ethers_contract::EthCall,
410        ::ethers_contract::EthDisplay,
411        Default,
412        Debug,
413        PartialEq,
414        Eq,
415        Hash
416    )]
417    #[ethcall(name = "approve", abi = "approve(address,uint256)")]
418    pub struct ApproveCall {
419        pub to: ::ethers_core::types::Address,
420        pub token_id: ::ethers_core::types::U256,
421    }
422    ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
423    #[derive(
424        Clone,
425        ::ethers_contract::EthCall,
426        ::ethers_contract::EthDisplay,
427        Default,
428        Debug,
429        PartialEq,
430        Eq,
431        Hash
432    )]
433    #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
434    pub struct BalanceOfCall {
435        pub owner: ::ethers_core::types::Address,
436    }
437    ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
438    #[derive(
439        Clone,
440        ::ethers_contract::EthCall,
441        ::ethers_contract::EthDisplay,
442        Default,
443        Debug,
444        PartialEq,
445        Eq,
446        Hash
447    )]
448    #[ethcall(name = "getApproved", abi = "getApproved(uint256)")]
449    pub struct GetApprovedCall {
450        pub token_id: ::ethers_core::types::U256,
451    }
452    ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
453    #[derive(
454        Clone,
455        ::ethers_contract::EthCall,
456        ::ethers_contract::EthDisplay,
457        Default,
458        Debug,
459        PartialEq,
460        Eq,
461        Hash
462    )]
463    #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")]
464    pub struct IsApprovedForAllCall {
465        pub owner: ::ethers_core::types::Address,
466        pub operator: ::ethers_core::types::Address,
467    }
468    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
469    #[derive(
470        Clone,
471        ::ethers_contract::EthCall,
472        ::ethers_contract::EthDisplay,
473        Default,
474        Debug,
475        PartialEq,
476        Eq,
477        Hash
478    )]
479    #[ethcall(name = "name", abi = "name()")]
480    pub struct NameCall;
481    ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
482    #[derive(
483        Clone,
484        ::ethers_contract::EthCall,
485        ::ethers_contract::EthDisplay,
486        Default,
487        Debug,
488        PartialEq,
489        Eq,
490        Hash
491    )]
492    #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")]
493    pub struct OwnerOfCall {
494        pub token_id: ::ethers_core::types::U256,
495    }
496    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e`
497    #[derive(
498        Clone,
499        ::ethers_contract::EthCall,
500        ::ethers_contract::EthDisplay,
501        Default,
502        Debug,
503        PartialEq,
504        Eq,
505        Hash
506    )]
507    #[ethcall(
508        name = "safeTransferFrom",
509        abi = "safeTransferFrom(address,address,uint256)"
510    )]
511    pub struct SafeTransferFromCall {
512        pub from: ::ethers_core::types::Address,
513        pub to: ::ethers_core::types::Address,
514        pub token_id: ::ethers_core::types::U256,
515    }
516    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde`
517    #[derive(
518        Clone,
519        ::ethers_contract::EthCall,
520        ::ethers_contract::EthDisplay,
521        Default,
522        Debug,
523        PartialEq,
524        Eq,
525        Hash
526    )]
527    #[ethcall(
528        name = "safeTransferFrom",
529        abi = "safeTransferFrom(address,address,uint256,bytes)"
530    )]
531    pub struct SafeTransferFromWithFromAndToAndDataCall {
532        pub from: ::ethers_core::types::Address,
533        pub to: ::ethers_core::types::Address,
534        pub token_id: ::ethers_core::types::U256,
535        pub data: ::ethers_core::types::Bytes,
536    }
537    ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465`
538    #[derive(
539        Clone,
540        ::ethers_contract::EthCall,
541        ::ethers_contract::EthDisplay,
542        Default,
543        Debug,
544        PartialEq,
545        Eq,
546        Hash
547    )]
548    #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")]
549    pub struct SetApprovalForAllCall {
550        pub operator: ::ethers_core::types::Address,
551        pub approved: bool,
552    }
553    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
554    #[derive(
555        Clone,
556        ::ethers_contract::EthCall,
557        ::ethers_contract::EthDisplay,
558        Default,
559        Debug,
560        PartialEq,
561        Eq,
562        Hash
563    )]
564    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
565    pub struct SupportsInterfaceCall {
566        pub interface_id: [u8; 4],
567    }
568    ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41`
569    #[derive(
570        Clone,
571        ::ethers_contract::EthCall,
572        ::ethers_contract::EthDisplay,
573        Default,
574        Debug,
575        PartialEq,
576        Eq,
577        Hash
578    )]
579    #[ethcall(name = "symbol", abi = "symbol()")]
580    pub struct SymbolCall;
581    ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
582    #[derive(
583        Clone,
584        ::ethers_contract::EthCall,
585        ::ethers_contract::EthDisplay,
586        Default,
587        Debug,
588        PartialEq,
589        Eq,
590        Hash
591    )]
592    #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")]
593    pub struct TokenURICall {
594        pub token_id: ::ethers_core::types::U256,
595    }
596    ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`
597    #[derive(
598        Clone,
599        ::ethers_contract::EthCall,
600        ::ethers_contract::EthDisplay,
601        Default,
602        Debug,
603        PartialEq,
604        Eq,
605        Hash
606    )]
607    #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
608    pub struct TransferFromCall {
609        pub from: ::ethers_core::types::Address,
610        pub to: ::ethers_core::types::Address,
611        pub token_id: ::ethers_core::types::U256,
612    }
613    ///Container type for all of the contract's call
614    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
615    pub enum ERC721URIStorageCalls {
616        Approve(ApproveCall),
617        BalanceOf(BalanceOfCall),
618        GetApproved(GetApprovedCall),
619        IsApprovedForAll(IsApprovedForAllCall),
620        Name(NameCall),
621        OwnerOf(OwnerOfCall),
622        SafeTransferFrom(SafeTransferFromCall),
623        SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall),
624        SetApprovalForAll(SetApprovalForAllCall),
625        SupportsInterface(SupportsInterfaceCall),
626        Symbol(SymbolCall),
627        TokenURI(TokenURICall),
628        TransferFrom(TransferFromCall),
629    }
630    impl ::ethers_core::abi::AbiDecode for ERC721URIStorageCalls {
631        fn decode(
632            data: impl AsRef<[u8]>,
633        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
634            let data = data.as_ref();
635            if let Ok(decoded)
636                = <ApproveCall as ::ethers_core::abi::AbiDecode>::decode(data) {
637                return Ok(Self::Approve(decoded));
638            }
639            if let Ok(decoded)
640                = <BalanceOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
641                return Ok(Self::BalanceOf(decoded));
642            }
643            if let Ok(decoded)
644                = <GetApprovedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
645                return Ok(Self::GetApproved(decoded));
646            }
647            if let Ok(decoded)
648                = <IsApprovedForAllCall as ::ethers_core::abi::AbiDecode>::decode(data) {
649                return Ok(Self::IsApprovedForAll(decoded));
650            }
651            if let Ok(decoded)
652                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
653                return Ok(Self::Name(decoded));
654            }
655            if let Ok(decoded)
656                = <OwnerOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
657                return Ok(Self::OwnerOf(decoded));
658            }
659            if let Ok(decoded)
660                = <SafeTransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
661                return Ok(Self::SafeTransferFrom(decoded));
662            }
663            if let Ok(decoded)
664                = <SafeTransferFromWithFromAndToAndDataCall as ::ethers_core::abi::AbiDecode>::decode(
665                    data,
666                ) {
667                return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded));
668            }
669            if let Ok(decoded)
670                = <SetApprovalForAllCall as ::ethers_core::abi::AbiDecode>::decode(
671                    data,
672                ) {
673                return Ok(Self::SetApprovalForAll(decoded));
674            }
675            if let Ok(decoded)
676                = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
677                    data,
678                ) {
679                return Ok(Self::SupportsInterface(decoded));
680            }
681            if let Ok(decoded)
682                = <SymbolCall as ::ethers_core::abi::AbiDecode>::decode(data) {
683                return Ok(Self::Symbol(decoded));
684            }
685            if let Ok(decoded)
686                = <TokenURICall as ::ethers_core::abi::AbiDecode>::decode(data) {
687                return Ok(Self::TokenURI(decoded));
688            }
689            if let Ok(decoded)
690                = <TransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
691                return Ok(Self::TransferFrom(decoded));
692            }
693            Err(::ethers_core::abi::Error::InvalidData.into())
694        }
695    }
696    impl ::ethers_core::abi::AbiEncode for ERC721URIStorageCalls {
697        fn encode(self) -> Vec<u8> {
698            match self {
699                Self::Approve(element) => ::ethers_core::abi::AbiEncode::encode(element),
700                Self::BalanceOf(element) => {
701                    ::ethers_core::abi::AbiEncode::encode(element)
702                }
703                Self::GetApproved(element) => {
704                    ::ethers_core::abi::AbiEncode::encode(element)
705                }
706                Self::IsApprovedForAll(element) => {
707                    ::ethers_core::abi::AbiEncode::encode(element)
708                }
709                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
710                Self::OwnerOf(element) => ::ethers_core::abi::AbiEncode::encode(element),
711                Self::SafeTransferFrom(element) => {
712                    ::ethers_core::abi::AbiEncode::encode(element)
713                }
714                Self::SafeTransferFromWithFromAndToAndData(element) => {
715                    ::ethers_core::abi::AbiEncode::encode(element)
716                }
717                Self::SetApprovalForAll(element) => {
718                    ::ethers_core::abi::AbiEncode::encode(element)
719                }
720                Self::SupportsInterface(element) => {
721                    ::ethers_core::abi::AbiEncode::encode(element)
722                }
723                Self::Symbol(element) => ::ethers_core::abi::AbiEncode::encode(element),
724                Self::TokenURI(element) => ::ethers_core::abi::AbiEncode::encode(element),
725                Self::TransferFrom(element) => {
726                    ::ethers_core::abi::AbiEncode::encode(element)
727                }
728            }
729        }
730    }
731    impl ::core::fmt::Display for ERC721URIStorageCalls {
732        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
733            match self {
734                Self::Approve(element) => ::core::fmt::Display::fmt(element, f),
735                Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f),
736                Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f),
737                Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f),
738                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
739                Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f),
740                Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f),
741                Self::SafeTransferFromWithFromAndToAndData(element) => {
742                    ::core::fmt::Display::fmt(element, f)
743                }
744                Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f),
745                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
746                Self::Symbol(element) => ::core::fmt::Display::fmt(element, f),
747                Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f),
748                Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f),
749            }
750        }
751    }
752    impl ::core::convert::From<ApproveCall> for ERC721URIStorageCalls {
753        fn from(value: ApproveCall) -> Self {
754            Self::Approve(value)
755        }
756    }
757    impl ::core::convert::From<BalanceOfCall> for ERC721URIStorageCalls {
758        fn from(value: BalanceOfCall) -> Self {
759            Self::BalanceOf(value)
760        }
761    }
762    impl ::core::convert::From<GetApprovedCall> for ERC721URIStorageCalls {
763        fn from(value: GetApprovedCall) -> Self {
764            Self::GetApproved(value)
765        }
766    }
767    impl ::core::convert::From<IsApprovedForAllCall> for ERC721URIStorageCalls {
768        fn from(value: IsApprovedForAllCall) -> Self {
769            Self::IsApprovedForAll(value)
770        }
771    }
772    impl ::core::convert::From<NameCall> for ERC721URIStorageCalls {
773        fn from(value: NameCall) -> Self {
774            Self::Name(value)
775        }
776    }
777    impl ::core::convert::From<OwnerOfCall> for ERC721URIStorageCalls {
778        fn from(value: OwnerOfCall) -> Self {
779            Self::OwnerOf(value)
780        }
781    }
782    impl ::core::convert::From<SafeTransferFromCall> for ERC721URIStorageCalls {
783        fn from(value: SafeTransferFromCall) -> Self {
784            Self::SafeTransferFrom(value)
785        }
786    }
787    impl ::core::convert::From<SafeTransferFromWithFromAndToAndDataCall>
788    for ERC721URIStorageCalls {
789        fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self {
790            Self::SafeTransferFromWithFromAndToAndData(value)
791        }
792    }
793    impl ::core::convert::From<SetApprovalForAllCall> for ERC721URIStorageCalls {
794        fn from(value: SetApprovalForAllCall) -> Self {
795            Self::SetApprovalForAll(value)
796        }
797    }
798    impl ::core::convert::From<SupportsInterfaceCall> for ERC721URIStorageCalls {
799        fn from(value: SupportsInterfaceCall) -> Self {
800            Self::SupportsInterface(value)
801        }
802    }
803    impl ::core::convert::From<SymbolCall> for ERC721URIStorageCalls {
804        fn from(value: SymbolCall) -> Self {
805            Self::Symbol(value)
806        }
807    }
808    impl ::core::convert::From<TokenURICall> for ERC721URIStorageCalls {
809        fn from(value: TokenURICall) -> Self {
810            Self::TokenURI(value)
811        }
812    }
813    impl ::core::convert::From<TransferFromCall> for ERC721URIStorageCalls {
814        fn from(value: TransferFromCall) -> Self {
815            Self::TransferFrom(value)
816        }
817    }
818    ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
819    #[derive(
820        Clone,
821        ::ethers_contract::EthAbiType,
822        ::ethers_contract::EthAbiCodec,
823        Default,
824        Debug,
825        PartialEq,
826        Eq,
827        Hash
828    )]
829    pub struct BalanceOfReturn(pub ::ethers_core::types::U256);
830    ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
831    #[derive(
832        Clone,
833        ::ethers_contract::EthAbiType,
834        ::ethers_contract::EthAbiCodec,
835        Default,
836        Debug,
837        PartialEq,
838        Eq,
839        Hash
840    )]
841    pub struct GetApprovedReturn(pub ::ethers_core::types::Address);
842    ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
843    #[derive(
844        Clone,
845        ::ethers_contract::EthAbiType,
846        ::ethers_contract::EthAbiCodec,
847        Default,
848        Debug,
849        PartialEq,
850        Eq,
851        Hash
852    )]
853    pub struct IsApprovedForAllReturn(pub bool);
854    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
855    #[derive(
856        Clone,
857        ::ethers_contract::EthAbiType,
858        ::ethers_contract::EthAbiCodec,
859        Default,
860        Debug,
861        PartialEq,
862        Eq,
863        Hash
864    )]
865    pub struct NameReturn(pub ::std::string::String);
866    ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
867    #[derive(
868        Clone,
869        ::ethers_contract::EthAbiType,
870        ::ethers_contract::EthAbiCodec,
871        Default,
872        Debug,
873        PartialEq,
874        Eq,
875        Hash
876    )]
877    pub struct OwnerOfReturn(pub ::ethers_core::types::Address);
878    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
879    #[derive(
880        Clone,
881        ::ethers_contract::EthAbiType,
882        ::ethers_contract::EthAbiCodec,
883        Default,
884        Debug,
885        PartialEq,
886        Eq,
887        Hash
888    )]
889    pub struct SupportsInterfaceReturn(pub bool);
890    ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41`
891    #[derive(
892        Clone,
893        ::ethers_contract::EthAbiType,
894        ::ethers_contract::EthAbiCodec,
895        Default,
896        Debug,
897        PartialEq,
898        Eq,
899        Hash
900    )]
901    pub struct SymbolReturn(pub ::std::string::String);
902    ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
903    #[derive(
904        Clone,
905        ::ethers_contract::EthAbiType,
906        ::ethers_contract::EthAbiCodec,
907        Default,
908        Debug,
909        PartialEq,
910        Eq,
911        Hash
912    )]
913    pub struct TokenURIReturn(pub ::std::string::String);
914}