1pub use erc20_permit::*;
2#[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 erc20_permit {
13 #[rustfmt::skip]
14 const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidShortString\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\",\"components\":[]}],\"type\":\"error\",\"name\":\"StringTooLong\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"type\":\"event\",\"name\":\"EIP712DomainChanged\",\"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\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]";
15 pub static ERC20PERMIT_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 ERC20Permit<M>(::ethers_contract::Contract<M>);
19 impl<M> ::core::clone::Clone for ERC20Permit<M> {
20 fn clone(&self) -> Self {
21 Self(::core::clone::Clone::clone(&self.0))
22 }
23 }
24 impl<M> ::core::ops::Deref for ERC20Permit<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 ERC20Permit<M> {
31 fn deref_mut(&mut self) -> &mut Self::Target {
32 &mut self.0
33 }
34 }
35 impl<M> ::core::fmt::Debug for ERC20Permit<M> {
36 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37 f.debug_tuple(stringify!(ERC20Permit)).field(&self.address()).finish()
38 }
39 }
40 impl<M: ::ethers_providers::Middleware> ERC20Permit<M> {
41 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 ERC20PERMIT_ABI.clone(),
51 client,
52 ),
53 )
54 }
55 pub fn domain_separator(
57 &self,
58 ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
59 self.0
60 .method_hash([54, 68, 229, 21], ())
61 .expect("method not found (this should never happen)")
62 }
63 pub fn allowance(
65 &self,
66 owner: ::ethers_core::types::Address,
67 spender: ::ethers_core::types::Address,
68 ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
69 self.0
70 .method_hash([221, 98, 237, 62], (owner, spender))
71 .expect("method not found (this should never happen)")
72 }
73 pub fn approve(
75 &self,
76 spender: ::ethers_core::types::Address,
77 amount: ::ethers_core::types::U256,
78 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
79 self.0
80 .method_hash([9, 94, 167, 179], (spender, amount))
81 .expect("method not found (this should never happen)")
82 }
83 pub fn balance_of(
85 &self,
86 account: ::ethers_core::types::Address,
87 ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
88 self.0
89 .method_hash([112, 160, 130, 49], account)
90 .expect("method not found (this should never happen)")
91 }
92 pub fn decimals(&self) -> ::ethers_contract::builders::ContractCall<M, u8> {
94 self.0
95 .method_hash([49, 60, 229, 103], ())
96 .expect("method not found (this should never happen)")
97 }
98 pub fn decrease_allowance(
100 &self,
101 spender: ::ethers_core::types::Address,
102 subtracted_value: ::ethers_core::types::U256,
103 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
104 self.0
105 .method_hash([164, 87, 194, 215], (spender, subtracted_value))
106 .expect("method not found (this should never happen)")
107 }
108 pub fn eip_712_domain(
110 &self,
111 ) -> ::ethers_contract::builders::ContractCall<
112 M,
113 (
114 [u8; 1],
115 ::std::string::String,
116 ::std::string::String,
117 ::ethers_core::types::U256,
118 ::ethers_core::types::Address,
119 [u8; 32],
120 ::std::vec::Vec<::ethers_core::types::U256>,
121 ),
122 > {
123 self.0
124 .method_hash([132, 176, 25, 110], ())
125 .expect("method not found (this should never happen)")
126 }
127 pub fn increase_allowance(
129 &self,
130 spender: ::ethers_core::types::Address,
131 added_value: ::ethers_core::types::U256,
132 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
133 self.0
134 .method_hash([57, 80, 147, 81], (spender, added_value))
135 .expect("method not found (this should never happen)")
136 }
137 pub fn name(
139 &self,
140 ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
141 self.0
142 .method_hash([6, 253, 222, 3], ())
143 .expect("method not found (this should never happen)")
144 }
145 pub fn nonces(
147 &self,
148 owner: ::ethers_core::types::Address,
149 ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
150 self.0
151 .method_hash([126, 206, 190, 0], owner)
152 .expect("method not found (this should never happen)")
153 }
154 pub fn permit(
156 &self,
157 owner: ::ethers_core::types::Address,
158 spender: ::ethers_core::types::Address,
159 value: ::ethers_core::types::U256,
160 deadline: ::ethers_core::types::U256,
161 v: u8,
162 r: [u8; 32],
163 s: [u8; 32],
164 ) -> ::ethers_contract::builders::ContractCall<M, ()> {
165 self.0
166 .method_hash(
167 [213, 5, 172, 207],
168 (owner, spender, value, deadline, v, r, s),
169 )
170 .expect("method not found (this should never happen)")
171 }
172 pub fn symbol(
174 &self,
175 ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
176 self.0
177 .method_hash([149, 216, 155, 65], ())
178 .expect("method not found (this should never happen)")
179 }
180 pub fn total_supply(
182 &self,
183 ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
184 self.0
185 .method_hash([24, 22, 13, 221], ())
186 .expect("method not found (this should never happen)")
187 }
188 pub fn transfer(
190 &self,
191 to: ::ethers_core::types::Address,
192 amount: ::ethers_core::types::U256,
193 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
194 self.0
195 .method_hash([169, 5, 156, 187], (to, amount))
196 .expect("method not found (this should never happen)")
197 }
198 pub fn transfer_from(
200 &self,
201 from: ::ethers_core::types::Address,
202 to: ::ethers_core::types::Address,
203 amount: ::ethers_core::types::U256,
204 ) -> ::ethers_contract::builders::ContractCall<M, bool> {
205 self.0
206 .method_hash([35, 184, 114, 221], (from, to, amount))
207 .expect("method not found (this should never happen)")
208 }
209 pub fn approval_filter(
211 &self,
212 ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, ApprovalFilter> {
213 self.0.event()
214 }
215 pub fn eip712_domain_changed_filter(
217 &self,
218 ) -> ::ethers_contract::builders::Event<
219 ::std::sync::Arc<M>,
220 M,
221 Eip712DomainChangedFilter,
222 > {
223 self.0.event()
224 }
225 pub fn transfer_filter(
227 &self,
228 ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, TransferFilter> {
229 self.0.event()
230 }
231 pub fn events(
233 &self,
234 ) -> ::ethers_contract::builders::Event<
235 ::std::sync::Arc<M>,
236 M,
237 ERC20PermitEvents,
238 > {
239 self.0.event_with_filter(::core::default::Default::default())
240 }
241 }
242 impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
243 for ERC20Permit<M> {
244 fn from(contract: ::ethers_contract::Contract<M>) -> Self {
245 Self::new(contract.address(), contract.client())
246 }
247 }
248 #[derive(
250 Clone,
251 ::ethers_contract::EthError,
252 ::ethers_contract::EthDisplay,
253 Default,
254 Debug,
255 PartialEq,
256 Eq,
257 Hash
258 )]
259 #[etherror(name = "InvalidShortString", abi = "InvalidShortString()")]
260 pub struct InvalidShortString;
261 #[derive(
263 Clone,
264 ::ethers_contract::EthError,
265 ::ethers_contract::EthDisplay,
266 Default,
267 Debug,
268 PartialEq,
269 Eq,
270 Hash
271 )]
272 #[etherror(name = "StringTooLong", abi = "StringTooLong(string)")]
273 pub struct StringTooLong {
274 pub str: ::std::string::String,
275 }
276 #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
278 pub enum ERC20PermitErrors {
279 InvalidShortString(InvalidShortString),
280 StringTooLong(StringTooLong),
281 RevertString(::std::string::String),
284 }
285 impl ::ethers_core::abi::AbiDecode for ERC20PermitErrors {
286 fn decode(
287 data: impl AsRef<[u8]>,
288 ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
289 let data = data.as_ref();
290 if let Ok(decoded)
291 = <::std::string::String as ::ethers_core::abi::AbiDecode>::decode(
292 data,
293 ) {
294 return Ok(Self::RevertString(decoded));
295 }
296 if let Ok(decoded)
297 = <InvalidShortString as ::ethers_core::abi::AbiDecode>::decode(data) {
298 return Ok(Self::InvalidShortString(decoded));
299 }
300 if let Ok(decoded)
301 = <StringTooLong as ::ethers_core::abi::AbiDecode>::decode(data) {
302 return Ok(Self::StringTooLong(decoded));
303 }
304 Err(::ethers_core::abi::Error::InvalidData.into())
305 }
306 }
307 impl ::ethers_core::abi::AbiEncode for ERC20PermitErrors {
308 fn encode(self) -> ::std::vec::Vec<u8> {
309 match self {
310 Self::InvalidShortString(element) => {
311 ::ethers_core::abi::AbiEncode::encode(element)
312 }
313 Self::StringTooLong(element) => {
314 ::ethers_core::abi::AbiEncode::encode(element)
315 }
316 Self::RevertString(s) => ::ethers_core::abi::AbiEncode::encode(s),
317 }
318 }
319 }
320 impl ::ethers_contract::ContractRevert for ERC20PermitErrors {
321 fn valid_selector(selector: [u8; 4]) -> bool {
322 match selector {
323 [0x08, 0xc3, 0x79, 0xa0] => true,
324 _ if selector
325 == <InvalidShortString as ::ethers_contract::EthError>::selector() => {
326 true
327 }
328 _ if selector
329 == <StringTooLong as ::ethers_contract::EthError>::selector() => true,
330 _ => false,
331 }
332 }
333 }
334 impl ::core::fmt::Display for ERC20PermitErrors {
335 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
336 match self {
337 Self::InvalidShortString(element) => {
338 ::core::fmt::Display::fmt(element, f)
339 }
340 Self::StringTooLong(element) => ::core::fmt::Display::fmt(element, f),
341 Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
342 }
343 }
344 }
345 impl ::core::convert::From<::std::string::String> for ERC20PermitErrors {
346 fn from(value: String) -> Self {
347 Self::RevertString(value)
348 }
349 }
350 impl ::core::convert::From<InvalidShortString> for ERC20PermitErrors {
351 fn from(value: InvalidShortString) -> Self {
352 Self::InvalidShortString(value)
353 }
354 }
355 impl ::core::convert::From<StringTooLong> for ERC20PermitErrors {
356 fn from(value: StringTooLong) -> Self {
357 Self::StringTooLong(value)
358 }
359 }
360 #[derive(
361 Clone,
362 ::ethers_contract::EthEvent,
363 ::ethers_contract::EthDisplay,
364 Default,
365 Debug,
366 PartialEq,
367 Eq,
368 Hash
369 )]
370 #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
371 pub struct ApprovalFilter {
372 #[ethevent(indexed)]
373 pub owner: ::ethers_core::types::Address,
374 #[ethevent(indexed)]
375 pub spender: ::ethers_core::types::Address,
376 pub value: ::ethers_core::types::U256,
377 }
378 #[derive(
379 Clone,
380 ::ethers_contract::EthEvent,
381 ::ethers_contract::EthDisplay,
382 Default,
383 Debug,
384 PartialEq,
385 Eq,
386 Hash
387 )]
388 #[ethevent(name = "EIP712DomainChanged", abi = "EIP712DomainChanged()")]
389 pub struct Eip712DomainChangedFilter;
390 #[derive(
391 Clone,
392 ::ethers_contract::EthEvent,
393 ::ethers_contract::EthDisplay,
394 Default,
395 Debug,
396 PartialEq,
397 Eq,
398 Hash
399 )]
400 #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
401 pub struct TransferFilter {
402 #[ethevent(indexed)]
403 pub from: ::ethers_core::types::Address,
404 #[ethevent(indexed)]
405 pub to: ::ethers_core::types::Address,
406 pub value: ::ethers_core::types::U256,
407 }
408 #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
410 pub enum ERC20PermitEvents {
411 ApprovalFilter(ApprovalFilter),
412 Eip712DomainChangedFilter(Eip712DomainChangedFilter),
413 TransferFilter(TransferFilter),
414 }
415 impl ::ethers_contract::EthLogDecode for ERC20PermitEvents {
416 fn decode_log(
417 log: &::ethers_core::abi::RawLog,
418 ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
419 if let Ok(decoded) = ApprovalFilter::decode_log(log) {
420 return Ok(ERC20PermitEvents::ApprovalFilter(decoded));
421 }
422 if let Ok(decoded) = Eip712DomainChangedFilter::decode_log(log) {
423 return Ok(ERC20PermitEvents::Eip712DomainChangedFilter(decoded));
424 }
425 if let Ok(decoded) = TransferFilter::decode_log(log) {
426 return Ok(ERC20PermitEvents::TransferFilter(decoded));
427 }
428 Err(::ethers_core::abi::Error::InvalidData)
429 }
430 }
431 impl ::core::fmt::Display for ERC20PermitEvents {
432 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
433 match self {
434 Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
435 Self::Eip712DomainChangedFilter(element) => {
436 ::core::fmt::Display::fmt(element, f)
437 }
438 Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f),
439 }
440 }
441 }
442 impl ::core::convert::From<ApprovalFilter> for ERC20PermitEvents {
443 fn from(value: ApprovalFilter) -> Self {
444 Self::ApprovalFilter(value)
445 }
446 }
447 impl ::core::convert::From<Eip712DomainChangedFilter> for ERC20PermitEvents {
448 fn from(value: Eip712DomainChangedFilter) -> Self {
449 Self::Eip712DomainChangedFilter(value)
450 }
451 }
452 impl ::core::convert::From<TransferFilter> for ERC20PermitEvents {
453 fn from(value: TransferFilter) -> Self {
454 Self::TransferFilter(value)
455 }
456 }
457 #[derive(
459 Clone,
460 ::ethers_contract::EthCall,
461 ::ethers_contract::EthDisplay,
462 Default,
463 Debug,
464 PartialEq,
465 Eq,
466 Hash
467 )]
468 #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")]
469 pub struct DomainSeparatorCall;
470 #[derive(
472 Clone,
473 ::ethers_contract::EthCall,
474 ::ethers_contract::EthDisplay,
475 Default,
476 Debug,
477 PartialEq,
478 Eq,
479 Hash
480 )]
481 #[ethcall(name = "allowance", abi = "allowance(address,address)")]
482 pub struct AllowanceCall {
483 pub owner: ::ethers_core::types::Address,
484 pub spender: ::ethers_core::types::Address,
485 }
486 #[derive(
488 Clone,
489 ::ethers_contract::EthCall,
490 ::ethers_contract::EthDisplay,
491 Default,
492 Debug,
493 PartialEq,
494 Eq,
495 Hash
496 )]
497 #[ethcall(name = "approve", abi = "approve(address,uint256)")]
498 pub struct ApproveCall {
499 pub spender: ::ethers_core::types::Address,
500 pub amount: ::ethers_core::types::U256,
501 }
502 #[derive(
504 Clone,
505 ::ethers_contract::EthCall,
506 ::ethers_contract::EthDisplay,
507 Default,
508 Debug,
509 PartialEq,
510 Eq,
511 Hash
512 )]
513 #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
514 pub struct BalanceOfCall {
515 pub account: ::ethers_core::types::Address,
516 }
517 #[derive(
519 Clone,
520 ::ethers_contract::EthCall,
521 ::ethers_contract::EthDisplay,
522 Default,
523 Debug,
524 PartialEq,
525 Eq,
526 Hash
527 )]
528 #[ethcall(name = "decimals", abi = "decimals()")]
529 pub struct DecimalsCall;
530 #[derive(
532 Clone,
533 ::ethers_contract::EthCall,
534 ::ethers_contract::EthDisplay,
535 Default,
536 Debug,
537 PartialEq,
538 Eq,
539 Hash
540 )]
541 #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")]
542 pub struct DecreaseAllowanceCall {
543 pub spender: ::ethers_core::types::Address,
544 pub subtracted_value: ::ethers_core::types::U256,
545 }
546 #[derive(
548 Clone,
549 ::ethers_contract::EthCall,
550 ::ethers_contract::EthDisplay,
551 Default,
552 Debug,
553 PartialEq,
554 Eq,
555 Hash
556 )]
557 #[ethcall(name = "eip712Domain", abi = "eip712Domain()")]
558 pub struct Eip712DomainCall;
559 #[derive(
561 Clone,
562 ::ethers_contract::EthCall,
563 ::ethers_contract::EthDisplay,
564 Default,
565 Debug,
566 PartialEq,
567 Eq,
568 Hash
569 )]
570 #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")]
571 pub struct IncreaseAllowanceCall {
572 pub spender: ::ethers_core::types::Address,
573 pub added_value: ::ethers_core::types::U256,
574 }
575 #[derive(
577 Clone,
578 ::ethers_contract::EthCall,
579 ::ethers_contract::EthDisplay,
580 Default,
581 Debug,
582 PartialEq,
583 Eq,
584 Hash
585 )]
586 #[ethcall(name = "name", abi = "name()")]
587 pub struct NameCall;
588 #[derive(
590 Clone,
591 ::ethers_contract::EthCall,
592 ::ethers_contract::EthDisplay,
593 Default,
594 Debug,
595 PartialEq,
596 Eq,
597 Hash
598 )]
599 #[ethcall(name = "nonces", abi = "nonces(address)")]
600 pub struct NoncesCall {
601 pub owner: ::ethers_core::types::Address,
602 }
603 #[derive(
605 Clone,
606 ::ethers_contract::EthCall,
607 ::ethers_contract::EthDisplay,
608 Default,
609 Debug,
610 PartialEq,
611 Eq,
612 Hash
613 )]
614 #[ethcall(
615 name = "permit",
616 abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
617 )]
618 pub struct PermitCall {
619 pub owner: ::ethers_core::types::Address,
620 pub spender: ::ethers_core::types::Address,
621 pub value: ::ethers_core::types::U256,
622 pub deadline: ::ethers_core::types::U256,
623 pub v: u8,
624 pub r: [u8; 32],
625 pub s: [u8; 32],
626 }
627 #[derive(
629 Clone,
630 ::ethers_contract::EthCall,
631 ::ethers_contract::EthDisplay,
632 Default,
633 Debug,
634 PartialEq,
635 Eq,
636 Hash
637 )]
638 #[ethcall(name = "symbol", abi = "symbol()")]
639 pub struct SymbolCall;
640 #[derive(
642 Clone,
643 ::ethers_contract::EthCall,
644 ::ethers_contract::EthDisplay,
645 Default,
646 Debug,
647 PartialEq,
648 Eq,
649 Hash
650 )]
651 #[ethcall(name = "totalSupply", abi = "totalSupply()")]
652 pub struct TotalSupplyCall;
653 #[derive(
655 Clone,
656 ::ethers_contract::EthCall,
657 ::ethers_contract::EthDisplay,
658 Default,
659 Debug,
660 PartialEq,
661 Eq,
662 Hash
663 )]
664 #[ethcall(name = "transfer", abi = "transfer(address,uint256)")]
665 pub struct TransferCall {
666 pub to: ::ethers_core::types::Address,
667 pub amount: ::ethers_core::types::U256,
668 }
669 #[derive(
671 Clone,
672 ::ethers_contract::EthCall,
673 ::ethers_contract::EthDisplay,
674 Default,
675 Debug,
676 PartialEq,
677 Eq,
678 Hash
679 )]
680 #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
681 pub struct TransferFromCall {
682 pub from: ::ethers_core::types::Address,
683 pub to: ::ethers_core::types::Address,
684 pub amount: ::ethers_core::types::U256,
685 }
686 #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
688 pub enum ERC20PermitCalls {
689 DomainSeparator(DomainSeparatorCall),
690 Allowance(AllowanceCall),
691 Approve(ApproveCall),
692 BalanceOf(BalanceOfCall),
693 Decimals(DecimalsCall),
694 DecreaseAllowance(DecreaseAllowanceCall),
695 Eip712Domain(Eip712DomainCall),
696 IncreaseAllowance(IncreaseAllowanceCall),
697 Name(NameCall),
698 Nonces(NoncesCall),
699 Permit(PermitCall),
700 Symbol(SymbolCall),
701 TotalSupply(TotalSupplyCall),
702 Transfer(TransferCall),
703 TransferFrom(TransferFromCall),
704 }
705 impl ::ethers_core::abi::AbiDecode for ERC20PermitCalls {
706 fn decode(
707 data: impl AsRef<[u8]>,
708 ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
709 let data = data.as_ref();
710 if let Ok(decoded)
711 = <DomainSeparatorCall as ::ethers_core::abi::AbiDecode>::decode(data) {
712 return Ok(Self::DomainSeparator(decoded));
713 }
714 if let Ok(decoded)
715 = <AllowanceCall as ::ethers_core::abi::AbiDecode>::decode(data) {
716 return Ok(Self::Allowance(decoded));
717 }
718 if let Ok(decoded)
719 = <ApproveCall as ::ethers_core::abi::AbiDecode>::decode(data) {
720 return Ok(Self::Approve(decoded));
721 }
722 if let Ok(decoded)
723 = <BalanceOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
724 return Ok(Self::BalanceOf(decoded));
725 }
726 if let Ok(decoded)
727 = <DecimalsCall as ::ethers_core::abi::AbiDecode>::decode(data) {
728 return Ok(Self::Decimals(decoded));
729 }
730 if let Ok(decoded)
731 = <DecreaseAllowanceCall as ::ethers_core::abi::AbiDecode>::decode(
732 data,
733 ) {
734 return Ok(Self::DecreaseAllowance(decoded));
735 }
736 if let Ok(decoded)
737 = <Eip712DomainCall as ::ethers_core::abi::AbiDecode>::decode(data) {
738 return Ok(Self::Eip712Domain(decoded));
739 }
740 if let Ok(decoded)
741 = <IncreaseAllowanceCall as ::ethers_core::abi::AbiDecode>::decode(
742 data,
743 ) {
744 return Ok(Self::IncreaseAllowance(decoded));
745 }
746 if let Ok(decoded)
747 = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
748 return Ok(Self::Name(decoded));
749 }
750 if let Ok(decoded)
751 = <NoncesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
752 return Ok(Self::Nonces(decoded));
753 }
754 if let Ok(decoded)
755 = <PermitCall as ::ethers_core::abi::AbiDecode>::decode(data) {
756 return Ok(Self::Permit(decoded));
757 }
758 if let Ok(decoded)
759 = <SymbolCall as ::ethers_core::abi::AbiDecode>::decode(data) {
760 return Ok(Self::Symbol(decoded));
761 }
762 if let Ok(decoded)
763 = <TotalSupplyCall as ::ethers_core::abi::AbiDecode>::decode(data) {
764 return Ok(Self::TotalSupply(decoded));
765 }
766 if let Ok(decoded)
767 = <TransferCall as ::ethers_core::abi::AbiDecode>::decode(data) {
768 return Ok(Self::Transfer(decoded));
769 }
770 if let Ok(decoded)
771 = <TransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
772 return Ok(Self::TransferFrom(decoded));
773 }
774 Err(::ethers_core::abi::Error::InvalidData.into())
775 }
776 }
777 impl ::ethers_core::abi::AbiEncode for ERC20PermitCalls {
778 fn encode(self) -> Vec<u8> {
779 match self {
780 Self::DomainSeparator(element) => {
781 ::ethers_core::abi::AbiEncode::encode(element)
782 }
783 Self::Allowance(element) => {
784 ::ethers_core::abi::AbiEncode::encode(element)
785 }
786 Self::Approve(element) => ::ethers_core::abi::AbiEncode::encode(element),
787 Self::BalanceOf(element) => {
788 ::ethers_core::abi::AbiEncode::encode(element)
789 }
790 Self::Decimals(element) => ::ethers_core::abi::AbiEncode::encode(element),
791 Self::DecreaseAllowance(element) => {
792 ::ethers_core::abi::AbiEncode::encode(element)
793 }
794 Self::Eip712Domain(element) => {
795 ::ethers_core::abi::AbiEncode::encode(element)
796 }
797 Self::IncreaseAllowance(element) => {
798 ::ethers_core::abi::AbiEncode::encode(element)
799 }
800 Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
801 Self::Nonces(element) => ::ethers_core::abi::AbiEncode::encode(element),
802 Self::Permit(element) => ::ethers_core::abi::AbiEncode::encode(element),
803 Self::Symbol(element) => ::ethers_core::abi::AbiEncode::encode(element),
804 Self::TotalSupply(element) => {
805 ::ethers_core::abi::AbiEncode::encode(element)
806 }
807 Self::Transfer(element) => ::ethers_core::abi::AbiEncode::encode(element),
808 Self::TransferFrom(element) => {
809 ::ethers_core::abi::AbiEncode::encode(element)
810 }
811 }
812 }
813 }
814 impl ::core::fmt::Display for ERC20PermitCalls {
815 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
816 match self {
817 Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f),
818 Self::Allowance(element) => ::core::fmt::Display::fmt(element, f),
819 Self::Approve(element) => ::core::fmt::Display::fmt(element, f),
820 Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f),
821 Self::Decimals(element) => ::core::fmt::Display::fmt(element, f),
822 Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f),
823 Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f),
824 Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f),
825 Self::Name(element) => ::core::fmt::Display::fmt(element, f),
826 Self::Nonces(element) => ::core::fmt::Display::fmt(element, f),
827 Self::Permit(element) => ::core::fmt::Display::fmt(element, f),
828 Self::Symbol(element) => ::core::fmt::Display::fmt(element, f),
829 Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f),
830 Self::Transfer(element) => ::core::fmt::Display::fmt(element, f),
831 Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f),
832 }
833 }
834 }
835 impl ::core::convert::From<DomainSeparatorCall> for ERC20PermitCalls {
836 fn from(value: DomainSeparatorCall) -> Self {
837 Self::DomainSeparator(value)
838 }
839 }
840 impl ::core::convert::From<AllowanceCall> for ERC20PermitCalls {
841 fn from(value: AllowanceCall) -> Self {
842 Self::Allowance(value)
843 }
844 }
845 impl ::core::convert::From<ApproveCall> for ERC20PermitCalls {
846 fn from(value: ApproveCall) -> Self {
847 Self::Approve(value)
848 }
849 }
850 impl ::core::convert::From<BalanceOfCall> for ERC20PermitCalls {
851 fn from(value: BalanceOfCall) -> Self {
852 Self::BalanceOf(value)
853 }
854 }
855 impl ::core::convert::From<DecimalsCall> for ERC20PermitCalls {
856 fn from(value: DecimalsCall) -> Self {
857 Self::Decimals(value)
858 }
859 }
860 impl ::core::convert::From<DecreaseAllowanceCall> for ERC20PermitCalls {
861 fn from(value: DecreaseAllowanceCall) -> Self {
862 Self::DecreaseAllowance(value)
863 }
864 }
865 impl ::core::convert::From<Eip712DomainCall> for ERC20PermitCalls {
866 fn from(value: Eip712DomainCall) -> Self {
867 Self::Eip712Domain(value)
868 }
869 }
870 impl ::core::convert::From<IncreaseAllowanceCall> for ERC20PermitCalls {
871 fn from(value: IncreaseAllowanceCall) -> Self {
872 Self::IncreaseAllowance(value)
873 }
874 }
875 impl ::core::convert::From<NameCall> for ERC20PermitCalls {
876 fn from(value: NameCall) -> Self {
877 Self::Name(value)
878 }
879 }
880 impl ::core::convert::From<NoncesCall> for ERC20PermitCalls {
881 fn from(value: NoncesCall) -> Self {
882 Self::Nonces(value)
883 }
884 }
885 impl ::core::convert::From<PermitCall> for ERC20PermitCalls {
886 fn from(value: PermitCall) -> Self {
887 Self::Permit(value)
888 }
889 }
890 impl ::core::convert::From<SymbolCall> for ERC20PermitCalls {
891 fn from(value: SymbolCall) -> Self {
892 Self::Symbol(value)
893 }
894 }
895 impl ::core::convert::From<TotalSupplyCall> for ERC20PermitCalls {
896 fn from(value: TotalSupplyCall) -> Self {
897 Self::TotalSupply(value)
898 }
899 }
900 impl ::core::convert::From<TransferCall> for ERC20PermitCalls {
901 fn from(value: TransferCall) -> Self {
902 Self::Transfer(value)
903 }
904 }
905 impl ::core::convert::From<TransferFromCall> for ERC20PermitCalls {
906 fn from(value: TransferFromCall) -> Self {
907 Self::TransferFrom(value)
908 }
909 }
910 #[derive(
912 Clone,
913 ::ethers_contract::EthAbiType,
914 ::ethers_contract::EthAbiCodec,
915 Default,
916 Debug,
917 PartialEq,
918 Eq,
919 Hash
920 )]
921 pub struct DomainSeparatorReturn(pub [u8; 32]);
922 #[derive(
924 Clone,
925 ::ethers_contract::EthAbiType,
926 ::ethers_contract::EthAbiCodec,
927 Default,
928 Debug,
929 PartialEq,
930 Eq,
931 Hash
932 )]
933 pub struct AllowanceReturn(pub ::ethers_core::types::U256);
934 #[derive(
936 Clone,
937 ::ethers_contract::EthAbiType,
938 ::ethers_contract::EthAbiCodec,
939 Default,
940 Debug,
941 PartialEq,
942 Eq,
943 Hash
944 )]
945 pub struct ApproveReturn(pub bool);
946 #[derive(
948 Clone,
949 ::ethers_contract::EthAbiType,
950 ::ethers_contract::EthAbiCodec,
951 Default,
952 Debug,
953 PartialEq,
954 Eq,
955 Hash
956 )]
957 pub struct BalanceOfReturn(pub ::ethers_core::types::U256);
958 #[derive(
960 Clone,
961 ::ethers_contract::EthAbiType,
962 ::ethers_contract::EthAbiCodec,
963 Default,
964 Debug,
965 PartialEq,
966 Eq,
967 Hash
968 )]
969 pub struct DecimalsReturn(pub u8);
970 #[derive(
972 Clone,
973 ::ethers_contract::EthAbiType,
974 ::ethers_contract::EthAbiCodec,
975 Default,
976 Debug,
977 PartialEq,
978 Eq,
979 Hash
980 )]
981 pub struct DecreaseAllowanceReturn(pub bool);
982 #[derive(
984 Clone,
985 ::ethers_contract::EthAbiType,
986 ::ethers_contract::EthAbiCodec,
987 Default,
988 Debug,
989 PartialEq,
990 Eq,
991 Hash
992 )]
993 pub struct Eip712DomainReturn {
994 pub fields: [u8; 1],
995 pub name: ::std::string::String,
996 pub version: ::std::string::String,
997 pub chain_id: ::ethers_core::types::U256,
998 pub verifying_contract: ::ethers_core::types::Address,
999 pub salt: [u8; 32],
1000 pub extensions: ::std::vec::Vec<::ethers_core::types::U256>,
1001 }
1002 #[derive(
1004 Clone,
1005 ::ethers_contract::EthAbiType,
1006 ::ethers_contract::EthAbiCodec,
1007 Default,
1008 Debug,
1009 PartialEq,
1010 Eq,
1011 Hash
1012 )]
1013 pub struct IncreaseAllowanceReturn(pub bool);
1014 #[derive(
1016 Clone,
1017 ::ethers_contract::EthAbiType,
1018 ::ethers_contract::EthAbiCodec,
1019 Default,
1020 Debug,
1021 PartialEq,
1022 Eq,
1023 Hash
1024 )]
1025 pub struct NameReturn(pub ::std::string::String);
1026 #[derive(
1028 Clone,
1029 ::ethers_contract::EthAbiType,
1030 ::ethers_contract::EthAbiCodec,
1031 Default,
1032 Debug,
1033 PartialEq,
1034 Eq,
1035 Hash
1036 )]
1037 pub struct NoncesReturn(pub ::ethers_core::types::U256);
1038 #[derive(
1040 Clone,
1041 ::ethers_contract::EthAbiType,
1042 ::ethers_contract::EthAbiCodec,
1043 Default,
1044 Debug,
1045 PartialEq,
1046 Eq,
1047 Hash
1048 )]
1049 pub struct SymbolReturn(pub ::std::string::String);
1050 #[derive(
1052 Clone,
1053 ::ethers_contract::EthAbiType,
1054 ::ethers_contract::EthAbiCodec,
1055 Default,
1056 Debug,
1057 PartialEq,
1058 Eq,
1059 Hash
1060 )]
1061 pub struct TotalSupplyReturn(pub ::ethers_core::types::U256);
1062 #[derive(
1064 Clone,
1065 ::ethers_contract::EthAbiType,
1066 ::ethers_contract::EthAbiCodec,
1067 Default,
1068 Debug,
1069 PartialEq,
1070 Eq,
1071 Hash
1072 )]
1073 pub struct TransferReturn(pub bool);
1074 #[derive(
1076 Clone,
1077 ::ethers_contract::EthAbiType,
1078 ::ethers_contract::EthAbiCodec,
1079 Default,
1080 Debug,
1081 PartialEq,
1082 Eq,
1083 Hash
1084 )]
1085 pub struct TransferFromReturn(pub bool);
1086}