hopr_bindings/codegen/
hopr_wrapper_proxy.rs

1pub use hopr_wrapper_proxy::*;
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 hopr_wrapper_proxy {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
17                inputs: ::std::vec![],
18            }),
19            functions: ::core::convert::From::from([
20                (
21                    ::std::borrow::ToOwned::to_owned("ERC1820_REGISTRY"),
22                    ::std::vec![
23                        ::ethers::core::abi::ethabi::Function {
24                            name: ::std::borrow::ToOwned::to_owned("ERC1820_REGISTRY"),
25                            inputs: ::std::vec![],
26                            outputs: ::std::vec![
27                                ::ethers::core::abi::ethabi::Param {
28                                    name: ::std::string::String::new(),
29                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
30                                    internal_type: ::core::option::Option::Some(
31                                        ::std::borrow::ToOwned::to_owned(
32                                            "contract IERC1820Registry",
33                                        ),
34                                    ),
35                                },
36                            ],
37                            constant: ::core::option::Option::None,
38                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
39                        },
40                    ],
41                ),
42                (
43                    ::std::borrow::ToOwned::to_owned("TOKENS_RECIPIENT_INTERFACE_HASH"),
44                    ::std::vec![
45                        ::ethers::core::abi::ethabi::Function {
46                            name: ::std::borrow::ToOwned::to_owned(
47                                "TOKENS_RECIPIENT_INTERFACE_HASH",
48                            ),
49                            inputs: ::std::vec![],
50                            outputs: ::std::vec![
51                                ::ethers::core::abi::ethabi::Param {
52                                    name: ::std::string::String::new(),
53                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
54                                        32usize,
55                                    ),
56                                    internal_type: ::core::option::Option::Some(
57                                        ::std::borrow::ToOwned::to_owned("bytes32"),
58                                    ),
59                                },
60                            ],
61                            constant: ::core::option::Option::None,
62                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
63                        },
64                    ],
65                ),
66                (
67                    ::std::borrow::ToOwned::to_owned("WRAPPER"),
68                    ::std::vec![
69                        ::ethers::core::abi::ethabi::Function {
70                            name: ::std::borrow::ToOwned::to_owned("WRAPPER"),
71                            inputs: ::std::vec![],
72                            outputs: ::std::vec![
73                                ::ethers::core::abi::ethabi::Param {
74                                    name: ::std::string::String::new(),
75                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
76                                    internal_type: ::core::option::Option::Some(
77                                        ::std::borrow::ToOwned::to_owned("address"),
78                                    ),
79                                },
80                            ],
81                            constant: ::core::option::Option::None,
82                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
83                        },
84                    ],
85                ),
86                (
87                    ::std::borrow::ToOwned::to_owned("WXHOPR_TOKEN"),
88                    ::std::vec![
89                        ::ethers::core::abi::ethabi::Function {
90                            name: ::std::borrow::ToOwned::to_owned("WXHOPR_TOKEN"),
91                            inputs: ::std::vec![],
92                            outputs: ::std::vec![
93                                ::ethers::core::abi::ethabi::Param {
94                                    name: ::std::string::String::new(),
95                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
96                                    internal_type: ::core::option::Option::Some(
97                                        ::std::borrow::ToOwned::to_owned("address"),
98                                    ),
99                                },
100                            ],
101                            constant: ::core::option::Option::None,
102                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
103                        },
104                    ],
105                ),
106                (
107                    ::std::borrow::ToOwned::to_owned("XDAI_MULTISIG"),
108                    ::std::vec![
109                        ::ethers::core::abi::ethabi::Function {
110                            name: ::std::borrow::ToOwned::to_owned("XDAI_MULTISIG"),
111                            inputs: ::std::vec![],
112                            outputs: ::std::vec![
113                                ::ethers::core::abi::ethabi::Param {
114                                    name: ::std::string::String::new(),
115                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
116                                    internal_type: ::core::option::Option::Some(
117                                        ::std::borrow::ToOwned::to_owned("address payable"),
118                                    ),
119                                },
120                            ],
121                            constant: ::core::option::Option::None,
122                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
123                        },
124                    ],
125                ),
126                (
127                    ::std::borrow::ToOwned::to_owned("XHOPR_TOKEN"),
128                    ::std::vec![
129                        ::ethers::core::abi::ethabi::Function {
130                            name: ::std::borrow::ToOwned::to_owned("XHOPR_TOKEN"),
131                            inputs: ::std::vec![],
132                            outputs: ::std::vec![
133                                ::ethers::core::abi::ethabi::Param {
134                                    name: ::std::string::String::new(),
135                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
136                                    internal_type: ::core::option::Option::Some(
137                                        ::std::borrow::ToOwned::to_owned("address"),
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("onTokenTransfer"),
148                    ::std::vec![
149                        ::ethers::core::abi::ethabi::Function {
150                            name: ::std::borrow::ToOwned::to_owned("onTokenTransfer"),
151                            inputs: ::std::vec![
152                                ::ethers::core::abi::ethabi::Param {
153                                    name: ::std::borrow::ToOwned::to_owned("_from"),
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("_value"),
161                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
162                                        256usize,
163                                    ),
164                                    internal_type: ::core::option::Option::Some(
165                                        ::std::borrow::ToOwned::to_owned("uint256"),
166                                    ),
167                                },
168                                ::ethers::core::abi::ethabi::Param {
169                                    name: ::std::string::String::new(),
170                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
171                                    internal_type: ::core::option::Option::Some(
172                                        ::std::borrow::ToOwned::to_owned("bytes"),
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::Bool,
180                                    internal_type: ::core::option::Option::Some(
181                                        ::std::borrow::ToOwned::to_owned("bool"),
182                                    ),
183                                },
184                            ],
185                            constant: ::core::option::Option::None,
186                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
187                        },
188                    ],
189                ),
190                (
191                    ::std::borrow::ToOwned::to_owned("recoverTokens"),
192                    ::std::vec![
193                        ::ethers::core::abi::ethabi::Function {
194                            name: ::std::borrow::ToOwned::to_owned("recoverTokens"),
195                            inputs: ::std::vec![
196                                ::ethers::core::abi::ethabi::Param {
197                                    name: ::std::borrow::ToOwned::to_owned("token"),
198                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
199                                    internal_type: ::core::option::Option::Some(
200                                        ::std::borrow::ToOwned::to_owned("address"),
201                                    ),
202                                },
203                            ],
204                            outputs: ::std::vec![],
205                            constant: ::core::option::Option::None,
206                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
207                        },
208                    ],
209                ),
210                (
211                    ::std::borrow::ToOwned::to_owned("tokensReceived"),
212                    ::std::vec![
213                        ::ethers::core::abi::ethabi::Function {
214                            name: ::std::borrow::ToOwned::to_owned("tokensReceived"),
215                            inputs: ::std::vec![
216                                ::ethers::core::abi::ethabi::Param {
217                                    name: ::std::string::String::new(),
218                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
219                                    internal_type: ::core::option::Option::Some(
220                                        ::std::borrow::ToOwned::to_owned("address"),
221                                    ),
222                                },
223                                ::ethers::core::abi::ethabi::Param {
224                                    name: ::std::borrow::ToOwned::to_owned("from"),
225                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
226                                    internal_type: ::core::option::Option::Some(
227                                        ::std::borrow::ToOwned::to_owned("address"),
228                                    ),
229                                },
230                                ::ethers::core::abi::ethabi::Param {
231                                    name: ::std::borrow::ToOwned::to_owned("to"),
232                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
233                                    internal_type: ::core::option::Option::Some(
234                                        ::std::borrow::ToOwned::to_owned("address"),
235                                    ),
236                                },
237                                ::ethers::core::abi::ethabi::Param {
238                                    name: ::std::borrow::ToOwned::to_owned("amount"),
239                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
240                                        256usize,
241                                    ),
242                                    internal_type: ::core::option::Option::Some(
243                                        ::std::borrow::ToOwned::to_owned("uint256"),
244                                    ),
245                                },
246                                ::ethers::core::abi::ethabi::Param {
247                                    name: ::std::string::String::new(),
248                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
249                                    internal_type: ::core::option::Option::Some(
250                                        ::std::borrow::ToOwned::to_owned("bytes"),
251                                    ),
252                                },
253                                ::ethers::core::abi::ethabi::Param {
254                                    name: ::std::string::String::new(),
255                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
256                                    internal_type: ::core::option::Option::Some(
257                                        ::std::borrow::ToOwned::to_owned("bytes"),
258                                    ),
259                                },
260                            ],
261                            outputs: ::std::vec![],
262                            constant: ::core::option::Option::None,
263                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
264                        },
265                    ],
266                ),
267            ]),
268            events: ::core::convert::From::from([
269                (
270                    ::std::borrow::ToOwned::to_owned("FowardedFrom"),
271                    ::std::vec![
272                        ::ethers::core::abi::ethabi::Event {
273                            name: ::std::borrow::ToOwned::to_owned("FowardedFrom"),
274                            inputs: ::std::vec![
275                                ::ethers::core::abi::ethabi::EventParam {
276                                    name: ::std::borrow::ToOwned::to_owned("from"),
277                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
278                                    indexed: false,
279                                },
280                                ::ethers::core::abi::ethabi::EventParam {
281                                    name: ::std::borrow::ToOwned::to_owned("amount"),
282                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
283                                        256usize,
284                                    ),
285                                    indexed: false,
286                                },
287                            ],
288                            anonymous: false,
289                        },
290                    ],
291                ),
292                (
293                    ::std::borrow::ToOwned::to_owned("FowardedTo"),
294                    ::std::vec![
295                        ::ethers::core::abi::ethabi::Event {
296                            name: ::std::borrow::ToOwned::to_owned("FowardedTo"),
297                            inputs: ::std::vec![
298                                ::ethers::core::abi::ethabi::EventParam {
299                                    name: ::std::borrow::ToOwned::to_owned("to"),
300                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
301                                    indexed: false,
302                                },
303                                ::ethers::core::abi::ethabi::EventParam {
304                                    name: ::std::borrow::ToOwned::to_owned("amount"),
305                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
306                                        256usize,
307                                    ),
308                                    indexed: false,
309                                },
310                            ],
311                            anonymous: false,
312                        },
313                    ],
314                ),
315            ]),
316            errors: ::std::collections::BTreeMap::new(),
317            receive: false,
318            fallback: false,
319        }
320    }
321    ///The parsed JSON ABI of the contract.
322    pub static HOPRWRAPPERPROXY_ABI: ::ethers::contract::Lazy<
323        ::ethers::core::abi::Abi,
324    > = ::ethers::contract::Lazy::new(__abi);
325    #[rustfmt::skip]
326    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qc)\x96Z\x1D`\xE0\x1B\x81R0`\x04\x82\x01\x81\x90R\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;`$\x83\x01R`D\x82\x01Rs\x18 \xA4\xB7a\x8B\xDEq\xDC\xE8\xCD\xC7:\xABl\x95\x90_\xAD$\x90c)\x96Z\x1D\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\0\x8AW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\0\x9EW=`\0\x80>=`\0\xFD[PPPPa\x0B\xAC\x80a\0\xB1`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x92W`\x005`\xE0\x1C\x80c\xA4\xC0\xED6\x11a\0fW\x80c\xA4\xC0\xED6\x14a\x01,W\x80c\xB8a\xFA\x9E\x14a\x01OW\x80c\xE1\xEB\x13\xC1\x14a\x01jW\x80c\xE2\x8FV\xF3\x14a\x01\x85W\x80c\xFE&'{\x14a\x01\xA0W`\0\x80\xFD[\x80b#\xDE)\x14a\0\x97W\x80c\x01>\xB1w\x14a\0\xACW\x80c\x16\x11J\xCD\x14a\0\xE4W\x80crX\x1C\xC0\x14a\0\xF7W[`\0\x80\xFD[a\0\xAAa\0\xA56`\x04a\t!V[a\x01\xBBV[\0[a\0\xC7s\x18 \xA4\xB7a\x8B\xDEq\xDC\xE8\xCD\xC7:\xABl\x95\x90_\xAD$\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xAAa\0\xF26`\x04a\t\xCCV[a\x032V[a\x01\x1E\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;\x81V[`@Q\x90\x81R` \x01a\0\xDBV[a\x01?a\x01:6`\x04a\t\xFDV[a\x04\x1AV[`@Q\x90\x15\x15\x81R` \x01a\0\xDBV[a\0\xC7s\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x81V[a\0\xC7s\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8\x81V[a\0\xC7s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x81V[a\0\xC7s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x81V[3s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x14a\x02<W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FHoprWrapperProxy: Only accept WX`D\x82\x01Ro$'\xA8)/\xAA'\xA5\xA2\xA7\x10:7\xB5\xB2\xB7`\x81\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x02\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FHoprWrapperProxy: Must be sendin`D\x82\x01Rug tokens to this proxy`P\x1B`d\x82\x01R`\x84\x01a\x023V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x89\x16\x81R` \x81\x01\x87\x90R\x7F|mf\xA1!\x16\xD24r\xC9\xD0z\x15hIT8\x9E<\xEC\xD4X\xA9s\xE2\xD5#@\xDC\xC4\0w\x91\x01`@Q\x80\x91\x03\x90\xA1a\x03(s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x87a\x06\x1BV[PPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x03\x84W`@Qs^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x90G\x80\x15a\x08\xFC\x02\x91`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x03\x80W=`\0\x80>=`\0\xFD[PPV[`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01Ra\x04\x17\x90s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xE2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\x06\x91\x90a\n\xC8V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x91\x90a\x06\x1BV[PV[`\x003s\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x14a\x04\x91W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FHoprWrapperProxy: Only accept xH`D\x82\x01Rh'\xA8)\x10:7\xB5\xB2\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x023V[`\x01`\x01`\xA0\x1B\x03\x84\x16s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x14a\x05#W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FHoprWrapperProxy: Only accept xH`D\x82\x01R\x7FOPR from the Asso MultiSig\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x023V[`@\x80Qs\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8\x81R` \x81\x01\x85\x90R\x7F\x13n\xA59\xE1K\xAD\xD3r\x0Fe\xF9\xFFd\x14\xB0\xE6)\x1B\x05\xE7\xC1\x91\xCC?\x1C\x81\xFA\x9D-\xD5i\x91\x01`@Q\x80\x91\x03\x90\xA1`@Qc\x02\0\x05u`\xE5\x1B\x81Rs\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8`\x04\x82\x01R`$\x81\x01\x84\x90R```D\x82\x01R`\0`d\x82\x01Rs\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x90c@\0\xAE\xA0\x90`\x84\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x05\xEAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x0E\x91\x90a\n\xE1V[P`\x01\x90P[\x93\x92PPPV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x06m\x90\x84\x90a\x06rV[PPPV[`\0a\x06\xC7\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x07D\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x06mW\x80\x80` \x01\x90Q\x81\x01\x90a\x06\xE5\x91\x90a\n\xE1V[a\x06mW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x023V[``a\x07S\x84\x84`\0\x85a\x07[V[\x94\x93PPPPV[``\x82G\x10\x15a\x07\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x023V[\x84;a\x08\nW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x023V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x08&\x91\x90a\x0B'V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x08cW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x08hV[``\x91P[P\x91P\x91Pa\x08x\x82\x82\x86a\x08\x83V[\x97\x96PPPPPPPV[``\x83\x15a\x08\x92WP\x81a\x06\x14V[\x82Q\x15a\x08\xA2W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x023\x91\x90a\x0BCV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x08\xD3W`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x08\xEAW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\t\x02W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\t\x1AW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\t=W`\0\x80\xFD[a\tF\x89a\x08\xBCV[\x97Pa\tT` \x8A\x01a\x08\xBCV[\x96Pa\tb`@\x8A\x01a\x08\xBCV[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\t\x86W`\0\x80\xFD[a\t\x92\x8C\x83\x8D\x01a\x08\xD8V[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a\t\xABW`\0\x80\xFD[Pa\t\xB8\x8B\x82\x8C\x01a\x08\xD8V[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0` \x82\x84\x03\x12\x15a\t\xDEW`\0\x80\xFD[a\x06\x14\x82a\x08\xBCV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x12W`\0\x80\xFD[a\n\x1B\x84a\x08\xBCV[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n?W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\nSW`\0\x80\xFD[\x815\x81\x81\x11\x15a\neWa\nea\t\xE7V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\n\x8DWa\n\x8Da\t\xE7V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\n\xA6W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\n\xDAW`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\n\xF3W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x06\x14W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x0B\x1EW\x81\x81\x01Q\x83\x82\x01R` \x01a\x0B\x06V[PP`\0\x91\x01RV[`\0\x82Qa\x0B9\x81\x84` \x87\x01a\x0B\x03V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x0Bb\x81`@\x85\x01` \x87\x01a\x0B\x03V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 \xCD|\xF4\x7F\x8F%\xC4\xD5n\x0F\x9E\xC1\xC5\x05\x81\xDE\xC7\xF0R\xD3\xD9\x15O}&\x89\x15\x15\xE2\xCA\xEEjdsolcC\0\x08\x13\x003";
327    /// The bytecode of the contract.
328    pub static HOPRWRAPPERPROXY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
329        __BYTECODE,
330    );
331    #[rustfmt::skip]
332    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x92W`\x005`\xE0\x1C\x80c\xA4\xC0\xED6\x11a\0fW\x80c\xA4\xC0\xED6\x14a\x01,W\x80c\xB8a\xFA\x9E\x14a\x01OW\x80c\xE1\xEB\x13\xC1\x14a\x01jW\x80c\xE2\x8FV\xF3\x14a\x01\x85W\x80c\xFE&'{\x14a\x01\xA0W`\0\x80\xFD[\x80b#\xDE)\x14a\0\x97W\x80c\x01>\xB1w\x14a\0\xACW\x80c\x16\x11J\xCD\x14a\0\xE4W\x80crX\x1C\xC0\x14a\0\xF7W[`\0\x80\xFD[a\0\xAAa\0\xA56`\x04a\t!V[a\x01\xBBV[\0[a\0\xC7s\x18 \xA4\xB7a\x8B\xDEq\xDC\xE8\xCD\xC7:\xABl\x95\x90_\xAD$\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xAAa\0\xF26`\x04a\t\xCCV[a\x032V[a\x01\x1E\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;\x81V[`@Q\x90\x81R` \x01a\0\xDBV[a\x01?a\x01:6`\x04a\t\xFDV[a\x04\x1AV[`@Q\x90\x15\x15\x81R` \x01a\0\xDBV[a\0\xC7s\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x81V[a\0\xC7s\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8\x81V[a\0\xC7s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x81V[a\0\xC7s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x81V[3s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x14a\x02<W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FHoprWrapperProxy: Only accept WX`D\x82\x01Ro$'\xA8)/\xAA'\xA5\xA2\xA7\x10:7\xB5\xB2\xB7`\x81\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x02\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FHoprWrapperProxy: Must be sendin`D\x82\x01Rug tokens to this proxy`P\x1B`d\x82\x01R`\x84\x01a\x023V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x89\x16\x81R` \x81\x01\x87\x90R\x7F|mf\xA1!\x16\xD24r\xC9\xD0z\x15hIT8\x9E<\xEC\xD4X\xA9s\xE2\xD5#@\xDC\xC4\0w\x91\x01`@Q\x80\x91\x03\x90\xA1a\x03(s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x87a\x06\x1BV[PPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x03\x84W`@Qs^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x90G\x80\x15a\x08\xFC\x02\x91`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x03\x80W=`\0\x80>=`\0\xFD[PPV[`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01Ra\x04\x17\x90s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xE2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\x06\x91\x90a\n\xC8V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x91\x90a\x06\x1BV[PV[`\x003s\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x14a\x04\x91W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FHoprWrapperProxy: Only accept xH`D\x82\x01Rh'\xA8)\x10:7\xB5\xB2\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x023V[`\x01`\x01`\xA0\x1B\x03\x84\x16s^\x1CNp\x04\xB7A\x1B\xA2}\xC3T3\x0F\xAB1\x14}\xFE\xF1\x14a\x05#W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FHoprWrapperProxy: Only accept xH`D\x82\x01R\x7FOPR from the Asso MultiSig\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x023V[`@\x80Qs\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8\x81R` \x81\x01\x85\x90R\x7F\x13n\xA59\xE1K\xAD\xD3r\x0Fe\xF9\xFFd\x14\xB0\xE6)\x1B\x05\xE7\xC1\x91\xCC?\x1C\x81\xFA\x9D-\xD5i\x91\x01`@Q\x80\x91\x03\x90\xA1`@Qc\x02\0\x05u`\xE5\x1B\x81Rs\tw\x07\x14>\x011\x874SVv\xCF\xE2\xE5\xCF\x8Bej\xE8`\x04\x82\x01R`$\x81\x01\x84\x90R```D\x82\x01R`\0`d\x82\x01Rs\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x90c@\0\xAE\xA0\x90`\x84\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x05\xEAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x0E\x91\x90a\n\xE1V[P`\x01\x90P[\x93\x92PPPV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x06m\x90\x84\x90a\x06rV[PPPV[`\0a\x06\xC7\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x07D\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x06mW\x80\x80` \x01\x90Q\x81\x01\x90a\x06\xE5\x91\x90a\n\xE1V[a\x06mW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x023V[``a\x07S\x84\x84`\0\x85a\x07[V[\x94\x93PPPPV[``\x82G\x10\x15a\x07\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x023V[\x84;a\x08\nW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x023V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x08&\x91\x90a\x0B'V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x08cW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x08hV[``\x91P[P\x91P\x91Pa\x08x\x82\x82\x86a\x08\x83V[\x97\x96PPPPPPPV[``\x83\x15a\x08\x92WP\x81a\x06\x14V[\x82Q\x15a\x08\xA2W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x023\x91\x90a\x0BCV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x08\xD3W`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x08\xEAW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\t\x02W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\t\x1AW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\t=W`\0\x80\xFD[a\tF\x89a\x08\xBCV[\x97Pa\tT` \x8A\x01a\x08\xBCV[\x96Pa\tb`@\x8A\x01a\x08\xBCV[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\t\x86W`\0\x80\xFD[a\t\x92\x8C\x83\x8D\x01a\x08\xD8V[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a\t\xABW`\0\x80\xFD[Pa\t\xB8\x8B\x82\x8C\x01a\x08\xD8V[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0` \x82\x84\x03\x12\x15a\t\xDEW`\0\x80\xFD[a\x06\x14\x82a\x08\xBCV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x12W`\0\x80\xFD[a\n\x1B\x84a\x08\xBCV[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n?W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\nSW`\0\x80\xFD[\x815\x81\x81\x11\x15a\neWa\nea\t\xE7V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\n\x8DWa\n\x8Da\t\xE7V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\n\xA6W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\n\xDAW`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\n\xF3W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x06\x14W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x0B\x1EW\x81\x81\x01Q\x83\x82\x01R` \x01a\x0B\x06V[PP`\0\x91\x01RV[`\0\x82Qa\x0B9\x81\x84` \x87\x01a\x0B\x03V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x0Bb\x81`@\x85\x01` \x87\x01a\x0B\x03V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 \xCD|\xF4\x7F\x8F%\xC4\xD5n\x0F\x9E\xC1\xC5\x05\x81\xDE\xC7\xF0R\xD3\xD9\x15O}&\x89\x15\x15\xE2\xCA\xEEjdsolcC\0\x08\x13\x003";
333    /// The deployed bytecode of the contract.
334    pub static HOPRWRAPPERPROXY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
335        __DEPLOYED_BYTECODE,
336    );
337    pub struct HoprWrapperProxy<M>(::ethers::contract::Contract<M>);
338    impl<M> ::core::clone::Clone for HoprWrapperProxy<M> {
339        fn clone(&self) -> Self {
340            Self(::core::clone::Clone::clone(&self.0))
341        }
342    }
343    impl<M> ::core::ops::Deref for HoprWrapperProxy<M> {
344        type Target = ::ethers::contract::Contract<M>;
345        fn deref(&self) -> &Self::Target {
346            &self.0
347        }
348    }
349    impl<M> ::core::ops::DerefMut for HoprWrapperProxy<M> {
350        fn deref_mut(&mut self) -> &mut Self::Target {
351            &mut self.0
352        }
353    }
354    impl<M> ::core::fmt::Debug for HoprWrapperProxy<M> {
355        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
356            f.debug_tuple(::core::stringify!(HoprWrapperProxy))
357                .field(&self.address())
358                .finish()
359        }
360    }
361    impl<M: ::ethers::providers::Middleware> HoprWrapperProxy<M> {
362        /// Creates a new contract instance with the specified `ethers` client at
363        /// `address`. The contract derefs to a `ethers::Contract` object.
364        pub fn new<T: Into<::ethers::core::types::Address>>(
365            address: T,
366            client: ::std::sync::Arc<M>,
367        ) -> Self {
368            Self(
369                ::ethers::contract::Contract::new(
370                    address.into(),
371                    HOPRWRAPPERPROXY_ABI.clone(),
372                    client,
373                ),
374            )
375        }
376        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
377        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
378        ///
379        /// Notes:
380        /// - If there are no constructor arguments, you should pass `()` as the argument.
381        /// - The default poll duration is 7 seconds.
382        /// - The default number of confirmations is 1 block.
383        ///
384        ///
385        /// # Example
386        ///
387        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
388        ///
389        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
390        ///
391        /// ```ignore
392        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
393        ///     abigen!(Greeter, "../greeter.json");
394        ///
395        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
396        ///    let msg = greeter_contract.greet().call().await.unwrap();
397        /// # }
398        /// ```
399        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
400            client: ::std::sync::Arc<M>,
401            constructor_args: T,
402        ) -> ::core::result::Result<
403            ::ethers::contract::builders::ContractDeployer<M, Self>,
404            ::ethers::contract::ContractError<M>,
405        > {
406            let factory = ::ethers::contract::ContractFactory::new(
407                HOPRWRAPPERPROXY_ABI.clone(),
408                HOPRWRAPPERPROXY_BYTECODE.clone().into(),
409                client,
410            );
411            let deployer = factory.deploy(constructor_args)?;
412            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
413            Ok(deployer)
414        }
415        ///Calls the contract's `ERC1820_REGISTRY` (0x013eb177) function
416        pub fn erc1820_registry(
417            &self,
418        ) -> ::ethers::contract::builders::ContractCall<
419            M,
420            ::ethers::core::types::Address,
421        > {
422            self.0
423                .method_hash([1, 62, 177, 119], ())
424                .expect("method not found (this should never happen)")
425        }
426        ///Calls the contract's `TOKENS_RECIPIENT_INTERFACE_HASH` (0x72581cc0) function
427        pub fn tokens_recipient_interface_hash(
428            &self,
429        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
430            self.0
431                .method_hash([114, 88, 28, 192], ())
432                .expect("method not found (this should never happen)")
433        }
434        ///Calls the contract's `WRAPPER` (0xe1eb13c1) function
435        pub fn wrapper(
436            &self,
437        ) -> ::ethers::contract::builders::ContractCall<
438            M,
439            ::ethers::core::types::Address,
440        > {
441            self.0
442                .method_hash([225, 235, 19, 193], ())
443                .expect("method not found (this should never happen)")
444        }
445        ///Calls the contract's `WXHOPR_TOKEN` (0xfe26277b) function
446        pub fn wxhopr_token(
447            &self,
448        ) -> ::ethers::contract::builders::ContractCall<
449            M,
450            ::ethers::core::types::Address,
451        > {
452            self.0
453                .method_hash([254, 38, 39, 123], ())
454                .expect("method not found (this should never happen)")
455        }
456        ///Calls the contract's `XDAI_MULTISIG` (0xe28f56f3) function
457        pub fn xdai_multisig(
458            &self,
459        ) -> ::ethers::contract::builders::ContractCall<
460            M,
461            ::ethers::core::types::Address,
462        > {
463            self.0
464                .method_hash([226, 143, 86, 243], ())
465                .expect("method not found (this should never happen)")
466        }
467        ///Calls the contract's `XHOPR_TOKEN` (0xb861fa9e) function
468        pub fn xhopr_token(
469            &self,
470        ) -> ::ethers::contract::builders::ContractCall<
471            M,
472            ::ethers::core::types::Address,
473        > {
474            self.0
475                .method_hash([184, 97, 250, 158], ())
476                .expect("method not found (this should never happen)")
477        }
478        ///Calls the contract's `onTokenTransfer` (0xa4c0ed36) function
479        pub fn on_token_transfer(
480            &self,
481            from: ::ethers::core::types::Address,
482            value: ::ethers::core::types::U256,
483            p2: ::ethers::core::types::Bytes,
484        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
485            self.0
486                .method_hash([164, 192, 237, 54], (from, value, p2))
487                .expect("method not found (this should never happen)")
488        }
489        ///Calls the contract's `recoverTokens` (0x16114acd) function
490        pub fn recover_tokens(
491            &self,
492            token: ::ethers::core::types::Address,
493        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
494            self.0
495                .method_hash([22, 17, 74, 205], token)
496                .expect("method not found (this should never happen)")
497        }
498        ///Calls the contract's `tokensReceived` (0x0023de29) function
499        pub fn tokens_received(
500            &self,
501            p0: ::ethers::core::types::Address,
502            from: ::ethers::core::types::Address,
503            to: ::ethers::core::types::Address,
504            amount: ::ethers::core::types::U256,
505            p4: ::ethers::core::types::Bytes,
506            p5: ::ethers::core::types::Bytes,
507        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
508            self.0
509                .method_hash([0, 35, 222, 41], (p0, from, to, amount, p4, p5))
510                .expect("method not found (this should never happen)")
511        }
512        ///Gets the contract's `FowardedFrom` event
513        pub fn fowarded_from_filter(
514            &self,
515        ) -> ::ethers::contract::builders::Event<
516            ::std::sync::Arc<M>,
517            M,
518            FowardedFromFilter,
519        > {
520            self.0.event()
521        }
522        ///Gets the contract's `FowardedTo` event
523        pub fn fowarded_to_filter(
524            &self,
525        ) -> ::ethers::contract::builders::Event<
526            ::std::sync::Arc<M>,
527            M,
528            FowardedToFilter,
529        > {
530            self.0.event()
531        }
532        /// Returns an `Event` builder for all the events of this contract.
533        pub fn events(
534            &self,
535        ) -> ::ethers::contract::builders::Event<
536            ::std::sync::Arc<M>,
537            M,
538            HoprWrapperProxyEvents,
539        > {
540            self.0.event_with_filter(::core::default::Default::default())
541        }
542    }
543    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
544    for HoprWrapperProxy<M> {
545        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
546            Self::new(contract.address(), contract.client())
547        }
548    }
549    #[derive(
550        Clone,
551        ::ethers::contract::EthEvent,
552        ::ethers::contract::EthDisplay,
553        serde::Serialize,
554        serde::Deserialize,
555        Default,
556        Debug,
557        PartialEq,
558        Eq,
559        Hash
560    )]
561    #[ethevent(name = "FowardedFrom", abi = "FowardedFrom(address,uint256)")]
562    pub struct FowardedFromFilter {
563        pub from: ::ethers::core::types::Address,
564        pub amount: ::ethers::core::types::U256,
565    }
566    #[derive(
567        Clone,
568        ::ethers::contract::EthEvent,
569        ::ethers::contract::EthDisplay,
570        serde::Serialize,
571        serde::Deserialize,
572        Default,
573        Debug,
574        PartialEq,
575        Eq,
576        Hash
577    )]
578    #[ethevent(name = "FowardedTo", abi = "FowardedTo(address,uint256)")]
579    pub struct FowardedToFilter {
580        pub to: ::ethers::core::types::Address,
581        pub amount: ::ethers::core::types::U256,
582    }
583    ///Container type for all of the contract's events
584    #[derive(
585        Clone,
586        ::ethers::contract::EthAbiType,
587        serde::Serialize,
588        serde::Deserialize,
589        Debug,
590        PartialEq,
591        Eq,
592        Hash
593    )]
594    pub enum HoprWrapperProxyEvents {
595        FowardedFromFilter(FowardedFromFilter),
596        FowardedToFilter(FowardedToFilter),
597    }
598    impl ::ethers::contract::EthLogDecode for HoprWrapperProxyEvents {
599        fn decode_log(
600            log: &::ethers::core::abi::RawLog,
601        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
602            if let Ok(decoded) = FowardedFromFilter::decode_log(log) {
603                return Ok(HoprWrapperProxyEvents::FowardedFromFilter(decoded));
604            }
605            if let Ok(decoded) = FowardedToFilter::decode_log(log) {
606                return Ok(HoprWrapperProxyEvents::FowardedToFilter(decoded));
607            }
608            Err(::ethers::core::abi::Error::InvalidData)
609        }
610    }
611    impl ::core::fmt::Display for HoprWrapperProxyEvents {
612        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
613            match self {
614                Self::FowardedFromFilter(element) => {
615                    ::core::fmt::Display::fmt(element, f)
616                }
617                Self::FowardedToFilter(element) => ::core::fmt::Display::fmt(element, f),
618            }
619        }
620    }
621    impl ::core::convert::From<FowardedFromFilter> for HoprWrapperProxyEvents {
622        fn from(value: FowardedFromFilter) -> Self {
623            Self::FowardedFromFilter(value)
624        }
625    }
626    impl ::core::convert::From<FowardedToFilter> for HoprWrapperProxyEvents {
627        fn from(value: FowardedToFilter) -> Self {
628            Self::FowardedToFilter(value)
629        }
630    }
631    ///Container type for all input parameters for the `ERC1820_REGISTRY` function with signature `ERC1820_REGISTRY()` and selector `0x013eb177`
632    #[derive(
633        Clone,
634        ::ethers::contract::EthCall,
635        ::ethers::contract::EthDisplay,
636        serde::Serialize,
637        serde::Deserialize,
638        Default,
639        Debug,
640        PartialEq,
641        Eq,
642        Hash
643    )]
644    #[ethcall(name = "ERC1820_REGISTRY", abi = "ERC1820_REGISTRY()")]
645    pub struct Erc1820RegistryCall;
646    ///Container type for all input parameters for the `TOKENS_RECIPIENT_INTERFACE_HASH` function with signature `TOKENS_RECIPIENT_INTERFACE_HASH()` and selector `0x72581cc0`
647    #[derive(
648        Clone,
649        ::ethers::contract::EthCall,
650        ::ethers::contract::EthDisplay,
651        serde::Serialize,
652        serde::Deserialize,
653        Default,
654        Debug,
655        PartialEq,
656        Eq,
657        Hash
658    )]
659    #[ethcall(
660        name = "TOKENS_RECIPIENT_INTERFACE_HASH",
661        abi = "TOKENS_RECIPIENT_INTERFACE_HASH()"
662    )]
663    pub struct TokensRecipientInterfaceHashCall;
664    ///Container type for all input parameters for the `WRAPPER` function with signature `WRAPPER()` and selector `0xe1eb13c1`
665    #[derive(
666        Clone,
667        ::ethers::contract::EthCall,
668        ::ethers::contract::EthDisplay,
669        serde::Serialize,
670        serde::Deserialize,
671        Default,
672        Debug,
673        PartialEq,
674        Eq,
675        Hash
676    )]
677    #[ethcall(name = "WRAPPER", abi = "WRAPPER()")]
678    pub struct WrapperCall;
679    ///Container type for all input parameters for the `WXHOPR_TOKEN` function with signature `WXHOPR_TOKEN()` and selector `0xfe26277b`
680    #[derive(
681        Clone,
682        ::ethers::contract::EthCall,
683        ::ethers::contract::EthDisplay,
684        serde::Serialize,
685        serde::Deserialize,
686        Default,
687        Debug,
688        PartialEq,
689        Eq,
690        Hash
691    )]
692    #[ethcall(name = "WXHOPR_TOKEN", abi = "WXHOPR_TOKEN()")]
693    pub struct WxhoprTokenCall;
694    ///Container type for all input parameters for the `XDAI_MULTISIG` function with signature `XDAI_MULTISIG()` and selector `0xe28f56f3`
695    #[derive(
696        Clone,
697        ::ethers::contract::EthCall,
698        ::ethers::contract::EthDisplay,
699        serde::Serialize,
700        serde::Deserialize,
701        Default,
702        Debug,
703        PartialEq,
704        Eq,
705        Hash
706    )]
707    #[ethcall(name = "XDAI_MULTISIG", abi = "XDAI_MULTISIG()")]
708    pub struct XdaiMultisigCall;
709    ///Container type for all input parameters for the `XHOPR_TOKEN` function with signature `XHOPR_TOKEN()` and selector `0xb861fa9e`
710    #[derive(
711        Clone,
712        ::ethers::contract::EthCall,
713        ::ethers::contract::EthDisplay,
714        serde::Serialize,
715        serde::Deserialize,
716        Default,
717        Debug,
718        PartialEq,
719        Eq,
720        Hash
721    )]
722    #[ethcall(name = "XHOPR_TOKEN", abi = "XHOPR_TOKEN()")]
723    pub struct XhoprTokenCall;
724    ///Container type for all input parameters for the `onTokenTransfer` function with signature `onTokenTransfer(address,uint256,bytes)` and selector `0xa4c0ed36`
725    #[derive(
726        Clone,
727        ::ethers::contract::EthCall,
728        ::ethers::contract::EthDisplay,
729        serde::Serialize,
730        serde::Deserialize,
731        Default,
732        Debug,
733        PartialEq,
734        Eq,
735        Hash
736    )]
737    #[ethcall(name = "onTokenTransfer", abi = "onTokenTransfer(address,uint256,bytes)")]
738    pub struct OnTokenTransferCall {
739        pub from: ::ethers::core::types::Address,
740        pub value: ::ethers::core::types::U256,
741        pub p2: ::ethers::core::types::Bytes,
742    }
743    ///Container type for all input parameters for the `recoverTokens` function with signature `recoverTokens(address)` and selector `0x16114acd`
744    #[derive(
745        Clone,
746        ::ethers::contract::EthCall,
747        ::ethers::contract::EthDisplay,
748        serde::Serialize,
749        serde::Deserialize,
750        Default,
751        Debug,
752        PartialEq,
753        Eq,
754        Hash
755    )]
756    #[ethcall(name = "recoverTokens", abi = "recoverTokens(address)")]
757    pub struct RecoverTokensCall {
758        pub token: ::ethers::core::types::Address,
759    }
760    ///Container type for all input parameters for the `tokensReceived` function with signature `tokensReceived(address,address,address,uint256,bytes,bytes)` and selector `0x0023de29`
761    #[derive(
762        Clone,
763        ::ethers::contract::EthCall,
764        ::ethers::contract::EthDisplay,
765        serde::Serialize,
766        serde::Deserialize,
767        Default,
768        Debug,
769        PartialEq,
770        Eq,
771        Hash
772    )]
773    #[ethcall(
774        name = "tokensReceived",
775        abi = "tokensReceived(address,address,address,uint256,bytes,bytes)"
776    )]
777    pub struct TokensReceivedCall {
778        pub p0: ::ethers::core::types::Address,
779        pub from: ::ethers::core::types::Address,
780        pub to: ::ethers::core::types::Address,
781        pub amount: ::ethers::core::types::U256,
782        pub p4: ::ethers::core::types::Bytes,
783        pub p5: ::ethers::core::types::Bytes,
784    }
785    ///Container type for all of the contract's call
786    #[derive(
787        Clone,
788        ::ethers::contract::EthAbiType,
789        serde::Serialize,
790        serde::Deserialize,
791        Debug,
792        PartialEq,
793        Eq,
794        Hash
795    )]
796    pub enum HoprWrapperProxyCalls {
797        Erc1820Registry(Erc1820RegistryCall),
798        TokensRecipientInterfaceHash(TokensRecipientInterfaceHashCall),
799        Wrapper(WrapperCall),
800        WxhoprToken(WxhoprTokenCall),
801        XdaiMultisig(XdaiMultisigCall),
802        XhoprToken(XhoprTokenCall),
803        OnTokenTransfer(OnTokenTransferCall),
804        RecoverTokens(RecoverTokensCall),
805        TokensReceived(TokensReceivedCall),
806    }
807    impl ::ethers::core::abi::AbiDecode for HoprWrapperProxyCalls {
808        fn decode(
809            data: impl AsRef<[u8]>,
810        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
811            let data = data.as_ref();
812            if let Ok(decoded) = <Erc1820RegistryCall as ::ethers::core::abi::AbiDecode>::decode(
813                data,
814            ) {
815                return Ok(Self::Erc1820Registry(decoded));
816            }
817            if let Ok(decoded) = <TokensRecipientInterfaceHashCall as ::ethers::core::abi::AbiDecode>::decode(
818                data,
819            ) {
820                return Ok(Self::TokensRecipientInterfaceHash(decoded));
821            }
822            if let Ok(decoded) = <WrapperCall as ::ethers::core::abi::AbiDecode>::decode(
823                data,
824            ) {
825                return Ok(Self::Wrapper(decoded));
826            }
827            if let Ok(decoded) = <WxhoprTokenCall as ::ethers::core::abi::AbiDecode>::decode(
828                data,
829            ) {
830                return Ok(Self::WxhoprToken(decoded));
831            }
832            if let Ok(decoded) = <XdaiMultisigCall as ::ethers::core::abi::AbiDecode>::decode(
833                data,
834            ) {
835                return Ok(Self::XdaiMultisig(decoded));
836            }
837            if let Ok(decoded) = <XhoprTokenCall as ::ethers::core::abi::AbiDecode>::decode(
838                data,
839            ) {
840                return Ok(Self::XhoprToken(decoded));
841            }
842            if let Ok(decoded) = <OnTokenTransferCall as ::ethers::core::abi::AbiDecode>::decode(
843                data,
844            ) {
845                return Ok(Self::OnTokenTransfer(decoded));
846            }
847            if let Ok(decoded) = <RecoverTokensCall as ::ethers::core::abi::AbiDecode>::decode(
848                data,
849            ) {
850                return Ok(Self::RecoverTokens(decoded));
851            }
852            if let Ok(decoded) = <TokensReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
853                data,
854            ) {
855                return Ok(Self::TokensReceived(decoded));
856            }
857            Err(::ethers::core::abi::Error::InvalidData.into())
858        }
859    }
860    impl ::ethers::core::abi::AbiEncode for HoprWrapperProxyCalls {
861        fn encode(self) -> Vec<u8> {
862            match self {
863                Self::Erc1820Registry(element) => {
864                    ::ethers::core::abi::AbiEncode::encode(element)
865                }
866                Self::TokensRecipientInterfaceHash(element) => {
867                    ::ethers::core::abi::AbiEncode::encode(element)
868                }
869                Self::Wrapper(element) => ::ethers::core::abi::AbiEncode::encode(element),
870                Self::WxhoprToken(element) => {
871                    ::ethers::core::abi::AbiEncode::encode(element)
872                }
873                Self::XdaiMultisig(element) => {
874                    ::ethers::core::abi::AbiEncode::encode(element)
875                }
876                Self::XhoprToken(element) => {
877                    ::ethers::core::abi::AbiEncode::encode(element)
878                }
879                Self::OnTokenTransfer(element) => {
880                    ::ethers::core::abi::AbiEncode::encode(element)
881                }
882                Self::RecoverTokens(element) => {
883                    ::ethers::core::abi::AbiEncode::encode(element)
884                }
885                Self::TokensReceived(element) => {
886                    ::ethers::core::abi::AbiEncode::encode(element)
887                }
888            }
889        }
890    }
891    impl ::core::fmt::Display for HoprWrapperProxyCalls {
892        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
893            match self {
894                Self::Erc1820Registry(element) => ::core::fmt::Display::fmt(element, f),
895                Self::TokensRecipientInterfaceHash(element) => {
896                    ::core::fmt::Display::fmt(element, f)
897                }
898                Self::Wrapper(element) => ::core::fmt::Display::fmt(element, f),
899                Self::WxhoprToken(element) => ::core::fmt::Display::fmt(element, f),
900                Self::XdaiMultisig(element) => ::core::fmt::Display::fmt(element, f),
901                Self::XhoprToken(element) => ::core::fmt::Display::fmt(element, f),
902                Self::OnTokenTransfer(element) => ::core::fmt::Display::fmt(element, f),
903                Self::RecoverTokens(element) => ::core::fmt::Display::fmt(element, f),
904                Self::TokensReceived(element) => ::core::fmt::Display::fmt(element, f),
905            }
906        }
907    }
908    impl ::core::convert::From<Erc1820RegistryCall> for HoprWrapperProxyCalls {
909        fn from(value: Erc1820RegistryCall) -> Self {
910            Self::Erc1820Registry(value)
911        }
912    }
913    impl ::core::convert::From<TokensRecipientInterfaceHashCall>
914    for HoprWrapperProxyCalls {
915        fn from(value: TokensRecipientInterfaceHashCall) -> Self {
916            Self::TokensRecipientInterfaceHash(value)
917        }
918    }
919    impl ::core::convert::From<WrapperCall> for HoprWrapperProxyCalls {
920        fn from(value: WrapperCall) -> Self {
921            Self::Wrapper(value)
922        }
923    }
924    impl ::core::convert::From<WxhoprTokenCall> for HoprWrapperProxyCalls {
925        fn from(value: WxhoprTokenCall) -> Self {
926            Self::WxhoprToken(value)
927        }
928    }
929    impl ::core::convert::From<XdaiMultisigCall> for HoprWrapperProxyCalls {
930        fn from(value: XdaiMultisigCall) -> Self {
931            Self::XdaiMultisig(value)
932        }
933    }
934    impl ::core::convert::From<XhoprTokenCall> for HoprWrapperProxyCalls {
935        fn from(value: XhoprTokenCall) -> Self {
936            Self::XhoprToken(value)
937        }
938    }
939    impl ::core::convert::From<OnTokenTransferCall> for HoprWrapperProxyCalls {
940        fn from(value: OnTokenTransferCall) -> Self {
941            Self::OnTokenTransfer(value)
942        }
943    }
944    impl ::core::convert::From<RecoverTokensCall> for HoprWrapperProxyCalls {
945        fn from(value: RecoverTokensCall) -> Self {
946            Self::RecoverTokens(value)
947        }
948    }
949    impl ::core::convert::From<TokensReceivedCall> for HoprWrapperProxyCalls {
950        fn from(value: TokensReceivedCall) -> Self {
951            Self::TokensReceived(value)
952        }
953    }
954    ///Container type for all return fields from the `ERC1820_REGISTRY` function with signature `ERC1820_REGISTRY()` and selector `0x013eb177`
955    #[derive(
956        Clone,
957        ::ethers::contract::EthAbiType,
958        ::ethers::contract::EthAbiCodec,
959        serde::Serialize,
960        serde::Deserialize,
961        Default,
962        Debug,
963        PartialEq,
964        Eq,
965        Hash
966    )]
967    pub struct Erc1820RegistryReturn(pub ::ethers::core::types::Address);
968    ///Container type for all return fields from the `TOKENS_RECIPIENT_INTERFACE_HASH` function with signature `TOKENS_RECIPIENT_INTERFACE_HASH()` and selector `0x72581cc0`
969    #[derive(
970        Clone,
971        ::ethers::contract::EthAbiType,
972        ::ethers::contract::EthAbiCodec,
973        serde::Serialize,
974        serde::Deserialize,
975        Default,
976        Debug,
977        PartialEq,
978        Eq,
979        Hash
980    )]
981    pub struct TokensRecipientInterfaceHashReturn(pub [u8; 32]);
982    ///Container type for all return fields from the `WRAPPER` function with signature `WRAPPER()` and selector `0xe1eb13c1`
983    #[derive(
984        Clone,
985        ::ethers::contract::EthAbiType,
986        ::ethers::contract::EthAbiCodec,
987        serde::Serialize,
988        serde::Deserialize,
989        Default,
990        Debug,
991        PartialEq,
992        Eq,
993        Hash
994    )]
995    pub struct WrapperReturn(pub ::ethers::core::types::Address);
996    ///Container type for all return fields from the `WXHOPR_TOKEN` function with signature `WXHOPR_TOKEN()` and selector `0xfe26277b`
997    #[derive(
998        Clone,
999        ::ethers::contract::EthAbiType,
1000        ::ethers::contract::EthAbiCodec,
1001        serde::Serialize,
1002        serde::Deserialize,
1003        Default,
1004        Debug,
1005        PartialEq,
1006        Eq,
1007        Hash
1008    )]
1009    pub struct WxhoprTokenReturn(pub ::ethers::core::types::Address);
1010    ///Container type for all return fields from the `XDAI_MULTISIG` function with signature `XDAI_MULTISIG()` and selector `0xe28f56f3`
1011    #[derive(
1012        Clone,
1013        ::ethers::contract::EthAbiType,
1014        ::ethers::contract::EthAbiCodec,
1015        serde::Serialize,
1016        serde::Deserialize,
1017        Default,
1018        Debug,
1019        PartialEq,
1020        Eq,
1021        Hash
1022    )]
1023    pub struct XdaiMultisigReturn(pub ::ethers::core::types::Address);
1024    ///Container type for all return fields from the `XHOPR_TOKEN` function with signature `XHOPR_TOKEN()` and selector `0xb861fa9e`
1025    #[derive(
1026        Clone,
1027        ::ethers::contract::EthAbiType,
1028        ::ethers::contract::EthAbiCodec,
1029        serde::Serialize,
1030        serde::Deserialize,
1031        Default,
1032        Debug,
1033        PartialEq,
1034        Eq,
1035        Hash
1036    )]
1037    pub struct XhoprTokenReturn(pub ::ethers::core::types::Address);
1038    ///Container type for all return fields from the `onTokenTransfer` function with signature `onTokenTransfer(address,uint256,bytes)` and selector `0xa4c0ed36`
1039    #[derive(
1040        Clone,
1041        ::ethers::contract::EthAbiType,
1042        ::ethers::contract::EthAbiCodec,
1043        serde::Serialize,
1044        serde::Deserialize,
1045        Default,
1046        Debug,
1047        PartialEq,
1048        Eq,
1049        Hash
1050    )]
1051    pub struct OnTokenTransferReturn(pub bool);
1052}