webb/evm/contract/protocol_solidity/
vanchor_base.rs

1pub use v_anchor_base_contract::*;
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 v_anchor_base_contract {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::None,
17            functions: ::core::convert::From::from([
18                (
19                    ::std::borrow::ToOwned::to_owned("EVM_CHAIN_ID_TYPE"),
20                    ::std::vec![
21                        ::ethers::core::abi::ethabi::Function {
22                            name: ::std::borrow::ToOwned::to_owned("EVM_CHAIN_ID_TYPE"),
23                            inputs: ::std::vec![],
24                            outputs: ::std::vec![
25                                ::ethers::core::abi::ethabi::Param {
26                                    name: ::std::string::String::new(),
27                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
28                                        2usize,
29                                    ),
30                                    internal_type: ::core::option::Option::Some(
31                                        ::std::borrow::ToOwned::to_owned("bytes2"),
32                                    ),
33                                },
34                            ],
35                            constant: ::core::option::Option::None,
36                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
37                        },
38                    ],
39                ),
40                (
41                    ::std::borrow::ToOwned::to_owned("FIELD_SIZE"),
42                    ::std::vec![
43                        ::ethers::core::abi::ethabi::Function {
44                            name: ::std::borrow::ToOwned::to_owned("FIELD_SIZE"),
45                            inputs: ::std::vec![],
46                            outputs: ::std::vec![
47                                ::ethers::core::abi::ethabi::Param {
48                                    name: ::std::string::String::new(),
49                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
50                                        256usize,
51                                    ),
52                                    internal_type: ::core::option::Option::Some(
53                                        ::std::borrow::ToOwned::to_owned("uint256"),
54                                    ),
55                                },
56                            ],
57                            constant: ::core::option::Option::None,
58                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
59                        },
60                    ],
61                ),
62                (
63                    ::std::borrow::ToOwned::to_owned("MAX_EXT_AMOUNT"),
64                    ::std::vec![
65                        ::ethers::core::abi::ethabi::Function {
66                            name: ::std::borrow::ToOwned::to_owned("MAX_EXT_AMOUNT"),
67                            inputs: ::std::vec![],
68                            outputs: ::std::vec![
69                                ::ethers::core::abi::ethabi::Param {
70                                    name: ::std::string::String::new(),
71                                    kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize),
72                                    internal_type: ::core::option::Option::Some(
73                                        ::std::borrow::ToOwned::to_owned("int256"),
74                                    ),
75                                },
76                            ],
77                            constant: ::core::option::Option::None,
78                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
79                        },
80                    ],
81                ),
82                (
83                    ::std::borrow::ToOwned::to_owned("MAX_FEE"),
84                    ::std::vec![
85                        ::ethers::core::abi::ethabi::Function {
86                            name: ::std::borrow::ToOwned::to_owned("MAX_FEE"),
87                            inputs: ::std::vec![],
88                            outputs: ::std::vec![
89                                ::ethers::core::abi::ethabi::Param {
90                                    name: ::std::string::String::new(),
91                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
92                                        256usize,
93                                    ),
94                                    internal_type: ::core::option::Option::Some(
95                                        ::std::borrow::ToOwned::to_owned("uint256"),
96                                    ),
97                                },
98                            ],
99                            constant: ::core::option::Option::None,
100                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
101                        },
102                    ],
103                ),
104                (
105                    ::std::borrow::ToOwned::to_owned("ROOT_HISTORY_SIZE"),
106                    ::std::vec![
107                        ::ethers::core::abi::ethabi::Function {
108                            name: ::std::borrow::ToOwned::to_owned("ROOT_HISTORY_SIZE"),
109                            inputs: ::std::vec![],
110                            outputs: ::std::vec![
111                                ::ethers::core::abi::ethabi::Param {
112                                    name: ::std::string::String::new(),
113                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
114                                    internal_type: ::core::option::Option::Some(
115                                        ::std::borrow::ToOwned::to_owned("uint32"),
116                                    ),
117                                },
118                            ],
119                            constant: ::core::option::Option::None,
120                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
121                        },
122                    ],
123                ),
124                (
125                    ::std::borrow::ToOwned::to_owned("ZERO_VALUE"),
126                    ::std::vec![
127                        ::ethers::core::abi::ethabi::Function {
128                            name: ::std::borrow::ToOwned::to_owned("ZERO_VALUE"),
129                            inputs: ::std::vec![],
130                            outputs: ::std::vec![
131                                ::ethers::core::abi::ethabi::Param {
132                                    name: ::std::string::String::new(),
133                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
134                                        256usize,
135                                    ),
136                                    internal_type: ::core::option::Option::Some(
137                                        ::std::borrow::ToOwned::to_owned("uint256"),
138                                    ),
139                                },
140                            ],
141                            constant: ::core::option::Option::None,
142                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
143                        },
144                    ],
145                ),
146                (
147                    ::std::borrow::ToOwned::to_owned("_executeWrapping"),
148                    ::std::vec![
149                        ::ethers::core::abi::ethabi::Function {
150                            name: ::std::borrow::ToOwned::to_owned("_executeWrapping"),
151                            inputs: ::std::vec![
152                                ::ethers::core::abi::ethabi::Param {
153                                    name: ::std::borrow::ToOwned::to_owned("_fromTokenAddress"),
154                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
155                                    internal_type: ::core::option::Option::Some(
156                                        ::std::borrow::ToOwned::to_owned("address"),
157                                    ),
158                                },
159                                ::ethers::core::abi::ethabi::Param {
160                                    name: ::std::borrow::ToOwned::to_owned("_toTokenAddress"),
161                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
162                                    internal_type: ::core::option::Option::Some(
163                                        ::std::borrow::ToOwned::to_owned("address"),
164                                    ),
165                                },
166                                ::ethers::core::abi::ethabi::Param {
167                                    name: ::std::borrow::ToOwned::to_owned("_extAmount"),
168                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
169                                        256usize,
170                                    ),
171                                    internal_type: ::core::option::Option::Some(
172                                        ::std::borrow::ToOwned::to_owned("uint256"),
173                                    ),
174                                },
175                            ],
176                            outputs: ::std::vec![
177                                ::ethers::core::abi::ethabi::Param {
178                                    name: ::std::string::String::new(),
179                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
180                                        256usize,
181                                    ),
182                                    internal_type: ::core::option::Option::Some(
183                                        ::std::borrow::ToOwned::to_owned("uint256"),
184                                    ),
185                                },
186                            ],
187                            constant: ::core::option::Option::None,
188                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
189                        },
190                    ],
191                ),
192                (
193                    ::std::borrow::ToOwned::to_owned("_withdrawAndUnwrap"),
194                    ::std::vec![
195                        ::ethers::core::abi::ethabi::Function {
196                            name: ::std::borrow::ToOwned::to_owned("_withdrawAndUnwrap"),
197                            inputs: ::std::vec![
198                                ::ethers::core::abi::ethabi::Param {
199                                    name: ::std::borrow::ToOwned::to_owned("_fromTokenAddress"),
200                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
201                                    internal_type: ::core::option::Option::Some(
202                                        ::std::borrow::ToOwned::to_owned("address"),
203                                    ),
204                                },
205                                ::ethers::core::abi::ethabi::Param {
206                                    name: ::std::borrow::ToOwned::to_owned("_toTokenAddress"),
207                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
208                                    internal_type: ::core::option::Option::Some(
209                                        ::std::borrow::ToOwned::to_owned("address"),
210                                    ),
211                                },
212                                ::ethers::core::abi::ethabi::Param {
213                                    name: ::std::borrow::ToOwned::to_owned("_recipient"),
214                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
215                                    internal_type: ::core::option::Option::Some(
216                                        ::std::borrow::ToOwned::to_owned("address"),
217                                    ),
218                                },
219                                ::ethers::core::abi::ethabi::Param {
220                                    name: ::std::borrow::ToOwned::to_owned("_minusExtAmount"),
221                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
222                                        256usize,
223                                    ),
224                                    internal_type: ::core::option::Option::Some(
225                                        ::std::borrow::ToOwned::to_owned("uint256"),
226                                    ),
227                                },
228                            ],
229                            outputs: ::std::vec![],
230                            constant: ::core::option::Option::None,
231                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
232                        },
233                    ],
234                ),
235                (
236                    ::std::borrow::ToOwned::to_owned("calculatePublicAmount"),
237                    ::std::vec![
238                        ::ethers::core::abi::ethabi::Function {
239                            name: ::std::borrow::ToOwned::to_owned(
240                                "calculatePublicAmount",
241                            ),
242                            inputs: ::std::vec![
243                                ::ethers::core::abi::ethabi::Param {
244                                    name: ::std::borrow::ToOwned::to_owned("_extAmount"),
245                                    kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize),
246                                    internal_type: ::core::option::Option::Some(
247                                        ::std::borrow::ToOwned::to_owned("int256"),
248                                    ),
249                                },
250                                ::ethers::core::abi::ethabi::Param {
251                                    name: ::std::borrow::ToOwned::to_owned("_fee"),
252                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
253                                        256usize,
254                                    ),
255                                    internal_type: ::core::option::Option::Some(
256                                        ::std::borrow::ToOwned::to_owned("uint256"),
257                                    ),
258                                },
259                            ],
260                            outputs: ::std::vec![
261                                ::ethers::core::abi::ethabi::Param {
262                                    name: ::std::string::String::new(),
263                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
264                                        256usize,
265                                    ),
266                                    internal_type: ::core::option::Option::Some(
267                                        ::std::borrow::ToOwned::to_owned("uint256"),
268                                    ),
269                                },
270                            ],
271                            constant: ::core::option::Option::None,
272                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
273                        },
274                    ],
275                ),
276                (
277                    ::std::borrow::ToOwned::to_owned("commitments"),
278                    ::std::vec![
279                        ::ethers::core::abi::ethabi::Function {
280                            name: ::std::borrow::ToOwned::to_owned("commitments"),
281                            inputs: ::std::vec![
282                                ::ethers::core::abi::ethabi::Param {
283                                    name: ::std::string::String::new(),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
285                                        256usize,
286                                    ),
287                                    internal_type: ::core::option::Option::Some(
288                                        ::std::borrow::ToOwned::to_owned("uint256"),
289                                    ),
290                                },
291                            ],
292                            outputs: ::std::vec![
293                                ::ethers::core::abi::ethabi::Param {
294                                    name: ::std::string::String::new(),
295                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
296                                    internal_type: ::core::option::Option::Some(
297                                        ::std::borrow::ToOwned::to_owned("bool"),
298                                    ),
299                                },
300                            ],
301                            constant: ::core::option::Option::None,
302                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
303                        },
304                    ],
305                ),
306                (
307                    ::std::borrow::ToOwned::to_owned("configureMaximumDepositLimit"),
308                    ::std::vec![
309                        ::ethers::core::abi::ethabi::Function {
310                            name: ::std::borrow::ToOwned::to_owned(
311                                "configureMaximumDepositLimit",
312                            ),
313                            inputs: ::std::vec![
314                                ::ethers::core::abi::ethabi::Param {
315                                    name: ::std::borrow::ToOwned::to_owned(
316                                        "_maximumDepositAmount",
317                                    ),
318                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
319                                        256usize,
320                                    ),
321                                    internal_type: ::core::option::Option::Some(
322                                        ::std::borrow::ToOwned::to_owned("uint256"),
323                                    ),
324                                },
325                                ::ethers::core::abi::ethabi::Param {
326                                    name: ::std::borrow::ToOwned::to_owned("_nonce"),
327                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
328                                    internal_type: ::core::option::Option::Some(
329                                        ::std::borrow::ToOwned::to_owned("uint32"),
330                                    ),
331                                },
332                            ],
333                            outputs: ::std::vec![],
334                            constant: ::core::option::Option::None,
335                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
336                        },
337                    ],
338                ),
339                (
340                    ::std::borrow::ToOwned::to_owned("configureMinimalWithdrawalLimit"),
341                    ::std::vec![
342                        ::ethers::core::abi::ethabi::Function {
343                            name: ::std::borrow::ToOwned::to_owned(
344                                "configureMinimalWithdrawalLimit",
345                            ),
346                            inputs: ::std::vec![
347                                ::ethers::core::abi::ethabi::Param {
348                                    name: ::std::borrow::ToOwned::to_owned(
349                                        "_minimalWithdrawalAmount",
350                                    ),
351                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
352                                        256usize,
353                                    ),
354                                    internal_type: ::core::option::Option::Some(
355                                        ::std::borrow::ToOwned::to_owned("uint256"),
356                                    ),
357                                },
358                                ::ethers::core::abi::ethabi::Param {
359                                    name: ::std::borrow::ToOwned::to_owned("_nonce"),
360                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
361                                    internal_type: ::core::option::Option::Some(
362                                        ::std::borrow::ToOwned::to_owned("uint32"),
363                                    ),
364                                },
365                            ],
366                            outputs: ::std::vec![],
367                            constant: ::core::option::Option::None,
368                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
369                        },
370                    ],
371                ),
372                (
373                    ::std::borrow::ToOwned::to_owned("currentNeighborRootIndex"),
374                    ::std::vec![
375                        ::ethers::core::abi::ethabi::Function {
376                            name: ::std::borrow::ToOwned::to_owned(
377                                "currentNeighborRootIndex",
378                            ),
379                            inputs: ::std::vec![
380                                ::ethers::core::abi::ethabi::Param {
381                                    name: ::std::string::String::new(),
382                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
383                                        256usize,
384                                    ),
385                                    internal_type: ::core::option::Option::Some(
386                                        ::std::borrow::ToOwned::to_owned("uint256"),
387                                    ),
388                                },
389                            ],
390                            outputs: ::std::vec![
391                                ::ethers::core::abi::ethabi::Param {
392                                    name: ::std::string::String::new(),
393                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
394                                    internal_type: ::core::option::Option::Some(
395                                        ::std::borrow::ToOwned::to_owned("uint32"),
396                                    ),
397                                },
398                            ],
399                            constant: ::core::option::Option::None,
400                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
401                        },
402                    ],
403                ),
404                (
405                    ::std::borrow::ToOwned::to_owned("edgeExistsForChain"),
406                    ::std::vec![
407                        ::ethers::core::abi::ethabi::Function {
408                            name: ::std::borrow::ToOwned::to_owned("edgeExistsForChain"),
409                            inputs: ::std::vec![
410                                ::ethers::core::abi::ethabi::Param {
411                                    name: ::std::string::String::new(),
412                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
413                                        256usize,
414                                    ),
415                                    internal_type: ::core::option::Option::Some(
416                                        ::std::borrow::ToOwned::to_owned("uint256"),
417                                    ),
418                                },
419                            ],
420                            outputs: ::std::vec![
421                                ::ethers::core::abi::ethabi::Param {
422                                    name: ::std::string::String::new(),
423                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
424                                    internal_type: ::core::option::Option::Some(
425                                        ::std::borrow::ToOwned::to_owned("bool"),
426                                    ),
427                                },
428                            ],
429                            constant: ::core::option::Option::None,
430                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
431                        },
432                    ],
433                ),
434                (
435                    ::std::borrow::ToOwned::to_owned("edgeIndex"),
436                    ::std::vec![
437                        ::ethers::core::abi::ethabi::Function {
438                            name: ::std::borrow::ToOwned::to_owned("edgeIndex"),
439                            inputs: ::std::vec![
440                                ::ethers::core::abi::ethabi::Param {
441                                    name: ::std::string::String::new(),
442                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
443                                        256usize,
444                                    ),
445                                    internal_type: ::core::option::Option::Some(
446                                        ::std::borrow::ToOwned::to_owned("uint256"),
447                                    ),
448                                },
449                            ],
450                            outputs: ::std::vec![
451                                ::ethers::core::abi::ethabi::Param {
452                                    name: ::std::string::String::new(),
453                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
454                                        256usize,
455                                    ),
456                                    internal_type: ::core::option::Option::Some(
457                                        ::std::borrow::ToOwned::to_owned("uint256"),
458                                    ),
459                                },
460                            ],
461                            constant: ::core::option::Option::None,
462                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
463                        },
464                    ],
465                ),
466                (
467                    ::std::borrow::ToOwned::to_owned("edgeList"),
468                    ::std::vec![
469                        ::ethers::core::abi::ethabi::Function {
470                            name: ::std::borrow::ToOwned::to_owned("edgeList"),
471                            inputs: ::std::vec![
472                                ::ethers::core::abi::ethabi::Param {
473                                    name: ::std::string::String::new(),
474                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
475                                        256usize,
476                                    ),
477                                    internal_type: ::core::option::Option::Some(
478                                        ::std::borrow::ToOwned::to_owned("uint256"),
479                                    ),
480                                },
481                            ],
482                            outputs: ::std::vec![
483                                ::ethers::core::abi::ethabi::Param {
484                                    name: ::std::borrow::ToOwned::to_owned("chainID"),
485                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
486                                        256usize,
487                                    ),
488                                    internal_type: ::core::option::Option::Some(
489                                        ::std::borrow::ToOwned::to_owned("uint256"),
490                                    ),
491                                },
492                                ::ethers::core::abi::ethabi::Param {
493                                    name: ::std::borrow::ToOwned::to_owned("root"),
494                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
495                                        256usize,
496                                    ),
497                                    internal_type: ::core::option::Option::Some(
498                                        ::std::borrow::ToOwned::to_owned("uint256"),
499                                    ),
500                                },
501                                ::ethers::core::abi::ethabi::Param {
502                                    name: ::std::borrow::ToOwned::to_owned("latestLeafIndex"),
503                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
504                                        256usize,
505                                    ),
506                                    internal_type: ::core::option::Option::Some(
507                                        ::std::borrow::ToOwned::to_owned("uint256"),
508                                    ),
509                                },
510                                ::ethers::core::abi::ethabi::Param {
511                                    name: ::std::borrow::ToOwned::to_owned("srcResourceID"),
512                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
513                                        32usize,
514                                    ),
515                                    internal_type: ::core::option::Option::Some(
516                                        ::std::borrow::ToOwned::to_owned("bytes32"),
517                                    ),
518                                },
519                            ],
520                            constant: ::core::option::Option::None,
521                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
522                        },
523                    ],
524                ),
525                (
526                    ::std::borrow::ToOwned::to_owned("filledSubtrees"),
527                    ::std::vec![
528                        ::ethers::core::abi::ethabi::Function {
529                            name: ::std::borrow::ToOwned::to_owned("filledSubtrees"),
530                            inputs: ::std::vec![
531                                ::ethers::core::abi::ethabi::Param {
532                                    name: ::std::string::String::new(),
533                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
534                                        256usize,
535                                    ),
536                                    internal_type: ::core::option::Option::Some(
537                                        ::std::borrow::ToOwned::to_owned("uint256"),
538                                    ),
539                                },
540                            ],
541                            outputs: ::std::vec![
542                                ::ethers::core::abi::ethabi::Param {
543                                    name: ::std::string::String::new(),
544                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
545                                        256usize,
546                                    ),
547                                    internal_type: ::core::option::Option::Some(
548                                        ::std::borrow::ToOwned::to_owned("uint256"),
549                                    ),
550                                },
551                            ],
552                            constant: ::core::option::Option::None,
553                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
554                        },
555                    ],
556                ),
557                (
558                    ::std::borrow::ToOwned::to_owned("getChainId"),
559                    ::std::vec![
560                        ::ethers::core::abi::ethabi::Function {
561                            name: ::std::borrow::ToOwned::to_owned("getChainId"),
562                            inputs: ::std::vec![],
563                            outputs: ::std::vec![
564                                ::ethers::core::abi::ethabi::Param {
565                                    name: ::std::string::String::new(),
566                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
567                                        256usize,
568                                    ),
569                                    internal_type: ::core::option::Option::Some(
570                                        ::std::borrow::ToOwned::to_owned("uint256"),
571                                    ),
572                                },
573                            ],
574                            constant: ::core::option::Option::None,
575                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
576                        },
577                    ],
578                ),
579                (
580                    ::std::borrow::ToOwned::to_owned("getChainIdType"),
581                    ::std::vec![
582                        ::ethers::core::abi::ethabi::Function {
583                            name: ::std::borrow::ToOwned::to_owned("getChainIdType"),
584                            inputs: ::std::vec![],
585                            outputs: ::std::vec![
586                                ::ethers::core::abi::ethabi::Param {
587                                    name: ::std::string::String::new(),
588                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
589                                    internal_type: ::core::option::Option::Some(
590                                        ::std::borrow::ToOwned::to_owned("uint48"),
591                                    ),
592                                },
593                            ],
594                            constant: ::core::option::Option::None,
595                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
596                        },
597                    ],
598                ),
599                (
600                    ::std::borrow::ToOwned::to_owned("getHasher"),
601                    ::std::vec![
602                        ::ethers::core::abi::ethabi::Function {
603                            name: ::std::borrow::ToOwned::to_owned("getHasher"),
604                            inputs: ::std::vec![],
605                            outputs: ::std::vec![
606                                ::ethers::core::abi::ethabi::Param {
607                                    name: ::std::string::String::new(),
608                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
609                                    internal_type: ::core::option::Option::Some(
610                                        ::std::borrow::ToOwned::to_owned("contract IHasher"),
611                                    ),
612                                },
613                            ],
614                            constant: ::core::option::Option::None,
615                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
616                        },
617                    ],
618                ),
619                (
620                    ::std::borrow::ToOwned::to_owned("getLastRoot"),
621                    ::std::vec![
622                        ::ethers::core::abi::ethabi::Function {
623                            name: ::std::borrow::ToOwned::to_owned("getLastRoot"),
624                            inputs: ::std::vec![],
625                            outputs: ::std::vec![
626                                ::ethers::core::abi::ethabi::Param {
627                                    name: ::std::string::String::new(),
628                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
629                                        256usize,
630                                    ),
631                                    internal_type: ::core::option::Option::Some(
632                                        ::std::borrow::ToOwned::to_owned("uint256"),
633                                    ),
634                                },
635                            ],
636                            constant: ::core::option::Option::None,
637                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
638                        },
639                    ],
640                ),
641                (
642                    ::std::borrow::ToOwned::to_owned("getLatestNeighborEdges"),
643                    ::std::vec![
644                        ::ethers::core::abi::ethabi::Function {
645                            name: ::std::borrow::ToOwned::to_owned(
646                                "getLatestNeighborEdges",
647                            ),
648                            inputs: ::std::vec![],
649                            outputs: ::std::vec![
650                                ::ethers::core::abi::ethabi::Param {
651                                    name: ::std::string::String::new(),
652                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
653                                        ::std::boxed::Box::new(
654                                            ::ethers::core::abi::ethabi::ParamType::Tuple(
655                                                ::std::vec![
656                                                    ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
657                                                    ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
658                                                    ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
659                                                    ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
660                                                ],
661                                            ),
662                                        ),
663                                    ),
664                                    internal_type: ::core::option::Option::Some(
665                                        ::std::borrow::ToOwned::to_owned("struct Edge[]"),
666                                    ),
667                                },
668                            ],
669                            constant: ::core::option::Option::None,
670                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
671                        },
672                    ],
673                ),
674                (
675                    ::std::borrow::ToOwned::to_owned("getLatestNeighborRoots"),
676                    ::std::vec![
677                        ::ethers::core::abi::ethabi::Function {
678                            name: ::std::borrow::ToOwned::to_owned(
679                                "getLatestNeighborRoots",
680                            ),
681                            inputs: ::std::vec![],
682                            outputs: ::std::vec![
683                                ::ethers::core::abi::ethabi::Param {
684                                    name: ::std::string::String::new(),
685                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
686                                        ::std::boxed::Box::new(
687                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
688                                        ),
689                                    ),
690                                    internal_type: ::core::option::Option::Some(
691                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
692                                    ),
693                                },
694                            ],
695                            constant: ::core::option::Option::None,
696                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
697                        },
698                    ],
699                ),
700                (
701                    ::std::borrow::ToOwned::to_owned("getLevels"),
702                    ::std::vec![
703                        ::ethers::core::abi::ethabi::Function {
704                            name: ::std::borrow::ToOwned::to_owned("getLevels"),
705                            inputs: ::std::vec![],
706                            outputs: ::std::vec![
707                                ::ethers::core::abi::ethabi::Param {
708                                    name: ::std::string::String::new(),
709                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
710                                    internal_type: ::core::option::Option::Some(
711                                        ::std::borrow::ToOwned::to_owned("uint32"),
712                                    ),
713                                },
714                            ],
715                            constant: ::core::option::Option::None,
716                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
717                        },
718                    ],
719                ),
720                (
721                    ::std::borrow::ToOwned::to_owned("getNextIndex"),
722                    ::std::vec![
723                        ::ethers::core::abi::ethabi::Function {
724                            name: ::std::borrow::ToOwned::to_owned("getNextIndex"),
725                            inputs: ::std::vec![],
726                            outputs: ::std::vec![
727                                ::ethers::core::abi::ethabi::Param {
728                                    name: ::std::string::String::new(),
729                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
730                                    internal_type: ::core::option::Option::Some(
731                                        ::std::borrow::ToOwned::to_owned("uint32"),
732                                    ),
733                                },
734                            ],
735                            constant: ::core::option::Option::None,
736                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
737                        },
738                    ],
739                ),
740                (
741                    ::std::borrow::ToOwned::to_owned("getProposalNonce"),
742                    ::std::vec![
743                        ::ethers::core::abi::ethabi::Function {
744                            name: ::std::borrow::ToOwned::to_owned("getProposalNonce"),
745                            inputs: ::std::vec![],
746                            outputs: ::std::vec![
747                                ::ethers::core::abi::ethabi::Param {
748                                    name: ::std::string::String::new(),
749                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
750                                        256usize,
751                                    ),
752                                    internal_type: ::core::option::Option::Some(
753                                        ::std::borrow::ToOwned::to_owned("uint256"),
754                                    ),
755                                },
756                            ],
757                            constant: ::core::option::Option::None,
758                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
759                        },
760                    ],
761                ),
762                (
763                    ::std::borrow::ToOwned::to_owned("getZeroHash"),
764                    ::std::vec![
765                        ::ethers::core::abi::ethabi::Function {
766                            name: ::std::borrow::ToOwned::to_owned("getZeroHash"),
767                            inputs: ::std::vec![
768                                ::ethers::core::abi::ethabi::Param {
769                                    name: ::std::borrow::ToOwned::to_owned("index"),
770                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
771                                    internal_type: ::core::option::Option::Some(
772                                        ::std::borrow::ToOwned::to_owned("uint32"),
773                                    ),
774                                },
775                            ],
776                            outputs: ::std::vec![
777                                ::ethers::core::abi::ethabi::Param {
778                                    name: ::std::string::String::new(),
779                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
780                                        256usize,
781                                    ),
782                                    internal_type: ::core::option::Option::Some(
783                                        ::std::borrow::ToOwned::to_owned("uint256"),
784                                    ),
785                                },
786                            ],
787                            constant: ::core::option::Option::None,
788                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
789                        },
790                    ],
791                ),
792                (
793                    ::std::borrow::ToOwned::to_owned("handler"),
794                    ::std::vec![
795                        ::ethers::core::abi::ethabi::Function {
796                            name: ::std::borrow::ToOwned::to_owned("handler"),
797                            inputs: ::std::vec![],
798                            outputs: ::std::vec![
799                                ::ethers::core::abi::ethabi::Param {
800                                    name: ::std::string::String::new(),
801                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
802                                    internal_type: ::core::option::Option::Some(
803                                        ::std::borrow::ToOwned::to_owned("address"),
804                                    ),
805                                },
806                            ],
807                            constant: ::core::option::Option::None,
808                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
809                        },
810                    ],
811                ),
812                (
813                    ::std::borrow::ToOwned::to_owned("hasEdge"),
814                    ::std::vec![
815                        ::ethers::core::abi::ethabi::Function {
816                            name: ::std::borrow::ToOwned::to_owned("hasEdge"),
817                            inputs: ::std::vec![
818                                ::ethers::core::abi::ethabi::Param {
819                                    name: ::std::borrow::ToOwned::to_owned("_chainID"),
820                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
821                                        256usize,
822                                    ),
823                                    internal_type: ::core::option::Option::Some(
824                                        ::std::borrow::ToOwned::to_owned("uint256"),
825                                    ),
826                                },
827                            ],
828                            outputs: ::std::vec![
829                                ::ethers::core::abi::ethabi::Param {
830                                    name: ::std::string::String::new(),
831                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
832                                    internal_type: ::core::option::Option::Some(
833                                        ::std::borrow::ToOwned::to_owned("bool"),
834                                    ),
835                                },
836                            ],
837                            constant: ::core::option::Option::None,
838                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
839                        },
840                    ],
841                ),
842                (
843                    ::std::borrow::ToOwned::to_owned("hashLeftRight"),
844                    ::std::vec![
845                        ::ethers::core::abi::ethabi::Function {
846                            name: ::std::borrow::ToOwned::to_owned("hashLeftRight"),
847                            inputs: ::std::vec![
848                                ::ethers::core::abi::ethabi::Param {
849                                    name: ::std::borrow::ToOwned::to_owned("_left"),
850                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
851                                        256usize,
852                                    ),
853                                    internal_type: ::core::option::Option::Some(
854                                        ::std::borrow::ToOwned::to_owned("uint256"),
855                                    ),
856                                },
857                                ::ethers::core::abi::ethabi::Param {
858                                    name: ::std::borrow::ToOwned::to_owned("_right"),
859                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
860                                        256usize,
861                                    ),
862                                    internal_type: ::core::option::Option::Some(
863                                        ::std::borrow::ToOwned::to_owned("uint256"),
864                                    ),
865                                },
866                            ],
867                            outputs: ::std::vec![
868                                ::ethers::core::abi::ethabi::Param {
869                                    name: ::std::string::String::new(),
870                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
871                                        256usize,
872                                    ),
873                                    internal_type: ::core::option::Option::Some(
874                                        ::std::borrow::ToOwned::to_owned("uint256"),
875                                    ),
876                                },
877                            ],
878                            constant: ::core::option::Option::None,
879                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
880                        },
881                    ],
882                ),
883                (
884                    ::std::borrow::ToOwned::to_owned("initialize"),
885                    ::std::vec![
886                        ::ethers::core::abi::ethabi::Function {
887                            name: ::std::borrow::ToOwned::to_owned("initialize"),
888                            inputs: ::std::vec![
889                                ::ethers::core::abi::ethabi::Param {
890                                    name: ::std::borrow::ToOwned::to_owned(
891                                        "_minimalWithdrawalAmount",
892                                    ),
893                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
894                                        256usize,
895                                    ),
896                                    internal_type: ::core::option::Option::Some(
897                                        ::std::borrow::ToOwned::to_owned("uint256"),
898                                    ),
899                                },
900                                ::ethers::core::abi::ethabi::Param {
901                                    name: ::std::borrow::ToOwned::to_owned(
902                                        "_maximumDepositAmount",
903                                    ),
904                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
905                                        256usize,
906                                    ),
907                                    internal_type: ::core::option::Option::Some(
908                                        ::std::borrow::ToOwned::to_owned("uint256"),
909                                    ),
910                                },
911                            ],
912                            outputs: ::std::vec![],
913                            constant: ::core::option::Option::None,
914                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
915                        },
916                    ],
917                ),
918                (
919                    ::std::borrow::ToOwned::to_owned("initialized"),
920                    ::std::vec![
921                        ::ethers::core::abi::ethabi::Function {
922                            name: ::std::borrow::ToOwned::to_owned("initialized"),
923                            inputs: ::std::vec![],
924                            outputs: ::std::vec![
925                                ::ethers::core::abi::ethabi::Param {
926                                    name: ::std::string::String::new(),
927                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
928                                    internal_type: ::core::option::Option::Some(
929                                        ::std::borrow::ToOwned::to_owned("bool"),
930                                    ),
931                                },
932                            ],
933                            constant: ::core::option::Option::None,
934                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
935                        },
936                    ],
937                ),
938                (
939                    ::std::borrow::ToOwned::to_owned("isCorrectExecutionChain"),
940                    ::std::vec![
941                        ::ethers::core::abi::ethabi::Function {
942                            name: ::std::borrow::ToOwned::to_owned(
943                                "isCorrectExecutionChain",
944                            ),
945                            inputs: ::std::vec![
946                                ::ethers::core::abi::ethabi::Param {
947                                    name: ::std::borrow::ToOwned::to_owned("resourceID"),
948                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
949                                        32usize,
950                                    ),
951                                    internal_type: ::core::option::Option::Some(
952                                        ::std::borrow::ToOwned::to_owned("bytes32"),
953                                    ),
954                                },
955                            ],
956                            outputs: ::std::vec![
957                                ::ethers::core::abi::ethabi::Param {
958                                    name: ::std::string::String::new(),
959                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
960                                    internal_type: ::core::option::Option::Some(
961                                        ::std::borrow::ToOwned::to_owned("bool"),
962                                    ),
963                                },
964                            ],
965                            constant: ::core::option::Option::None,
966                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
967                        },
968                    ],
969                ),
970                (
971                    ::std::borrow::ToOwned::to_owned("isCorrectExecutionContext"),
972                    ::std::vec![
973                        ::ethers::core::abi::ethabi::Function {
974                            name: ::std::borrow::ToOwned::to_owned(
975                                "isCorrectExecutionContext",
976                            ),
977                            inputs: ::std::vec![
978                                ::ethers::core::abi::ethabi::Param {
979                                    name: ::std::borrow::ToOwned::to_owned("resourceId"),
980                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
981                                        32usize,
982                                    ),
983                                    internal_type: ::core::option::Option::Some(
984                                        ::std::borrow::ToOwned::to_owned("bytes32"),
985                                    ),
986                                },
987                            ],
988                            outputs: ::std::vec![
989                                ::ethers::core::abi::ethabi::Param {
990                                    name: ::std::string::String::new(),
991                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
992                                    internal_type: ::core::option::Option::Some(
993                                        ::std::borrow::ToOwned::to_owned("bool"),
994                                    ),
995                                },
996                            ],
997                            constant: ::core::option::Option::None,
998                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
999                        },
1000                    ],
1001                ),
1002                (
1003                    ::std::borrow::ToOwned::to_owned("isKnownNeighborRoot"),
1004                    ::std::vec![
1005                        ::ethers::core::abi::ethabi::Function {
1006                            name: ::std::borrow::ToOwned::to_owned(
1007                                "isKnownNeighborRoot",
1008                            ),
1009                            inputs: ::std::vec![
1010                                ::ethers::core::abi::ethabi::Param {
1011                                    name: ::std::borrow::ToOwned::to_owned("_neighborChainID"),
1012                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1013                                        256usize,
1014                                    ),
1015                                    internal_type: ::core::option::Option::Some(
1016                                        ::std::borrow::ToOwned::to_owned("uint256"),
1017                                    ),
1018                                },
1019                                ::ethers::core::abi::ethabi::Param {
1020                                    name: ::std::borrow::ToOwned::to_owned("_root"),
1021                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1022                                        256usize,
1023                                    ),
1024                                    internal_type: ::core::option::Option::Some(
1025                                        ::std::borrow::ToOwned::to_owned("uint256"),
1026                                    ),
1027                                },
1028                            ],
1029                            outputs: ::std::vec![
1030                                ::ethers::core::abi::ethabi::Param {
1031                                    name: ::std::string::String::new(),
1032                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1033                                    internal_type: ::core::option::Option::Some(
1034                                        ::std::borrow::ToOwned::to_owned("bool"),
1035                                    ),
1036                                },
1037                            ],
1038                            constant: ::core::option::Option::None,
1039                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1040                        },
1041                    ],
1042                ),
1043                (
1044                    ::std::borrow::ToOwned::to_owned("isKnownRoot"),
1045                    ::std::vec![
1046                        ::ethers::core::abi::ethabi::Function {
1047                            name: ::std::borrow::ToOwned::to_owned("isKnownRoot"),
1048                            inputs: ::std::vec![
1049                                ::ethers::core::abi::ethabi::Param {
1050                                    name: ::std::borrow::ToOwned::to_owned("root"),
1051                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1052                                        256usize,
1053                                    ),
1054                                    internal_type: ::core::option::Option::Some(
1055                                        ::std::borrow::ToOwned::to_owned("uint256"),
1056                                    ),
1057                                },
1058                            ],
1059                            outputs: ::std::vec![
1060                                ::ethers::core::abi::ethabi::Param {
1061                                    name: ::std::string::String::new(),
1062                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1063                                    internal_type: ::core::option::Option::Some(
1064                                        ::std::borrow::ToOwned::to_owned("bool"),
1065                                    ),
1066                                },
1067                            ],
1068                            constant: ::core::option::Option::None,
1069                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1070                        },
1071                    ],
1072                ),
1073                (
1074                    ::std::borrow::ToOwned::to_owned("isSpent"),
1075                    ::std::vec![
1076                        ::ethers::core::abi::ethabi::Function {
1077                            name: ::std::borrow::ToOwned::to_owned("isSpent"),
1078                            inputs: ::std::vec![
1079                                ::ethers::core::abi::ethabi::Param {
1080                                    name: ::std::borrow::ToOwned::to_owned("_nullifierHash"),
1081                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1082                                        256usize,
1083                                    ),
1084                                    internal_type: ::core::option::Option::Some(
1085                                        ::std::borrow::ToOwned::to_owned("uint256"),
1086                                    ),
1087                                },
1088                            ],
1089                            outputs: ::std::vec![
1090                                ::ethers::core::abi::ethabi::Param {
1091                                    name: ::std::string::String::new(),
1092                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1093                                    internal_type: ::core::option::Option::Some(
1094                                        ::std::borrow::ToOwned::to_owned("bool"),
1095                                    ),
1096                                },
1097                            ],
1098                            constant: ::core::option::Option::None,
1099                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1100                        },
1101                    ],
1102                ),
1103                (
1104                    ::std::borrow::ToOwned::to_owned("isSpentArray"),
1105                    ::std::vec![
1106                        ::ethers::core::abi::ethabi::Function {
1107                            name: ::std::borrow::ToOwned::to_owned("isSpentArray"),
1108                            inputs: ::std::vec![
1109                                ::ethers::core::abi::ethabi::Param {
1110                                    name: ::std::borrow::ToOwned::to_owned("_nullifierHashes"),
1111                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
1112                                        ::std::boxed::Box::new(
1113                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
1114                                        ),
1115                                    ),
1116                                    internal_type: ::core::option::Option::Some(
1117                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
1118                                    ),
1119                                },
1120                            ],
1121                            outputs: ::std::vec![
1122                                ::ethers::core::abi::ethabi::Param {
1123                                    name: ::std::string::String::new(),
1124                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
1125                                        ::std::boxed::Box::new(
1126                                            ::ethers::core::abi::ethabi::ParamType::Bool,
1127                                        ),
1128                                    ),
1129                                    internal_type: ::core::option::Option::Some(
1130                                        ::std::borrow::ToOwned::to_owned("bool[]"),
1131                                    ),
1132                                },
1133                            ],
1134                            constant: ::core::option::Option::None,
1135                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1136                        },
1137                    ],
1138                ),
1139                (
1140                    ::std::borrow::ToOwned::to_owned("isValidRoots"),
1141                    ::std::vec![
1142                        ::ethers::core::abi::ethabi::Function {
1143                            name: ::std::borrow::ToOwned::to_owned("isValidRoots"),
1144                            inputs: ::std::vec![
1145                                ::ethers::core::abi::ethabi::Param {
1146                                    name: ::std::borrow::ToOwned::to_owned("_roots"),
1147                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
1148                                        ::std::boxed::Box::new(
1149                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
1150                                        ),
1151                                    ),
1152                                    internal_type: ::core::option::Option::Some(
1153                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
1154                                    ),
1155                                },
1156                            ],
1157                            outputs: ::std::vec![
1158                                ::ethers::core::abi::ethabi::Param {
1159                                    name: ::std::string::String::new(),
1160                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1161                                    internal_type: ::core::option::Option::Some(
1162                                        ::std::borrow::ToOwned::to_owned("bool"),
1163                                    ),
1164                                },
1165                            ],
1166                            constant: ::core::option::Option::None,
1167                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1168                        },
1169                    ],
1170                ),
1171                (
1172                    ::std::borrow::ToOwned::to_owned("lastBalance"),
1173                    ::std::vec![
1174                        ::ethers::core::abi::ethabi::Function {
1175                            name: ::std::borrow::ToOwned::to_owned("lastBalance"),
1176                            inputs: ::std::vec![],
1177                            outputs: ::std::vec![
1178                                ::ethers::core::abi::ethabi::Param {
1179                                    name: ::std::string::String::new(),
1180                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1181                                        256usize,
1182                                    ),
1183                                    internal_type: ::core::option::Option::Some(
1184                                        ::std::borrow::ToOwned::to_owned("uint256"),
1185                                    ),
1186                                },
1187                            ],
1188                            constant: ::core::option::Option::None,
1189                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1190                        },
1191                    ],
1192                ),
1193                (
1194                    ::std::borrow::ToOwned::to_owned("maxEdges"),
1195                    ::std::vec![
1196                        ::ethers::core::abi::ethabi::Function {
1197                            name: ::std::borrow::ToOwned::to_owned("maxEdges"),
1198                            inputs: ::std::vec![],
1199                            outputs: ::std::vec![
1200                                ::ethers::core::abi::ethabi::Param {
1201                                    name: ::std::string::String::new(),
1202                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
1203                                    internal_type: ::core::option::Option::Some(
1204                                        ::std::borrow::ToOwned::to_owned("uint8"),
1205                                    ),
1206                                },
1207                            ],
1208                            constant: ::core::option::Option::None,
1209                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1210                        },
1211                    ],
1212                ),
1213                (
1214                    ::std::borrow::ToOwned::to_owned("maximumDepositAmount"),
1215                    ::std::vec![
1216                        ::ethers::core::abi::ethabi::Function {
1217                            name: ::std::borrow::ToOwned::to_owned(
1218                                "maximumDepositAmount",
1219                            ),
1220                            inputs: ::std::vec![],
1221                            outputs: ::std::vec![
1222                                ::ethers::core::abi::ethabi::Param {
1223                                    name: ::std::string::String::new(),
1224                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1225                                        256usize,
1226                                    ),
1227                                    internal_type: ::core::option::Option::Some(
1228                                        ::std::borrow::ToOwned::to_owned("uint256"),
1229                                    ),
1230                                },
1231                            ],
1232                            constant: ::core::option::Option::None,
1233                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1234                        },
1235                    ],
1236                ),
1237                (
1238                    ::std::borrow::ToOwned::to_owned("minimalWithdrawalAmount"),
1239                    ::std::vec![
1240                        ::ethers::core::abi::ethabi::Function {
1241                            name: ::std::borrow::ToOwned::to_owned(
1242                                "minimalWithdrawalAmount",
1243                            ),
1244                            inputs: ::std::vec![],
1245                            outputs: ::std::vec![
1246                                ::ethers::core::abi::ethabi::Param {
1247                                    name: ::std::string::String::new(),
1248                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1249                                        256usize,
1250                                    ),
1251                                    internal_type: ::core::option::Option::Some(
1252                                        ::std::borrow::ToOwned::to_owned("uint256"),
1253                                    ),
1254                                },
1255                            ],
1256                            constant: ::core::option::Option::None,
1257                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1258                        },
1259                    ],
1260                ),
1261                (
1262                    ::std::borrow::ToOwned::to_owned("neighborRoots"),
1263                    ::std::vec![
1264                        ::ethers::core::abi::ethabi::Function {
1265                            name: ::std::borrow::ToOwned::to_owned("neighborRoots"),
1266                            inputs: ::std::vec![
1267                                ::ethers::core::abi::ethabi::Param {
1268                                    name: ::std::string::String::new(),
1269                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1270                                        256usize,
1271                                    ),
1272                                    internal_type: ::core::option::Option::Some(
1273                                        ::std::borrow::ToOwned::to_owned("uint256"),
1274                                    ),
1275                                },
1276                                ::ethers::core::abi::ethabi::Param {
1277                                    name: ::std::string::String::new(),
1278                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1279                                    internal_type: ::core::option::Option::Some(
1280                                        ::std::borrow::ToOwned::to_owned("uint32"),
1281                                    ),
1282                                },
1283                            ],
1284                            outputs: ::std::vec![
1285                                ::ethers::core::abi::ethabi::Param {
1286                                    name: ::std::string::String::new(),
1287                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1288                                        256usize,
1289                                    ),
1290                                    internal_type: ::core::option::Option::Some(
1291                                        ::std::borrow::ToOwned::to_owned("uint256"),
1292                                    ),
1293                                },
1294                            ],
1295                            constant: ::core::option::Option::None,
1296                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1297                        },
1298                    ],
1299                ),
1300                (
1301                    ::std::borrow::ToOwned::to_owned("nullifierHashes"),
1302                    ::std::vec![
1303                        ::ethers::core::abi::ethabi::Function {
1304                            name: ::std::borrow::ToOwned::to_owned("nullifierHashes"),
1305                            inputs: ::std::vec![
1306                                ::ethers::core::abi::ethabi::Param {
1307                                    name: ::std::string::String::new(),
1308                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1309                                        256usize,
1310                                    ),
1311                                    internal_type: ::core::option::Option::Some(
1312                                        ::std::borrow::ToOwned::to_owned("uint256"),
1313                                    ),
1314                                },
1315                            ],
1316                            outputs: ::std::vec![
1317                                ::ethers::core::abi::ethabi::Param {
1318                                    name: ::std::string::String::new(),
1319                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1320                                    internal_type: ::core::option::Option::Some(
1321                                        ::std::borrow::ToOwned::to_owned("bool"),
1322                                    ),
1323                                },
1324                            ],
1325                            constant: ::core::option::Option::None,
1326                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1327                        },
1328                    ],
1329                ),
1330                (
1331                    ::std::borrow::ToOwned::to_owned("outerLevels"),
1332                    ::std::vec![
1333                        ::ethers::core::abi::ethabi::Function {
1334                            name: ::std::borrow::ToOwned::to_owned("outerLevels"),
1335                            inputs: ::std::vec![],
1336                            outputs: ::std::vec![
1337                                ::ethers::core::abi::ethabi::Param {
1338                                    name: ::std::string::String::new(),
1339                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1340                                    internal_type: ::core::option::Option::Some(
1341                                        ::std::borrow::ToOwned::to_owned("uint32"),
1342                                    ),
1343                                },
1344                            ],
1345                            constant: ::core::option::Option::None,
1346                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1347                        },
1348                    ],
1349                ),
1350                (
1351                    ::std::borrow::ToOwned::to_owned("parseChainIdFromResourceId"),
1352                    ::std::vec![
1353                        ::ethers::core::abi::ethabi::Function {
1354                            name: ::std::borrow::ToOwned::to_owned(
1355                                "parseChainIdFromResourceId",
1356                            ),
1357                            inputs: ::std::vec![
1358                                ::ethers::core::abi::ethabi::Param {
1359                                    name: ::std::borrow::ToOwned::to_owned("_resourceId"),
1360                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1361                                        32usize,
1362                                    ),
1363                                    internal_type: ::core::option::Option::Some(
1364                                        ::std::borrow::ToOwned::to_owned("bytes32"),
1365                                    ),
1366                                },
1367                            ],
1368                            outputs: ::std::vec![
1369                                ::ethers::core::abi::ethabi::Param {
1370                                    name: ::std::string::String::new(),
1371                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize),
1372                                    internal_type: ::core::option::Option::Some(
1373                                        ::std::borrow::ToOwned::to_owned("uint64"),
1374                                    ),
1375                                },
1376                            ],
1377                            constant: ::core::option::Option::None,
1378                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
1379                        },
1380                    ],
1381                ),
1382                (
1383                    ::std::borrow::ToOwned::to_owned("proposalNonce"),
1384                    ::std::vec![
1385                        ::ethers::core::abi::ethabi::Function {
1386                            name: ::std::borrow::ToOwned::to_owned("proposalNonce"),
1387                            inputs: ::std::vec![],
1388                            outputs: ::std::vec![
1389                                ::ethers::core::abi::ethabi::Param {
1390                                    name: ::std::string::String::new(),
1391                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1392                                        256usize,
1393                                    ),
1394                                    internal_type: ::core::option::Option::Some(
1395                                        ::std::borrow::ToOwned::to_owned("uint256"),
1396                                    ),
1397                                },
1398                            ],
1399                            constant: ::core::option::Option::None,
1400                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1401                        },
1402                    ],
1403                ),
1404                (
1405                    ::std::borrow::ToOwned::to_owned("register"),
1406                    ::std::vec![
1407                        ::ethers::core::abi::ethabi::Function {
1408                            name: ::std::borrow::ToOwned::to_owned("register"),
1409                            inputs: ::std::vec![
1410                                ::ethers::core::abi::ethabi::Param {
1411                                    name: ::std::borrow::ToOwned::to_owned("_account"),
1412                                    kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
1413                                        ::std::vec![
1414                                            ::ethers::core::abi::ethabi::ParamType::Address,
1415                                            ::ethers::core::abi::ethabi::ParamType::Bytes,
1416                                        ],
1417                                    ),
1418                                    internal_type: ::core::option::Option::Some(
1419                                        ::std::borrow::ToOwned::to_owned(
1420                                            "struct VAnchorBase.Account",
1421                                        ),
1422                                    ),
1423                                },
1424                            ],
1425                            outputs: ::std::vec![],
1426                            constant: ::core::option::Option::None,
1427                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1428                        },
1429                    ],
1430                ),
1431                (
1432                    ::std::borrow::ToOwned::to_owned("roots"),
1433                    ::std::vec![
1434                        ::ethers::core::abi::ethabi::Function {
1435                            name: ::std::borrow::ToOwned::to_owned("roots"),
1436                            inputs: ::std::vec![
1437                                ::ethers::core::abi::ethabi::Param {
1438                                    name: ::std::string::String::new(),
1439                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1440                                        256usize,
1441                                    ),
1442                                    internal_type: ::core::option::Option::Some(
1443                                        ::std::borrow::ToOwned::to_owned("uint256"),
1444                                    ),
1445                                },
1446                            ],
1447                            outputs: ::std::vec![
1448                                ::ethers::core::abi::ethabi::Param {
1449                                    name: ::std::borrow::ToOwned::to_owned("root"),
1450                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1451                                        256usize,
1452                                    ),
1453                                    internal_type: ::core::option::Option::Some(
1454                                        ::std::borrow::ToOwned::to_owned("uint256"),
1455                                    ),
1456                                },
1457                                ::ethers::core::abi::ethabi::Param {
1458                                    name: ::std::borrow::ToOwned::to_owned("latestLeafindex"),
1459                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1460                                    internal_type: ::core::option::Option::Some(
1461                                        ::std::borrow::ToOwned::to_owned("uint32"),
1462                                    ),
1463                                },
1464                            ],
1465                            constant: ::core::option::Option::None,
1466                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1467                        },
1468                    ],
1469                ),
1470                (
1471                    ::std::borrow::ToOwned::to_owned("setHandler"),
1472                    ::std::vec![
1473                        ::ethers::core::abi::ethabi::Function {
1474                            name: ::std::borrow::ToOwned::to_owned("setHandler"),
1475                            inputs: ::std::vec![
1476                                ::ethers::core::abi::ethabi::Param {
1477                                    name: ::std::borrow::ToOwned::to_owned("_handler"),
1478                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1479                                    internal_type: ::core::option::Option::Some(
1480                                        ::std::borrow::ToOwned::to_owned("address"),
1481                                    ),
1482                                },
1483                                ::ethers::core::abi::ethabi::Param {
1484                                    name: ::std::borrow::ToOwned::to_owned("_nonce"),
1485                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1486                                    internal_type: ::core::option::Option::Some(
1487                                        ::std::borrow::ToOwned::to_owned("uint32"),
1488                                    ),
1489                                },
1490                            ],
1491                            outputs: ::std::vec![],
1492                            constant: ::core::option::Option::None,
1493                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1494                        },
1495                    ],
1496                ),
1497                (
1498                    ::std::borrow::ToOwned::to_owned("updateEdge"),
1499                    ::std::vec![
1500                        ::ethers::core::abi::ethabi::Function {
1501                            name: ::std::borrow::ToOwned::to_owned("updateEdge"),
1502                            inputs: ::std::vec![
1503                                ::ethers::core::abi::ethabi::Param {
1504                                    name: ::std::borrow::ToOwned::to_owned("_root"),
1505                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1506                                        256usize,
1507                                    ),
1508                                    internal_type: ::core::option::Option::Some(
1509                                        ::std::borrow::ToOwned::to_owned("uint256"),
1510                                    ),
1511                                },
1512                                ::ethers::core::abi::ethabi::Param {
1513                                    name: ::std::borrow::ToOwned::to_owned("_leafIndex"),
1514                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1515                                    internal_type: ::core::option::Option::Some(
1516                                        ::std::borrow::ToOwned::to_owned("uint32"),
1517                                    ),
1518                                },
1519                                ::ethers::core::abi::ethabi::Param {
1520                                    name: ::std::borrow::ToOwned::to_owned("_srcResourceID"),
1521                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1522                                        32usize,
1523                                    ),
1524                                    internal_type: ::core::option::Option::Some(
1525                                        ::std::borrow::ToOwned::to_owned("bytes32"),
1526                                    ),
1527                                },
1528                            ],
1529                            outputs: ::std::vec![],
1530                            constant: ::core::option::Option::None,
1531                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
1532                        },
1533                    ],
1534                ),
1535            ]),
1536            events: ::core::convert::From::from([
1537                (
1538                    ::std::borrow::ToOwned::to_owned("EdgeAddition"),
1539                    ::std::vec![
1540                        ::ethers::core::abi::ethabi::Event {
1541                            name: ::std::borrow::ToOwned::to_owned("EdgeAddition"),
1542                            inputs: ::std::vec![
1543                                ::ethers::core::abi::ethabi::EventParam {
1544                                    name: ::std::borrow::ToOwned::to_owned("chainID"),
1545                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1546                                        256usize,
1547                                    ),
1548                                    indexed: false,
1549                                },
1550                                ::ethers::core::abi::ethabi::EventParam {
1551                                    name: ::std::borrow::ToOwned::to_owned("latestLeafIndex"),
1552                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1553                                        256usize,
1554                                    ),
1555                                    indexed: false,
1556                                },
1557                                ::ethers::core::abi::ethabi::EventParam {
1558                                    name: ::std::borrow::ToOwned::to_owned("merkleRoot"),
1559                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1560                                        256usize,
1561                                    ),
1562                                    indexed: false,
1563                                },
1564                            ],
1565                            anonymous: false,
1566                        },
1567                    ],
1568                ),
1569                (
1570                    ::std::borrow::ToOwned::to_owned("EdgeUpdate"),
1571                    ::std::vec![
1572                        ::ethers::core::abi::ethabi::Event {
1573                            name: ::std::borrow::ToOwned::to_owned("EdgeUpdate"),
1574                            inputs: ::std::vec![
1575                                ::ethers::core::abi::ethabi::EventParam {
1576                                    name: ::std::borrow::ToOwned::to_owned("chainID"),
1577                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1578                                        256usize,
1579                                    ),
1580                                    indexed: false,
1581                                },
1582                                ::ethers::core::abi::ethabi::EventParam {
1583                                    name: ::std::borrow::ToOwned::to_owned("latestLeafIndex"),
1584                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1585                                        256usize,
1586                                    ),
1587                                    indexed: false,
1588                                },
1589                                ::ethers::core::abi::ethabi::EventParam {
1590                                    name: ::std::borrow::ToOwned::to_owned("merkleRoot"),
1591                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1592                                        256usize,
1593                                    ),
1594                                    indexed: false,
1595                                },
1596                            ],
1597                            anonymous: false,
1598                        },
1599                    ],
1600                ),
1601                (
1602                    ::std::borrow::ToOwned::to_owned("Insertion"),
1603                    ::std::vec![
1604                        ::ethers::core::abi::ethabi::Event {
1605                            name: ::std::borrow::ToOwned::to_owned("Insertion"),
1606                            inputs: ::std::vec![
1607                                ::ethers::core::abi::ethabi::EventParam {
1608                                    name: ::std::borrow::ToOwned::to_owned("commitment"),
1609                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1610                                        256usize,
1611                                    ),
1612                                    indexed: true,
1613                                },
1614                                ::ethers::core::abi::ethabi::EventParam {
1615                                    name: ::std::borrow::ToOwned::to_owned("leafIndex"),
1616                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1617                                    indexed: false,
1618                                },
1619                                ::ethers::core::abi::ethabi::EventParam {
1620                                    name: ::std::borrow::ToOwned::to_owned("timestamp"),
1621                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1622                                        256usize,
1623                                    ),
1624                                    indexed: false,
1625                                },
1626                                ::ethers::core::abi::ethabi::EventParam {
1627                                    name: ::std::borrow::ToOwned::to_owned("newMerkleRoot"),
1628                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1629                                        256usize,
1630                                    ),
1631                                    indexed: true,
1632                                },
1633                            ],
1634                            anonymous: false,
1635                        },
1636                    ],
1637                ),
1638                (
1639                    ::std::borrow::ToOwned::to_owned("MaxDepositLimitUpdated"),
1640                    ::std::vec![
1641                        ::ethers::core::abi::ethabi::Event {
1642                            name: ::std::borrow::ToOwned::to_owned(
1643                                "MaxDepositLimitUpdated",
1644                            ),
1645                            inputs: ::std::vec![
1646                                ::ethers::core::abi::ethabi::EventParam {
1647                                    name: ::std::borrow::ToOwned::to_owned(
1648                                        "maximumDepositAmount",
1649                                    ),
1650                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1651                                        256usize,
1652                                    ),
1653                                    indexed: false,
1654                                },
1655                                ::ethers::core::abi::ethabi::EventParam {
1656                                    name: ::std::borrow::ToOwned::to_owned("nonce"),
1657                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1658                                    indexed: false,
1659                                },
1660                            ],
1661                            anonymous: false,
1662                        },
1663                    ],
1664                ),
1665                (
1666                    ::std::borrow::ToOwned::to_owned("MinWithdrawalLimitUpdated"),
1667                    ::std::vec![
1668                        ::ethers::core::abi::ethabi::Event {
1669                            name: ::std::borrow::ToOwned::to_owned(
1670                                "MinWithdrawalLimitUpdated",
1671                            ),
1672                            inputs: ::std::vec![
1673                                ::ethers::core::abi::ethabi::EventParam {
1674                                    name: ::std::borrow::ToOwned::to_owned(
1675                                        "minimalWithdrawalAmount",
1676                                    ),
1677                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1678                                        256usize,
1679                                    ),
1680                                    indexed: false,
1681                                },
1682                                ::ethers::core::abi::ethabi::EventParam {
1683                                    name: ::std::borrow::ToOwned::to_owned("nonce"),
1684                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1685                                    indexed: false,
1686                                },
1687                            ],
1688                            anonymous: false,
1689                        },
1690                    ],
1691                ),
1692                (
1693                    ::std::borrow::ToOwned::to_owned("NewCommitment"),
1694                    ::std::vec![
1695                        ::ethers::core::abi::ethabi::Event {
1696                            name: ::std::borrow::ToOwned::to_owned("NewCommitment"),
1697                            inputs: ::std::vec![
1698                                ::ethers::core::abi::ethabi::EventParam {
1699                                    name: ::std::borrow::ToOwned::to_owned("commitment"),
1700                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1701                                        256usize,
1702                                    ),
1703                                    indexed: false,
1704                                },
1705                                ::ethers::core::abi::ethabi::EventParam {
1706                                    name: ::std::borrow::ToOwned::to_owned("subTreeIndex"),
1707                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1708                                        256usize,
1709                                    ),
1710                                    indexed: false,
1711                                },
1712                                ::ethers::core::abi::ethabi::EventParam {
1713                                    name: ::std::borrow::ToOwned::to_owned("leafIndex"),
1714                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1715                                        256usize,
1716                                    ),
1717                                    indexed: false,
1718                                },
1719                                ::ethers::core::abi::ethabi::EventParam {
1720                                    name: ::std::borrow::ToOwned::to_owned("encryptedOutput"),
1721                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
1722                                    indexed: false,
1723                                },
1724                            ],
1725                            anonymous: false,
1726                        },
1727                    ],
1728                ),
1729                (
1730                    ::std::borrow::ToOwned::to_owned("NewNullifier"),
1731                    ::std::vec![
1732                        ::ethers::core::abi::ethabi::Event {
1733                            name: ::std::borrow::ToOwned::to_owned("NewNullifier"),
1734                            inputs: ::std::vec![
1735                                ::ethers::core::abi::ethabi::EventParam {
1736                                    name: ::std::borrow::ToOwned::to_owned("nullifier"),
1737                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1738                                        256usize,
1739                                    ),
1740                                    indexed: false,
1741                                },
1742                            ],
1743                            anonymous: false,
1744                        },
1745                    ],
1746                ),
1747                (
1748                    ::std::borrow::ToOwned::to_owned("PublicKey"),
1749                    ::std::vec![
1750                        ::ethers::core::abi::ethabi::Event {
1751                            name: ::std::borrow::ToOwned::to_owned("PublicKey"),
1752                            inputs: ::std::vec![
1753                                ::ethers::core::abi::ethabi::EventParam {
1754                                    name: ::std::borrow::ToOwned::to_owned("owner"),
1755                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1756                                    indexed: true,
1757                                },
1758                                ::ethers::core::abi::ethabi::EventParam {
1759                                    name: ::std::borrow::ToOwned::to_owned("key"),
1760                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
1761                                    indexed: false,
1762                                },
1763                            ],
1764                            anonymous: false,
1765                        },
1766                    ],
1767                ),
1768                (
1769                    ::std::borrow::ToOwned::to_owned("SetHandler"),
1770                    ::std::vec![
1771                        ::ethers::core::abi::ethabi::Event {
1772                            name: ::std::borrow::ToOwned::to_owned("SetHandler"),
1773                            inputs: ::std::vec![
1774                                ::ethers::core::abi::ethabi::EventParam {
1775                                    name: ::std::borrow::ToOwned::to_owned("handler"),
1776                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1777                                    indexed: false,
1778                                },
1779                                ::ethers::core::abi::ethabi::EventParam {
1780                                    name: ::std::borrow::ToOwned::to_owned("nonce"),
1781                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1782                                    indexed: false,
1783                                },
1784                            ],
1785                            anonymous: false,
1786                        },
1787                    ],
1788                ),
1789            ]),
1790            errors: ::std::collections::BTreeMap::new(),
1791            receive: false,
1792            fallback: false,
1793        }
1794    }
1795    ///The parsed JSON ABI of the contract.
1796    pub static VANCHORBASECONTRACT_ABI: ::ethers::contract::Lazy<
1797        ::ethers::core::abi::Abi,
1798    > = ::ethers::contract::Lazy::new(__abi);
1799    pub struct VAnchorBaseContract<M>(::ethers::contract::Contract<M>);
1800    impl<M> ::core::clone::Clone for VAnchorBaseContract<M> {
1801        fn clone(&self) -> Self {
1802            Self(::core::clone::Clone::clone(&self.0))
1803        }
1804    }
1805    impl<M> ::core::ops::Deref for VAnchorBaseContract<M> {
1806        type Target = ::ethers::contract::Contract<M>;
1807        fn deref(&self) -> &Self::Target {
1808            &self.0
1809        }
1810    }
1811    impl<M> ::core::ops::DerefMut for VAnchorBaseContract<M> {
1812        fn deref_mut(&mut self) -> &mut Self::Target {
1813            &mut self.0
1814        }
1815    }
1816    impl<M> ::core::fmt::Debug for VAnchorBaseContract<M> {
1817        fn fmt(
1818            &self,
1819            f: &mut ::core::fmt::Formatter<'_>,
1820        ) -> ::core::fmt::Result {
1821            f.debug_tuple(::core::stringify!(VAnchorBaseContract))
1822                .field(&self.address())
1823                .finish()
1824        }
1825    }
1826    impl<M: ::ethers::providers::Middleware> VAnchorBaseContract<M> {
1827        /// Creates a new contract instance with the specified `ethers` client at
1828        /// `address`. The contract derefs to a `ethers::Contract` object.
1829        pub fn new<T: Into<::ethers::core::types::Address>>(
1830            address: T,
1831            client: ::std::sync::Arc<M>,
1832        ) -> Self {
1833            Self(::ethers::contract::Contract::new(
1834                address.into(),
1835                VANCHORBASECONTRACT_ABI.clone(),
1836                client,
1837            ))
1838        }
1839        ///Calls the contract's `EVM_CHAIN_ID_TYPE` (0x8b7e8782) function
1840        pub fn evm_chain_id_type(
1841            &self,
1842        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 2]> {
1843            self.0
1844                .method_hash([139, 126, 135, 130], ())
1845                .expect("method not found (this should never happen)")
1846        }
1847        ///Calls the contract's `FIELD_SIZE` (0x414a37ba) function
1848        pub fn field_size(
1849            &self,
1850        ) -> ::ethers::contract::builders::ContractCall<
1851            M,
1852            ::ethers::core::types::U256,
1853        > {
1854            self.0
1855                .method_hash([65, 74, 55, 186], ())
1856                .expect("method not found (this should never happen)")
1857        }
1858        ///Calls the contract's `MAX_EXT_AMOUNT` (0x7fe24ffe) function
1859        pub fn max_ext_amount(
1860            &self,
1861        ) -> ::ethers::contract::builders::ContractCall<
1862            M,
1863            ::ethers::core::types::I256,
1864        > {
1865            self.0
1866                .method_hash([127, 226, 79, 254], ())
1867                .expect("method not found (this should never happen)")
1868        }
1869        ///Calls the contract's `MAX_FEE` (0xbc063e1a) function
1870        pub fn max_fee(
1871            &self,
1872        ) -> ::ethers::contract::builders::ContractCall<
1873            M,
1874            ::ethers::core::types::U256,
1875        > {
1876            self.0
1877                .method_hash([188, 6, 62, 26], ())
1878                .expect("method not found (this should never happen)")
1879        }
1880        ///Calls the contract's `ROOT_HISTORY_SIZE` (0xcd87a3b4) function
1881        pub fn root_history_size(
1882            &self,
1883        ) -> ::ethers::contract::builders::ContractCall<M, u32> {
1884            self.0
1885                .method_hash([205, 135, 163, 180], ())
1886                .expect("method not found (this should never happen)")
1887        }
1888        ///Calls the contract's `ZERO_VALUE` (0xec732959) function
1889        pub fn zero_value(
1890            &self,
1891        ) -> ::ethers::contract::builders::ContractCall<
1892            M,
1893            ::ethers::core::types::U256,
1894        > {
1895            self.0
1896                .method_hash([236, 115, 41, 89], ())
1897                .expect("method not found (this should never happen)")
1898        }
1899        ///Calls the contract's `_executeWrapping` (0x6338bcbc) function
1900        pub fn execute_wrapping(
1901            &self,
1902            from_token_address: ::ethers::core::types::Address,
1903            to_token_address: ::ethers::core::types::Address,
1904            ext_amount: ::ethers::core::types::U256,
1905        ) -> ::ethers::contract::builders::ContractCall<
1906            M,
1907            ::ethers::core::types::U256,
1908        > {
1909            self.0
1910                .method_hash(
1911                    [99, 56, 188, 188],
1912                    (from_token_address, to_token_address, ext_amount),
1913                )
1914                .expect("method not found (this should never happen)")
1915        }
1916        ///Calls the contract's `_withdrawAndUnwrap` (0x509cd41e) function
1917        pub fn withdraw_and_unwrap(
1918            &self,
1919            from_token_address: ::ethers::core::types::Address,
1920            to_token_address: ::ethers::core::types::Address,
1921            recipient: ::ethers::core::types::Address,
1922            minus_ext_amount: ::ethers::core::types::U256,
1923        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1924            self.0
1925                .method_hash(
1926                    [80, 156, 212, 30],
1927                    (
1928                        from_token_address,
1929                        to_token_address,
1930                        recipient,
1931                        minus_ext_amount,
1932                    ),
1933                )
1934                .expect("method not found (this should never happen)")
1935        }
1936        ///Calls the contract's `calculatePublicAmount` (0x2570b7b4) function
1937        pub fn calculate_public_amount(
1938            &self,
1939            ext_amount: ::ethers::core::types::I256,
1940            fee: ::ethers::core::types::U256,
1941        ) -> ::ethers::contract::builders::ContractCall<
1942            M,
1943            ::ethers::core::types::U256,
1944        > {
1945            self.0
1946                .method_hash([37, 112, 183, 180], (ext_amount, fee))
1947                .expect("method not found (this should never happen)")
1948        }
1949        ///Calls the contract's `commitments` (0x49ce8997) function
1950        pub fn commitments(
1951            &self,
1952            p0: ::ethers::core::types::U256,
1953        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1954            self.0
1955                .method_hash([73, 206, 137, 151], p0)
1956                .expect("method not found (this should never happen)")
1957        }
1958        ///Calls the contract's `configureMaximumDepositLimit` (0x8c832b13) function
1959        pub fn configure_maximum_deposit_limit(
1960            &self,
1961            maximum_deposit_amount: ::ethers::core::types::U256,
1962            nonce: u32,
1963        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1964            self.0
1965                .method_hash(
1966                    [140, 131, 43, 19],
1967                    (maximum_deposit_amount, nonce),
1968                )
1969                .expect("method not found (this should never happen)")
1970        }
1971        ///Calls the contract's `configureMinimalWithdrawalLimit` (0x1f7f99f7) function
1972        pub fn configure_minimal_withdrawal_limit(
1973            &self,
1974            minimal_withdrawal_amount: ::ethers::core::types::U256,
1975            nonce: u32,
1976        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1977            self.0
1978                .method_hash(
1979                    [31, 127, 153, 247],
1980                    (minimal_withdrawal_amount, nonce),
1981                )
1982                .expect("method not found (this should never happen)")
1983        }
1984        ///Calls the contract's `currentNeighborRootIndex` (0x5d2d766c) function
1985        pub fn current_neighbor_root_index(
1986            &self,
1987            p0: ::ethers::core::types::U256,
1988        ) -> ::ethers::contract::builders::ContractCall<M, u32> {
1989            self.0
1990                .method_hash([93, 45, 118, 108], p0)
1991                .expect("method not found (this should never happen)")
1992        }
1993        ///Calls the contract's `edgeExistsForChain` (0xfa731687) function
1994        pub fn edge_exists_for_chain(
1995            &self,
1996            p0: ::ethers::core::types::U256,
1997        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1998            self.0
1999                .method_hash([250, 115, 22, 135], p0)
2000                .expect("method not found (this should never happen)")
2001        }
2002        ///Calls the contract's `edgeIndex` (0xe70ea87c) function
2003        pub fn edge_index(
2004            &self,
2005            p0: ::ethers::core::types::U256,
2006        ) -> ::ethers::contract::builders::ContractCall<
2007            M,
2008            ::ethers::core::types::U256,
2009        > {
2010            self.0
2011                .method_hash([231, 14, 168, 124], p0)
2012                .expect("method not found (this should never happen)")
2013        }
2014        ///Calls the contract's `edgeList` (0xdbc916b8) function
2015        pub fn edge_list(
2016            &self,
2017            p0: ::ethers::core::types::U256,
2018        ) -> ::ethers::contract::builders::ContractCall<
2019            M,
2020            (
2021                ::ethers::core::types::U256,
2022                ::ethers::core::types::U256,
2023                ::ethers::core::types::U256,
2024                [u8; 32],
2025            ),
2026        > {
2027            self.0
2028                .method_hash([219, 201, 22, 184], p0)
2029                .expect("method not found (this should never happen)")
2030        }
2031        ///Calls the contract's `filledSubtrees` (0xf178e47c) function
2032        pub fn filled_subtrees(
2033            &self,
2034            p0: ::ethers::core::types::U256,
2035        ) -> ::ethers::contract::builders::ContractCall<
2036            M,
2037            ::ethers::core::types::U256,
2038        > {
2039            self.0
2040                .method_hash([241, 120, 228, 124], p0)
2041                .expect("method not found (this should never happen)")
2042        }
2043        ///Calls the contract's `getChainId` (0x3408e470) function
2044        pub fn get_chain_id(
2045            &self,
2046        ) -> ::ethers::contract::builders::ContractCall<
2047            M,
2048            ::ethers::core::types::U256,
2049        > {
2050            self.0
2051                .method_hash([52, 8, 228, 112], ())
2052                .expect("method not found (this should never happen)")
2053        }
2054        ///Calls the contract's `getChainIdType` (0x4c830cbd) function
2055        pub fn get_chain_id_type(
2056            &self,
2057        ) -> ::ethers::contract::builders::ContractCall<M, u64> {
2058            self.0
2059                .method_hash([76, 131, 12, 189], ())
2060                .expect("method not found (this should never happen)")
2061        }
2062        ///Calls the contract's `getHasher` (0xea495db0) function
2063        pub fn get_hasher(
2064            &self,
2065        ) -> ::ethers::contract::builders::ContractCall<
2066            M,
2067            ::ethers::core::types::Address,
2068        > {
2069            self.0
2070                .method_hash([234, 73, 93, 176], ())
2071                .expect("method not found (this should never happen)")
2072        }
2073        ///Calls the contract's `getLastRoot` (0xba70f757) function
2074        pub fn get_last_root(
2075            &self,
2076        ) -> ::ethers::contract::builders::ContractCall<
2077            M,
2078            ::ethers::core::types::U256,
2079        > {
2080            self.0
2081                .method_hash([186, 112, 247, 87], ())
2082                .expect("method not found (this should never happen)")
2083        }
2084        ///Calls the contract's `getLatestNeighborEdges` (0x8c0d34d8) function
2085        pub fn get_latest_neighbor_edges(
2086            &self,
2087        ) -> ::ethers::contract::builders::ContractCall<M, ::std::vec::Vec<Edge>>
2088        {
2089            self.0
2090                .method_hash([140, 13, 52, 216], ())
2091                .expect("method not found (this should never happen)")
2092        }
2093        ///Calls the contract's `getLatestNeighborRoots` (0x1e627617) function
2094        pub fn get_latest_neighbor_roots(
2095            &self,
2096        ) -> ::ethers::contract::builders::ContractCall<
2097            M,
2098            ::std::vec::Vec<::ethers::core::types::U256>,
2099        > {
2100            self.0
2101                .method_hash([30, 98, 118, 23], ())
2102                .expect("method not found (this should never happen)")
2103        }
2104        ///Calls the contract's `getLevels` (0x0c394a60) function
2105        pub fn get_levels(
2106            &self,
2107        ) -> ::ethers::contract::builders::ContractCall<M, u32> {
2108            self.0
2109                .method_hash([12, 57, 74, 96], ())
2110                .expect("method not found (this should never happen)")
2111        }
2112        ///Calls the contract's `getNextIndex` (0x0eb7606f) function
2113        pub fn get_next_index(
2114            &self,
2115        ) -> ::ethers::contract::builders::ContractCall<M, u32> {
2116            self.0
2117                .method_hash([14, 183, 96, 111], ())
2118                .expect("method not found (this should never happen)")
2119        }
2120        ///Calls the contract's `getProposalNonce` (0x0b27fb9a) function
2121        pub fn get_proposal_nonce(
2122            &self,
2123        ) -> ::ethers::contract::builders::ContractCall<
2124            M,
2125            ::ethers::core::types::U256,
2126        > {
2127            self.0
2128                .method_hash([11, 39, 251, 154], ())
2129                .expect("method not found (this should never happen)")
2130        }
2131        ///Calls the contract's `getZeroHash` (0x305e9eac) function
2132        pub fn get_zero_hash(
2133            &self,
2134            index: u32,
2135        ) -> ::ethers::contract::builders::ContractCall<
2136            M,
2137            ::ethers::core::types::U256,
2138        > {
2139            self.0
2140                .method_hash([48, 94, 158, 172], index)
2141                .expect("method not found (this should never happen)")
2142        }
2143        ///Calls the contract's `handler` (0xc80916d4) function
2144        pub fn handler(
2145            &self,
2146        ) -> ::ethers::contract::builders::ContractCall<
2147            M,
2148            ::ethers::core::types::Address,
2149        > {
2150            self.0
2151                .method_hash([200, 9, 22, 212], ())
2152                .expect("method not found (this should never happen)")
2153        }
2154        ///Calls the contract's `hasEdge` (0x92156311) function
2155        pub fn has_edge(
2156            &self,
2157            chain_id: ::ethers::core::types::U256,
2158        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2159            self.0
2160                .method_hash([146, 21, 99, 17], chain_id)
2161                .expect("method not found (this should never happen)")
2162        }
2163        ///Calls the contract's `hashLeftRight` (0x5bb93995) function
2164        pub fn hash_left_right(
2165            &self,
2166            left: ::ethers::core::types::U256,
2167            right: ::ethers::core::types::U256,
2168        ) -> ::ethers::contract::builders::ContractCall<
2169            M,
2170            ::ethers::core::types::U256,
2171        > {
2172            self.0
2173                .method_hash([91, 185, 57, 149], (left, right))
2174                .expect("method not found (this should never happen)")
2175        }
2176        ///Calls the contract's `initialize` (0xe4a30116) function
2177        pub fn initialize(
2178            &self,
2179            minimal_withdrawal_amount: ::ethers::core::types::U256,
2180            maximum_deposit_amount: ::ethers::core::types::U256,
2181        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
2182            self.0
2183                .method_hash(
2184                    [228, 163, 1, 22],
2185                    (minimal_withdrawal_amount, maximum_deposit_amount),
2186                )
2187                .expect("method not found (this should never happen)")
2188        }
2189        ///Calls the contract's `initialized` (0x158ef93e) function
2190        pub fn initialized(
2191            &self,
2192        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2193            self.0
2194                .method_hash([21, 142, 249, 62], ())
2195                .expect("method not found (this should never happen)")
2196        }
2197        ///Calls the contract's `isCorrectExecutionChain` (0x830b2f57) function
2198        pub fn is_correct_execution_chain(
2199            &self,
2200            resource_id: [u8; 32],
2201        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2202            self.0
2203                .method_hash([131, 11, 47, 87], resource_id)
2204                .expect("method not found (this should never happen)")
2205        }
2206        ///Calls the contract's `isCorrectExecutionContext` (0xf5fc3d6b) function
2207        pub fn is_correct_execution_context(
2208            &self,
2209            resource_id: [u8; 32],
2210        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2211            self.0
2212                .method_hash([245, 252, 61, 107], resource_id)
2213                .expect("method not found (this should never happen)")
2214        }
2215        ///Calls the contract's `isKnownNeighborRoot` (0x3bfa8d7a) function
2216        pub fn is_known_neighbor_root(
2217            &self,
2218            neighbor_chain_id: ::ethers::core::types::U256,
2219            root: ::ethers::core::types::U256,
2220        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2221            self.0
2222                .method_hash([59, 250, 141, 122], (neighbor_chain_id, root))
2223                .expect("method not found (this should never happen)")
2224        }
2225        ///Calls the contract's `isKnownRoot` (0xa6232a93) function
2226        pub fn is_known_root(
2227            &self,
2228            root: ::ethers::core::types::U256,
2229        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2230            self.0
2231                .method_hash([166, 35, 42, 147], root)
2232                .expect("method not found (this should never happen)")
2233        }
2234        ///Calls the contract's `isSpent` (0x5a129efe) function
2235        pub fn is_spent(
2236            &self,
2237            nullifier_hash: ::ethers::core::types::U256,
2238        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2239            self.0
2240                .method_hash([90, 18, 158, 254], nullifier_hash)
2241                .expect("method not found (this should never happen)")
2242        }
2243        ///Calls the contract's `isSpentArray` (0xea65ba49) function
2244        pub fn is_spent_array(
2245            &self,
2246            nullifier_hashes: ::std::vec::Vec<::ethers::core::types::U256>,
2247        ) -> ::ethers::contract::builders::ContractCall<M, ::std::vec::Vec<bool>>
2248        {
2249            self.0
2250                .method_hash([234, 101, 186, 73], nullifier_hashes)
2251                .expect("method not found (this should never happen)")
2252        }
2253        ///Calls the contract's `isValidRoots` (0xb75e6798) function
2254        pub fn is_valid_roots(
2255            &self,
2256            roots: ::std::vec::Vec<::ethers::core::types::U256>,
2257        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2258            self.0
2259                .method_hash([183, 94, 103, 152], roots)
2260                .expect("method not found (this should never happen)")
2261        }
2262        ///Calls the contract's `lastBalance` (0x8f1c56bd) function
2263        pub fn last_balance(
2264            &self,
2265        ) -> ::ethers::contract::builders::ContractCall<
2266            M,
2267            ::ethers::core::types::U256,
2268        > {
2269            self.0
2270                .method_hash([143, 28, 86, 189], ())
2271                .expect("method not found (this should never happen)")
2272        }
2273        ///Calls the contract's `maxEdges` (0x71523c32) function
2274        pub fn max_edges(
2275            &self,
2276        ) -> ::ethers::contract::builders::ContractCall<M, u8> {
2277            self.0
2278                .method_hash([113, 82, 60, 50], ())
2279                .expect("method not found (this should never happen)")
2280        }
2281        ///Calls the contract's `maximumDepositAmount` (0x78abb49b) function
2282        pub fn maximum_deposit_amount(
2283            &self,
2284        ) -> ::ethers::contract::builders::ContractCall<
2285            M,
2286            ::ethers::core::types::U256,
2287        > {
2288            self.0
2289                .method_hash([120, 171, 180, 155], ())
2290                .expect("method not found (this should never happen)")
2291        }
2292        ///Calls the contract's `minimalWithdrawalAmount` (0x840b2791) function
2293        pub fn minimal_withdrawal_amount(
2294            &self,
2295        ) -> ::ethers::contract::builders::ContractCall<
2296            M,
2297            ::ethers::core::types::U256,
2298        > {
2299            self.0
2300                .method_hash([132, 11, 39, 145], ())
2301                .expect("method not found (this should never happen)")
2302        }
2303        ///Calls the contract's `neighborRoots` (0x43e7119f) function
2304        pub fn neighbor_roots(
2305            &self,
2306            p0: ::ethers::core::types::U256,
2307            p1: u32,
2308        ) -> ::ethers::contract::builders::ContractCall<
2309            M,
2310            ::ethers::core::types::U256,
2311        > {
2312            self.0
2313                .method_hash([67, 231, 17, 159], (p0, p1))
2314                .expect("method not found (this should never happen)")
2315        }
2316        ///Calls the contract's `nullifierHashes` (0x1f79a1e9) function
2317        pub fn nullifier_hashes(
2318            &self,
2319            p0: ::ethers::core::types::U256,
2320        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
2321            self.0
2322                .method_hash([31, 121, 161, 233], p0)
2323                .expect("method not found (this should never happen)")
2324        }
2325        ///Calls the contract's `outerLevels` (0xbfbc0a39) function
2326        pub fn outer_levels(
2327            &self,
2328        ) -> ::ethers::contract::builders::ContractCall<M, u32> {
2329            self.0
2330                .method_hash([191, 188, 10, 57], ())
2331                .expect("method not found (this should never happen)")
2332        }
2333        ///Calls the contract's `parseChainIdFromResourceId` (0xc2230d6e) function
2334        pub fn parse_chain_id_from_resource_id(
2335            &self,
2336            resource_id: [u8; 32],
2337        ) -> ::ethers::contract::builders::ContractCall<M, u64> {
2338            self.0
2339                .method_hash([194, 35, 13, 110], resource_id)
2340                .expect("method not found (this should never happen)")
2341        }
2342        ///Calls the contract's `proposalNonce` (0xcc3c74a1) function
2343        pub fn proposal_nonce(
2344            &self,
2345        ) -> ::ethers::contract::builders::ContractCall<
2346            M,
2347            ::ethers::core::types::U256,
2348        > {
2349            self.0
2350                .method_hash([204, 60, 116, 161], ())
2351                .expect("method not found (this should never happen)")
2352        }
2353        ///Calls the contract's `register` (0xb2bc6e0f) function
2354        pub fn register(
2355            &self,
2356            account: Account,
2357        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
2358            self.0
2359                .method_hash([178, 188, 110, 15], (account,))
2360                .expect("method not found (this should never happen)")
2361        }
2362        ///Calls the contract's `roots` (0xc2b40ae4) function
2363        pub fn roots(
2364            &self,
2365            p0: ::ethers::core::types::U256,
2366        ) -> ::ethers::contract::builders::ContractCall<
2367            M,
2368            (::ethers::core::types::U256, u32),
2369        > {
2370            self.0
2371                .method_hash([194, 180, 10, 228], p0)
2372                .expect("method not found (this should never happen)")
2373        }
2374        ///Calls the contract's `setHandler` (0x72c1ad03) function
2375        pub fn set_handler(
2376            &self,
2377            handler: ::ethers::core::types::Address,
2378            nonce: u32,
2379        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
2380            self.0
2381                .method_hash([114, 193, 173, 3], (handler, nonce))
2382                .expect("method not found (this should never happen)")
2383        }
2384        ///Calls the contract's `updateEdge` (0xc1922f9e) function
2385        pub fn update_edge(
2386            &self,
2387            root: ::ethers::core::types::U256,
2388            leaf_index: u32,
2389            src_resource_id: [u8; 32],
2390        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
2391            self.0
2392                .method_hash(
2393                    [193, 146, 47, 158],
2394                    (root, leaf_index, src_resource_id),
2395                )
2396                .expect("method not found (this should never happen)")
2397        }
2398        ///Gets the contract's `EdgeAddition` event
2399        pub fn edge_addition_filter(
2400            &self,
2401        ) -> ::ethers::contract::builders::Event<
2402            ::std::sync::Arc<M>,
2403            M,
2404            EdgeAdditionFilter,
2405        > {
2406            self.0.event()
2407        }
2408        ///Gets the contract's `EdgeUpdate` event
2409        pub fn edge_update_filter(
2410            &self,
2411        ) -> ::ethers::contract::builders::Event<
2412            ::std::sync::Arc<M>,
2413            M,
2414            EdgeUpdateFilter,
2415        > {
2416            self.0.event()
2417        }
2418        ///Gets the contract's `Insertion` event
2419        pub fn insertion_filter(
2420            &self,
2421        ) -> ::ethers::contract::builders::Event<
2422            ::std::sync::Arc<M>,
2423            M,
2424            InsertionFilter,
2425        > {
2426            self.0.event()
2427        }
2428        ///Gets the contract's `MaxDepositLimitUpdated` event
2429        pub fn max_deposit_limit_updated_filter(
2430            &self,
2431        ) -> ::ethers::contract::builders::Event<
2432            ::std::sync::Arc<M>,
2433            M,
2434            MaxDepositLimitUpdatedFilter,
2435        > {
2436            self.0.event()
2437        }
2438        ///Gets the contract's `MinWithdrawalLimitUpdated` event
2439        pub fn min_withdrawal_limit_updated_filter(
2440            &self,
2441        ) -> ::ethers::contract::builders::Event<
2442            ::std::sync::Arc<M>,
2443            M,
2444            MinWithdrawalLimitUpdatedFilter,
2445        > {
2446            self.0.event()
2447        }
2448        ///Gets the contract's `NewCommitment` event
2449        pub fn new_commitment_filter(
2450            &self,
2451        ) -> ::ethers::contract::builders::Event<
2452            ::std::sync::Arc<M>,
2453            M,
2454            NewCommitmentFilter,
2455        > {
2456            self.0.event()
2457        }
2458        ///Gets the contract's `NewNullifier` event
2459        pub fn new_nullifier_filter(
2460            &self,
2461        ) -> ::ethers::contract::builders::Event<
2462            ::std::sync::Arc<M>,
2463            M,
2464            NewNullifierFilter,
2465        > {
2466            self.0.event()
2467        }
2468        ///Gets the contract's `PublicKey` event
2469        pub fn public_key_filter(
2470            &self,
2471        ) -> ::ethers::contract::builders::Event<
2472            ::std::sync::Arc<M>,
2473            M,
2474            PublicKeyFilter,
2475        > {
2476            self.0.event()
2477        }
2478        ///Gets the contract's `SetHandler` event
2479        pub fn set_handler_filter(
2480            &self,
2481        ) -> ::ethers::contract::builders::Event<
2482            ::std::sync::Arc<M>,
2483            M,
2484            SetHandlerFilter,
2485        > {
2486            self.0.event()
2487        }
2488        /// Returns an `Event` builder for all the events of this contract.
2489        pub fn events(
2490            &self,
2491        ) -> ::ethers::contract::builders::Event<
2492            ::std::sync::Arc<M>,
2493            M,
2494            VAnchorBaseContractEvents,
2495        > {
2496            self.0
2497                .event_with_filter(::core::default::Default::default())
2498        }
2499    }
2500    impl<M: ::ethers::providers::Middleware>
2501        From<::ethers::contract::Contract<M>> for VAnchorBaseContract<M>
2502    {
2503        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
2504            Self::new(contract.address(), contract.client())
2505        }
2506    }
2507    #[derive(
2508        Clone,
2509        ::ethers::contract::EthEvent,
2510        ::ethers::contract::EthDisplay,
2511        serde::Serialize,
2512        serde::Deserialize,
2513        Default,
2514        Debug,
2515        PartialEq,
2516        Eq,
2517        Hash,
2518    )]
2519    #[ethevent(
2520        name = "EdgeAddition",
2521        abi = "EdgeAddition(uint256,uint256,uint256)"
2522    )]
2523    pub struct EdgeAdditionFilter {
2524        pub chain_id: ::ethers::core::types::U256,
2525        pub latest_leaf_index: ::ethers::core::types::U256,
2526        pub merkle_root: ::ethers::core::types::U256,
2527    }
2528    #[derive(
2529        Clone,
2530        ::ethers::contract::EthEvent,
2531        ::ethers::contract::EthDisplay,
2532        serde::Serialize,
2533        serde::Deserialize,
2534        Default,
2535        Debug,
2536        PartialEq,
2537        Eq,
2538        Hash,
2539    )]
2540    #[ethevent(
2541        name = "EdgeUpdate",
2542        abi = "EdgeUpdate(uint256,uint256,uint256)"
2543    )]
2544    pub struct EdgeUpdateFilter {
2545        pub chain_id: ::ethers::core::types::U256,
2546        pub latest_leaf_index: ::ethers::core::types::U256,
2547        pub merkle_root: ::ethers::core::types::U256,
2548    }
2549    #[derive(
2550        Clone,
2551        ::ethers::contract::EthEvent,
2552        ::ethers::contract::EthDisplay,
2553        serde::Serialize,
2554        serde::Deserialize,
2555        Default,
2556        Debug,
2557        PartialEq,
2558        Eq,
2559        Hash,
2560    )]
2561    #[ethevent(
2562        name = "Insertion",
2563        abi = "Insertion(uint256,uint32,uint256,uint256)"
2564    )]
2565    pub struct InsertionFilter {
2566        #[ethevent(indexed)]
2567        pub commitment: ::ethers::core::types::U256,
2568        pub leaf_index: u32,
2569        pub timestamp: ::ethers::core::types::U256,
2570        #[ethevent(indexed)]
2571        pub new_merkle_root: ::ethers::core::types::U256,
2572    }
2573    #[derive(
2574        Clone,
2575        ::ethers::contract::EthEvent,
2576        ::ethers::contract::EthDisplay,
2577        serde::Serialize,
2578        serde::Deserialize,
2579        Default,
2580        Debug,
2581        PartialEq,
2582        Eq,
2583        Hash,
2584    )]
2585    #[ethevent(
2586        name = "MaxDepositLimitUpdated",
2587        abi = "MaxDepositLimitUpdated(uint256,uint32)"
2588    )]
2589    pub struct MaxDepositLimitUpdatedFilter {
2590        pub maximum_deposit_amount: ::ethers::core::types::U256,
2591        pub nonce: u32,
2592    }
2593    #[derive(
2594        Clone,
2595        ::ethers::contract::EthEvent,
2596        ::ethers::contract::EthDisplay,
2597        serde::Serialize,
2598        serde::Deserialize,
2599        Default,
2600        Debug,
2601        PartialEq,
2602        Eq,
2603        Hash,
2604    )]
2605    #[ethevent(
2606        name = "MinWithdrawalLimitUpdated",
2607        abi = "MinWithdrawalLimitUpdated(uint256,uint32)"
2608    )]
2609    pub struct MinWithdrawalLimitUpdatedFilter {
2610        pub minimal_withdrawal_amount: ::ethers::core::types::U256,
2611        pub nonce: u32,
2612    }
2613    #[derive(
2614        Clone,
2615        ::ethers::contract::EthEvent,
2616        ::ethers::contract::EthDisplay,
2617        serde::Serialize,
2618        serde::Deserialize,
2619        Default,
2620        Debug,
2621        PartialEq,
2622        Eq,
2623        Hash,
2624    )]
2625    #[ethevent(
2626        name = "NewCommitment",
2627        abi = "NewCommitment(uint256,uint256,uint256,bytes)"
2628    )]
2629    pub struct NewCommitmentFilter {
2630        pub commitment: ::ethers::core::types::U256,
2631        pub sub_tree_index: ::ethers::core::types::U256,
2632        pub leaf_index: ::ethers::core::types::U256,
2633        pub encrypted_output: ::ethers::core::types::Bytes,
2634    }
2635    #[derive(
2636        Clone,
2637        ::ethers::contract::EthEvent,
2638        ::ethers::contract::EthDisplay,
2639        serde::Serialize,
2640        serde::Deserialize,
2641        Default,
2642        Debug,
2643        PartialEq,
2644        Eq,
2645        Hash,
2646    )]
2647    #[ethevent(name = "NewNullifier", abi = "NewNullifier(uint256)")]
2648    pub struct NewNullifierFilter {
2649        pub nullifier: ::ethers::core::types::U256,
2650    }
2651    #[derive(
2652        Clone,
2653        ::ethers::contract::EthEvent,
2654        ::ethers::contract::EthDisplay,
2655        serde::Serialize,
2656        serde::Deserialize,
2657        Default,
2658        Debug,
2659        PartialEq,
2660        Eq,
2661        Hash,
2662    )]
2663    #[ethevent(name = "PublicKey", abi = "PublicKey(address,bytes)")]
2664    pub struct PublicKeyFilter {
2665        #[ethevent(indexed)]
2666        pub owner: ::ethers::core::types::Address,
2667        pub key: ::ethers::core::types::Bytes,
2668    }
2669    #[derive(
2670        Clone,
2671        ::ethers::contract::EthEvent,
2672        ::ethers::contract::EthDisplay,
2673        serde::Serialize,
2674        serde::Deserialize,
2675        Default,
2676        Debug,
2677        PartialEq,
2678        Eq,
2679        Hash,
2680    )]
2681    #[ethevent(name = "SetHandler", abi = "SetHandler(address,uint32)")]
2682    pub struct SetHandlerFilter {
2683        pub handler: ::ethers::core::types::Address,
2684        pub nonce: u32,
2685    }
2686    ///Container type for all of the contract's events
2687    #[derive(
2688        Clone,
2689        ::ethers::contract::EthAbiType,
2690        serde::Serialize,
2691        serde::Deserialize,
2692        Debug,
2693        PartialEq,
2694        Eq,
2695        Hash,
2696    )]
2697    pub enum VAnchorBaseContractEvents {
2698        EdgeAdditionFilter(EdgeAdditionFilter),
2699        EdgeUpdateFilter(EdgeUpdateFilter),
2700        InsertionFilter(InsertionFilter),
2701        MaxDepositLimitUpdatedFilter(MaxDepositLimitUpdatedFilter),
2702        MinWithdrawalLimitUpdatedFilter(MinWithdrawalLimitUpdatedFilter),
2703        NewCommitmentFilter(NewCommitmentFilter),
2704        NewNullifierFilter(NewNullifierFilter),
2705        PublicKeyFilter(PublicKeyFilter),
2706        SetHandlerFilter(SetHandlerFilter),
2707    }
2708    impl ::ethers::contract::EthLogDecode for VAnchorBaseContractEvents {
2709        fn decode_log(
2710            log: &::ethers::core::abi::RawLog,
2711        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
2712            if let Ok(decoded) = EdgeAdditionFilter::decode_log(log) {
2713                return Ok(VAnchorBaseContractEvents::EdgeAdditionFilter(
2714                    decoded,
2715                ));
2716            }
2717            if let Ok(decoded) = EdgeUpdateFilter::decode_log(log) {
2718                return Ok(VAnchorBaseContractEvents::EdgeUpdateFilter(
2719                    decoded,
2720                ));
2721            }
2722            if let Ok(decoded) = InsertionFilter::decode_log(log) {
2723                return Ok(VAnchorBaseContractEvents::InsertionFilter(decoded));
2724            }
2725            if let Ok(decoded) = MaxDepositLimitUpdatedFilter::decode_log(log) {
2726                return Ok(
2727                    VAnchorBaseContractEvents::MaxDepositLimitUpdatedFilter(
2728                        decoded,
2729                    ),
2730                );
2731            }
2732            if let Ok(decoded) =
2733                MinWithdrawalLimitUpdatedFilter::decode_log(log)
2734            {
2735                return Ok(
2736                    VAnchorBaseContractEvents::MinWithdrawalLimitUpdatedFilter(
2737                        decoded,
2738                    ),
2739                );
2740            }
2741            if let Ok(decoded) = NewCommitmentFilter::decode_log(log) {
2742                return Ok(VAnchorBaseContractEvents::NewCommitmentFilter(
2743                    decoded,
2744                ));
2745            }
2746            if let Ok(decoded) = NewNullifierFilter::decode_log(log) {
2747                return Ok(VAnchorBaseContractEvents::NewNullifierFilter(
2748                    decoded,
2749                ));
2750            }
2751            if let Ok(decoded) = PublicKeyFilter::decode_log(log) {
2752                return Ok(VAnchorBaseContractEvents::PublicKeyFilter(decoded));
2753            }
2754            if let Ok(decoded) = SetHandlerFilter::decode_log(log) {
2755                return Ok(VAnchorBaseContractEvents::SetHandlerFilter(
2756                    decoded,
2757                ));
2758            }
2759            Err(::ethers::core::abi::Error::InvalidData)
2760        }
2761    }
2762    impl ::core::fmt::Display for VAnchorBaseContractEvents {
2763        fn fmt(
2764            &self,
2765            f: &mut ::core::fmt::Formatter<'_>,
2766        ) -> ::core::fmt::Result {
2767            match self {
2768                Self::EdgeAdditionFilter(element) => {
2769                    ::core::fmt::Display::fmt(element, f)
2770                }
2771                Self::EdgeUpdateFilter(element) => {
2772                    ::core::fmt::Display::fmt(element, f)
2773                }
2774                Self::InsertionFilter(element) => {
2775                    ::core::fmt::Display::fmt(element, f)
2776                }
2777                Self::MaxDepositLimitUpdatedFilter(element) => {
2778                    ::core::fmt::Display::fmt(element, f)
2779                }
2780                Self::MinWithdrawalLimitUpdatedFilter(element) => {
2781                    ::core::fmt::Display::fmt(element, f)
2782                }
2783                Self::NewCommitmentFilter(element) => {
2784                    ::core::fmt::Display::fmt(element, f)
2785                }
2786                Self::NewNullifierFilter(element) => {
2787                    ::core::fmt::Display::fmt(element, f)
2788                }
2789                Self::PublicKeyFilter(element) => {
2790                    ::core::fmt::Display::fmt(element, f)
2791                }
2792                Self::SetHandlerFilter(element) => {
2793                    ::core::fmt::Display::fmt(element, f)
2794                }
2795            }
2796        }
2797    }
2798    impl ::core::convert::From<EdgeAdditionFilter> for VAnchorBaseContractEvents {
2799        fn from(value: EdgeAdditionFilter) -> Self {
2800            Self::EdgeAdditionFilter(value)
2801        }
2802    }
2803    impl ::core::convert::From<EdgeUpdateFilter> for VAnchorBaseContractEvents {
2804        fn from(value: EdgeUpdateFilter) -> Self {
2805            Self::EdgeUpdateFilter(value)
2806        }
2807    }
2808    impl ::core::convert::From<InsertionFilter> for VAnchorBaseContractEvents {
2809        fn from(value: InsertionFilter) -> Self {
2810            Self::InsertionFilter(value)
2811        }
2812    }
2813    impl ::core::convert::From<MaxDepositLimitUpdatedFilter>
2814        for VAnchorBaseContractEvents
2815    {
2816        fn from(value: MaxDepositLimitUpdatedFilter) -> Self {
2817            Self::MaxDepositLimitUpdatedFilter(value)
2818        }
2819    }
2820    impl ::core::convert::From<MinWithdrawalLimitUpdatedFilter>
2821        for VAnchorBaseContractEvents
2822    {
2823        fn from(value: MinWithdrawalLimitUpdatedFilter) -> Self {
2824            Self::MinWithdrawalLimitUpdatedFilter(value)
2825        }
2826    }
2827    impl ::core::convert::From<NewCommitmentFilter> for VAnchorBaseContractEvents {
2828        fn from(value: NewCommitmentFilter) -> Self {
2829            Self::NewCommitmentFilter(value)
2830        }
2831    }
2832    impl ::core::convert::From<NewNullifierFilter> for VAnchorBaseContractEvents {
2833        fn from(value: NewNullifierFilter) -> Self {
2834            Self::NewNullifierFilter(value)
2835        }
2836    }
2837    impl ::core::convert::From<PublicKeyFilter> for VAnchorBaseContractEvents {
2838        fn from(value: PublicKeyFilter) -> Self {
2839            Self::PublicKeyFilter(value)
2840        }
2841    }
2842    impl ::core::convert::From<SetHandlerFilter> for VAnchorBaseContractEvents {
2843        fn from(value: SetHandlerFilter) -> Self {
2844            Self::SetHandlerFilter(value)
2845        }
2846    }
2847    ///Container type for all input parameters for the `EVM_CHAIN_ID_TYPE` function with signature `EVM_CHAIN_ID_TYPE()` and selector `0x8b7e8782`
2848    #[derive(
2849        Clone,
2850        ::ethers::contract::EthCall,
2851        ::ethers::contract::EthDisplay,
2852        serde::Serialize,
2853        serde::Deserialize,
2854        Default,
2855        Debug,
2856        PartialEq,
2857        Eq,
2858        Hash,
2859    )]
2860    #[ethcall(name = "EVM_CHAIN_ID_TYPE", abi = "EVM_CHAIN_ID_TYPE()")]
2861    pub struct EvmChainIdTypeCall;
2862    ///Container type for all input parameters for the `FIELD_SIZE` function with signature `FIELD_SIZE()` and selector `0x414a37ba`
2863    #[derive(
2864        Clone,
2865        ::ethers::contract::EthCall,
2866        ::ethers::contract::EthDisplay,
2867        serde::Serialize,
2868        serde::Deserialize,
2869        Default,
2870        Debug,
2871        PartialEq,
2872        Eq,
2873        Hash,
2874    )]
2875    #[ethcall(name = "FIELD_SIZE", abi = "FIELD_SIZE()")]
2876    pub struct FieldSizeCall;
2877    ///Container type for all input parameters for the `MAX_EXT_AMOUNT` function with signature `MAX_EXT_AMOUNT()` and selector `0x7fe24ffe`
2878    #[derive(
2879        Clone,
2880        ::ethers::contract::EthCall,
2881        ::ethers::contract::EthDisplay,
2882        serde::Serialize,
2883        serde::Deserialize,
2884        Default,
2885        Debug,
2886        PartialEq,
2887        Eq,
2888        Hash,
2889    )]
2890    #[ethcall(name = "MAX_EXT_AMOUNT", abi = "MAX_EXT_AMOUNT()")]
2891    pub struct MaxExtAmountCall;
2892    ///Container type for all input parameters for the `MAX_FEE` function with signature `MAX_FEE()` and selector `0xbc063e1a`
2893    #[derive(
2894        Clone,
2895        ::ethers::contract::EthCall,
2896        ::ethers::contract::EthDisplay,
2897        serde::Serialize,
2898        serde::Deserialize,
2899        Default,
2900        Debug,
2901        PartialEq,
2902        Eq,
2903        Hash,
2904    )]
2905    #[ethcall(name = "MAX_FEE", abi = "MAX_FEE()")]
2906    pub struct MaxFeeCall;
2907    ///Container type for all input parameters for the `ROOT_HISTORY_SIZE` function with signature `ROOT_HISTORY_SIZE()` and selector `0xcd87a3b4`
2908    #[derive(
2909        Clone,
2910        ::ethers::contract::EthCall,
2911        ::ethers::contract::EthDisplay,
2912        serde::Serialize,
2913        serde::Deserialize,
2914        Default,
2915        Debug,
2916        PartialEq,
2917        Eq,
2918        Hash,
2919    )]
2920    #[ethcall(name = "ROOT_HISTORY_SIZE", abi = "ROOT_HISTORY_SIZE()")]
2921    pub struct RootHistorySizeCall;
2922    ///Container type for all input parameters for the `ZERO_VALUE` function with signature `ZERO_VALUE()` and selector `0xec732959`
2923    #[derive(
2924        Clone,
2925        ::ethers::contract::EthCall,
2926        ::ethers::contract::EthDisplay,
2927        serde::Serialize,
2928        serde::Deserialize,
2929        Default,
2930        Debug,
2931        PartialEq,
2932        Eq,
2933        Hash,
2934    )]
2935    #[ethcall(name = "ZERO_VALUE", abi = "ZERO_VALUE()")]
2936    pub struct ZeroValueCall;
2937    ///Container type for all input parameters for the `_executeWrapping` function with signature `_executeWrapping(address,address,uint256)` and selector `0x6338bcbc`
2938    #[derive(
2939        Clone,
2940        ::ethers::contract::EthCall,
2941        ::ethers::contract::EthDisplay,
2942        serde::Serialize,
2943        serde::Deserialize,
2944        Default,
2945        Debug,
2946        PartialEq,
2947        Eq,
2948        Hash,
2949    )]
2950    #[ethcall(
2951        name = "_executeWrapping",
2952        abi = "_executeWrapping(address,address,uint256)"
2953    )]
2954    pub struct ExecuteWrappingCall {
2955        pub from_token_address: ::ethers::core::types::Address,
2956        pub to_token_address: ::ethers::core::types::Address,
2957        pub ext_amount: ::ethers::core::types::U256,
2958    }
2959    ///Container type for all input parameters for the `_withdrawAndUnwrap` function with signature `_withdrawAndUnwrap(address,address,address,uint256)` and selector `0x509cd41e`
2960    #[derive(
2961        Clone,
2962        ::ethers::contract::EthCall,
2963        ::ethers::contract::EthDisplay,
2964        serde::Serialize,
2965        serde::Deserialize,
2966        Default,
2967        Debug,
2968        PartialEq,
2969        Eq,
2970        Hash,
2971    )]
2972    #[ethcall(
2973        name = "_withdrawAndUnwrap",
2974        abi = "_withdrawAndUnwrap(address,address,address,uint256)"
2975    )]
2976    pub struct WithdrawAndUnwrapCall {
2977        pub from_token_address: ::ethers::core::types::Address,
2978        pub to_token_address: ::ethers::core::types::Address,
2979        pub recipient: ::ethers::core::types::Address,
2980        pub minus_ext_amount: ::ethers::core::types::U256,
2981    }
2982    ///Container type for all input parameters for the `calculatePublicAmount` function with signature `calculatePublicAmount(int256,uint256)` and selector `0x2570b7b4`
2983    #[derive(
2984        Clone,
2985        ::ethers::contract::EthCall,
2986        ::ethers::contract::EthDisplay,
2987        serde::Serialize,
2988        serde::Deserialize,
2989        Default,
2990        Debug,
2991        PartialEq,
2992        Eq,
2993        Hash,
2994    )]
2995    #[ethcall(
2996        name = "calculatePublicAmount",
2997        abi = "calculatePublicAmount(int256,uint256)"
2998    )]
2999    pub struct CalculatePublicAmountCall {
3000        pub ext_amount: ::ethers::core::types::I256,
3001        pub fee: ::ethers::core::types::U256,
3002    }
3003    ///Container type for all input parameters for the `commitments` function with signature `commitments(uint256)` and selector `0x49ce8997`
3004    #[derive(
3005        Clone,
3006        ::ethers::contract::EthCall,
3007        ::ethers::contract::EthDisplay,
3008        serde::Serialize,
3009        serde::Deserialize,
3010        Default,
3011        Debug,
3012        PartialEq,
3013        Eq,
3014        Hash,
3015    )]
3016    #[ethcall(name = "commitments", abi = "commitments(uint256)")]
3017    pub struct CommitmentsCall(pub ::ethers::core::types::U256);
3018    ///Container type for all input parameters for the `configureMaximumDepositLimit` function with signature `configureMaximumDepositLimit(uint256,uint32)` and selector `0x8c832b13`
3019    #[derive(
3020        Clone,
3021        ::ethers::contract::EthCall,
3022        ::ethers::contract::EthDisplay,
3023        serde::Serialize,
3024        serde::Deserialize,
3025        Default,
3026        Debug,
3027        PartialEq,
3028        Eq,
3029        Hash,
3030    )]
3031    #[ethcall(
3032        name = "configureMaximumDepositLimit",
3033        abi = "configureMaximumDepositLimit(uint256,uint32)"
3034    )]
3035    pub struct ConfigureMaximumDepositLimitCall {
3036        pub maximum_deposit_amount: ::ethers::core::types::U256,
3037        pub nonce: u32,
3038    }
3039    ///Container type for all input parameters for the `configureMinimalWithdrawalLimit` function with signature `configureMinimalWithdrawalLimit(uint256,uint32)` and selector `0x1f7f99f7`
3040    #[derive(
3041        Clone,
3042        ::ethers::contract::EthCall,
3043        ::ethers::contract::EthDisplay,
3044        serde::Serialize,
3045        serde::Deserialize,
3046        Default,
3047        Debug,
3048        PartialEq,
3049        Eq,
3050        Hash,
3051    )]
3052    #[ethcall(
3053        name = "configureMinimalWithdrawalLimit",
3054        abi = "configureMinimalWithdrawalLimit(uint256,uint32)"
3055    )]
3056    pub struct ConfigureMinimalWithdrawalLimitCall {
3057        pub minimal_withdrawal_amount: ::ethers::core::types::U256,
3058        pub nonce: u32,
3059    }
3060    ///Container type for all input parameters for the `currentNeighborRootIndex` function with signature `currentNeighborRootIndex(uint256)` and selector `0x5d2d766c`
3061    #[derive(
3062        Clone,
3063        ::ethers::contract::EthCall,
3064        ::ethers::contract::EthDisplay,
3065        serde::Serialize,
3066        serde::Deserialize,
3067        Default,
3068        Debug,
3069        PartialEq,
3070        Eq,
3071        Hash,
3072    )]
3073    #[ethcall(
3074        name = "currentNeighborRootIndex",
3075        abi = "currentNeighborRootIndex(uint256)"
3076    )]
3077    pub struct CurrentNeighborRootIndexCall(pub ::ethers::core::types::U256);
3078    ///Container type for all input parameters for the `edgeExistsForChain` function with signature `edgeExistsForChain(uint256)` and selector `0xfa731687`
3079    #[derive(
3080        Clone,
3081        ::ethers::contract::EthCall,
3082        ::ethers::contract::EthDisplay,
3083        serde::Serialize,
3084        serde::Deserialize,
3085        Default,
3086        Debug,
3087        PartialEq,
3088        Eq,
3089        Hash,
3090    )]
3091    #[ethcall(name = "edgeExistsForChain", abi = "edgeExistsForChain(uint256)")]
3092    pub struct EdgeExistsForChainCall(pub ::ethers::core::types::U256);
3093    ///Container type for all input parameters for the `edgeIndex` function with signature `edgeIndex(uint256)` and selector `0xe70ea87c`
3094    #[derive(
3095        Clone,
3096        ::ethers::contract::EthCall,
3097        ::ethers::contract::EthDisplay,
3098        serde::Serialize,
3099        serde::Deserialize,
3100        Default,
3101        Debug,
3102        PartialEq,
3103        Eq,
3104        Hash,
3105    )]
3106    #[ethcall(name = "edgeIndex", abi = "edgeIndex(uint256)")]
3107    pub struct EdgeIndexCall(pub ::ethers::core::types::U256);
3108    ///Container type for all input parameters for the `edgeList` function with signature `edgeList(uint256)` and selector `0xdbc916b8`
3109    #[derive(
3110        Clone,
3111        ::ethers::contract::EthCall,
3112        ::ethers::contract::EthDisplay,
3113        serde::Serialize,
3114        serde::Deserialize,
3115        Default,
3116        Debug,
3117        PartialEq,
3118        Eq,
3119        Hash,
3120    )]
3121    #[ethcall(name = "edgeList", abi = "edgeList(uint256)")]
3122    pub struct EdgeListCall(pub ::ethers::core::types::U256);
3123    ///Container type for all input parameters for the `filledSubtrees` function with signature `filledSubtrees(uint256)` and selector `0xf178e47c`
3124    #[derive(
3125        Clone,
3126        ::ethers::contract::EthCall,
3127        ::ethers::contract::EthDisplay,
3128        serde::Serialize,
3129        serde::Deserialize,
3130        Default,
3131        Debug,
3132        PartialEq,
3133        Eq,
3134        Hash,
3135    )]
3136    #[ethcall(name = "filledSubtrees", abi = "filledSubtrees(uint256)")]
3137    pub struct FilledSubtreesCall(pub ::ethers::core::types::U256);
3138    ///Container type for all input parameters for the `getChainId` function with signature `getChainId()` and selector `0x3408e470`
3139    #[derive(
3140        Clone,
3141        ::ethers::contract::EthCall,
3142        ::ethers::contract::EthDisplay,
3143        serde::Serialize,
3144        serde::Deserialize,
3145        Default,
3146        Debug,
3147        PartialEq,
3148        Eq,
3149        Hash,
3150    )]
3151    #[ethcall(name = "getChainId", abi = "getChainId()")]
3152    pub struct GetChainIdCall;
3153    ///Container type for all input parameters for the `getChainIdType` function with signature `getChainIdType()` and selector `0x4c830cbd`
3154    #[derive(
3155        Clone,
3156        ::ethers::contract::EthCall,
3157        ::ethers::contract::EthDisplay,
3158        serde::Serialize,
3159        serde::Deserialize,
3160        Default,
3161        Debug,
3162        PartialEq,
3163        Eq,
3164        Hash,
3165    )]
3166    #[ethcall(name = "getChainIdType", abi = "getChainIdType()")]
3167    pub struct GetChainIdTypeCall;
3168    ///Container type for all input parameters for the `getHasher` function with signature `getHasher()` and selector `0xea495db0`
3169    #[derive(
3170        Clone,
3171        ::ethers::contract::EthCall,
3172        ::ethers::contract::EthDisplay,
3173        serde::Serialize,
3174        serde::Deserialize,
3175        Default,
3176        Debug,
3177        PartialEq,
3178        Eq,
3179        Hash,
3180    )]
3181    #[ethcall(name = "getHasher", abi = "getHasher()")]
3182    pub struct GetHasherCall;
3183    ///Container type for all input parameters for the `getLastRoot` function with signature `getLastRoot()` and selector `0xba70f757`
3184    #[derive(
3185        Clone,
3186        ::ethers::contract::EthCall,
3187        ::ethers::contract::EthDisplay,
3188        serde::Serialize,
3189        serde::Deserialize,
3190        Default,
3191        Debug,
3192        PartialEq,
3193        Eq,
3194        Hash,
3195    )]
3196    #[ethcall(name = "getLastRoot", abi = "getLastRoot()")]
3197    pub struct GetLastRootCall;
3198    ///Container type for all input parameters for the `getLatestNeighborEdges` function with signature `getLatestNeighborEdges()` and selector `0x8c0d34d8`
3199    #[derive(
3200        Clone,
3201        ::ethers::contract::EthCall,
3202        ::ethers::contract::EthDisplay,
3203        serde::Serialize,
3204        serde::Deserialize,
3205        Default,
3206        Debug,
3207        PartialEq,
3208        Eq,
3209        Hash,
3210    )]
3211    #[ethcall(
3212        name = "getLatestNeighborEdges",
3213        abi = "getLatestNeighborEdges()"
3214    )]
3215    pub struct GetLatestNeighborEdgesCall;
3216    ///Container type for all input parameters for the `getLatestNeighborRoots` function with signature `getLatestNeighborRoots()` and selector `0x1e627617`
3217    #[derive(
3218        Clone,
3219        ::ethers::contract::EthCall,
3220        ::ethers::contract::EthDisplay,
3221        serde::Serialize,
3222        serde::Deserialize,
3223        Default,
3224        Debug,
3225        PartialEq,
3226        Eq,
3227        Hash,
3228    )]
3229    #[ethcall(
3230        name = "getLatestNeighborRoots",
3231        abi = "getLatestNeighborRoots()"
3232    )]
3233    pub struct GetLatestNeighborRootsCall;
3234    ///Container type for all input parameters for the `getLevels` function with signature `getLevels()` and selector `0x0c394a60`
3235    #[derive(
3236        Clone,
3237        ::ethers::contract::EthCall,
3238        ::ethers::contract::EthDisplay,
3239        serde::Serialize,
3240        serde::Deserialize,
3241        Default,
3242        Debug,
3243        PartialEq,
3244        Eq,
3245        Hash,
3246    )]
3247    #[ethcall(name = "getLevels", abi = "getLevels()")]
3248    pub struct GetLevelsCall;
3249    ///Container type for all input parameters for the `getNextIndex` function with signature `getNextIndex()` and selector `0x0eb7606f`
3250    #[derive(
3251        Clone,
3252        ::ethers::contract::EthCall,
3253        ::ethers::contract::EthDisplay,
3254        serde::Serialize,
3255        serde::Deserialize,
3256        Default,
3257        Debug,
3258        PartialEq,
3259        Eq,
3260        Hash,
3261    )]
3262    #[ethcall(name = "getNextIndex", abi = "getNextIndex()")]
3263    pub struct GetNextIndexCall;
3264    ///Container type for all input parameters for the `getProposalNonce` function with signature `getProposalNonce()` and selector `0x0b27fb9a`
3265    #[derive(
3266        Clone,
3267        ::ethers::contract::EthCall,
3268        ::ethers::contract::EthDisplay,
3269        serde::Serialize,
3270        serde::Deserialize,
3271        Default,
3272        Debug,
3273        PartialEq,
3274        Eq,
3275        Hash,
3276    )]
3277    #[ethcall(name = "getProposalNonce", abi = "getProposalNonce()")]
3278    pub struct GetProposalNonceCall;
3279    ///Container type for all input parameters for the `getZeroHash` function with signature `getZeroHash(uint32)` and selector `0x305e9eac`
3280    #[derive(
3281        Clone,
3282        ::ethers::contract::EthCall,
3283        ::ethers::contract::EthDisplay,
3284        serde::Serialize,
3285        serde::Deserialize,
3286        Default,
3287        Debug,
3288        PartialEq,
3289        Eq,
3290        Hash,
3291    )]
3292    #[ethcall(name = "getZeroHash", abi = "getZeroHash(uint32)")]
3293    pub struct GetZeroHashCall {
3294        pub index: u32,
3295    }
3296    ///Container type for all input parameters for the `handler` function with signature `handler()` and selector `0xc80916d4`
3297    #[derive(
3298        Clone,
3299        ::ethers::contract::EthCall,
3300        ::ethers::contract::EthDisplay,
3301        serde::Serialize,
3302        serde::Deserialize,
3303        Default,
3304        Debug,
3305        PartialEq,
3306        Eq,
3307        Hash,
3308    )]
3309    #[ethcall(name = "handler", abi = "handler()")]
3310    pub struct HandlerCall;
3311    ///Container type for all input parameters for the `hasEdge` function with signature `hasEdge(uint256)` and selector `0x92156311`
3312    #[derive(
3313        Clone,
3314        ::ethers::contract::EthCall,
3315        ::ethers::contract::EthDisplay,
3316        serde::Serialize,
3317        serde::Deserialize,
3318        Default,
3319        Debug,
3320        PartialEq,
3321        Eq,
3322        Hash,
3323    )]
3324    #[ethcall(name = "hasEdge", abi = "hasEdge(uint256)")]
3325    pub struct HasEdgeCall {
3326        pub chain_id: ::ethers::core::types::U256,
3327    }
3328    ///Container type for all input parameters for the `hashLeftRight` function with signature `hashLeftRight(uint256,uint256)` and selector `0x5bb93995`
3329    #[derive(
3330        Clone,
3331        ::ethers::contract::EthCall,
3332        ::ethers::contract::EthDisplay,
3333        serde::Serialize,
3334        serde::Deserialize,
3335        Default,
3336        Debug,
3337        PartialEq,
3338        Eq,
3339        Hash,
3340    )]
3341    #[ethcall(name = "hashLeftRight", abi = "hashLeftRight(uint256,uint256)")]
3342    pub struct HashLeftRightCall {
3343        pub left: ::ethers::core::types::U256,
3344        pub right: ::ethers::core::types::U256,
3345    }
3346    ///Container type for all input parameters for the `initialize` function with signature `initialize(uint256,uint256)` and selector `0xe4a30116`
3347    #[derive(
3348        Clone,
3349        ::ethers::contract::EthCall,
3350        ::ethers::contract::EthDisplay,
3351        serde::Serialize,
3352        serde::Deserialize,
3353        Default,
3354        Debug,
3355        PartialEq,
3356        Eq,
3357        Hash,
3358    )]
3359    #[ethcall(name = "initialize", abi = "initialize(uint256,uint256)")]
3360    pub struct InitializeCall {
3361        pub minimal_withdrawal_amount: ::ethers::core::types::U256,
3362        pub maximum_deposit_amount: ::ethers::core::types::U256,
3363    }
3364    ///Container type for all input parameters for the `initialized` function with signature `initialized()` and selector `0x158ef93e`
3365    #[derive(
3366        Clone,
3367        ::ethers::contract::EthCall,
3368        ::ethers::contract::EthDisplay,
3369        serde::Serialize,
3370        serde::Deserialize,
3371        Default,
3372        Debug,
3373        PartialEq,
3374        Eq,
3375        Hash,
3376    )]
3377    #[ethcall(name = "initialized", abi = "initialized()")]
3378    pub struct InitializedCall;
3379    ///Container type for all input parameters for the `isCorrectExecutionChain` function with signature `isCorrectExecutionChain(bytes32)` and selector `0x830b2f57`
3380    #[derive(
3381        Clone,
3382        ::ethers::contract::EthCall,
3383        ::ethers::contract::EthDisplay,
3384        serde::Serialize,
3385        serde::Deserialize,
3386        Default,
3387        Debug,
3388        PartialEq,
3389        Eq,
3390        Hash,
3391    )]
3392    #[ethcall(
3393        name = "isCorrectExecutionChain",
3394        abi = "isCorrectExecutionChain(bytes32)"
3395    )]
3396    pub struct IsCorrectExecutionChainCall {
3397        pub resource_id: [u8; 32],
3398    }
3399    ///Container type for all input parameters for the `isCorrectExecutionContext` function with signature `isCorrectExecutionContext(bytes32)` and selector `0xf5fc3d6b`
3400    #[derive(
3401        Clone,
3402        ::ethers::contract::EthCall,
3403        ::ethers::contract::EthDisplay,
3404        serde::Serialize,
3405        serde::Deserialize,
3406        Default,
3407        Debug,
3408        PartialEq,
3409        Eq,
3410        Hash,
3411    )]
3412    #[ethcall(
3413        name = "isCorrectExecutionContext",
3414        abi = "isCorrectExecutionContext(bytes32)"
3415    )]
3416    pub struct IsCorrectExecutionContextCall {
3417        pub resource_id: [u8; 32],
3418    }
3419    ///Container type for all input parameters for the `isKnownNeighborRoot` function with signature `isKnownNeighborRoot(uint256,uint256)` and selector `0x3bfa8d7a`
3420    #[derive(
3421        Clone,
3422        ::ethers::contract::EthCall,
3423        ::ethers::contract::EthDisplay,
3424        serde::Serialize,
3425        serde::Deserialize,
3426        Default,
3427        Debug,
3428        PartialEq,
3429        Eq,
3430        Hash,
3431    )]
3432    #[ethcall(
3433        name = "isKnownNeighborRoot",
3434        abi = "isKnownNeighborRoot(uint256,uint256)"
3435    )]
3436    pub struct IsKnownNeighborRootCall {
3437        pub neighbor_chain_id: ::ethers::core::types::U256,
3438        pub root: ::ethers::core::types::U256,
3439    }
3440    ///Container type for all input parameters for the `isKnownRoot` function with signature `isKnownRoot(uint256)` and selector `0xa6232a93`
3441    #[derive(
3442        Clone,
3443        ::ethers::contract::EthCall,
3444        ::ethers::contract::EthDisplay,
3445        serde::Serialize,
3446        serde::Deserialize,
3447        Default,
3448        Debug,
3449        PartialEq,
3450        Eq,
3451        Hash,
3452    )]
3453    #[ethcall(name = "isKnownRoot", abi = "isKnownRoot(uint256)")]
3454    pub struct IsKnownRootCall {
3455        pub root: ::ethers::core::types::U256,
3456    }
3457    ///Container type for all input parameters for the `isSpent` function with signature `isSpent(uint256)` and selector `0x5a129efe`
3458    #[derive(
3459        Clone,
3460        ::ethers::contract::EthCall,
3461        ::ethers::contract::EthDisplay,
3462        serde::Serialize,
3463        serde::Deserialize,
3464        Default,
3465        Debug,
3466        PartialEq,
3467        Eq,
3468        Hash,
3469    )]
3470    #[ethcall(name = "isSpent", abi = "isSpent(uint256)")]
3471    pub struct IsSpentCall {
3472        pub nullifier_hash: ::ethers::core::types::U256,
3473    }
3474    ///Container type for all input parameters for the `isSpentArray` function with signature `isSpentArray(uint256[])` and selector `0xea65ba49`
3475    #[derive(
3476        Clone,
3477        ::ethers::contract::EthCall,
3478        ::ethers::contract::EthDisplay,
3479        serde::Serialize,
3480        serde::Deserialize,
3481        Default,
3482        Debug,
3483        PartialEq,
3484        Eq,
3485        Hash,
3486    )]
3487    #[ethcall(name = "isSpentArray", abi = "isSpentArray(uint256[])")]
3488    pub struct IsSpentArrayCall {
3489        pub nullifier_hashes: ::std::vec::Vec<::ethers::core::types::U256>,
3490    }
3491    ///Container type for all input parameters for the `isValidRoots` function with signature `isValidRoots(uint256[])` and selector `0xb75e6798`
3492    #[derive(
3493        Clone,
3494        ::ethers::contract::EthCall,
3495        ::ethers::contract::EthDisplay,
3496        serde::Serialize,
3497        serde::Deserialize,
3498        Default,
3499        Debug,
3500        PartialEq,
3501        Eq,
3502        Hash,
3503    )]
3504    #[ethcall(name = "isValidRoots", abi = "isValidRoots(uint256[])")]
3505    pub struct IsValidRootsCall {
3506        pub roots: ::std::vec::Vec<::ethers::core::types::U256>,
3507    }
3508    ///Container type for all input parameters for the `lastBalance` function with signature `lastBalance()` and selector `0x8f1c56bd`
3509    #[derive(
3510        Clone,
3511        ::ethers::contract::EthCall,
3512        ::ethers::contract::EthDisplay,
3513        serde::Serialize,
3514        serde::Deserialize,
3515        Default,
3516        Debug,
3517        PartialEq,
3518        Eq,
3519        Hash,
3520    )]
3521    #[ethcall(name = "lastBalance", abi = "lastBalance()")]
3522    pub struct LastBalanceCall;
3523    ///Container type for all input parameters for the `maxEdges` function with signature `maxEdges()` and selector `0x71523c32`
3524    #[derive(
3525        Clone,
3526        ::ethers::contract::EthCall,
3527        ::ethers::contract::EthDisplay,
3528        serde::Serialize,
3529        serde::Deserialize,
3530        Default,
3531        Debug,
3532        PartialEq,
3533        Eq,
3534        Hash,
3535    )]
3536    #[ethcall(name = "maxEdges", abi = "maxEdges()")]
3537    pub struct MaxEdgesCall;
3538    ///Container type for all input parameters for the `maximumDepositAmount` function with signature `maximumDepositAmount()` and selector `0x78abb49b`
3539    #[derive(
3540        Clone,
3541        ::ethers::contract::EthCall,
3542        ::ethers::contract::EthDisplay,
3543        serde::Serialize,
3544        serde::Deserialize,
3545        Default,
3546        Debug,
3547        PartialEq,
3548        Eq,
3549        Hash,
3550    )]
3551    #[ethcall(name = "maximumDepositAmount", abi = "maximumDepositAmount()")]
3552    pub struct MaximumDepositAmountCall;
3553    ///Container type for all input parameters for the `minimalWithdrawalAmount` function with signature `minimalWithdrawalAmount()` and selector `0x840b2791`
3554    #[derive(
3555        Clone,
3556        ::ethers::contract::EthCall,
3557        ::ethers::contract::EthDisplay,
3558        serde::Serialize,
3559        serde::Deserialize,
3560        Default,
3561        Debug,
3562        PartialEq,
3563        Eq,
3564        Hash,
3565    )]
3566    #[ethcall(
3567        name = "minimalWithdrawalAmount",
3568        abi = "minimalWithdrawalAmount()"
3569    )]
3570    pub struct MinimalWithdrawalAmountCall;
3571    ///Container type for all input parameters for the `neighborRoots` function with signature `neighborRoots(uint256,uint32)` and selector `0x43e7119f`
3572    #[derive(
3573        Clone,
3574        ::ethers::contract::EthCall,
3575        ::ethers::contract::EthDisplay,
3576        serde::Serialize,
3577        serde::Deserialize,
3578        Default,
3579        Debug,
3580        PartialEq,
3581        Eq,
3582        Hash,
3583    )]
3584    #[ethcall(name = "neighborRoots", abi = "neighborRoots(uint256,uint32)")]
3585    pub struct NeighborRootsCall(pub ::ethers::core::types::U256, pub u32);
3586    ///Container type for all input parameters for the `nullifierHashes` function with signature `nullifierHashes(uint256)` and selector `0x1f79a1e9`
3587    #[derive(
3588        Clone,
3589        ::ethers::contract::EthCall,
3590        ::ethers::contract::EthDisplay,
3591        serde::Serialize,
3592        serde::Deserialize,
3593        Default,
3594        Debug,
3595        PartialEq,
3596        Eq,
3597        Hash,
3598    )]
3599    #[ethcall(name = "nullifierHashes", abi = "nullifierHashes(uint256)")]
3600    pub struct NullifierHashesCall(pub ::ethers::core::types::U256);
3601    ///Container type for all input parameters for the `outerLevels` function with signature `outerLevels()` and selector `0xbfbc0a39`
3602    #[derive(
3603        Clone,
3604        ::ethers::contract::EthCall,
3605        ::ethers::contract::EthDisplay,
3606        serde::Serialize,
3607        serde::Deserialize,
3608        Default,
3609        Debug,
3610        PartialEq,
3611        Eq,
3612        Hash,
3613    )]
3614    #[ethcall(name = "outerLevels", abi = "outerLevels()")]
3615    pub struct OuterLevelsCall;
3616    ///Container type for all input parameters for the `parseChainIdFromResourceId` function with signature `parseChainIdFromResourceId(bytes32)` and selector `0xc2230d6e`
3617    #[derive(
3618        Clone,
3619        ::ethers::contract::EthCall,
3620        ::ethers::contract::EthDisplay,
3621        serde::Serialize,
3622        serde::Deserialize,
3623        Default,
3624        Debug,
3625        PartialEq,
3626        Eq,
3627        Hash,
3628    )]
3629    #[ethcall(
3630        name = "parseChainIdFromResourceId",
3631        abi = "parseChainIdFromResourceId(bytes32)"
3632    )]
3633    pub struct ParseChainIdFromResourceIdCall {
3634        pub resource_id: [u8; 32],
3635    }
3636    ///Container type for all input parameters for the `proposalNonce` function with signature `proposalNonce()` and selector `0xcc3c74a1`
3637    #[derive(
3638        Clone,
3639        ::ethers::contract::EthCall,
3640        ::ethers::contract::EthDisplay,
3641        serde::Serialize,
3642        serde::Deserialize,
3643        Default,
3644        Debug,
3645        PartialEq,
3646        Eq,
3647        Hash,
3648    )]
3649    #[ethcall(name = "proposalNonce", abi = "proposalNonce()")]
3650    pub struct ProposalNonceCall;
3651    ///Container type for all input parameters for the `register` function with signature `register((address,bytes))` and selector `0xb2bc6e0f`
3652    #[derive(
3653        Clone,
3654        ::ethers::contract::EthCall,
3655        ::ethers::contract::EthDisplay,
3656        serde::Serialize,
3657        serde::Deserialize,
3658        Default,
3659        Debug,
3660        PartialEq,
3661        Eq,
3662        Hash,
3663    )]
3664    #[ethcall(name = "register", abi = "register((address,bytes))")]
3665    pub struct RegisterCall {
3666        pub account: Account,
3667    }
3668    ///Container type for all input parameters for the `roots` function with signature `roots(uint256)` and selector `0xc2b40ae4`
3669    #[derive(
3670        Clone,
3671        ::ethers::contract::EthCall,
3672        ::ethers::contract::EthDisplay,
3673        serde::Serialize,
3674        serde::Deserialize,
3675        Default,
3676        Debug,
3677        PartialEq,
3678        Eq,
3679        Hash,
3680    )]
3681    #[ethcall(name = "roots", abi = "roots(uint256)")]
3682    pub struct RootsCall(pub ::ethers::core::types::U256);
3683    ///Container type for all input parameters for the `setHandler` function with signature `setHandler(address,uint32)` and selector `0x72c1ad03`
3684    #[derive(
3685        Clone,
3686        ::ethers::contract::EthCall,
3687        ::ethers::contract::EthDisplay,
3688        serde::Serialize,
3689        serde::Deserialize,
3690        Default,
3691        Debug,
3692        PartialEq,
3693        Eq,
3694        Hash,
3695    )]
3696    #[ethcall(name = "setHandler", abi = "setHandler(address,uint32)")]
3697    pub struct SetHandlerCall {
3698        pub handler: ::ethers::core::types::Address,
3699        pub nonce: u32,
3700    }
3701    ///Container type for all input parameters for the `updateEdge` function with signature `updateEdge(uint256,uint32,bytes32)` and selector `0xc1922f9e`
3702    #[derive(
3703        Clone,
3704        ::ethers::contract::EthCall,
3705        ::ethers::contract::EthDisplay,
3706        serde::Serialize,
3707        serde::Deserialize,
3708        Default,
3709        Debug,
3710        PartialEq,
3711        Eq,
3712        Hash,
3713    )]
3714    #[ethcall(name = "updateEdge", abi = "updateEdge(uint256,uint32,bytes32)")]
3715    pub struct UpdateEdgeCall {
3716        pub root: ::ethers::core::types::U256,
3717        pub leaf_index: u32,
3718        pub src_resource_id: [u8; 32],
3719    }
3720    ///Container type for all of the contract's call
3721    #[derive(
3722        Clone,
3723        ::ethers::contract::EthAbiType,
3724        serde::Serialize,
3725        serde::Deserialize,
3726        Debug,
3727        PartialEq,
3728        Eq,
3729        Hash,
3730    )]
3731    pub enum VAnchorBaseContractCalls {
3732        EvmChainIdType(EvmChainIdTypeCall),
3733        FieldSize(FieldSizeCall),
3734        MaxExtAmount(MaxExtAmountCall),
3735        MaxFee(MaxFeeCall),
3736        RootHistorySize(RootHistorySizeCall),
3737        ZeroValue(ZeroValueCall),
3738        ExecuteWrapping(ExecuteWrappingCall),
3739        WithdrawAndUnwrap(WithdrawAndUnwrapCall),
3740        CalculatePublicAmount(CalculatePublicAmountCall),
3741        Commitments(CommitmentsCall),
3742        ConfigureMaximumDepositLimit(ConfigureMaximumDepositLimitCall),
3743        ConfigureMinimalWithdrawalLimit(ConfigureMinimalWithdrawalLimitCall),
3744        CurrentNeighborRootIndex(CurrentNeighborRootIndexCall),
3745        EdgeExistsForChain(EdgeExistsForChainCall),
3746        EdgeIndex(EdgeIndexCall),
3747        EdgeList(EdgeListCall),
3748        FilledSubtrees(FilledSubtreesCall),
3749        GetChainId(GetChainIdCall),
3750        GetChainIdType(GetChainIdTypeCall),
3751        GetHasher(GetHasherCall),
3752        GetLastRoot(GetLastRootCall),
3753        GetLatestNeighborEdges(GetLatestNeighborEdgesCall),
3754        GetLatestNeighborRoots(GetLatestNeighborRootsCall),
3755        GetLevels(GetLevelsCall),
3756        GetNextIndex(GetNextIndexCall),
3757        GetProposalNonce(GetProposalNonceCall),
3758        GetZeroHash(GetZeroHashCall),
3759        Handler(HandlerCall),
3760        HasEdge(HasEdgeCall),
3761        HashLeftRight(HashLeftRightCall),
3762        Initialize(InitializeCall),
3763        Initialized(InitializedCall),
3764        IsCorrectExecutionChain(IsCorrectExecutionChainCall),
3765        IsCorrectExecutionContext(IsCorrectExecutionContextCall),
3766        IsKnownNeighborRoot(IsKnownNeighborRootCall),
3767        IsKnownRoot(IsKnownRootCall),
3768        IsSpent(IsSpentCall),
3769        IsSpentArray(IsSpentArrayCall),
3770        IsValidRoots(IsValidRootsCall),
3771        LastBalance(LastBalanceCall),
3772        MaxEdges(MaxEdgesCall),
3773        MaximumDepositAmount(MaximumDepositAmountCall),
3774        MinimalWithdrawalAmount(MinimalWithdrawalAmountCall),
3775        NeighborRoots(NeighborRootsCall),
3776        NullifierHashes(NullifierHashesCall),
3777        OuterLevels(OuterLevelsCall),
3778        ParseChainIdFromResourceId(ParseChainIdFromResourceIdCall),
3779        ProposalNonce(ProposalNonceCall),
3780        Register(RegisterCall),
3781        Roots(RootsCall),
3782        SetHandler(SetHandlerCall),
3783        UpdateEdge(UpdateEdgeCall),
3784    }
3785    impl ::ethers::core::abi::AbiDecode for VAnchorBaseContractCalls {
3786        fn decode(
3787            data: impl AsRef<[u8]>,
3788        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError>
3789        {
3790            let data = data.as_ref();
3791            if let Ok(decoded) =
3792                <EvmChainIdTypeCall as ::ethers::core::abi::AbiDecode>::decode(
3793                    data,
3794                )
3795            {
3796                return Ok(Self::EvmChainIdType(decoded));
3797            }
3798            if let Ok(decoded) =
3799                <FieldSizeCall as ::ethers::core::abi::AbiDecode>::decode(data)
3800            {
3801                return Ok(Self::FieldSize(decoded));
3802            }
3803            if let Ok(decoded) =
3804                <MaxExtAmountCall as ::ethers::core::abi::AbiDecode>::decode(
3805                    data,
3806                )
3807            {
3808                return Ok(Self::MaxExtAmount(decoded));
3809            }
3810            if let Ok(decoded) =
3811                <MaxFeeCall as ::ethers::core::abi::AbiDecode>::decode(data)
3812            {
3813                return Ok(Self::MaxFee(decoded));
3814            }
3815            if let Ok(decoded) =
3816                <RootHistorySizeCall as ::ethers::core::abi::AbiDecode>::decode(
3817                    data,
3818                )
3819            {
3820                return Ok(Self::RootHistorySize(decoded));
3821            }
3822            if let Ok(decoded) =
3823                <ZeroValueCall as ::ethers::core::abi::AbiDecode>::decode(data)
3824            {
3825                return Ok(Self::ZeroValue(decoded));
3826            }
3827            if let Ok(decoded) =
3828                <ExecuteWrappingCall as ::ethers::core::abi::AbiDecode>::decode(
3829                    data,
3830                )
3831            {
3832                return Ok(Self::ExecuteWrapping(decoded));
3833            }
3834            if let Ok(decoded) = <WithdrawAndUnwrapCall as ::ethers::core::abi::AbiDecode>::decode(
3835                data,
3836            ) {
3837                return Ok(Self::WithdrawAndUnwrap(decoded));
3838            }
3839            if let Ok(decoded) = <CalculatePublicAmountCall as ::ethers::core::abi::AbiDecode>::decode(
3840                data,
3841            ) {
3842                return Ok(Self::CalculatePublicAmount(decoded));
3843            }
3844            if let Ok(decoded) =
3845                <CommitmentsCall as ::ethers::core::abi::AbiDecode>::decode(
3846                    data,
3847                )
3848            {
3849                return Ok(Self::Commitments(decoded));
3850            }
3851            if let Ok(decoded) = <ConfigureMaximumDepositLimitCall as ::ethers::core::abi::AbiDecode>::decode(
3852                data,
3853            ) {
3854                return Ok(Self::ConfigureMaximumDepositLimit(decoded));
3855            }
3856            if let Ok(decoded) = <ConfigureMinimalWithdrawalLimitCall as ::ethers::core::abi::AbiDecode>::decode(
3857                data,
3858            ) {
3859                return Ok(Self::ConfigureMinimalWithdrawalLimit(decoded));
3860            }
3861            if let Ok(decoded) = <CurrentNeighborRootIndexCall as ::ethers::core::abi::AbiDecode>::decode(
3862                data,
3863            ) {
3864                return Ok(Self::CurrentNeighborRootIndex(decoded));
3865            }
3866            if let Ok(decoded) = <EdgeExistsForChainCall as ::ethers::core::abi::AbiDecode>::decode(
3867                data,
3868            ) {
3869                return Ok(Self::EdgeExistsForChain(decoded));
3870            }
3871            if let Ok(decoded) =
3872                <EdgeIndexCall as ::ethers::core::abi::AbiDecode>::decode(data)
3873            {
3874                return Ok(Self::EdgeIndex(decoded));
3875            }
3876            if let Ok(decoded) =
3877                <EdgeListCall as ::ethers::core::abi::AbiDecode>::decode(data)
3878            {
3879                return Ok(Self::EdgeList(decoded));
3880            }
3881            if let Ok(decoded) =
3882                <FilledSubtreesCall as ::ethers::core::abi::AbiDecode>::decode(
3883                    data,
3884                )
3885            {
3886                return Ok(Self::FilledSubtrees(decoded));
3887            }
3888            if let Ok(decoded) =
3889                <GetChainIdCall as ::ethers::core::abi::AbiDecode>::decode(data)
3890            {
3891                return Ok(Self::GetChainId(decoded));
3892            }
3893            if let Ok(decoded) =
3894                <GetChainIdTypeCall as ::ethers::core::abi::AbiDecode>::decode(
3895                    data,
3896                )
3897            {
3898                return Ok(Self::GetChainIdType(decoded));
3899            }
3900            if let Ok(decoded) =
3901                <GetHasherCall as ::ethers::core::abi::AbiDecode>::decode(data)
3902            {
3903                return Ok(Self::GetHasher(decoded));
3904            }
3905            if let Ok(decoded) =
3906                <GetLastRootCall as ::ethers::core::abi::AbiDecode>::decode(
3907                    data,
3908                )
3909            {
3910                return Ok(Self::GetLastRoot(decoded));
3911            }
3912            if let Ok(decoded) = <GetLatestNeighborEdgesCall as ::ethers::core::abi::AbiDecode>::decode(
3913                data,
3914            ) {
3915                return Ok(Self::GetLatestNeighborEdges(decoded));
3916            }
3917            if let Ok(decoded) = <GetLatestNeighborRootsCall as ::ethers::core::abi::AbiDecode>::decode(
3918                data,
3919            ) {
3920                return Ok(Self::GetLatestNeighborRoots(decoded));
3921            }
3922            if let Ok(decoded) =
3923                <GetLevelsCall as ::ethers::core::abi::AbiDecode>::decode(data)
3924            {
3925                return Ok(Self::GetLevels(decoded));
3926            }
3927            if let Ok(decoded) =
3928                <GetNextIndexCall as ::ethers::core::abi::AbiDecode>::decode(
3929                    data,
3930                )
3931            {
3932                return Ok(Self::GetNextIndex(decoded));
3933            }
3934            if let Ok(decoded) =
3935                <GetProposalNonceCall as ::ethers::core::abi::AbiDecode>::decode(
3936                    data,
3937                )
3938            {
3939                return Ok(Self::GetProposalNonce(decoded));
3940            }
3941            if let Ok(decoded) =
3942                <GetZeroHashCall as ::ethers::core::abi::AbiDecode>::decode(
3943                    data,
3944                )
3945            {
3946                return Ok(Self::GetZeroHash(decoded));
3947            }
3948            if let Ok(decoded) =
3949                <HandlerCall as ::ethers::core::abi::AbiDecode>::decode(data)
3950            {
3951                return Ok(Self::Handler(decoded));
3952            }
3953            if let Ok(decoded) =
3954                <HasEdgeCall as ::ethers::core::abi::AbiDecode>::decode(data)
3955            {
3956                return Ok(Self::HasEdge(decoded));
3957            }
3958            if let Ok(decoded) =
3959                <HashLeftRightCall as ::ethers::core::abi::AbiDecode>::decode(
3960                    data,
3961                )
3962            {
3963                return Ok(Self::HashLeftRight(decoded));
3964            }
3965            if let Ok(decoded) =
3966                <InitializeCall as ::ethers::core::abi::AbiDecode>::decode(data)
3967            {
3968                return Ok(Self::Initialize(decoded));
3969            }
3970            if let Ok(decoded) =
3971                <InitializedCall as ::ethers::core::abi::AbiDecode>::decode(
3972                    data,
3973                )
3974            {
3975                return Ok(Self::Initialized(decoded));
3976            }
3977            if let Ok(decoded) = <IsCorrectExecutionChainCall as ::ethers::core::abi::AbiDecode>::decode(
3978                data,
3979            ) {
3980                return Ok(Self::IsCorrectExecutionChain(decoded));
3981            }
3982            if let Ok(decoded) = <IsCorrectExecutionContextCall as ::ethers::core::abi::AbiDecode>::decode(
3983                data,
3984            ) {
3985                return Ok(Self::IsCorrectExecutionContext(decoded));
3986            }
3987            if let Ok(decoded) = <IsKnownNeighborRootCall as ::ethers::core::abi::AbiDecode>::decode(
3988                data,
3989            ) {
3990                return Ok(Self::IsKnownNeighborRoot(decoded));
3991            }
3992            if let Ok(decoded) =
3993                <IsKnownRootCall as ::ethers::core::abi::AbiDecode>::decode(
3994                    data,
3995                )
3996            {
3997                return Ok(Self::IsKnownRoot(decoded));
3998            }
3999            if let Ok(decoded) =
4000                <IsSpentCall as ::ethers::core::abi::AbiDecode>::decode(data)
4001            {
4002                return Ok(Self::IsSpent(decoded));
4003            }
4004            if let Ok(decoded) =
4005                <IsSpentArrayCall as ::ethers::core::abi::AbiDecode>::decode(
4006                    data,
4007                )
4008            {
4009                return Ok(Self::IsSpentArray(decoded));
4010            }
4011            if let Ok(decoded) =
4012                <IsValidRootsCall as ::ethers::core::abi::AbiDecode>::decode(
4013                    data,
4014                )
4015            {
4016                return Ok(Self::IsValidRoots(decoded));
4017            }
4018            if let Ok(decoded) =
4019                <LastBalanceCall as ::ethers::core::abi::AbiDecode>::decode(
4020                    data,
4021                )
4022            {
4023                return Ok(Self::LastBalance(decoded));
4024            }
4025            if let Ok(decoded) =
4026                <MaxEdgesCall as ::ethers::core::abi::AbiDecode>::decode(data)
4027            {
4028                return Ok(Self::MaxEdges(decoded));
4029            }
4030            if let Ok(decoded) = <MaximumDepositAmountCall as ::ethers::core::abi::AbiDecode>::decode(
4031                data,
4032            ) {
4033                return Ok(Self::MaximumDepositAmount(decoded));
4034            }
4035            if let Ok(decoded) = <MinimalWithdrawalAmountCall as ::ethers::core::abi::AbiDecode>::decode(
4036                data,
4037            ) {
4038                return Ok(Self::MinimalWithdrawalAmount(decoded));
4039            }
4040            if let Ok(decoded) =
4041                <NeighborRootsCall as ::ethers::core::abi::AbiDecode>::decode(
4042                    data,
4043                )
4044            {
4045                return Ok(Self::NeighborRoots(decoded));
4046            }
4047            if let Ok(decoded) =
4048                <NullifierHashesCall as ::ethers::core::abi::AbiDecode>::decode(
4049                    data,
4050                )
4051            {
4052                return Ok(Self::NullifierHashes(decoded));
4053            }
4054            if let Ok(decoded) =
4055                <OuterLevelsCall as ::ethers::core::abi::AbiDecode>::decode(
4056                    data,
4057                )
4058            {
4059                return Ok(Self::OuterLevels(decoded));
4060            }
4061            if let Ok(decoded) = <ParseChainIdFromResourceIdCall as ::ethers::core::abi::AbiDecode>::decode(
4062                data,
4063            ) {
4064                return Ok(Self::ParseChainIdFromResourceId(decoded));
4065            }
4066            if let Ok(decoded) =
4067                <ProposalNonceCall as ::ethers::core::abi::AbiDecode>::decode(
4068                    data,
4069                )
4070            {
4071                return Ok(Self::ProposalNonce(decoded));
4072            }
4073            if let Ok(decoded) =
4074                <RegisterCall as ::ethers::core::abi::AbiDecode>::decode(data)
4075            {
4076                return Ok(Self::Register(decoded));
4077            }
4078            if let Ok(decoded) =
4079                <RootsCall as ::ethers::core::abi::AbiDecode>::decode(data)
4080            {
4081                return Ok(Self::Roots(decoded));
4082            }
4083            if let Ok(decoded) =
4084                <SetHandlerCall as ::ethers::core::abi::AbiDecode>::decode(data)
4085            {
4086                return Ok(Self::SetHandler(decoded));
4087            }
4088            if let Ok(decoded) =
4089                <UpdateEdgeCall as ::ethers::core::abi::AbiDecode>::decode(data)
4090            {
4091                return Ok(Self::UpdateEdge(decoded));
4092            }
4093            Err(::ethers::core::abi::Error::InvalidData.into())
4094        }
4095    }
4096    impl ::ethers::core::abi::AbiEncode for VAnchorBaseContractCalls {
4097        fn encode(self) -> Vec<u8> {
4098            match self {
4099                Self::EvmChainIdType(element) => {
4100                    ::ethers::core::abi::AbiEncode::encode(element)
4101                }
4102                Self::FieldSize(element) => {
4103                    ::ethers::core::abi::AbiEncode::encode(element)
4104                }
4105                Self::MaxExtAmount(element) => {
4106                    ::ethers::core::abi::AbiEncode::encode(element)
4107                }
4108                Self::MaxFee(element) => {
4109                    ::ethers::core::abi::AbiEncode::encode(element)
4110                }
4111                Self::RootHistorySize(element) => {
4112                    ::ethers::core::abi::AbiEncode::encode(element)
4113                }
4114                Self::ZeroValue(element) => {
4115                    ::ethers::core::abi::AbiEncode::encode(element)
4116                }
4117                Self::ExecuteWrapping(element) => {
4118                    ::ethers::core::abi::AbiEncode::encode(element)
4119                }
4120                Self::WithdrawAndUnwrap(element) => {
4121                    ::ethers::core::abi::AbiEncode::encode(element)
4122                }
4123                Self::CalculatePublicAmount(element) => {
4124                    ::ethers::core::abi::AbiEncode::encode(element)
4125                }
4126                Self::Commitments(element) => {
4127                    ::ethers::core::abi::AbiEncode::encode(element)
4128                }
4129                Self::ConfigureMaximumDepositLimit(element) => {
4130                    ::ethers::core::abi::AbiEncode::encode(element)
4131                }
4132                Self::ConfigureMinimalWithdrawalLimit(element) => {
4133                    ::ethers::core::abi::AbiEncode::encode(element)
4134                }
4135                Self::CurrentNeighborRootIndex(element) => {
4136                    ::ethers::core::abi::AbiEncode::encode(element)
4137                }
4138                Self::EdgeExistsForChain(element) => {
4139                    ::ethers::core::abi::AbiEncode::encode(element)
4140                }
4141                Self::EdgeIndex(element) => {
4142                    ::ethers::core::abi::AbiEncode::encode(element)
4143                }
4144                Self::EdgeList(element) => {
4145                    ::ethers::core::abi::AbiEncode::encode(element)
4146                }
4147                Self::FilledSubtrees(element) => {
4148                    ::ethers::core::abi::AbiEncode::encode(element)
4149                }
4150                Self::GetChainId(element) => {
4151                    ::ethers::core::abi::AbiEncode::encode(element)
4152                }
4153                Self::GetChainIdType(element) => {
4154                    ::ethers::core::abi::AbiEncode::encode(element)
4155                }
4156                Self::GetHasher(element) => {
4157                    ::ethers::core::abi::AbiEncode::encode(element)
4158                }
4159                Self::GetLastRoot(element) => {
4160                    ::ethers::core::abi::AbiEncode::encode(element)
4161                }
4162                Self::GetLatestNeighborEdges(element) => {
4163                    ::ethers::core::abi::AbiEncode::encode(element)
4164                }
4165                Self::GetLatestNeighborRoots(element) => {
4166                    ::ethers::core::abi::AbiEncode::encode(element)
4167                }
4168                Self::GetLevels(element) => {
4169                    ::ethers::core::abi::AbiEncode::encode(element)
4170                }
4171                Self::GetNextIndex(element) => {
4172                    ::ethers::core::abi::AbiEncode::encode(element)
4173                }
4174                Self::GetProposalNonce(element) => {
4175                    ::ethers::core::abi::AbiEncode::encode(element)
4176                }
4177                Self::GetZeroHash(element) => {
4178                    ::ethers::core::abi::AbiEncode::encode(element)
4179                }
4180                Self::Handler(element) => {
4181                    ::ethers::core::abi::AbiEncode::encode(element)
4182                }
4183                Self::HasEdge(element) => {
4184                    ::ethers::core::abi::AbiEncode::encode(element)
4185                }
4186                Self::HashLeftRight(element) => {
4187                    ::ethers::core::abi::AbiEncode::encode(element)
4188                }
4189                Self::Initialize(element) => {
4190                    ::ethers::core::abi::AbiEncode::encode(element)
4191                }
4192                Self::Initialized(element) => {
4193                    ::ethers::core::abi::AbiEncode::encode(element)
4194                }
4195                Self::IsCorrectExecutionChain(element) => {
4196                    ::ethers::core::abi::AbiEncode::encode(element)
4197                }
4198                Self::IsCorrectExecutionContext(element) => {
4199                    ::ethers::core::abi::AbiEncode::encode(element)
4200                }
4201                Self::IsKnownNeighborRoot(element) => {
4202                    ::ethers::core::abi::AbiEncode::encode(element)
4203                }
4204                Self::IsKnownRoot(element) => {
4205                    ::ethers::core::abi::AbiEncode::encode(element)
4206                }
4207                Self::IsSpent(element) => {
4208                    ::ethers::core::abi::AbiEncode::encode(element)
4209                }
4210                Self::IsSpentArray(element) => {
4211                    ::ethers::core::abi::AbiEncode::encode(element)
4212                }
4213                Self::IsValidRoots(element) => {
4214                    ::ethers::core::abi::AbiEncode::encode(element)
4215                }
4216                Self::LastBalance(element) => {
4217                    ::ethers::core::abi::AbiEncode::encode(element)
4218                }
4219                Self::MaxEdges(element) => {
4220                    ::ethers::core::abi::AbiEncode::encode(element)
4221                }
4222                Self::MaximumDepositAmount(element) => {
4223                    ::ethers::core::abi::AbiEncode::encode(element)
4224                }
4225                Self::MinimalWithdrawalAmount(element) => {
4226                    ::ethers::core::abi::AbiEncode::encode(element)
4227                }
4228                Self::NeighborRoots(element) => {
4229                    ::ethers::core::abi::AbiEncode::encode(element)
4230                }
4231                Self::NullifierHashes(element) => {
4232                    ::ethers::core::abi::AbiEncode::encode(element)
4233                }
4234                Self::OuterLevels(element) => {
4235                    ::ethers::core::abi::AbiEncode::encode(element)
4236                }
4237                Self::ParseChainIdFromResourceId(element) => {
4238                    ::ethers::core::abi::AbiEncode::encode(element)
4239                }
4240                Self::ProposalNonce(element) => {
4241                    ::ethers::core::abi::AbiEncode::encode(element)
4242                }
4243                Self::Register(element) => {
4244                    ::ethers::core::abi::AbiEncode::encode(element)
4245                }
4246                Self::Roots(element) => {
4247                    ::ethers::core::abi::AbiEncode::encode(element)
4248                }
4249                Self::SetHandler(element) => {
4250                    ::ethers::core::abi::AbiEncode::encode(element)
4251                }
4252                Self::UpdateEdge(element) => {
4253                    ::ethers::core::abi::AbiEncode::encode(element)
4254                }
4255            }
4256        }
4257    }
4258    impl ::core::fmt::Display for VAnchorBaseContractCalls {
4259        fn fmt(
4260            &self,
4261            f: &mut ::core::fmt::Formatter<'_>,
4262        ) -> ::core::fmt::Result {
4263            match self {
4264                Self::EvmChainIdType(element) => {
4265                    ::core::fmt::Display::fmt(element, f)
4266                }
4267                Self::FieldSize(element) => {
4268                    ::core::fmt::Display::fmt(element, f)
4269                }
4270                Self::MaxExtAmount(element) => {
4271                    ::core::fmt::Display::fmt(element, f)
4272                }
4273                Self::MaxFee(element) => ::core::fmt::Display::fmt(element, f),
4274                Self::RootHistorySize(element) => {
4275                    ::core::fmt::Display::fmt(element, f)
4276                }
4277                Self::ZeroValue(element) => {
4278                    ::core::fmt::Display::fmt(element, f)
4279                }
4280                Self::ExecuteWrapping(element) => {
4281                    ::core::fmt::Display::fmt(element, f)
4282                }
4283                Self::WithdrawAndUnwrap(element) => {
4284                    ::core::fmt::Display::fmt(element, f)
4285                }
4286                Self::CalculatePublicAmount(element) => {
4287                    ::core::fmt::Display::fmt(element, f)
4288                }
4289                Self::Commitments(element) => {
4290                    ::core::fmt::Display::fmt(element, f)
4291                }
4292                Self::ConfigureMaximumDepositLimit(element) => {
4293                    ::core::fmt::Display::fmt(element, f)
4294                }
4295                Self::ConfigureMinimalWithdrawalLimit(element) => {
4296                    ::core::fmt::Display::fmt(element, f)
4297                }
4298                Self::CurrentNeighborRootIndex(element) => {
4299                    ::core::fmt::Display::fmt(element, f)
4300                }
4301                Self::EdgeExistsForChain(element) => {
4302                    ::core::fmt::Display::fmt(element, f)
4303                }
4304                Self::EdgeIndex(element) => {
4305                    ::core::fmt::Display::fmt(element, f)
4306                }
4307                Self::EdgeList(element) => {
4308                    ::core::fmt::Display::fmt(element, f)
4309                }
4310                Self::FilledSubtrees(element) => {
4311                    ::core::fmt::Display::fmt(element, f)
4312                }
4313                Self::GetChainId(element) => {
4314                    ::core::fmt::Display::fmt(element, f)
4315                }
4316                Self::GetChainIdType(element) => {
4317                    ::core::fmt::Display::fmt(element, f)
4318                }
4319                Self::GetHasher(element) => {
4320                    ::core::fmt::Display::fmt(element, f)
4321                }
4322                Self::GetLastRoot(element) => {
4323                    ::core::fmt::Display::fmt(element, f)
4324                }
4325                Self::GetLatestNeighborEdges(element) => {
4326                    ::core::fmt::Display::fmt(element, f)
4327                }
4328                Self::GetLatestNeighborRoots(element) => {
4329                    ::core::fmt::Display::fmt(element, f)
4330                }
4331                Self::GetLevels(element) => {
4332                    ::core::fmt::Display::fmt(element, f)
4333                }
4334                Self::GetNextIndex(element) => {
4335                    ::core::fmt::Display::fmt(element, f)
4336                }
4337                Self::GetProposalNonce(element) => {
4338                    ::core::fmt::Display::fmt(element, f)
4339                }
4340                Self::GetZeroHash(element) => {
4341                    ::core::fmt::Display::fmt(element, f)
4342                }
4343                Self::Handler(element) => ::core::fmt::Display::fmt(element, f),
4344                Self::HasEdge(element) => ::core::fmt::Display::fmt(element, f),
4345                Self::HashLeftRight(element) => {
4346                    ::core::fmt::Display::fmt(element, f)
4347                }
4348                Self::Initialize(element) => {
4349                    ::core::fmt::Display::fmt(element, f)
4350                }
4351                Self::Initialized(element) => {
4352                    ::core::fmt::Display::fmt(element, f)
4353                }
4354                Self::IsCorrectExecutionChain(element) => {
4355                    ::core::fmt::Display::fmt(element, f)
4356                }
4357                Self::IsCorrectExecutionContext(element) => {
4358                    ::core::fmt::Display::fmt(element, f)
4359                }
4360                Self::IsKnownNeighborRoot(element) => {
4361                    ::core::fmt::Display::fmt(element, f)
4362                }
4363                Self::IsKnownRoot(element) => {
4364                    ::core::fmt::Display::fmt(element, f)
4365                }
4366                Self::IsSpent(element) => ::core::fmt::Display::fmt(element, f),
4367                Self::IsSpentArray(element) => {
4368                    ::core::fmt::Display::fmt(element, f)
4369                }
4370                Self::IsValidRoots(element) => {
4371                    ::core::fmt::Display::fmt(element, f)
4372                }
4373                Self::LastBalance(element) => {
4374                    ::core::fmt::Display::fmt(element, f)
4375                }
4376                Self::MaxEdges(element) => {
4377                    ::core::fmt::Display::fmt(element, f)
4378                }
4379                Self::MaximumDepositAmount(element) => {
4380                    ::core::fmt::Display::fmt(element, f)
4381                }
4382                Self::MinimalWithdrawalAmount(element) => {
4383                    ::core::fmt::Display::fmt(element, f)
4384                }
4385                Self::NeighborRoots(element) => {
4386                    ::core::fmt::Display::fmt(element, f)
4387                }
4388                Self::NullifierHashes(element) => {
4389                    ::core::fmt::Display::fmt(element, f)
4390                }
4391                Self::OuterLevels(element) => {
4392                    ::core::fmt::Display::fmt(element, f)
4393                }
4394                Self::ParseChainIdFromResourceId(element) => {
4395                    ::core::fmt::Display::fmt(element, f)
4396                }
4397                Self::ProposalNonce(element) => {
4398                    ::core::fmt::Display::fmt(element, f)
4399                }
4400                Self::Register(element) => {
4401                    ::core::fmt::Display::fmt(element, f)
4402                }
4403                Self::Roots(element) => ::core::fmt::Display::fmt(element, f),
4404                Self::SetHandler(element) => {
4405                    ::core::fmt::Display::fmt(element, f)
4406                }
4407                Self::UpdateEdge(element) => {
4408                    ::core::fmt::Display::fmt(element, f)
4409                }
4410            }
4411        }
4412    }
4413    impl ::core::convert::From<EvmChainIdTypeCall> for VAnchorBaseContractCalls {
4414        fn from(value: EvmChainIdTypeCall) -> Self {
4415            Self::EvmChainIdType(value)
4416        }
4417    }
4418    impl ::core::convert::From<FieldSizeCall> for VAnchorBaseContractCalls {
4419        fn from(value: FieldSizeCall) -> Self {
4420            Self::FieldSize(value)
4421        }
4422    }
4423    impl ::core::convert::From<MaxExtAmountCall> for VAnchorBaseContractCalls {
4424        fn from(value: MaxExtAmountCall) -> Self {
4425            Self::MaxExtAmount(value)
4426        }
4427    }
4428    impl ::core::convert::From<MaxFeeCall> for VAnchorBaseContractCalls {
4429        fn from(value: MaxFeeCall) -> Self {
4430            Self::MaxFee(value)
4431        }
4432    }
4433    impl ::core::convert::From<RootHistorySizeCall> for VAnchorBaseContractCalls {
4434        fn from(value: RootHistorySizeCall) -> Self {
4435            Self::RootHistorySize(value)
4436        }
4437    }
4438    impl ::core::convert::From<ZeroValueCall> for VAnchorBaseContractCalls {
4439        fn from(value: ZeroValueCall) -> Self {
4440            Self::ZeroValue(value)
4441        }
4442    }
4443    impl ::core::convert::From<ExecuteWrappingCall> for VAnchorBaseContractCalls {
4444        fn from(value: ExecuteWrappingCall) -> Self {
4445            Self::ExecuteWrapping(value)
4446        }
4447    }
4448    impl ::core::convert::From<WithdrawAndUnwrapCall> for VAnchorBaseContractCalls {
4449        fn from(value: WithdrawAndUnwrapCall) -> Self {
4450            Self::WithdrawAndUnwrap(value)
4451        }
4452    }
4453    impl ::core::convert::From<CalculatePublicAmountCall>
4454        for VAnchorBaseContractCalls
4455    {
4456        fn from(value: CalculatePublicAmountCall) -> Self {
4457            Self::CalculatePublicAmount(value)
4458        }
4459    }
4460    impl ::core::convert::From<CommitmentsCall> for VAnchorBaseContractCalls {
4461        fn from(value: CommitmentsCall) -> Self {
4462            Self::Commitments(value)
4463        }
4464    }
4465    impl ::core::convert::From<ConfigureMaximumDepositLimitCall>
4466        for VAnchorBaseContractCalls
4467    {
4468        fn from(value: ConfigureMaximumDepositLimitCall) -> Self {
4469            Self::ConfigureMaximumDepositLimit(value)
4470        }
4471    }
4472    impl ::core::convert::From<ConfigureMinimalWithdrawalLimitCall>
4473        for VAnchorBaseContractCalls
4474    {
4475        fn from(value: ConfigureMinimalWithdrawalLimitCall) -> Self {
4476            Self::ConfigureMinimalWithdrawalLimit(value)
4477        }
4478    }
4479    impl ::core::convert::From<CurrentNeighborRootIndexCall>
4480        for VAnchorBaseContractCalls
4481    {
4482        fn from(value: CurrentNeighborRootIndexCall) -> Self {
4483            Self::CurrentNeighborRootIndex(value)
4484        }
4485    }
4486    impl ::core::convert::From<EdgeExistsForChainCall>
4487        for VAnchorBaseContractCalls
4488    {
4489        fn from(value: EdgeExistsForChainCall) -> Self {
4490            Self::EdgeExistsForChain(value)
4491        }
4492    }
4493    impl ::core::convert::From<EdgeIndexCall> for VAnchorBaseContractCalls {
4494        fn from(value: EdgeIndexCall) -> Self {
4495            Self::EdgeIndex(value)
4496        }
4497    }
4498    impl ::core::convert::From<EdgeListCall> for VAnchorBaseContractCalls {
4499        fn from(value: EdgeListCall) -> Self {
4500            Self::EdgeList(value)
4501        }
4502    }
4503    impl ::core::convert::From<FilledSubtreesCall> for VAnchorBaseContractCalls {
4504        fn from(value: FilledSubtreesCall) -> Self {
4505            Self::FilledSubtrees(value)
4506        }
4507    }
4508    impl ::core::convert::From<GetChainIdCall> for VAnchorBaseContractCalls {
4509        fn from(value: GetChainIdCall) -> Self {
4510            Self::GetChainId(value)
4511        }
4512    }
4513    impl ::core::convert::From<GetChainIdTypeCall> for VAnchorBaseContractCalls {
4514        fn from(value: GetChainIdTypeCall) -> Self {
4515            Self::GetChainIdType(value)
4516        }
4517    }
4518    impl ::core::convert::From<GetHasherCall> for VAnchorBaseContractCalls {
4519        fn from(value: GetHasherCall) -> Self {
4520            Self::GetHasher(value)
4521        }
4522    }
4523    impl ::core::convert::From<GetLastRootCall> for VAnchorBaseContractCalls {
4524        fn from(value: GetLastRootCall) -> Self {
4525            Self::GetLastRoot(value)
4526        }
4527    }
4528    impl ::core::convert::From<GetLatestNeighborEdgesCall>
4529        for VAnchorBaseContractCalls
4530    {
4531        fn from(value: GetLatestNeighborEdgesCall) -> Self {
4532            Self::GetLatestNeighborEdges(value)
4533        }
4534    }
4535    impl ::core::convert::From<GetLatestNeighborRootsCall>
4536        for VAnchorBaseContractCalls
4537    {
4538        fn from(value: GetLatestNeighborRootsCall) -> Self {
4539            Self::GetLatestNeighborRoots(value)
4540        }
4541    }
4542    impl ::core::convert::From<GetLevelsCall> for VAnchorBaseContractCalls {
4543        fn from(value: GetLevelsCall) -> Self {
4544            Self::GetLevels(value)
4545        }
4546    }
4547    impl ::core::convert::From<GetNextIndexCall> for VAnchorBaseContractCalls {
4548        fn from(value: GetNextIndexCall) -> Self {
4549            Self::GetNextIndex(value)
4550        }
4551    }
4552    impl ::core::convert::From<GetProposalNonceCall> for VAnchorBaseContractCalls {
4553        fn from(value: GetProposalNonceCall) -> Self {
4554            Self::GetProposalNonce(value)
4555        }
4556    }
4557    impl ::core::convert::From<GetZeroHashCall> for VAnchorBaseContractCalls {
4558        fn from(value: GetZeroHashCall) -> Self {
4559            Self::GetZeroHash(value)
4560        }
4561    }
4562    impl ::core::convert::From<HandlerCall> for VAnchorBaseContractCalls {
4563        fn from(value: HandlerCall) -> Self {
4564            Self::Handler(value)
4565        }
4566    }
4567    impl ::core::convert::From<HasEdgeCall> for VAnchorBaseContractCalls {
4568        fn from(value: HasEdgeCall) -> Self {
4569            Self::HasEdge(value)
4570        }
4571    }
4572    impl ::core::convert::From<HashLeftRightCall> for VAnchorBaseContractCalls {
4573        fn from(value: HashLeftRightCall) -> Self {
4574            Self::HashLeftRight(value)
4575        }
4576    }
4577    impl ::core::convert::From<InitializeCall> for VAnchorBaseContractCalls {
4578        fn from(value: InitializeCall) -> Self {
4579            Self::Initialize(value)
4580        }
4581    }
4582    impl ::core::convert::From<InitializedCall> for VAnchorBaseContractCalls {
4583        fn from(value: InitializedCall) -> Self {
4584            Self::Initialized(value)
4585        }
4586    }
4587    impl ::core::convert::From<IsCorrectExecutionChainCall>
4588        for VAnchorBaseContractCalls
4589    {
4590        fn from(value: IsCorrectExecutionChainCall) -> Self {
4591            Self::IsCorrectExecutionChain(value)
4592        }
4593    }
4594    impl ::core::convert::From<IsCorrectExecutionContextCall>
4595        for VAnchorBaseContractCalls
4596    {
4597        fn from(value: IsCorrectExecutionContextCall) -> Self {
4598            Self::IsCorrectExecutionContext(value)
4599        }
4600    }
4601    impl ::core::convert::From<IsKnownNeighborRootCall>
4602        for VAnchorBaseContractCalls
4603    {
4604        fn from(value: IsKnownNeighborRootCall) -> Self {
4605            Self::IsKnownNeighborRoot(value)
4606        }
4607    }
4608    impl ::core::convert::From<IsKnownRootCall> for VAnchorBaseContractCalls {
4609        fn from(value: IsKnownRootCall) -> Self {
4610            Self::IsKnownRoot(value)
4611        }
4612    }
4613    impl ::core::convert::From<IsSpentCall> for VAnchorBaseContractCalls {
4614        fn from(value: IsSpentCall) -> Self {
4615            Self::IsSpent(value)
4616        }
4617    }
4618    impl ::core::convert::From<IsSpentArrayCall> for VAnchorBaseContractCalls {
4619        fn from(value: IsSpentArrayCall) -> Self {
4620            Self::IsSpentArray(value)
4621        }
4622    }
4623    impl ::core::convert::From<IsValidRootsCall> for VAnchorBaseContractCalls {
4624        fn from(value: IsValidRootsCall) -> Self {
4625            Self::IsValidRoots(value)
4626        }
4627    }
4628    impl ::core::convert::From<LastBalanceCall> for VAnchorBaseContractCalls {
4629        fn from(value: LastBalanceCall) -> Self {
4630            Self::LastBalance(value)
4631        }
4632    }
4633    impl ::core::convert::From<MaxEdgesCall> for VAnchorBaseContractCalls {
4634        fn from(value: MaxEdgesCall) -> Self {
4635            Self::MaxEdges(value)
4636        }
4637    }
4638    impl ::core::convert::From<MaximumDepositAmountCall>
4639        for VAnchorBaseContractCalls
4640    {
4641        fn from(value: MaximumDepositAmountCall) -> Self {
4642            Self::MaximumDepositAmount(value)
4643        }
4644    }
4645    impl ::core::convert::From<MinimalWithdrawalAmountCall>
4646        for VAnchorBaseContractCalls
4647    {
4648        fn from(value: MinimalWithdrawalAmountCall) -> Self {
4649            Self::MinimalWithdrawalAmount(value)
4650        }
4651    }
4652    impl ::core::convert::From<NeighborRootsCall> for VAnchorBaseContractCalls {
4653        fn from(value: NeighborRootsCall) -> Self {
4654            Self::NeighborRoots(value)
4655        }
4656    }
4657    impl ::core::convert::From<NullifierHashesCall> for VAnchorBaseContractCalls {
4658        fn from(value: NullifierHashesCall) -> Self {
4659            Self::NullifierHashes(value)
4660        }
4661    }
4662    impl ::core::convert::From<OuterLevelsCall> for VAnchorBaseContractCalls {
4663        fn from(value: OuterLevelsCall) -> Self {
4664            Self::OuterLevels(value)
4665        }
4666    }
4667    impl ::core::convert::From<ParseChainIdFromResourceIdCall>
4668        for VAnchorBaseContractCalls
4669    {
4670        fn from(value: ParseChainIdFromResourceIdCall) -> Self {
4671            Self::ParseChainIdFromResourceId(value)
4672        }
4673    }
4674    impl ::core::convert::From<ProposalNonceCall> for VAnchorBaseContractCalls {
4675        fn from(value: ProposalNonceCall) -> Self {
4676            Self::ProposalNonce(value)
4677        }
4678    }
4679    impl ::core::convert::From<RegisterCall> for VAnchorBaseContractCalls {
4680        fn from(value: RegisterCall) -> Self {
4681            Self::Register(value)
4682        }
4683    }
4684    impl ::core::convert::From<RootsCall> for VAnchorBaseContractCalls {
4685        fn from(value: RootsCall) -> Self {
4686            Self::Roots(value)
4687        }
4688    }
4689    impl ::core::convert::From<SetHandlerCall> for VAnchorBaseContractCalls {
4690        fn from(value: SetHandlerCall) -> Self {
4691            Self::SetHandler(value)
4692        }
4693    }
4694    impl ::core::convert::From<UpdateEdgeCall> for VAnchorBaseContractCalls {
4695        fn from(value: UpdateEdgeCall) -> Self {
4696            Self::UpdateEdge(value)
4697        }
4698    }
4699    ///Container type for all return fields from the `EVM_CHAIN_ID_TYPE` function with signature `EVM_CHAIN_ID_TYPE()` and selector `0x8b7e8782`
4700    #[derive(
4701        Clone,
4702        ::ethers::contract::EthAbiType,
4703        ::ethers::contract::EthAbiCodec,
4704        serde::Serialize,
4705        serde::Deserialize,
4706        Default,
4707        Debug,
4708        PartialEq,
4709        Eq,
4710        Hash,
4711    )]
4712    pub struct EvmChainIdTypeReturn(pub [u8; 2]);
4713    ///Container type for all return fields from the `FIELD_SIZE` function with signature `FIELD_SIZE()` and selector `0x414a37ba`
4714    #[derive(
4715        Clone,
4716        ::ethers::contract::EthAbiType,
4717        ::ethers::contract::EthAbiCodec,
4718        serde::Serialize,
4719        serde::Deserialize,
4720        Default,
4721        Debug,
4722        PartialEq,
4723        Eq,
4724        Hash,
4725    )]
4726    pub struct FieldSizeReturn(pub ::ethers::core::types::U256);
4727    ///Container type for all return fields from the `MAX_EXT_AMOUNT` function with signature `MAX_EXT_AMOUNT()` and selector `0x7fe24ffe`
4728    #[derive(
4729        Clone,
4730        ::ethers::contract::EthAbiType,
4731        ::ethers::contract::EthAbiCodec,
4732        serde::Serialize,
4733        serde::Deserialize,
4734        Default,
4735        Debug,
4736        PartialEq,
4737        Eq,
4738        Hash,
4739    )]
4740    pub struct MaxExtAmountReturn(pub ::ethers::core::types::I256);
4741    ///Container type for all return fields from the `MAX_FEE` function with signature `MAX_FEE()` and selector `0xbc063e1a`
4742    #[derive(
4743        Clone,
4744        ::ethers::contract::EthAbiType,
4745        ::ethers::contract::EthAbiCodec,
4746        serde::Serialize,
4747        serde::Deserialize,
4748        Default,
4749        Debug,
4750        PartialEq,
4751        Eq,
4752        Hash,
4753    )]
4754    pub struct MaxFeeReturn(pub ::ethers::core::types::U256);
4755    ///Container type for all return fields from the `ROOT_HISTORY_SIZE` function with signature `ROOT_HISTORY_SIZE()` and selector `0xcd87a3b4`
4756    #[derive(
4757        Clone,
4758        ::ethers::contract::EthAbiType,
4759        ::ethers::contract::EthAbiCodec,
4760        serde::Serialize,
4761        serde::Deserialize,
4762        Default,
4763        Debug,
4764        PartialEq,
4765        Eq,
4766        Hash,
4767    )]
4768    pub struct RootHistorySizeReturn(pub u32);
4769    ///Container type for all return fields from the `ZERO_VALUE` function with signature `ZERO_VALUE()` and selector `0xec732959`
4770    #[derive(
4771        Clone,
4772        ::ethers::contract::EthAbiType,
4773        ::ethers::contract::EthAbiCodec,
4774        serde::Serialize,
4775        serde::Deserialize,
4776        Default,
4777        Debug,
4778        PartialEq,
4779        Eq,
4780        Hash,
4781    )]
4782    pub struct ZeroValueReturn(pub ::ethers::core::types::U256);
4783    ///Container type for all return fields from the `_executeWrapping` function with signature `_executeWrapping(address,address,uint256)` and selector `0x6338bcbc`
4784    #[derive(
4785        Clone,
4786        ::ethers::contract::EthAbiType,
4787        ::ethers::contract::EthAbiCodec,
4788        serde::Serialize,
4789        serde::Deserialize,
4790        Default,
4791        Debug,
4792        PartialEq,
4793        Eq,
4794        Hash,
4795    )]
4796    pub struct ExecuteWrappingReturn(pub ::ethers::core::types::U256);
4797    ///Container type for all return fields from the `calculatePublicAmount` function with signature `calculatePublicAmount(int256,uint256)` and selector `0x2570b7b4`
4798    #[derive(
4799        Clone,
4800        ::ethers::contract::EthAbiType,
4801        ::ethers::contract::EthAbiCodec,
4802        serde::Serialize,
4803        serde::Deserialize,
4804        Default,
4805        Debug,
4806        PartialEq,
4807        Eq,
4808        Hash,
4809    )]
4810    pub struct CalculatePublicAmountReturn(pub ::ethers::core::types::U256);
4811    ///Container type for all return fields from the `commitments` function with signature `commitments(uint256)` and selector `0x49ce8997`
4812    #[derive(
4813        Clone,
4814        ::ethers::contract::EthAbiType,
4815        ::ethers::contract::EthAbiCodec,
4816        serde::Serialize,
4817        serde::Deserialize,
4818        Default,
4819        Debug,
4820        PartialEq,
4821        Eq,
4822        Hash,
4823    )]
4824    pub struct CommitmentsReturn(pub bool);
4825    ///Container type for all return fields from the `currentNeighborRootIndex` function with signature `currentNeighborRootIndex(uint256)` and selector `0x5d2d766c`
4826    #[derive(
4827        Clone,
4828        ::ethers::contract::EthAbiType,
4829        ::ethers::contract::EthAbiCodec,
4830        serde::Serialize,
4831        serde::Deserialize,
4832        Default,
4833        Debug,
4834        PartialEq,
4835        Eq,
4836        Hash,
4837    )]
4838    pub struct CurrentNeighborRootIndexReturn(pub u32);
4839    ///Container type for all return fields from the `edgeExistsForChain` function with signature `edgeExistsForChain(uint256)` and selector `0xfa731687`
4840    #[derive(
4841        Clone,
4842        ::ethers::contract::EthAbiType,
4843        ::ethers::contract::EthAbiCodec,
4844        serde::Serialize,
4845        serde::Deserialize,
4846        Default,
4847        Debug,
4848        PartialEq,
4849        Eq,
4850        Hash,
4851    )]
4852    pub struct EdgeExistsForChainReturn(pub bool);
4853    ///Container type for all return fields from the `edgeIndex` function with signature `edgeIndex(uint256)` and selector `0xe70ea87c`
4854    #[derive(
4855        Clone,
4856        ::ethers::contract::EthAbiType,
4857        ::ethers::contract::EthAbiCodec,
4858        serde::Serialize,
4859        serde::Deserialize,
4860        Default,
4861        Debug,
4862        PartialEq,
4863        Eq,
4864        Hash,
4865    )]
4866    pub struct EdgeIndexReturn(pub ::ethers::core::types::U256);
4867    ///Container type for all return fields from the `edgeList` function with signature `edgeList(uint256)` and selector `0xdbc916b8`
4868    #[derive(
4869        Clone,
4870        ::ethers::contract::EthAbiType,
4871        ::ethers::contract::EthAbiCodec,
4872        serde::Serialize,
4873        serde::Deserialize,
4874        Default,
4875        Debug,
4876        PartialEq,
4877        Eq,
4878        Hash,
4879    )]
4880    pub struct EdgeListReturn {
4881        pub chain_id: ::ethers::core::types::U256,
4882        pub root: ::ethers::core::types::U256,
4883        pub latest_leaf_index: ::ethers::core::types::U256,
4884        pub src_resource_id: [u8; 32],
4885    }
4886    ///Container type for all return fields from the `filledSubtrees` function with signature `filledSubtrees(uint256)` and selector `0xf178e47c`
4887    #[derive(
4888        Clone,
4889        ::ethers::contract::EthAbiType,
4890        ::ethers::contract::EthAbiCodec,
4891        serde::Serialize,
4892        serde::Deserialize,
4893        Default,
4894        Debug,
4895        PartialEq,
4896        Eq,
4897        Hash,
4898    )]
4899    pub struct FilledSubtreesReturn(pub ::ethers::core::types::U256);
4900    ///Container type for all return fields from the `getChainId` function with signature `getChainId()` and selector `0x3408e470`
4901    #[derive(
4902        Clone,
4903        ::ethers::contract::EthAbiType,
4904        ::ethers::contract::EthAbiCodec,
4905        serde::Serialize,
4906        serde::Deserialize,
4907        Default,
4908        Debug,
4909        PartialEq,
4910        Eq,
4911        Hash,
4912    )]
4913    pub struct GetChainIdReturn(pub ::ethers::core::types::U256);
4914    ///Container type for all return fields from the `getChainIdType` function with signature `getChainIdType()` and selector `0x4c830cbd`
4915    #[derive(
4916        Clone,
4917        ::ethers::contract::EthAbiType,
4918        ::ethers::contract::EthAbiCodec,
4919        serde::Serialize,
4920        serde::Deserialize,
4921        Default,
4922        Debug,
4923        PartialEq,
4924        Eq,
4925        Hash,
4926    )]
4927    pub struct GetChainIdTypeReturn(pub u64);
4928    ///Container type for all return fields from the `getHasher` function with signature `getHasher()` and selector `0xea495db0`
4929    #[derive(
4930        Clone,
4931        ::ethers::contract::EthAbiType,
4932        ::ethers::contract::EthAbiCodec,
4933        serde::Serialize,
4934        serde::Deserialize,
4935        Default,
4936        Debug,
4937        PartialEq,
4938        Eq,
4939        Hash,
4940    )]
4941    pub struct GetHasherReturn(pub ::ethers::core::types::Address);
4942    ///Container type for all return fields from the `getLastRoot` function with signature `getLastRoot()` and selector `0xba70f757`
4943    #[derive(
4944        Clone,
4945        ::ethers::contract::EthAbiType,
4946        ::ethers::contract::EthAbiCodec,
4947        serde::Serialize,
4948        serde::Deserialize,
4949        Default,
4950        Debug,
4951        PartialEq,
4952        Eq,
4953        Hash,
4954    )]
4955    pub struct GetLastRootReturn(pub ::ethers::core::types::U256);
4956    ///Container type for all return fields from the `getLatestNeighborEdges` function with signature `getLatestNeighborEdges()` and selector `0x8c0d34d8`
4957    #[derive(
4958        Clone,
4959        ::ethers::contract::EthAbiType,
4960        ::ethers::contract::EthAbiCodec,
4961        serde::Serialize,
4962        serde::Deserialize,
4963        Default,
4964        Debug,
4965        PartialEq,
4966        Eq,
4967        Hash,
4968    )]
4969    pub struct GetLatestNeighborEdgesReturn(pub ::std::vec::Vec<Edge>);
4970    ///Container type for all return fields from the `getLatestNeighborRoots` function with signature `getLatestNeighborRoots()` and selector `0x1e627617`
4971    #[derive(
4972        Clone,
4973        ::ethers::contract::EthAbiType,
4974        ::ethers::contract::EthAbiCodec,
4975        serde::Serialize,
4976        serde::Deserialize,
4977        Default,
4978        Debug,
4979        PartialEq,
4980        Eq,
4981        Hash,
4982    )]
4983    pub struct GetLatestNeighborRootsReturn(
4984        pub ::std::vec::Vec<::ethers::core::types::U256>,
4985    );
4986    ///Container type for all return fields from the `getLevels` function with signature `getLevels()` and selector `0x0c394a60`
4987    #[derive(
4988        Clone,
4989        ::ethers::contract::EthAbiType,
4990        ::ethers::contract::EthAbiCodec,
4991        serde::Serialize,
4992        serde::Deserialize,
4993        Default,
4994        Debug,
4995        PartialEq,
4996        Eq,
4997        Hash,
4998    )]
4999    pub struct GetLevelsReturn(pub u32);
5000    ///Container type for all return fields from the `getNextIndex` function with signature `getNextIndex()` and selector `0x0eb7606f`
5001    #[derive(
5002        Clone,
5003        ::ethers::contract::EthAbiType,
5004        ::ethers::contract::EthAbiCodec,
5005        serde::Serialize,
5006        serde::Deserialize,
5007        Default,
5008        Debug,
5009        PartialEq,
5010        Eq,
5011        Hash,
5012    )]
5013    pub struct GetNextIndexReturn(pub u32);
5014    ///Container type for all return fields from the `getProposalNonce` function with signature `getProposalNonce()` and selector `0x0b27fb9a`
5015    #[derive(
5016        Clone,
5017        ::ethers::contract::EthAbiType,
5018        ::ethers::contract::EthAbiCodec,
5019        serde::Serialize,
5020        serde::Deserialize,
5021        Default,
5022        Debug,
5023        PartialEq,
5024        Eq,
5025        Hash,
5026    )]
5027    pub struct GetProposalNonceReturn(pub ::ethers::core::types::U256);
5028    ///Container type for all return fields from the `getZeroHash` function with signature `getZeroHash(uint32)` and selector `0x305e9eac`
5029    #[derive(
5030        Clone,
5031        ::ethers::contract::EthAbiType,
5032        ::ethers::contract::EthAbiCodec,
5033        serde::Serialize,
5034        serde::Deserialize,
5035        Default,
5036        Debug,
5037        PartialEq,
5038        Eq,
5039        Hash,
5040    )]
5041    pub struct GetZeroHashReturn(pub ::ethers::core::types::U256);
5042    ///Container type for all return fields from the `handler` function with signature `handler()` and selector `0xc80916d4`
5043    #[derive(
5044        Clone,
5045        ::ethers::contract::EthAbiType,
5046        ::ethers::contract::EthAbiCodec,
5047        serde::Serialize,
5048        serde::Deserialize,
5049        Default,
5050        Debug,
5051        PartialEq,
5052        Eq,
5053        Hash,
5054    )]
5055    pub struct HandlerReturn(pub ::ethers::core::types::Address);
5056    ///Container type for all return fields from the `hasEdge` function with signature `hasEdge(uint256)` and selector `0x92156311`
5057    #[derive(
5058        Clone,
5059        ::ethers::contract::EthAbiType,
5060        ::ethers::contract::EthAbiCodec,
5061        serde::Serialize,
5062        serde::Deserialize,
5063        Default,
5064        Debug,
5065        PartialEq,
5066        Eq,
5067        Hash,
5068    )]
5069    pub struct HasEdgeReturn(pub bool);
5070    ///Container type for all return fields from the `hashLeftRight` function with signature `hashLeftRight(uint256,uint256)` and selector `0x5bb93995`
5071    #[derive(
5072        Clone,
5073        ::ethers::contract::EthAbiType,
5074        ::ethers::contract::EthAbiCodec,
5075        serde::Serialize,
5076        serde::Deserialize,
5077        Default,
5078        Debug,
5079        PartialEq,
5080        Eq,
5081        Hash,
5082    )]
5083    pub struct HashLeftRightReturn(pub ::ethers::core::types::U256);
5084    ///Container type for all return fields from the `initialized` function with signature `initialized()` and selector `0x158ef93e`
5085    #[derive(
5086        Clone,
5087        ::ethers::contract::EthAbiType,
5088        ::ethers::contract::EthAbiCodec,
5089        serde::Serialize,
5090        serde::Deserialize,
5091        Default,
5092        Debug,
5093        PartialEq,
5094        Eq,
5095        Hash,
5096    )]
5097    pub struct InitializedReturn(pub bool);
5098    ///Container type for all return fields from the `isCorrectExecutionChain` function with signature `isCorrectExecutionChain(bytes32)` and selector `0x830b2f57`
5099    #[derive(
5100        Clone,
5101        ::ethers::contract::EthAbiType,
5102        ::ethers::contract::EthAbiCodec,
5103        serde::Serialize,
5104        serde::Deserialize,
5105        Default,
5106        Debug,
5107        PartialEq,
5108        Eq,
5109        Hash,
5110    )]
5111    pub struct IsCorrectExecutionChainReturn(pub bool);
5112    ///Container type for all return fields from the `isCorrectExecutionContext` function with signature `isCorrectExecutionContext(bytes32)` and selector `0xf5fc3d6b`
5113    #[derive(
5114        Clone,
5115        ::ethers::contract::EthAbiType,
5116        ::ethers::contract::EthAbiCodec,
5117        serde::Serialize,
5118        serde::Deserialize,
5119        Default,
5120        Debug,
5121        PartialEq,
5122        Eq,
5123        Hash,
5124    )]
5125    pub struct IsCorrectExecutionContextReturn(pub bool);
5126    ///Container type for all return fields from the `isKnownNeighborRoot` function with signature `isKnownNeighborRoot(uint256,uint256)` and selector `0x3bfa8d7a`
5127    #[derive(
5128        Clone,
5129        ::ethers::contract::EthAbiType,
5130        ::ethers::contract::EthAbiCodec,
5131        serde::Serialize,
5132        serde::Deserialize,
5133        Default,
5134        Debug,
5135        PartialEq,
5136        Eq,
5137        Hash,
5138    )]
5139    pub struct IsKnownNeighborRootReturn(pub bool);
5140    ///Container type for all return fields from the `isKnownRoot` function with signature `isKnownRoot(uint256)` and selector `0xa6232a93`
5141    #[derive(
5142        Clone,
5143        ::ethers::contract::EthAbiType,
5144        ::ethers::contract::EthAbiCodec,
5145        serde::Serialize,
5146        serde::Deserialize,
5147        Default,
5148        Debug,
5149        PartialEq,
5150        Eq,
5151        Hash,
5152    )]
5153    pub struct IsKnownRootReturn(pub bool);
5154    ///Container type for all return fields from the `isSpent` function with signature `isSpent(uint256)` and selector `0x5a129efe`
5155    #[derive(
5156        Clone,
5157        ::ethers::contract::EthAbiType,
5158        ::ethers::contract::EthAbiCodec,
5159        serde::Serialize,
5160        serde::Deserialize,
5161        Default,
5162        Debug,
5163        PartialEq,
5164        Eq,
5165        Hash,
5166    )]
5167    pub struct IsSpentReturn(pub bool);
5168    ///Container type for all return fields from the `isSpentArray` function with signature `isSpentArray(uint256[])` and selector `0xea65ba49`
5169    #[derive(
5170        Clone,
5171        ::ethers::contract::EthAbiType,
5172        ::ethers::contract::EthAbiCodec,
5173        serde::Serialize,
5174        serde::Deserialize,
5175        Default,
5176        Debug,
5177        PartialEq,
5178        Eq,
5179        Hash,
5180    )]
5181    pub struct IsSpentArrayReturn(pub ::std::vec::Vec<bool>);
5182    ///Container type for all return fields from the `isValidRoots` function with signature `isValidRoots(uint256[])` and selector `0xb75e6798`
5183    #[derive(
5184        Clone,
5185        ::ethers::contract::EthAbiType,
5186        ::ethers::contract::EthAbiCodec,
5187        serde::Serialize,
5188        serde::Deserialize,
5189        Default,
5190        Debug,
5191        PartialEq,
5192        Eq,
5193        Hash,
5194    )]
5195    pub struct IsValidRootsReturn(pub bool);
5196    ///Container type for all return fields from the `lastBalance` function with signature `lastBalance()` and selector `0x8f1c56bd`
5197    #[derive(
5198        Clone,
5199        ::ethers::contract::EthAbiType,
5200        ::ethers::contract::EthAbiCodec,
5201        serde::Serialize,
5202        serde::Deserialize,
5203        Default,
5204        Debug,
5205        PartialEq,
5206        Eq,
5207        Hash,
5208    )]
5209    pub struct LastBalanceReturn(pub ::ethers::core::types::U256);
5210    ///Container type for all return fields from the `maxEdges` function with signature `maxEdges()` and selector `0x71523c32`
5211    #[derive(
5212        Clone,
5213        ::ethers::contract::EthAbiType,
5214        ::ethers::contract::EthAbiCodec,
5215        serde::Serialize,
5216        serde::Deserialize,
5217        Default,
5218        Debug,
5219        PartialEq,
5220        Eq,
5221        Hash,
5222    )]
5223    pub struct MaxEdgesReturn(pub u8);
5224    ///Container type for all return fields from the `maximumDepositAmount` function with signature `maximumDepositAmount()` and selector `0x78abb49b`
5225    #[derive(
5226        Clone,
5227        ::ethers::contract::EthAbiType,
5228        ::ethers::contract::EthAbiCodec,
5229        serde::Serialize,
5230        serde::Deserialize,
5231        Default,
5232        Debug,
5233        PartialEq,
5234        Eq,
5235        Hash,
5236    )]
5237    pub struct MaximumDepositAmountReturn(pub ::ethers::core::types::U256);
5238    ///Container type for all return fields from the `minimalWithdrawalAmount` function with signature `minimalWithdrawalAmount()` and selector `0x840b2791`
5239    #[derive(
5240        Clone,
5241        ::ethers::contract::EthAbiType,
5242        ::ethers::contract::EthAbiCodec,
5243        serde::Serialize,
5244        serde::Deserialize,
5245        Default,
5246        Debug,
5247        PartialEq,
5248        Eq,
5249        Hash,
5250    )]
5251    pub struct MinimalWithdrawalAmountReturn(pub ::ethers::core::types::U256);
5252    ///Container type for all return fields from the `neighborRoots` function with signature `neighborRoots(uint256,uint32)` and selector `0x43e7119f`
5253    #[derive(
5254        Clone,
5255        ::ethers::contract::EthAbiType,
5256        ::ethers::contract::EthAbiCodec,
5257        serde::Serialize,
5258        serde::Deserialize,
5259        Default,
5260        Debug,
5261        PartialEq,
5262        Eq,
5263        Hash,
5264    )]
5265    pub struct NeighborRootsReturn(pub ::ethers::core::types::U256);
5266    ///Container type for all return fields from the `nullifierHashes` function with signature `nullifierHashes(uint256)` and selector `0x1f79a1e9`
5267    #[derive(
5268        Clone,
5269        ::ethers::contract::EthAbiType,
5270        ::ethers::contract::EthAbiCodec,
5271        serde::Serialize,
5272        serde::Deserialize,
5273        Default,
5274        Debug,
5275        PartialEq,
5276        Eq,
5277        Hash,
5278    )]
5279    pub struct NullifierHashesReturn(pub bool);
5280    ///Container type for all return fields from the `outerLevels` function with signature `outerLevels()` and selector `0xbfbc0a39`
5281    #[derive(
5282        Clone,
5283        ::ethers::contract::EthAbiType,
5284        ::ethers::contract::EthAbiCodec,
5285        serde::Serialize,
5286        serde::Deserialize,
5287        Default,
5288        Debug,
5289        PartialEq,
5290        Eq,
5291        Hash,
5292    )]
5293    pub struct OuterLevelsReturn(pub u32);
5294    ///Container type for all return fields from the `parseChainIdFromResourceId` function with signature `parseChainIdFromResourceId(bytes32)` and selector `0xc2230d6e`
5295    #[derive(
5296        Clone,
5297        ::ethers::contract::EthAbiType,
5298        ::ethers::contract::EthAbiCodec,
5299        serde::Serialize,
5300        serde::Deserialize,
5301        Default,
5302        Debug,
5303        PartialEq,
5304        Eq,
5305        Hash,
5306    )]
5307    pub struct ParseChainIdFromResourceIdReturn(pub u64);
5308    ///Container type for all return fields from the `proposalNonce` function with signature `proposalNonce()` and selector `0xcc3c74a1`
5309    #[derive(
5310        Clone,
5311        ::ethers::contract::EthAbiType,
5312        ::ethers::contract::EthAbiCodec,
5313        serde::Serialize,
5314        serde::Deserialize,
5315        Default,
5316        Debug,
5317        PartialEq,
5318        Eq,
5319        Hash,
5320    )]
5321    pub struct ProposalNonceReturn(pub ::ethers::core::types::U256);
5322    ///Container type for all return fields from the `roots` function with signature `roots(uint256)` and selector `0xc2b40ae4`
5323    #[derive(
5324        Clone,
5325        ::ethers::contract::EthAbiType,
5326        ::ethers::contract::EthAbiCodec,
5327        serde::Serialize,
5328        serde::Deserialize,
5329        Default,
5330        Debug,
5331        PartialEq,
5332        Eq,
5333        Hash,
5334    )]
5335    pub struct RootsReturn {
5336        pub root: ::ethers::core::types::U256,
5337        pub latest_leafindex: u32,
5338    }
5339    ///`Edge(uint256,uint256,uint256,bytes32)`
5340    #[derive(
5341        Clone,
5342        ::ethers::contract::EthAbiType,
5343        ::ethers::contract::EthAbiCodec,
5344        serde::Serialize,
5345        serde::Deserialize,
5346        Default,
5347        Debug,
5348        PartialEq,
5349        Eq,
5350        Hash,
5351    )]
5352    pub struct Edge {
5353        pub chain_id: ::ethers::core::types::U256,
5354        pub root: ::ethers::core::types::U256,
5355        pub latest_leaf_index: ::ethers::core::types::U256,
5356        pub src_resource_id: [u8; 32],
5357    }
5358    ///`Account(address,bytes)`
5359    #[derive(
5360        Clone,
5361        ::ethers::contract::EthAbiType,
5362        ::ethers::contract::EthAbiCodec,
5363        serde::Serialize,
5364        serde::Deserialize,
5365        Default,
5366        Debug,
5367        PartialEq,
5368        Eq,
5369        Hash,
5370    )]
5371    pub struct Account {
5372        pub owner: ::ethers::core::types::Address,
5373        pub key_data: ::ethers::core::types::Bytes,
5374    }
5375}