openzeppelin_rs/contracts/
ERC721Burnable.rs

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