uniswap_rs/contracts/bindings/
ierc20.rs

1pub use ierc20::*;
2#[allow(clippy::too_many_arguments, non_camel_case_types)]
3pub mod ierc20 {
4    #![allow(clippy::enum_variant_names)]
5    #![allow(dead_code)]
6    #![allow(clippy::type_complexity)]
7    #![allow(unused_imports)]
8    use ethers_contract::{
9        builders::{ContractCall, Event},
10        Contract, Lazy,
11    };
12    use ethers_core::{
13        abi::{Abi, Detokenize, InvalidOutputType, Token, Tokenizable},
14        types::*,
15    };
16    use ethers_providers::Middleware;
17    #[doc = "IERC20 was auto-generated with ethers-rs Abigen. More information at: https://github.com/gakonst/ethers-rs"]
18    use std::sync::Arc;
19    # [rustfmt :: skip] const __ABI : & str = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]\n" ;
20    #[doc = r" The parsed JSON-ABI of the contract."]
21    pub static IERC20_ABI: ethers_contract::Lazy<ethers_core::abi::Abi> =
22        ethers_contract::Lazy::new(|| {
23            ethers_core::utils::__serde_json::from_str(__ABI).expect("invalid abi")
24        });
25    pub struct IERC20<M>(ethers_contract::Contract<M>);
26    impl<M> Clone for IERC20<M> {
27        fn clone(&self) -> Self {
28            IERC20(self.0.clone())
29        }
30    }
31    impl<M> std::ops::Deref for IERC20<M> {
32        type Target = ethers_contract::Contract<M>;
33        fn deref(&self) -> &Self::Target {
34            &self.0
35        }
36    }
37    impl<M> std::fmt::Debug for IERC20<M> {
38        fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
39            f.debug_tuple(stringify!(IERC20)).field(&self.address()).finish()
40        }
41    }
42    impl<M: ethers_providers::Middleware> IERC20<M> {
43        #[doc = r" Creates a new contract instance with the specified `ethers`"]
44        #[doc = r" client at the given `Address`. The contract derefs to a `ethers::Contract`"]
45        #[doc = r" object"]
46        pub fn new<T: Into<ethers_core::types::Address>>(
47            address: T,
48            client: ::std::sync::Arc<M>,
49        ) -> Self {
50            ethers_contract::Contract::new(address.into(), IERC20_ABI.clone(), client).into()
51        }
52        #[doc = "Calls the contract's `allowance` (0xdd62ed3e) function"]
53        pub fn allowance(
54            &self,
55            owner: ethers_core::types::Address,
56            spender: ethers_core::types::Address,
57        ) -> ethers_contract::builders::ContractCall<M, ethers_core::types::U256> {
58            self.0
59                .method_hash([221, 98, 237, 62], (owner, spender))
60                .expect("method not found (this should never happen)")
61        }
62        #[doc = "Calls the contract's `approve` (0x095ea7b3) function"]
63        pub fn approve(
64            &self,
65            spender: ethers_core::types::Address,
66            amount: ethers_core::types::U256,
67        ) -> ethers_contract::builders::ContractCall<M, bool> {
68            self.0
69                .method_hash([9, 94, 167, 179], (spender, amount))
70                .expect("method not found (this should never happen)")
71        }
72        #[doc = "Calls the contract's `balanceOf` (0x70a08231) function"]
73        pub fn balance_of(
74            &self,
75            account: ethers_core::types::Address,
76        ) -> ethers_contract::builders::ContractCall<M, ethers_core::types::U256> {
77            self.0
78                .method_hash([112, 160, 130, 49], account)
79                .expect("method not found (this should never happen)")
80        }
81        #[doc = "Calls the contract's `decimals` (0x313ce567) function"]
82        pub fn decimals(&self) -> ethers_contract::builders::ContractCall<M, u8> {
83            self.0
84                .method_hash([49, 60, 229, 103], ())
85                .expect("method not found (this should never happen)")
86        }
87        #[doc = "Calls the contract's `name` (0x06fdde03) function"]
88        pub fn name(&self) -> ethers_contract::builders::ContractCall<M, String> {
89            self.0
90                .method_hash([6, 253, 222, 3], ())
91                .expect("method not found (this should never happen)")
92        }
93        #[doc = "Calls the contract's `symbol` (0x95d89b41) function"]
94        pub fn symbol(&self) -> ethers_contract::builders::ContractCall<M, String> {
95            self.0
96                .method_hash([149, 216, 155, 65], ())
97                .expect("method not found (this should never happen)")
98        }
99        #[doc = "Calls the contract's `totalSupply` (0x18160ddd) function"]
100        pub fn total_supply(
101            &self,
102        ) -> ethers_contract::builders::ContractCall<M, ethers_core::types::U256> {
103            self.0
104                .method_hash([24, 22, 13, 221], ())
105                .expect("method not found (this should never happen)")
106        }
107        #[doc = "Calls the contract's `transfer` (0xa9059cbb) function"]
108        pub fn transfer(
109            &self,
110            to: ethers_core::types::Address,
111            amount: ethers_core::types::U256,
112        ) -> ethers_contract::builders::ContractCall<M, bool> {
113            self.0
114                .method_hash([169, 5, 156, 187], (to, amount))
115                .expect("method not found (this should never happen)")
116        }
117        #[doc = "Calls the contract's `transferFrom` (0x23b872dd) function"]
118        pub fn transfer_from(
119            &self,
120            from: ethers_core::types::Address,
121            to: ethers_core::types::Address,
122            amount: ethers_core::types::U256,
123        ) -> ethers_contract::builders::ContractCall<M, bool> {
124            self.0
125                .method_hash([35, 184, 114, 221], (from, to, amount))
126                .expect("method not found (this should never happen)")
127        }
128        #[doc = "Gets the contract's `Approval` event"]
129        pub fn approval_filter(&self) -> ethers_contract::builders::Event<M, ApprovalFilter> {
130            self.0.event()
131        }
132        #[doc = "Gets the contract's `Transfer` event"]
133        pub fn transfer_filter(&self) -> ethers_contract::builders::Event<M, TransferFilter> {
134            self.0.event()
135        }
136        #[doc = r" Returns an [`Event`](#ethers_contract::builders::Event) builder for all events of this contract"]
137        pub fn events(&self) -> ethers_contract::builders::Event<M, IERC20Events> {
138            self.0.event_with_filter(Default::default())
139        }
140    }
141    impl<M: ethers_providers::Middleware> From<ethers_contract::Contract<M>> for IERC20<M> {
142        fn from(contract: ethers_contract::Contract<M>) -> Self {
143            Self(contract)
144        }
145    }
146    #[derive(
147        Clone,
148        Debug,
149        Eq,
150        PartialEq,
151        ethers_contract :: EthEvent,
152        ethers_contract :: EthDisplay,
153        Default,
154    )]
155    #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
156    pub struct ApprovalFilter {
157        #[ethevent(indexed)]
158        pub owner: ethers_core::types::Address,
159        #[ethevent(indexed)]
160        pub spender: ethers_core::types::Address,
161        pub value: ethers_core::types::U256,
162    }
163    #[derive(
164        Clone,
165        Debug,
166        Eq,
167        PartialEq,
168        ethers_contract :: EthEvent,
169        ethers_contract :: EthDisplay,
170        Default,
171    )]
172    #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
173    pub struct TransferFilter {
174        #[ethevent(indexed)]
175        pub from: ethers_core::types::Address,
176        #[ethevent(indexed)]
177        pub to: ethers_core::types::Address,
178        pub value: ethers_core::types::U256,
179    }
180    #[derive(Debug, Clone, PartialEq, Eq, ethers_contract :: EthAbiType)]
181    pub enum IERC20Events {
182        ApprovalFilter(ApprovalFilter),
183        TransferFilter(TransferFilter),
184    }
185    impl ethers_contract::EthLogDecode for IERC20Events {
186        fn decode_log(
187            log: &ethers_core::abi::RawLog,
188        ) -> ::std::result::Result<Self, ethers_core::abi::Error>
189        where
190            Self: Sized,
191        {
192            if let Ok(decoded) = ApprovalFilter::decode_log(log) {
193                return Ok(IERC20Events::ApprovalFilter(decoded))
194            }
195            if let Ok(decoded) = TransferFilter::decode_log(log) {
196                return Ok(IERC20Events::TransferFilter(decoded))
197            }
198            Err(ethers_core::abi::Error::InvalidData)
199        }
200    }
201    impl ::std::fmt::Display for IERC20Events {
202        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
203            match self {
204                IERC20Events::ApprovalFilter(element) => element.fmt(f),
205                IERC20Events::TransferFilter(element) => element.fmt(f),
206            }
207        }
208    }
209    #[doc = "Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `[221, 98, 237, 62]`"]
210    #[derive(
211        Clone,
212        Debug,
213        Eq,
214        PartialEq,
215        ethers_contract :: EthCall,
216        ethers_contract :: EthDisplay,
217        Default,
218    )]
219    #[ethcall(name = "allowance", abi = "allowance(address,address)")]
220    pub struct AllowanceCall {
221        pub owner: ethers_core::types::Address,
222        pub spender: ethers_core::types::Address,
223    }
224    #[doc = "Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `[9, 94, 167, 179]`"]
225    #[derive(
226        Clone,
227        Debug,
228        Eq,
229        PartialEq,
230        ethers_contract :: EthCall,
231        ethers_contract :: EthDisplay,
232        Default,
233    )]
234    #[ethcall(name = "approve", abi = "approve(address,uint256)")]
235    pub struct ApproveCall {
236        pub spender: ethers_core::types::Address,
237        pub amount: ethers_core::types::U256,
238    }
239    #[doc = "Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `[112, 160, 130, 49]`"]
240    #[derive(
241        Clone,
242        Debug,
243        Eq,
244        PartialEq,
245        ethers_contract :: EthCall,
246        ethers_contract :: EthDisplay,
247        Default,
248    )]
249    #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
250    pub struct BalanceOfCall {
251        pub account: ethers_core::types::Address,
252    }
253    #[doc = "Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `[49, 60, 229, 103]`"]
254    #[derive(
255        Clone,
256        Debug,
257        Eq,
258        PartialEq,
259        ethers_contract :: EthCall,
260        ethers_contract :: EthDisplay,
261        Default,
262    )]
263    #[ethcall(name = "decimals", abi = "decimals()")]
264    pub struct DecimalsCall;
265    #[doc = "Container type for all input parameters for the `name` function with signature `name()` and selector `[6, 253, 222, 3]`"]
266    #[derive(
267        Clone,
268        Debug,
269        Eq,
270        PartialEq,
271        ethers_contract :: EthCall,
272        ethers_contract :: EthDisplay,
273        Default,
274    )]
275    #[ethcall(name = "name", abi = "name()")]
276    pub struct NameCall;
277    #[doc = "Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `[149, 216, 155, 65]`"]
278    #[derive(
279        Clone,
280        Debug,
281        Eq,
282        PartialEq,
283        ethers_contract :: EthCall,
284        ethers_contract :: EthDisplay,
285        Default,
286    )]
287    #[ethcall(name = "symbol", abi = "symbol()")]
288    pub struct SymbolCall;
289    #[doc = "Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `[24, 22, 13, 221]`"]
290    #[derive(
291        Clone,
292        Debug,
293        Eq,
294        PartialEq,
295        ethers_contract :: EthCall,
296        ethers_contract :: EthDisplay,
297        Default,
298    )]
299    #[ethcall(name = "totalSupply", abi = "totalSupply()")]
300    pub struct TotalSupplyCall;
301    #[doc = "Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `[169, 5, 156, 187]`"]
302    #[derive(
303        Clone,
304        Debug,
305        Eq,
306        PartialEq,
307        ethers_contract :: EthCall,
308        ethers_contract :: EthDisplay,
309        Default,
310    )]
311    #[ethcall(name = "transfer", abi = "transfer(address,uint256)")]
312    pub struct TransferCall {
313        pub to: ethers_core::types::Address,
314        pub amount: ethers_core::types::U256,
315    }
316    #[doc = "Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `[35, 184, 114, 221]`"]
317    #[derive(
318        Clone,
319        Debug,
320        Eq,
321        PartialEq,
322        ethers_contract :: EthCall,
323        ethers_contract :: EthDisplay,
324        Default,
325    )]
326    #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
327    pub struct TransferFromCall {
328        pub from: ethers_core::types::Address,
329        pub to: ethers_core::types::Address,
330        pub amount: ethers_core::types::U256,
331    }
332    #[derive(Debug, Clone, PartialEq, Eq, ethers_contract :: EthAbiType)]
333    pub enum IERC20Calls {
334        Allowance(AllowanceCall),
335        Approve(ApproveCall),
336        BalanceOf(BalanceOfCall),
337        Decimals(DecimalsCall),
338        Name(NameCall),
339        Symbol(SymbolCall),
340        TotalSupply(TotalSupplyCall),
341        Transfer(TransferCall),
342        TransferFrom(TransferFromCall),
343    }
344    impl ethers_core::abi::AbiDecode for IERC20Calls {
345        fn decode(
346            data: impl AsRef<[u8]>,
347        ) -> ::std::result::Result<Self, ethers_core::abi::AbiError> {
348            if let Ok(decoded) =
349                <AllowanceCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
350            {
351                return Ok(IERC20Calls::Allowance(decoded))
352            }
353            if let Ok(decoded) = <ApproveCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
354            {
355                return Ok(IERC20Calls::Approve(decoded))
356            }
357            if let Ok(decoded) =
358                <BalanceOfCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
359            {
360                return Ok(IERC20Calls::BalanceOf(decoded))
361            }
362            if let Ok(decoded) =
363                <DecimalsCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
364            {
365                return Ok(IERC20Calls::Decimals(decoded))
366            }
367            if let Ok(decoded) = <NameCall as ethers_core::abi::AbiDecode>::decode(data.as_ref()) {
368                return Ok(IERC20Calls::Name(decoded))
369            }
370            if let Ok(decoded) = <SymbolCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
371            {
372                return Ok(IERC20Calls::Symbol(decoded))
373            }
374            if let Ok(decoded) =
375                <TotalSupplyCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
376            {
377                return Ok(IERC20Calls::TotalSupply(decoded))
378            }
379            if let Ok(decoded) =
380                <TransferCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
381            {
382                return Ok(IERC20Calls::Transfer(decoded))
383            }
384            if let Ok(decoded) =
385                <TransferFromCall as ethers_core::abi::AbiDecode>::decode(data.as_ref())
386            {
387                return Ok(IERC20Calls::TransferFrom(decoded))
388            }
389            Err(ethers_core::abi::Error::InvalidData.into())
390        }
391    }
392    impl ethers_core::abi::AbiEncode for IERC20Calls {
393        fn encode(self) -> Vec<u8> {
394            match self {
395                IERC20Calls::Allowance(element) => element.encode(),
396                IERC20Calls::Approve(element) => element.encode(),
397                IERC20Calls::BalanceOf(element) => element.encode(),
398                IERC20Calls::Decimals(element) => element.encode(),
399                IERC20Calls::Name(element) => element.encode(),
400                IERC20Calls::Symbol(element) => element.encode(),
401                IERC20Calls::TotalSupply(element) => element.encode(),
402                IERC20Calls::Transfer(element) => element.encode(),
403                IERC20Calls::TransferFrom(element) => element.encode(),
404            }
405        }
406    }
407    impl ::std::fmt::Display for IERC20Calls {
408        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
409            match self {
410                IERC20Calls::Allowance(element) => element.fmt(f),
411                IERC20Calls::Approve(element) => element.fmt(f),
412                IERC20Calls::BalanceOf(element) => element.fmt(f),
413                IERC20Calls::Decimals(element) => element.fmt(f),
414                IERC20Calls::Name(element) => element.fmt(f),
415                IERC20Calls::Symbol(element) => element.fmt(f),
416                IERC20Calls::TotalSupply(element) => element.fmt(f),
417                IERC20Calls::Transfer(element) => element.fmt(f),
418                IERC20Calls::TransferFrom(element) => element.fmt(f),
419            }
420        }
421    }
422    impl ::std::convert::From<AllowanceCall> for IERC20Calls {
423        fn from(var: AllowanceCall) -> Self {
424            IERC20Calls::Allowance(var)
425        }
426    }
427    impl ::std::convert::From<ApproveCall> for IERC20Calls {
428        fn from(var: ApproveCall) -> Self {
429            IERC20Calls::Approve(var)
430        }
431    }
432    impl ::std::convert::From<BalanceOfCall> for IERC20Calls {
433        fn from(var: BalanceOfCall) -> Self {
434            IERC20Calls::BalanceOf(var)
435        }
436    }
437    impl ::std::convert::From<DecimalsCall> for IERC20Calls {
438        fn from(var: DecimalsCall) -> Self {
439            IERC20Calls::Decimals(var)
440        }
441    }
442    impl ::std::convert::From<NameCall> for IERC20Calls {
443        fn from(var: NameCall) -> Self {
444            IERC20Calls::Name(var)
445        }
446    }
447    impl ::std::convert::From<SymbolCall> for IERC20Calls {
448        fn from(var: SymbolCall) -> Self {
449            IERC20Calls::Symbol(var)
450        }
451    }
452    impl ::std::convert::From<TotalSupplyCall> for IERC20Calls {
453        fn from(var: TotalSupplyCall) -> Self {
454            IERC20Calls::TotalSupply(var)
455        }
456    }
457    impl ::std::convert::From<TransferCall> for IERC20Calls {
458        fn from(var: TransferCall) -> Self {
459            IERC20Calls::Transfer(var)
460        }
461    }
462    impl ::std::convert::From<TransferFromCall> for IERC20Calls {
463        fn from(var: TransferFromCall) -> Self {
464            IERC20Calls::TransferFrom(var)
465        }
466    }
467    #[doc = "Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `[221, 98, 237, 62]`"]
468    #[derive(
469        Clone,
470        Debug,
471        Eq,
472        PartialEq,
473        ethers_contract :: EthAbiType,
474        ethers_contract :: EthAbiCodec,
475        Default,
476    )]
477    pub struct AllowanceReturn(pub ethers_core::types::U256);
478    #[doc = "Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `[9, 94, 167, 179]`"]
479    #[derive(
480        Clone,
481        Debug,
482        Eq,
483        PartialEq,
484        ethers_contract :: EthAbiType,
485        ethers_contract :: EthAbiCodec,
486        Default,
487    )]
488    pub struct ApproveReturn(pub bool);
489    #[doc = "Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `[112, 160, 130, 49]`"]
490    #[derive(
491        Clone,
492        Debug,
493        Eq,
494        PartialEq,
495        ethers_contract :: EthAbiType,
496        ethers_contract :: EthAbiCodec,
497        Default,
498    )]
499    pub struct BalanceOfReturn(pub ethers_core::types::U256);
500    #[doc = "Container type for all return fields from the `decimals` function with signature `decimals()` and selector `[49, 60, 229, 103]`"]
501    #[derive(
502        Clone,
503        Debug,
504        Eq,
505        PartialEq,
506        ethers_contract :: EthAbiType,
507        ethers_contract :: EthAbiCodec,
508        Default,
509    )]
510    pub struct DecimalsReturn(pub u8);
511    #[doc = "Container type for all return fields from the `name` function with signature `name()` and selector `[6, 253, 222, 3]`"]
512    #[derive(
513        Clone,
514        Debug,
515        Eq,
516        PartialEq,
517        ethers_contract :: EthAbiType,
518        ethers_contract :: EthAbiCodec,
519        Default,
520    )]
521    pub struct NameReturn(pub String);
522    #[doc = "Container type for all return fields from the `symbol` function with signature `symbol()` and selector `[149, 216, 155, 65]`"]
523    #[derive(
524        Clone,
525        Debug,
526        Eq,
527        PartialEq,
528        ethers_contract :: EthAbiType,
529        ethers_contract :: EthAbiCodec,
530        Default,
531    )]
532    pub struct SymbolReturn(pub String);
533    #[doc = "Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `[24, 22, 13, 221]`"]
534    #[derive(
535        Clone,
536        Debug,
537        Eq,
538        PartialEq,
539        ethers_contract :: EthAbiType,
540        ethers_contract :: EthAbiCodec,
541        Default,
542    )]
543    pub struct TotalSupplyReturn(pub ethers_core::types::U256);
544    #[doc = "Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `[169, 5, 156, 187]`"]
545    #[derive(
546        Clone,
547        Debug,
548        Eq,
549        PartialEq,
550        ethers_contract :: EthAbiType,
551        ethers_contract :: EthAbiCodec,
552        Default,
553    )]
554    pub struct TransferReturn(pub bool);
555    #[doc = "Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `[35, 184, 114, 221]`"]
556    #[derive(
557        Clone,
558        Debug,
559        Eq,
560        PartialEq,
561        ethers_contract :: EthAbiType,
562        ethers_contract :: EthAbiCodec,
563        Default,
564    )]
565    pub struct TransferFromReturn(pub bool);
566}