@across-protocol/contracts 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/build/artfacts.json +342 -0
  2. package/contract-types/ethers/AVMBridgeDepositBox.ts +780 -0
  3. package/contract-types/ethers/AVMCrossDomainEnabled.ts +75 -0
  4. package/contract-types/ethers/AccessControl.ts +353 -0
  5. package/contract-types/ethers/AddressWhitelistInterface.ts +184 -0
  6. package/contract-types/ethers/ArbSys.ts +354 -0
  7. package/contract-types/ethers/ArbitrumBridgeMock.ts +159 -0
  8. package/contract-types/ethers/ArbitrumCrossDomainEnabled.ts +74 -0
  9. package/contract-types/ethers/ArbitrumInboxMock.ts +155 -0
  10. package/contract-types/ethers/ArbitrumMessenger.ts +297 -0
  11. package/contract-types/ethers/ArbitrumOutboxMock.ts +80 -0
  12. package/contract-types/ethers/ArbitrumParentMessenger.ts +1028 -0
  13. package/contract-types/ethers/Bridge.ts +1537 -0
  14. package/contract-types/ethers/BridgeAdmin.ts +1011 -0
  15. package/contract-types/ethers/BridgeAdminInterface.ts +409 -0
  16. package/contract-types/ethers/BridgeDepositBox.ts +557 -0
  17. package/contract-types/ethers/BridgeDepositBoxMock.ts +739 -0
  18. package/contract-types/ethers/BridgePool.ts +1741 -0
  19. package/contract-types/ethers/BridgePoolInterface.ts +173 -0
  20. package/contract-types/ethers/BridgePoolProd.ts +1741 -0
  21. package/contract-types/ethers/CrossDomainEnabled.ts +74 -0
  22. package/contract-types/ethers/ERC165.ts +95 -0
  23. package/contract-types/ethers/ERC20.ts +410 -0
  24. package/contract-types/ethers/FinderInterface.ts +136 -0
  25. package/contract-types/ethers/FxBaseChildTunnel.ts +185 -0
  26. package/contract-types/ethers/FxBaseRootTunnel.ts +234 -0
  27. package/contract-types/ethers/FxChildMock.ts +182 -0
  28. package/contract-types/ethers/FxRootMock.ts +159 -0
  29. package/contract-types/ethers/GenericHandler.ts +502 -0
  30. package/contract-types/ethers/IAccessControl.ts +235 -0
  31. package/contract-types/ethers/IArbitrumInbox.ts +155 -0
  32. package/contract-types/ethers/IArbitrumOutbox.ts +80 -0
  33. package/contract-types/ethers/IBridge.ts +126 -0
  34. package/contract-types/ethers/ICheckpointManager.ts +120 -0
  35. package/contract-types/ethers/ICrossDomainMessenger.ts +189 -0
  36. package/contract-types/ethers/IDepositExecute.ts +154 -0
  37. package/contract-types/ethers/IERC165.ts +95 -0
  38. package/contract-types/ethers/IERC20.ts +293 -0
  39. package/contract-types/ethers/IERC20Metadata.ts +332 -0
  40. package/contract-types/ethers/IERCHandler.ts +175 -0
  41. package/contract-types/ethers/IFxMessageProcessor.ts +108 -0
  42. package/contract-types/ethers/IFxStateSender.ts +102 -0
  43. package/contract-types/ethers/IGenericHandler.ts +112 -0
  44. package/contract-types/ethers/IL2ERC20Bridge.ts +350 -0
  45. package/contract-types/ethers/IOVMCrossDomainMessenger.ts +164 -0
  46. package/contract-types/ethers/IStateReceiver.ts +103 -0
  47. package/contract-types/ethers/IStateSender.ts +99 -0
  48. package/contract-types/ethers/IdentifierWhitelistInterface.ts +165 -0
  49. package/contract-types/ethers/Lockable.ts +50 -0
  50. package/contract-types/ethers/MessengerInterface.ts +136 -0
  51. package/contract-types/ethers/MessengerMock.ts +160 -0
  52. package/contract-types/ethers/MultiCaller.ts +91 -0
  53. package/contract-types/ethers/OVMBridgeDepositBox.ts +751 -0
  54. package/contract-types/ethers/OVMCrossDomainEnabled.ts +74 -0
  55. package/contract-types/ethers/OVML1CrossDomainMessengerMock.ts +190 -0
  56. package/contract-types/ethers/OVMOETHBridgeDepositBox.ts +783 -0
  57. package/contract-types/ethers/OptimismMessenger.ts +245 -0
  58. package/contract-types/ethers/OptimismWrapper.ts +264 -0
  59. package/contract-types/ethers/OptimisticOracleConstraints.ts +82 -0
  60. package/contract-types/ethers/OptimisticOracleInterface.ts +804 -0
  61. package/contract-types/ethers/OracleInterfaces.ts +235 -0
  62. package/contract-types/ethers/Ownable.ts +158 -0
  63. package/contract-types/ethers/ParentMessengerBase.ts +554 -0
  64. package/contract-types/ethers/ParentMessengerConsumerInterface.ts +104 -0
  65. package/contract-types/ethers/ParentMessengerInterface.ts +116 -0
  66. package/contract-types/ethers/Pausable.ts +94 -0
  67. package/contract-types/ethers/SkinnyOptimisticOracleInterface.ts +727 -0
  68. package/contract-types/ethers/StandardBridgeLike.ts +113 -0
  69. package/contract-types/ethers/StateSyncMock.ts +122 -0
  70. package/contract-types/ethers/StoreInterface.ts +228 -0
  71. package/contract-types/ethers/Testable.ts +136 -0
  72. package/contract-types/ethers/Timer.ts +117 -0
  73. package/contract-types/ethers/TokenLike.ts +88 -0
  74. package/contract-types/ethers/WETH9Like.ts +138 -0
  75. package/contract-types/ethers/common.ts +44 -0
  76. package/contract-types/ethers/factories/AVMBridgeDepositBox__factory.ts +649 -0
  77. package/contract-types/ethers/factories/AVMCrossDomainEnabled__factory.ts +61 -0
  78. package/contract-types/ethers/factories/AccessControl__factory.ts +227 -0
  79. package/contract-types/ethers/factories/AddressWhitelistInterface__factory.ts +88 -0
  80. package/contract-types/ethers/factories/ArbSys__factory.ts +244 -0
  81. package/contract-types/ethers/factories/ArbitrumBridgeMock__factory.ts +118 -0
  82. package/contract-types/ethers/factories/ArbitrumCrossDomainEnabled__factory.ts +43 -0
  83. package/contract-types/ethers/factories/ArbitrumInboxMock__factory.ts +128 -0
  84. package/contract-types/ethers/factories/ArbitrumMessenger__factory.ts +243 -0
  85. package/contract-types/ethers/factories/ArbitrumOutboxMock__factory.ts +74 -0
  86. package/contract-types/ethers/factories/ArbitrumParentMessenger__factory.ts +680 -0
  87. package/contract-types/ethers/factories/BridgeAdminInterface__factory.ts +338 -0
  88. package/contract-types/ethers/factories/BridgeAdmin__factory.ts +737 -0
  89. package/contract-types/ethers/factories/BridgeDepositBoxMock__factory.ts +591 -0
  90. package/contract-types/ethers/factories/BridgeDepositBox__factory.ts +406 -0
  91. package/contract-types/ethers/factories/BridgePoolInterface__factory.ts +78 -0
  92. package/contract-types/ethers/factories/BridgePoolProd__factory.ts +1798 -0
  93. package/contract-types/ethers/factories/BridgePool__factory.ts +1795 -0
  94. package/contract-types/ethers/factories/Bridge__factory.ts +1094 -0
  95. package/contract-types/ethers/factories/CrossDomainEnabled__factory.ts +90 -0
  96. package/contract-types/ethers/factories/ERC165__factory.ts +39 -0
  97. package/contract-types/ethers/factories/ERC20__factory.ts +345 -0
  98. package/contract-types/ethers/factories/FinderInterface__factory.ts +63 -0
  99. package/contract-types/ethers/factories/FxBaseChildTunnel__factory.ts +101 -0
  100. package/contract-types/ethers/factories/FxBaseRootTunnel__factory.ts +123 -0
  101. package/contract-types/ethers/factories/FxChildMock__factory.ts +153 -0
  102. package/contract-types/ethers/factories/FxRootMock__factory.ts +128 -0
  103. package/contract-types/ethers/factories/GenericHandler__factory.ts +395 -0
  104. package/contract-types/ethers/factories/IAccessControl__factory.ts +123 -0
  105. package/contract-types/ethers/factories/IArbitrumInbox__factory.ts +93 -0
  106. package/contract-types/ethers/factories/IArbitrumOutbox__factory.ts +39 -0
  107. package/contract-types/ethers/factories/IBridge__factory.ts +59 -0
  108. package/contract-types/ethers/factories/ICheckpointManager__factory.ts +100 -0
  109. package/contract-types/ethers/factories/ICrossDomainMessenger__factory.ts +129 -0
  110. package/contract-types/ethers/factories/IDepositExecute__factory.ts +77 -0
  111. package/contract-types/ethers/factories/IERC165__factory.ts +42 -0
  112. package/contract-types/ethers/factories/IERC20Metadata__factory.ts +248 -0
  113. package/contract-types/ethers/factories/IERC20__factory.ts +203 -0
  114. package/contract-types/ethers/factories/IERCHandler__factory.ts +77 -0
  115. package/contract-types/ethers/factories/IFxMessageProcessor__factory.ts +49 -0
  116. package/contract-types/ethers/factories/IFxStateSender__factory.ts +44 -0
  117. package/contract-types/ethers/factories/IGenericHandler__factory.ts +54 -0
  118. package/contract-types/ethers/factories/IL2ERC20Bridge__factory.ts +267 -0
  119. package/contract-types/ethers/factories/IOVMCrossDomainMessenger__factory.ts +105 -0
  120. package/contract-types/ethers/factories/IStateReceiver__factory.ts +44 -0
  121. package/contract-types/ethers/factories/IStateSender__factory.ts +41 -0
  122. package/contract-types/ethers/factories/IdentifierWhitelistInterface__factory.ts +75 -0
  123. package/contract-types/ethers/factories/Lockable__factory.ts +63 -0
  124. package/contract-types/ethers/factories/MessengerInterface__factory.ts +69 -0
  125. package/contract-types/ethers/factories/MessengerMock__factory.ts +132 -0
  126. package/contract-types/ethers/factories/MultiCaller__factory.ts +77 -0
  127. package/contract-types/ethers/factories/OVMBridgeDepositBox__factory.ts +609 -0
  128. package/contract-types/ethers/factories/OVMCrossDomainEnabled__factory.ts +94 -0
  129. package/contract-types/ethers/factories/OVML1CrossDomainMessengerMock__factory.ts +166 -0
  130. package/contract-types/ethers/factories/OVMOETHBridgeDepositBox__factory.ts +665 -0
  131. package/contract-types/ethers/factories/OptimismMessenger__factory.ts +185 -0
  132. package/contract-types/ethers/factories/OptimismWrapper__factory.ts +200 -0
  133. package/contract-types/ethers/factories/OptimisticOracleConstraints__factory.ts +80 -0
  134. package/contract-types/ethers/factories/OptimisticOracleInterface__factory.ts +574 -0
  135. package/contract-types/ethers/factories/OracleInterfaces__factory.ts +191 -0
  136. package/contract-types/ethers/factories/Ownable__factory.ts +75 -0
  137. package/contract-types/ethers/factories/ParentMessengerBase__factory.ts +312 -0
  138. package/contract-types/ethers/factories/ParentMessengerConsumerInterface__factory.ts +50 -0
  139. package/contract-types/ethers/factories/ParentMessengerInterface__factory.ts +56 -0
  140. package/contract-types/ethers/factories/Pausable__factory.ts +62 -0
  141. package/contract-types/ethers/factories/SkinnyOptimisticOracleInterface__factory.ts +874 -0
  142. package/contract-types/ethers/factories/StandardBridgeLike__factory.ts +60 -0
  143. package/contract-types/ethers/factories/StateSyncMock__factory.ts +101 -0
  144. package/contract-types/ethers/factories/StoreInterface__factory.ts +139 -0
  145. package/contract-types/ethers/factories/Testable__factory.ts +62 -0
  146. package/contract-types/ethers/factories/Timer__factory.ts +86 -0
  147. package/contract-types/ethers/factories/TokenLike__factory.ts +42 -0
  148. package/contract-types/ethers/factories/WETH9Like__factory.ts +67 -0
  149. package/contract-types/ethers/hardhat.d.ts +798 -0
  150. package/contract-types/ethers/index.ts +150 -0
  151. package/contract-types/web3/AVM_BridgeDepositBox.ts +269 -0
  152. package/contract-types/web3/AVM_CrossDomainEnabled.ts +62 -0
  153. package/contract-types/web3/AccessControl.ts +127 -0
  154. package/contract-types/web3/AddressWhitelistInterface.ts +43 -0
  155. package/contract-types/web3/ArbSys.ts +112 -0
  156. package/contract-types/web3/Arbitrum_BridgeMock.ts +46 -0
  157. package/contract-types/web3/Arbitrum_CrossDomainEnabled.ts +37 -0
  158. package/contract-types/web3/Arbitrum_InboxMock.ts +48 -0
  159. package/contract-types/web3/Arbitrum_Messenger.ts +106 -0
  160. package/contract-types/web3/Arbitrum_OutboxMock.ts +37 -0
  161. package/contract-types/web3/Arbitrum_ParentMessenger.ts +348 -0
  162. package/contract-types/web3/Bridge.ts +401 -0
  163. package/contract-types/web3/BridgeAdmin.ts +357 -0
  164. package/contract-types/web3/BridgeAdminInterface.ts +265 -0
  165. package/contract-types/web3/BridgeDepositBox.ts +203 -0
  166. package/contract-types/web3/BridgeDepositBoxMock.ts +241 -0
  167. package/contract-types/web3/BridgePool.ts +520 -0
  168. package/contract-types/web3/BridgePoolInterface.ts +47 -0
  169. package/contract-types/web3/BridgePoolProd.ts +520 -0
  170. package/contract-types/web3/CrossDomainEnabled.ts +37 -0
  171. package/contract-types/web3/ERC165.ts +39 -0
  172. package/contract-types/web3/ERC20.ts +105 -0
  173. package/contract-types/web3/FinderInterface.ts +44 -0
  174. package/contract-types/web3/FxBaseChildTunnel.ts +65 -0
  175. package/contract-types/web3/FxBaseRootTunnel.ts +53 -0
  176. package/contract-types/web3/FxChildMock.ts +68 -0
  177. package/contract-types/web3/FxRootMock.ts +46 -0
  178. package/contract-types/web3/GenericHandler.ts +94 -0
  179. package/contract-types/web3/IAccessControl.ts +57 -0
  180. package/contract-types/web3/IBridge.ts +43 -0
  181. package/contract-types/web3/ICheckpointManager.ts +48 -0
  182. package/contract-types/web3/ICrossDomainMessenger.ts +103 -0
  183. package/contract-types/web3/IDepositExecute.ts +48 -0
  184. package/contract-types/web3/IERC165.ts +39 -0
  185. package/contract-types/web3/IERC20.ts +89 -0
  186. package/contract-types/web3/IERC20Metadata.ts +95 -0
  187. package/contract-types/web3/IERCHandler.ts +48 -0
  188. package/contract-types/web3/IFxMessageProcessor.ts +41 -0
  189. package/contract-types/web3/IFxStateSender.ts +40 -0
  190. package/contract-types/web3/IGenericHandler.ts +42 -0
  191. package/contract-types/web3/IL2ERC20Bridge.ts +143 -0
  192. package/contract-types/web3/IStateReceiver.ts +40 -0
  193. package/contract-types/web3/IStateSender.ts +40 -0
  194. package/contract-types/web3/IdentifierWhitelistInterface.ts +47 -0
  195. package/contract-types/web3/Lockable.ts +35 -0
  196. package/contract-types/web3/MessengerInterface.ts +45 -0
  197. package/contract-types/web3/MessengerMock.ts +69 -0
  198. package/contract-types/web3/MultiCaller.ts +37 -0
  199. package/contract-types/web3/OVM_BridgeDepositBox.ts +243 -0
  200. package/contract-types/web3/OVM_CrossDomainEnabled.ts +37 -0
  201. package/contract-types/web3/OVM_L1CrossDomainMessengerMock.ts +103 -0
  202. package/contract-types/web3/OVM_OETH_BridgeDepositBox.ts +247 -0
  203. package/contract-types/web3/Optimism_Messenger.ts +73 -0
  204. package/contract-types/web3/Optimism_Wrapper.ts +86 -0
  205. package/contract-types/web3/OptimisticOracleConstraints.ts +37 -0
  206. package/contract-types/web3/OptimisticOracleInterface.ts +151 -0
  207. package/contract-types/web3/OracleInterfaces.ts +55 -0
  208. package/contract-types/web3/Ownable.ts +61 -0
  209. package/contract-types/web3/ParentMessengerBase.ts +178 -0
  210. package/contract-types/web3/ParentMessengerConsumerInterface.ts +40 -0
  211. package/contract-types/web3/ParentMessengerInterface.ts +41 -0
  212. package/contract-types/web3/Pausable.ts +58 -0
  213. package/contract-types/web3/SkinnyOptimisticOracleInterface.ts +213 -0
  214. package/contract-types/web3/StandardBridgeLike.ts +42 -0
  215. package/contract-types/web3/StateSyncMock.ts +62 -0
  216. package/contract-types/web3/StoreInterface.ts +55 -0
  217. package/contract-types/web3/Testable.ts +43 -0
  218. package/contract-types/web3/Timer.ts +41 -0
  219. package/contract-types/web3/TokenLike.ts +37 -0
  220. package/contract-types/web3/WETH9Like.ts +44 -0
  221. package/contract-types/web3/iArbitrum_Inbox.ts +48 -0
  222. package/contract-types/web3/iArbitrum_Outbox.ts +37 -0
  223. package/contract-types/web3/iOVM_CrossDomainMessenger.ts +95 -0
  224. package/contract-types/web3/types.ts +73 -0
  225. package/networks/1.json +33 -0
  226. package/networks/10.json +6 -0
  227. package/networks/42161.json +6 -0
  228. package/package.json +12 -5
@@ -0,0 +1,1094 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Signer,
6
+ utils,
7
+ Contract,
8
+ ContractFactory,
9
+ Overrides,
10
+ BigNumberish,
11
+ } from "ethers";
12
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
13
+ import type { Bridge, BridgeInterface } from "../Bridge";
14
+
15
+ const _abi = [
16
+ {
17
+ inputs: [
18
+ {
19
+ internalType: "uint8",
20
+ name: "chainID",
21
+ type: "uint8",
22
+ },
23
+ {
24
+ internalType: "address[]",
25
+ name: "initialRelayers",
26
+ type: "address[]",
27
+ },
28
+ {
29
+ internalType: "uint256",
30
+ name: "initialRelayerThreshold",
31
+ type: "uint256",
32
+ },
33
+ {
34
+ internalType: "uint256",
35
+ name: "fee",
36
+ type: "uint256",
37
+ },
38
+ {
39
+ internalType: "uint256",
40
+ name: "expiry",
41
+ type: "uint256",
42
+ },
43
+ ],
44
+ stateMutability: "nonpayable",
45
+ type: "constructor",
46
+ },
47
+ {
48
+ anonymous: false,
49
+ inputs: [
50
+ {
51
+ indexed: true,
52
+ internalType: "uint8",
53
+ name: "destinationChainID",
54
+ type: "uint8",
55
+ },
56
+ {
57
+ indexed: true,
58
+ internalType: "bytes32",
59
+ name: "resourceID",
60
+ type: "bytes32",
61
+ },
62
+ {
63
+ indexed: true,
64
+ internalType: "uint64",
65
+ name: "depositNonce",
66
+ type: "uint64",
67
+ },
68
+ ],
69
+ name: "Deposit",
70
+ type: "event",
71
+ },
72
+ {
73
+ anonymous: false,
74
+ inputs: [
75
+ {
76
+ indexed: false,
77
+ internalType: "address",
78
+ name: "account",
79
+ type: "address",
80
+ },
81
+ ],
82
+ name: "Paused",
83
+ type: "event",
84
+ },
85
+ {
86
+ anonymous: false,
87
+ inputs: [
88
+ {
89
+ indexed: true,
90
+ internalType: "uint8",
91
+ name: "originChainID",
92
+ type: "uint8",
93
+ },
94
+ {
95
+ indexed: true,
96
+ internalType: "uint64",
97
+ name: "depositNonce",
98
+ type: "uint64",
99
+ },
100
+ {
101
+ indexed: true,
102
+ internalType: "enum Bridge.ProposalStatus",
103
+ name: "status",
104
+ type: "uint8",
105
+ },
106
+ {
107
+ indexed: false,
108
+ internalType: "bytes32",
109
+ name: "resourceID",
110
+ type: "bytes32",
111
+ },
112
+ {
113
+ indexed: false,
114
+ internalType: "bytes32",
115
+ name: "dataHash",
116
+ type: "bytes32",
117
+ },
118
+ ],
119
+ name: "ProposalEvent",
120
+ type: "event",
121
+ },
122
+ {
123
+ anonymous: false,
124
+ inputs: [
125
+ {
126
+ indexed: true,
127
+ internalType: "uint8",
128
+ name: "originChainID",
129
+ type: "uint8",
130
+ },
131
+ {
132
+ indexed: true,
133
+ internalType: "uint64",
134
+ name: "depositNonce",
135
+ type: "uint64",
136
+ },
137
+ {
138
+ indexed: true,
139
+ internalType: "enum Bridge.ProposalStatus",
140
+ name: "status",
141
+ type: "uint8",
142
+ },
143
+ {
144
+ indexed: false,
145
+ internalType: "bytes32",
146
+ name: "resourceID",
147
+ type: "bytes32",
148
+ },
149
+ ],
150
+ name: "ProposalVote",
151
+ type: "event",
152
+ },
153
+ {
154
+ anonymous: false,
155
+ inputs: [
156
+ {
157
+ indexed: true,
158
+ internalType: "address",
159
+ name: "relayer",
160
+ type: "address",
161
+ },
162
+ ],
163
+ name: "RelayerAdded",
164
+ type: "event",
165
+ },
166
+ {
167
+ anonymous: false,
168
+ inputs: [
169
+ {
170
+ indexed: true,
171
+ internalType: "address",
172
+ name: "relayer",
173
+ type: "address",
174
+ },
175
+ ],
176
+ name: "RelayerRemoved",
177
+ type: "event",
178
+ },
179
+ {
180
+ anonymous: false,
181
+ inputs: [
182
+ {
183
+ indexed: true,
184
+ internalType: "uint256",
185
+ name: "newThreshold",
186
+ type: "uint256",
187
+ },
188
+ ],
189
+ name: "RelayerThresholdChanged",
190
+ type: "event",
191
+ },
192
+ {
193
+ anonymous: false,
194
+ inputs: [
195
+ {
196
+ indexed: true,
197
+ internalType: "bytes32",
198
+ name: "role",
199
+ type: "bytes32",
200
+ },
201
+ {
202
+ indexed: true,
203
+ internalType: "bytes32",
204
+ name: "previousAdminRole",
205
+ type: "bytes32",
206
+ },
207
+ {
208
+ indexed: true,
209
+ internalType: "bytes32",
210
+ name: "newAdminRole",
211
+ type: "bytes32",
212
+ },
213
+ ],
214
+ name: "RoleAdminChanged",
215
+ type: "event",
216
+ },
217
+ {
218
+ anonymous: false,
219
+ inputs: [
220
+ {
221
+ indexed: true,
222
+ internalType: "bytes32",
223
+ name: "role",
224
+ type: "bytes32",
225
+ },
226
+ {
227
+ indexed: true,
228
+ internalType: "address",
229
+ name: "account",
230
+ type: "address",
231
+ },
232
+ {
233
+ indexed: true,
234
+ internalType: "address",
235
+ name: "sender",
236
+ type: "address",
237
+ },
238
+ ],
239
+ name: "RoleGranted",
240
+ type: "event",
241
+ },
242
+ {
243
+ anonymous: false,
244
+ inputs: [
245
+ {
246
+ indexed: true,
247
+ internalType: "bytes32",
248
+ name: "role",
249
+ type: "bytes32",
250
+ },
251
+ {
252
+ indexed: true,
253
+ internalType: "address",
254
+ name: "account",
255
+ type: "address",
256
+ },
257
+ {
258
+ indexed: true,
259
+ internalType: "address",
260
+ name: "sender",
261
+ type: "address",
262
+ },
263
+ ],
264
+ name: "RoleRevoked",
265
+ type: "event",
266
+ },
267
+ {
268
+ anonymous: false,
269
+ inputs: [
270
+ {
271
+ indexed: false,
272
+ internalType: "address",
273
+ name: "account",
274
+ type: "address",
275
+ },
276
+ ],
277
+ name: "Unpaused",
278
+ type: "event",
279
+ },
280
+ {
281
+ inputs: [],
282
+ name: "DEFAULT_ADMIN_ROLE",
283
+ outputs: [
284
+ {
285
+ internalType: "bytes32",
286
+ name: "",
287
+ type: "bytes32",
288
+ },
289
+ ],
290
+ stateMutability: "view",
291
+ type: "function",
292
+ },
293
+ {
294
+ inputs: [],
295
+ name: "RELAYER_ROLE",
296
+ outputs: [
297
+ {
298
+ internalType: "bytes32",
299
+ name: "",
300
+ type: "bytes32",
301
+ },
302
+ ],
303
+ stateMutability: "view",
304
+ type: "function",
305
+ },
306
+ {
307
+ inputs: [],
308
+ name: "_chainID",
309
+ outputs: [
310
+ {
311
+ internalType: "uint8",
312
+ name: "",
313
+ type: "uint8",
314
+ },
315
+ ],
316
+ stateMutability: "view",
317
+ type: "function",
318
+ },
319
+ {
320
+ inputs: [
321
+ {
322
+ internalType: "uint8",
323
+ name: "",
324
+ type: "uint8",
325
+ },
326
+ ],
327
+ name: "_depositCounts",
328
+ outputs: [
329
+ {
330
+ internalType: "uint64",
331
+ name: "",
332
+ type: "uint64",
333
+ },
334
+ ],
335
+ stateMutability: "view",
336
+ type: "function",
337
+ },
338
+ {
339
+ inputs: [
340
+ {
341
+ internalType: "uint64",
342
+ name: "",
343
+ type: "uint64",
344
+ },
345
+ {
346
+ internalType: "uint8",
347
+ name: "",
348
+ type: "uint8",
349
+ },
350
+ ],
351
+ name: "_depositRecords",
352
+ outputs: [
353
+ {
354
+ internalType: "bytes",
355
+ name: "",
356
+ type: "bytes",
357
+ },
358
+ ],
359
+ stateMutability: "view",
360
+ type: "function",
361
+ },
362
+ {
363
+ inputs: [],
364
+ name: "_expiry",
365
+ outputs: [
366
+ {
367
+ internalType: "uint256",
368
+ name: "",
369
+ type: "uint256",
370
+ },
371
+ ],
372
+ stateMutability: "view",
373
+ type: "function",
374
+ },
375
+ {
376
+ inputs: [],
377
+ name: "_fee",
378
+ outputs: [
379
+ {
380
+ internalType: "uint256",
381
+ name: "",
382
+ type: "uint256",
383
+ },
384
+ ],
385
+ stateMutability: "view",
386
+ type: "function",
387
+ },
388
+ {
389
+ inputs: [
390
+ {
391
+ internalType: "uint72",
392
+ name: "",
393
+ type: "uint72",
394
+ },
395
+ {
396
+ internalType: "bytes32",
397
+ name: "",
398
+ type: "bytes32",
399
+ },
400
+ {
401
+ internalType: "address",
402
+ name: "",
403
+ type: "address",
404
+ },
405
+ ],
406
+ name: "_hasVotedOnProposal",
407
+ outputs: [
408
+ {
409
+ internalType: "bool",
410
+ name: "",
411
+ type: "bool",
412
+ },
413
+ ],
414
+ stateMutability: "view",
415
+ type: "function",
416
+ },
417
+ {
418
+ inputs: [
419
+ {
420
+ internalType: "uint72",
421
+ name: "",
422
+ type: "uint72",
423
+ },
424
+ {
425
+ internalType: "bytes32",
426
+ name: "",
427
+ type: "bytes32",
428
+ },
429
+ ],
430
+ name: "_proposals",
431
+ outputs: [
432
+ {
433
+ internalType: "bytes32",
434
+ name: "_resourceID",
435
+ type: "bytes32",
436
+ },
437
+ {
438
+ internalType: "bytes32",
439
+ name: "_dataHash",
440
+ type: "bytes32",
441
+ },
442
+ {
443
+ internalType: "enum Bridge.ProposalStatus",
444
+ name: "_status",
445
+ type: "uint8",
446
+ },
447
+ {
448
+ internalType: "uint256",
449
+ name: "_proposedBlock",
450
+ type: "uint256",
451
+ },
452
+ ],
453
+ stateMutability: "view",
454
+ type: "function",
455
+ },
456
+ {
457
+ inputs: [],
458
+ name: "_relayerThreshold",
459
+ outputs: [
460
+ {
461
+ internalType: "uint256",
462
+ name: "",
463
+ type: "uint256",
464
+ },
465
+ ],
466
+ stateMutability: "view",
467
+ type: "function",
468
+ },
469
+ {
470
+ inputs: [
471
+ {
472
+ internalType: "bytes32",
473
+ name: "",
474
+ type: "bytes32",
475
+ },
476
+ ],
477
+ name: "_resourceIDToHandlerAddress",
478
+ outputs: [
479
+ {
480
+ internalType: "address",
481
+ name: "",
482
+ type: "address",
483
+ },
484
+ ],
485
+ stateMutability: "view",
486
+ type: "function",
487
+ },
488
+ {
489
+ inputs: [],
490
+ name: "_totalProposals",
491
+ outputs: [
492
+ {
493
+ internalType: "uint256",
494
+ name: "",
495
+ type: "uint256",
496
+ },
497
+ ],
498
+ stateMutability: "view",
499
+ type: "function",
500
+ },
501
+ {
502
+ inputs: [],
503
+ name: "_totalRelayers",
504
+ outputs: [
505
+ {
506
+ internalType: "uint256",
507
+ name: "",
508
+ type: "uint256",
509
+ },
510
+ ],
511
+ stateMutability: "view",
512
+ type: "function",
513
+ },
514
+ {
515
+ inputs: [
516
+ {
517
+ internalType: "address",
518
+ name: "relayerAddress",
519
+ type: "address",
520
+ },
521
+ ],
522
+ name: "adminAddRelayer",
523
+ outputs: [],
524
+ stateMutability: "nonpayable",
525
+ type: "function",
526
+ },
527
+ {
528
+ inputs: [
529
+ {
530
+ internalType: "uint256",
531
+ name: "newFee",
532
+ type: "uint256",
533
+ },
534
+ ],
535
+ name: "adminChangeFee",
536
+ outputs: [],
537
+ stateMutability: "nonpayable",
538
+ type: "function",
539
+ },
540
+ {
541
+ inputs: [
542
+ {
543
+ internalType: "uint256",
544
+ name: "newThreshold",
545
+ type: "uint256",
546
+ },
547
+ ],
548
+ name: "adminChangeRelayerThreshold",
549
+ outputs: [],
550
+ stateMutability: "nonpayable",
551
+ type: "function",
552
+ },
553
+ {
554
+ inputs: [],
555
+ name: "adminPauseTransfers",
556
+ outputs: [],
557
+ stateMutability: "nonpayable",
558
+ type: "function",
559
+ },
560
+ {
561
+ inputs: [
562
+ {
563
+ internalType: "address",
564
+ name: "relayerAddress",
565
+ type: "address",
566
+ },
567
+ ],
568
+ name: "adminRemoveRelayer",
569
+ outputs: [],
570
+ stateMutability: "nonpayable",
571
+ type: "function",
572
+ },
573
+ {
574
+ inputs: [
575
+ {
576
+ internalType: "address",
577
+ name: "handlerAddress",
578
+ type: "address",
579
+ },
580
+ {
581
+ internalType: "address",
582
+ name: "tokenAddress",
583
+ type: "address",
584
+ },
585
+ ],
586
+ name: "adminSetBurnable",
587
+ outputs: [],
588
+ stateMutability: "nonpayable",
589
+ type: "function",
590
+ },
591
+ {
592
+ inputs: [
593
+ {
594
+ internalType: "address",
595
+ name: "handlerAddress",
596
+ type: "address",
597
+ },
598
+ {
599
+ internalType: "bytes32",
600
+ name: "resourceID",
601
+ type: "bytes32",
602
+ },
603
+ {
604
+ internalType: "address",
605
+ name: "contractAddress",
606
+ type: "address",
607
+ },
608
+ {
609
+ internalType: "bytes4",
610
+ name: "depositFunctionSig",
611
+ type: "bytes4",
612
+ },
613
+ {
614
+ internalType: "bytes4",
615
+ name: "executeFunctionSig",
616
+ type: "bytes4",
617
+ },
618
+ ],
619
+ name: "adminSetGenericResource",
620
+ outputs: [],
621
+ stateMutability: "nonpayable",
622
+ type: "function",
623
+ },
624
+ {
625
+ inputs: [
626
+ {
627
+ internalType: "address",
628
+ name: "handlerAddress",
629
+ type: "address",
630
+ },
631
+ {
632
+ internalType: "bytes32",
633
+ name: "resourceID",
634
+ type: "bytes32",
635
+ },
636
+ {
637
+ internalType: "address",
638
+ name: "tokenAddress",
639
+ type: "address",
640
+ },
641
+ ],
642
+ name: "adminSetResource",
643
+ outputs: [],
644
+ stateMutability: "nonpayable",
645
+ type: "function",
646
+ },
647
+ {
648
+ inputs: [],
649
+ name: "adminUnpauseTransfers",
650
+ outputs: [],
651
+ stateMutability: "nonpayable",
652
+ type: "function",
653
+ },
654
+ {
655
+ inputs: [
656
+ {
657
+ internalType: "address",
658
+ name: "handlerAddress",
659
+ type: "address",
660
+ },
661
+ {
662
+ internalType: "address",
663
+ name: "tokenAddress",
664
+ type: "address",
665
+ },
666
+ {
667
+ internalType: "address",
668
+ name: "recipient",
669
+ type: "address",
670
+ },
671
+ {
672
+ internalType: "uint256",
673
+ name: "amountOrTokenID",
674
+ type: "uint256",
675
+ },
676
+ ],
677
+ name: "adminWithdraw",
678
+ outputs: [],
679
+ stateMutability: "nonpayable",
680
+ type: "function",
681
+ },
682
+ {
683
+ inputs: [
684
+ {
685
+ internalType: "uint8",
686
+ name: "chainID",
687
+ type: "uint8",
688
+ },
689
+ {
690
+ internalType: "uint64",
691
+ name: "depositNonce",
692
+ type: "uint64",
693
+ },
694
+ {
695
+ internalType: "bytes32",
696
+ name: "dataHash",
697
+ type: "bytes32",
698
+ },
699
+ ],
700
+ name: "cancelProposal",
701
+ outputs: [],
702
+ stateMutability: "nonpayable",
703
+ type: "function",
704
+ },
705
+ {
706
+ inputs: [
707
+ {
708
+ internalType: "uint8",
709
+ name: "destinationChainID",
710
+ type: "uint8",
711
+ },
712
+ {
713
+ internalType: "bytes32",
714
+ name: "resourceID",
715
+ type: "bytes32",
716
+ },
717
+ {
718
+ internalType: "bytes",
719
+ name: "data",
720
+ type: "bytes",
721
+ },
722
+ ],
723
+ name: "deposit",
724
+ outputs: [],
725
+ stateMutability: "payable",
726
+ type: "function",
727
+ },
728
+ {
729
+ inputs: [
730
+ {
731
+ internalType: "uint8",
732
+ name: "chainID",
733
+ type: "uint8",
734
+ },
735
+ {
736
+ internalType: "uint64",
737
+ name: "depositNonce",
738
+ type: "uint64",
739
+ },
740
+ {
741
+ internalType: "bytes",
742
+ name: "data",
743
+ type: "bytes",
744
+ },
745
+ {
746
+ internalType: "bytes32",
747
+ name: "resourceID",
748
+ type: "bytes32",
749
+ },
750
+ ],
751
+ name: "executeProposal",
752
+ outputs: [],
753
+ stateMutability: "nonpayable",
754
+ type: "function",
755
+ },
756
+ {
757
+ inputs: [
758
+ {
759
+ internalType: "uint8",
760
+ name: "originChainID",
761
+ type: "uint8",
762
+ },
763
+ {
764
+ internalType: "uint64",
765
+ name: "depositNonce",
766
+ type: "uint64",
767
+ },
768
+ {
769
+ internalType: "bytes32",
770
+ name: "dataHash",
771
+ type: "bytes32",
772
+ },
773
+ ],
774
+ name: "getProposal",
775
+ outputs: [
776
+ {
777
+ components: [
778
+ {
779
+ internalType: "bytes32",
780
+ name: "_resourceID",
781
+ type: "bytes32",
782
+ },
783
+ {
784
+ internalType: "bytes32",
785
+ name: "_dataHash",
786
+ type: "bytes32",
787
+ },
788
+ {
789
+ internalType: "address[]",
790
+ name: "_yesVotes",
791
+ type: "address[]",
792
+ },
793
+ {
794
+ internalType: "address[]",
795
+ name: "_noVotes",
796
+ type: "address[]",
797
+ },
798
+ {
799
+ internalType: "enum Bridge.ProposalStatus",
800
+ name: "_status",
801
+ type: "uint8",
802
+ },
803
+ {
804
+ internalType: "uint256",
805
+ name: "_proposedBlock",
806
+ type: "uint256",
807
+ },
808
+ ],
809
+ internalType: "struct Bridge.Proposal",
810
+ name: "",
811
+ type: "tuple",
812
+ },
813
+ ],
814
+ stateMutability: "view",
815
+ type: "function",
816
+ },
817
+ {
818
+ inputs: [
819
+ {
820
+ internalType: "bytes32",
821
+ name: "role",
822
+ type: "bytes32",
823
+ },
824
+ ],
825
+ name: "getRoleAdmin",
826
+ outputs: [
827
+ {
828
+ internalType: "bytes32",
829
+ name: "",
830
+ type: "bytes32",
831
+ },
832
+ ],
833
+ stateMutability: "view",
834
+ type: "function",
835
+ },
836
+ {
837
+ inputs: [
838
+ {
839
+ internalType: "bytes32",
840
+ name: "role",
841
+ type: "bytes32",
842
+ },
843
+ {
844
+ internalType: "address",
845
+ name: "account",
846
+ type: "address",
847
+ },
848
+ ],
849
+ name: "grantRole",
850
+ outputs: [],
851
+ stateMutability: "nonpayable",
852
+ type: "function",
853
+ },
854
+ {
855
+ inputs: [
856
+ {
857
+ internalType: "bytes32",
858
+ name: "role",
859
+ type: "bytes32",
860
+ },
861
+ {
862
+ internalType: "address",
863
+ name: "account",
864
+ type: "address",
865
+ },
866
+ ],
867
+ name: "hasRole",
868
+ outputs: [
869
+ {
870
+ internalType: "bool",
871
+ name: "",
872
+ type: "bool",
873
+ },
874
+ ],
875
+ stateMutability: "view",
876
+ type: "function",
877
+ },
878
+ {
879
+ inputs: [
880
+ {
881
+ internalType: "address",
882
+ name: "relayer",
883
+ type: "address",
884
+ },
885
+ ],
886
+ name: "isRelayer",
887
+ outputs: [
888
+ {
889
+ internalType: "bool",
890
+ name: "",
891
+ type: "bool",
892
+ },
893
+ ],
894
+ stateMutability: "view",
895
+ type: "function",
896
+ },
897
+ {
898
+ inputs: [],
899
+ name: "paused",
900
+ outputs: [
901
+ {
902
+ internalType: "bool",
903
+ name: "",
904
+ type: "bool",
905
+ },
906
+ ],
907
+ stateMutability: "view",
908
+ type: "function",
909
+ },
910
+ {
911
+ inputs: [
912
+ {
913
+ internalType: "address",
914
+ name: "newAdmin",
915
+ type: "address",
916
+ },
917
+ ],
918
+ name: "renounceAdmin",
919
+ outputs: [],
920
+ stateMutability: "nonpayable",
921
+ type: "function",
922
+ },
923
+ {
924
+ inputs: [
925
+ {
926
+ internalType: "bytes32",
927
+ name: "role",
928
+ type: "bytes32",
929
+ },
930
+ {
931
+ internalType: "address",
932
+ name: "account",
933
+ type: "address",
934
+ },
935
+ ],
936
+ name: "renounceRole",
937
+ outputs: [],
938
+ stateMutability: "nonpayable",
939
+ type: "function",
940
+ },
941
+ {
942
+ inputs: [
943
+ {
944
+ internalType: "bytes32",
945
+ name: "role",
946
+ type: "bytes32",
947
+ },
948
+ {
949
+ internalType: "address",
950
+ name: "account",
951
+ type: "address",
952
+ },
953
+ ],
954
+ name: "revokeRole",
955
+ outputs: [],
956
+ stateMutability: "nonpayable",
957
+ type: "function",
958
+ },
959
+ {
960
+ inputs: [
961
+ {
962
+ internalType: "bytes4",
963
+ name: "interfaceId",
964
+ type: "bytes4",
965
+ },
966
+ ],
967
+ name: "supportsInterface",
968
+ outputs: [
969
+ {
970
+ internalType: "bool",
971
+ name: "",
972
+ type: "bool",
973
+ },
974
+ ],
975
+ stateMutability: "view",
976
+ type: "function",
977
+ },
978
+ {
979
+ inputs: [
980
+ {
981
+ internalType: "address payable[]",
982
+ name: "addrs",
983
+ type: "address[]",
984
+ },
985
+ {
986
+ internalType: "uint256[]",
987
+ name: "amounts",
988
+ type: "uint256[]",
989
+ },
990
+ ],
991
+ name: "transferFunds",
992
+ outputs: [],
993
+ stateMutability: "nonpayable",
994
+ type: "function",
995
+ },
996
+ {
997
+ inputs: [
998
+ {
999
+ internalType: "uint8",
1000
+ name: "chainID",
1001
+ type: "uint8",
1002
+ },
1003
+ {
1004
+ internalType: "uint64",
1005
+ name: "depositNonce",
1006
+ type: "uint64",
1007
+ },
1008
+ {
1009
+ internalType: "bytes32",
1010
+ name: "resourceID",
1011
+ type: "bytes32",
1012
+ },
1013
+ {
1014
+ internalType: "bytes32",
1015
+ name: "dataHash",
1016
+ type: "bytes32",
1017
+ },
1018
+ ],
1019
+ name: "voteProposal",
1020
+ outputs: [],
1021
+ stateMutability: "nonpayable",
1022
+ type: "function",
1023
+ },
1024
+ ];
1025
+
1026
+ const _bytecode =
1027
+ "0x60806040523480156200001157600080fd5b5060405162003e3e38038062003e3e8339810160408190526200003491620004c0565b6000805460ff1990811682556002805490911660ff881617905560038490556006839055600782905562000069903362000108565b6200008560008051602062003e1e833981519152600062000118565b60005b8451811015620000fc57620000cf60008051602062003e1e833981519152868381518110620000bb57620000bb620005c9565b60200260200101516200016f60201b60201c565b60048054906000620000e183620005f5565b91905055508080620000f390620005f5565b91505062000088565b5050505050506200074b565b6200011482826200019f565b5050565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b600082815260016020819052604090912001546200018e813362000227565b6200019a83836200019f565b505050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16620001145760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16620001145762000273816001600160a01b03166014620002cd60201b620022a11760201c565b62000289836020620022a1620002cd821b17811c565b6040516020016200029c92919062000646565b60408051601f198184030181529082905262461bcd60e51b8252620002c491600401620006bf565b60405180910390fd5b60606000620002de836002620006f4565b620002eb90600262000716565b6001600160401b038111156200030557620003056200048d565b6040519080825280601f01601f19166020018201604052801562000330576020820181803683370190505b509050600360fc1b816000815181106200034e576200034e620005c9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003805762000380620005c9565b60200101906001600160f81b031916908160001a9053506000620003a6846002620006f4565b620003b390600162000716565b90505b600181111562000435576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003eb57620003eb620005c9565b1a60f81b828281518110620004045762000404620005c9565b60200101906001600160f81b031916908160001a90535060049490941c936200042d8162000731565b9050620003b6565b508315620004865760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620002c4565b9392505050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004bb57600080fd5b919050565b600080600080600060a08688031215620004d957600080fd5b855160ff81168114620004eb57600080fd5b602087810151919650906001600160401b03808211156200050b57600080fd5b818901915089601f8301126200052057600080fd5b8151818111156200053557620005356200048d565b8060051b604051601f19603f830116810181811085821117156200055d576200055d6200048d565b60405291825284820192508381018501918c8311156200057c57600080fd5b938501935b82851015620005a5576200059585620004a3565b8452938501939285019262000581565b60408c015160608d01516080909d01519b9e919d509b9a9950975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156200060c576200060c620005df565b5060010190565b60005b838110156200063057818101518382015260200162000616565b8381111562000640576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200068081601785016020880162000613565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351620006b381602884016020880162000613565b01602801949350505050565b6020815260008251806020840152620006e081604085016020870162000613565b601f01601f19169190910160400192915050565b6000816000190483118215151615620007115762000711620005df565b500290565b600082198211156200072c576200072c620005df565b500190565b600081620007435762000743620005df565b506000190190565b6136c3806200075b6000396000f3fe6080604052600436106102855760003560e01c806380ae1c2811610153578063a9cf69fa116100cb578063cdb0f73a1161007f578063d7a9cd7911610064578063d7a9cd7914610816578063e8437ee71461082c578063ffaac0eb1461084c57600080fd5b8063cdb0f73a146107d6578063d547741f146107f657600080fd5b8063c5b37c22116100b0578063c5b37c221461078a578063c5ec8970146107a0578063cb10f215146107b657600080fd5b8063a9cf69fa14610731578063beab71311461075e57600080fd5b806391d14854116101225780639d5773e0116101075780639d5773e0146106e65780639d82dd63146106fc578063a217fddf1461071c57600080fd5b806391d148541461065f578063926d7d7f146106b257600080fd5b806380ae1c28146105a257806384db809f146105b75780638c0c26311461061f57806391c404ac1461063f57600080fd5b80634603ae38116102015780635c975abb116101b5578063780cf0041161019a578063780cf0041461052b5780637febe63f1461054b578063802aabe81461058c57600080fd5b80635c975abb146104f35780635e1fab0f1461050b57600080fd5b80634e056005116101e65780634e056005146104505780635059871914610470578063541d5548146104d357600080fd5b80634603ae38146103e05780634b0b919d1461040057600080fd5b8063248a9ca31161025857806336568abe1161023d57806336568abe146103735780633ee7094a146103935780634454b20d146103c057600080fd5b8063248a9ca3146103145780632f2ff15d1461035357600080fd5b806301ffc9a71461028a57806305e2ca17146102bf57806317f03ce5146102d45780631ff013f1146102f4575b600080fd5b34801561029657600080fd5b506102aa6102a5366004612c4f565b610861565b60405190151581526020015b60405180910390f35b6102d26102cd366004612cc4565b6108fa565b005b3480156102e057600080fd5b506102d26102ef366004612d36565b610bae565b34801561030057600080fd5b506102d261030f366004612d72565b610d66565b34801561032057600080fd5b5061034561032f366004612db4565b6000908152600160208190526040909120015490565b6040519081526020016102b6565b34801561035f57600080fd5b506102d261036e366004612def565b611423565b34801561037f57600080fd5b506102d261038e366004612def565b61144f565b34801561039f57600080fd5b506103b36103ae366004612e1f565b611502565b6040516102b69190612ecc565b3480156103cc57600080fd5b506102d26103db366004612edf565b6115a7565b3480156103ec57600080fd5b506102d26103fb366004612f8d565b611981565b34801561040c57600080fd5b5061043761041b366004612fed565b60086020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102b6565b34801561045c57600080fd5b506102d261046b366004612db4565b611a32565b34801561047c57600080fd5b506104c361048b366004613021565b600b60209081526000928352604080842090915290825290208054600182015460048301546005909301549192909160ff9091169084565b6040516102b694939291906130b5565b3480156104df57600080fd5b506102aa6104ee3660046130df565b611a6d565b3480156104ff57600080fd5b5060005460ff166102aa565b34801561051757600080fd5b506102d26105263660046130df565b611aba565b34801561053757600080fd5b506102d26105463660046130fc565b611adb565b34801561055757600080fd5b506102aa61056636600461314d565b600c60209081526000938452604080852082529284528284209052825290205460ff1681565b34801561059857600080fd5b5061034560045481565b3480156105ae57600080fd5b506102d2611b7d565b3480156105c357600080fd5b506105fa6105d2366004612db4565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b34801561062b57600080fd5b506102d261063a36600461318d565b611b8f565b34801561064b57600080fd5b506102d261065a366004612db4565b611c20565b34801561066b57600080fd5b506102aa61067a366004612def565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156106be57600080fd5b506103457fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc481565b3480156106f257600080fd5b5061034560055481565b34801561070857600080fd5b506102d26107173660046130df565b611c99565b34801561072857600080fd5b50610345600081565b34801561073d57600080fd5b5061075161074c366004612d36565b611dd2565b6040516102b6919061320c565b34801561076a57600080fd5b506002546107789060ff1681565b60405160ff90911681526020016102b6565b34801561079657600080fd5b5061034560065481565b3480156107ac57600080fd5b5061034560075481565b3480156107c257600080fd5b506102d26107d13660046132a1565b611f62565b3480156107e257600080fd5b506102d26107f13660046130df565b612034565b34801561080257600080fd5b506102d2610811366004612def565b612166565b34801561082257600080fd5b5061034560035481565b34801561083857600080fd5b506102d26108473660046132c1565b61218d565b34801561085857600080fd5b506102d2612291565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108f457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60005460ff161561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064015b60405180910390fd5b60065434146109d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e636f72726563742066656520737570706c696564000000000000000000006044820152606401610963565b60008381526009602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f7265736f757263654944206e6f74206d617070656420746f2068616e646c65726044820152606401610963565b60ff8516600090815260086020526040812080548290610a8c9067ffffffffffffffff16613352565b825467ffffffffffffffff8083166101009490940a848102910219909116179092556000908152600a6020908152604080832060ff8b1684529091529020909150610ad8908585612ae9565b506040517f38995da9000000000000000000000000000000000000000000000000000000008152829073ffffffffffffffffffffffffffffffffffffffff8216906338995da990610b379089908b90879033908c908c906004016133c3565b600060405180830381600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050508167ffffffffffffffff16868860ff167fdbb69440df8433824a026ef190652f29929eb64b4d1d5d2a69be8afe3e6eaed860405160405180910390a450505050505050565b610bb66124eb565b68ffffffffffffffff00600883901b1660ff8416176000818152600b6020908152604080832085845290915290206004808083015460ff1690811115610bfe57610bfe61304b565b1415610c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f706f73616c20616c72656164792063616e63656c6c65640000000000006044820152606401610963565b6007546005820154610c799043906125bc565b11610ce0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f50726f706f73616c206e6f7420617420657870697279207468726573686f6c646044820152606401610963565b600481810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821790558154600183015460408051928352602083019190915267ffffffffffffffff87169160ff8916917f803c5a12f6bde629cea32e63d4b92d1b560816a6fb72e939d3c89e1cab650417910160405180910390a45050505050565b610d6e6125c8565b60005460ff1615610ddb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610963565b68ffffffffffffffff00600884901b1660ff8516176000818152600b60209081526040808320858452825280832086845260099092529091205473ffffffffffffffffffffffffffffffffffffffff16610e91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6e6f2068616e646c657220666f72207265736f757263654944000000000000006044820152606401610963565b60048082015460019160ff90911690811115610eaf57610eaf61304b565b1115610f3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f70726f706f73616c20616c7265616479207061737365642f657865637574656460448201527f2f63616e63656c6c6564000000000000000000000000000000000000000000006064820152608401610963565b68ffffffffffffffffff82166000908152600c60209081526040808320868452825280832033845290915290205460ff1615610fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f72656c6179657220616c726561647920766f74656400000000000000000000006044820152606401610963565b60048082015460ff1690811115610fee57610fee61304b565b6111b6576005600081546110019061341e565b909155506040805160c0810182528581526020810185905281516001808252818401845291928301918160200160208202803683375050508152604080516000808252602080830184528085019290925260018385018190524360609095019490945268ffffffffffffffffff87168152600b825282812088825282528290208451815584820151938101939093559083015180516110a69260028501920190612b8b565b50606082015180516110c2916003840191602090910190612b8b565b5060808201518160040160006101000a81548160ff021916908360048111156110ed576110ed61304b565b021790555060a08201518160050155905050338160020160008154811061111657611116613486565b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560015b604080518681526020810186905267ffffffffffffffff88169160ff8a16917f803c5a12f6bde629cea32e63d4b92d1b560816a6fb72e939d3c89e1cab650417910160405180910390a46112ae565b60075460058201546111c99043906125bc565b111561120157600481810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682179055611167565b8060010154831461126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6461746168617368206d69736d617463680000000000000000000000000000006044820152606401610963565b600281018054600181018255600091825260209091200180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555b60048181015460ff16818111156112c7576112c761304b565b1461141b5768ffffffffffffffffff82166000908152600c602090815260408083208684528252808320338452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560048082015460ff169081111561133b5761133b61304b565b8567ffffffffffffffff168760ff167f25f8daaa4635a7729927ba3f5b3d59cc3320aca7c32c9db4e7ca7b95743436408760405161137b91815260200190565b60405180910390a4600160035411158061139b5750600354600282015410155b1561141b576004810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002908117909155604080518681526020810186905267ffffffffffffffff88169160ff8a16917f803c5a12f6bde629cea32e63d4b92d1b560816a6fb72e939d3c89e1cab650417910160405180910390a45b505050505050565b600082815260016020819052604090912001546114408133612660565b61144a8383612732565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610963565b6114fe82826127f1565b5050565b600a60209081526000928352604080842090915290825290208054611526906134b5565b80601f0160208091040260200160405190810160405280929190818152602001828054611552906134b5565b801561159f5780601f106115745761010080835404028352916020019161159f565b820191906000526020600020905b81548152906001019060200180831161158257829003601f168201915b505050505081565b6115af6125c8565b60005460ff161561161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610963565b600081815260096020908152604080832054905173ffffffffffffffffffffffffffffffffffffffff9091169268ffffffffffffffff00600889901b1660ff8a16179290916116719185918991899101613509565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012068ffffffffffffffffff85166000908152600b84528281208282529093529082209092509060048083015460ff16908111156116e5576116e561304b565b141561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f70726f706f73616c206973206e6f7420616374697665000000000000000000006044820152606401610963565b600260048083015460ff16908111156117685761176861304b565b146117cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f70726f706f73616c20616c7265616479207472616e73666572726564000000006044820152606401610963565b8060010154821461183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6461746120646f65736e2774206d6174636820646174616861736800000000006044820152606401610963565b600481810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660031790558154600081815260096020526040908190205490517fe248cff200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911692839263e248cff2926118d1928d918d9101613548565b600060405180830381600087803b1580156118eb57600080fd5b505af11580156118ff573d6000803e3d6000fd5b50505060048084015460ff16915081111561191c5761191c61304b565b8967ffffffffffffffff168b60ff167f803c5a12f6bde629cea32e63d4b92d1b560816a6fb72e939d3c89e1cab6504178560000154866001015460405161196d929190918252602082015260400190565b60405180910390a450505050505050505050565b6119896128ac565b60005b83811015611a2b578484828181106119a6576119a6613486565b90506020020160208101906119bb91906130df565b73ffffffffffffffffffffffffffffffffffffffff166108fc8484848181106119e6576119e6613486565b905060200201359081150290604051600060405180830381858888f19350505050158015611a18573d6000803e3d6000fd5b5080611a238161341e565b91505061198c565b5050505050565b611a3a6128ac565b600381905560405181907fa20d6b84cd798a24038be305eff8a45ca82ef54a2aa2082005d8e14c0a4746c890600090a250565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f9b7fc797995519db25593326970d3304279d74cdaa6b7cc1a414e3eb0491de53602052604081205460ff166108f4565b611ac26128ac565b611acd600082611423565b611ad860003361144f565b50565b611ae36128ac565b6040517fd9caed1200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015283811660248301526044820183905285919082169063d9caed1290606401600060405180830381600087803b158015611b5e57600080fd5b505af1158015611b72573d6000803e3d6000fd5b505050505050505050565b611b856128ac565b611b8d612944565b565b611b976128ac565b6040517f07b7ed9900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528391908216906307b7ed9990602401600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b50505050505050565b611c286128ac565b806006541415611c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43757272656e742066656520697320657175616c20746f206e657720666565006044820152606401610963565b600655565b611ca16128ac565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f9b7fc797995519db25593326970d3304279d74cdaa6b7cc1a414e3eb0491de53602052604090205460ff16611d4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6164647220646f65736e277420686176652072656c6179657220726f6c6521006044820152606401610963565b611d797fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc482612166565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f10e1f7ce9fd7d1b90a66d13a2ab3cb8dd7f29f3f8d520b143b063ccfbab6906b90600090a260048054906000611dca8361356b565b919050555050565b6040805160c08082018352600080835260208084018290526060848601819052808501526080840182905260a0840182905260ff8816600888901b68ffffffffffffffff001617808352600b825285832087845282529185902085519384018652805484526001810154848301526002810180548751818502810185018952818152969794969294860193830182828015611ea357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611e78575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611f1257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611ee7575b505050918352505060048281015460209092019160ff1690811115611f3957611f3961304b565b6004811115611f4a57611f4a61304b565b81526020016005820154815250509150509392505050565b611f6a6128ac565b6000828152600960205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591517fb8fa373600000000000000000000000000000000000000000000000000000000815260048101859052908316602482015284919063b8fa373690604401600060405180830381600087803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b5050505050505050565b61203c6128ac565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f9b7fc797995519db25593326970d3304279d74cdaa6b7cc1a414e3eb0491de53602052604090205460ff16156120eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6164647220616c7265616479206861732072656c6179657220726f6c652100006044820152606401610963565b6121157fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc482611423565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f03580ee9f53a62b7cb409a2cb56f9be87747dd15017afc5cef6eef321e4fb2c590600090a260048054906000611dca8361341e565b600082815260016020819052604090912001546121838133612660565b61144a83836127f1565b6121956128ac565b6000848152600960205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691821790925591517fbba8185a0000000000000000000000000000000000000000000000000000000081526004810187905290851660248201527fffffffff0000000000000000000000000000000000000000000000000000000080851660448301528316606482015286919063bba8185a90608401600060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b50505050505050505050565b6122996128ac565b611b8d612a2e565b606060006122b08360026135a0565b6122bb9060026135dd565b67ffffffffffffffff8111156122d3576122d3613457565b6040519080825280601f01601f1916602001820160405280156122fd576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061233457612334613486565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061239757612397613486565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006123d38460026135a0565b6123de9060016135dd565b90505b600181111561247b577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061241f5761241f613486565b1a60f81b82828151811061243557612435613486565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936124748161356b565b90506123e1565b5083156124e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610963565b9392505050565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff168061255657503360009081527f9b7fc797995519db25593326970d3304279d74cdaa6b7cc1a414e3eb0491de53602052604090205460ff165b611b8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f73656e646572206973206e6f742072656c61796572206f722061646d696e00006044820152606401610963565b60006124e482846135f5565b3360009081527f9b7fc797995519db25593326970d3304279d74cdaa6b7cc1a414e3eb0491de53602052604090205460ff16611b8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f73656e64657220646f65736e277420686176652072656c6179657220726f6c656044820152606401610963565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166114fe576126b88173ffffffffffffffffffffffffffffffffffffffff1660146122a1565b6126c38360206122a1565b6040516020016126d492919061360c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261096391600401612ecc565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166114fe57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156114fe57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16611b8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f73656e64657220646f65736e277420686176652061646d696e20726f6c6500006044820152606401610963565b60005460ff16156129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610963565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612a043390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60005460ff16612a9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610963565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612a04565b828054612af5906134b5565b90600052602060002090601f016020900481019282612b175760008555612b7b565b82601f10612b4e578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612b7b565b82800160010185558215612b7b579182015b82811115612b7b578235825591602001919060010190612b60565b50612b87929150612c05565b5090565b828054828255906000526020600020908101928215612b7b579160200282015b82811115612b7b57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612bab565b5b80821115612b875760008155600101612c06565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114612c4a57600080fd5b919050565b600060208284031215612c6157600080fd5b6124e482612c1a565b803560ff81168114612c4a57600080fd5b60008083601f840112612c8d57600080fd5b50813567ffffffffffffffff811115612ca557600080fd5b602083019150836020828501011115612cbd57600080fd5b9250929050565b60008060008060608587031215612cda57600080fd5b612ce385612c6a565b935060208501359250604085013567ffffffffffffffff811115612d0657600080fd5b612d1287828801612c7b565b95989497509550505050565b803567ffffffffffffffff81168114612c4a57600080fd5b600080600060608486031215612d4b57600080fd5b612d5484612c6a565b9250612d6260208501612d1e565b9150604084013590509250925092565b60008060008060808587031215612d8857600080fd5b612d9185612c6a565b9350612d9f60208601612d1e565b93969395505050506040820135916060013590565b600060208284031215612dc657600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611ad857600080fd5b60008060408385031215612e0257600080fd5b823591506020830135612e1481612dcd565b809150509250929050565b60008060408385031215612e3257600080fd5b612e3b83612d1e565b9150612e4960208401612c6a565b90509250929050565b60005b83811015612e6d578181015183820152602001612e55565b83811115612e7c576000848401525b50505050565b60008151808452612e9a816020860160208601612e52565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006124e46020830184612e82565b600080600080600060808688031215612ef757600080fd5b612f0086612c6a565b9450612f0e60208701612d1e565b9350604086013567ffffffffffffffff811115612f2a57600080fd5b612f3688828901612c7b565b96999598509660600135949350505050565b60008083601f840112612f5a57600080fd5b50813567ffffffffffffffff811115612f7257600080fd5b6020830191508360208260051b8501011115612cbd57600080fd5b60008060008060408587031215612fa357600080fd5b843567ffffffffffffffff80821115612fbb57600080fd5b612fc788838901612f48565b90965094506020870135915080821115612fe057600080fd5b50612d1287828801612f48565b600060208284031215612fff57600080fd5b6124e482612c6a565b803568ffffffffffffffffff81168114612c4a57600080fd5b6000806040838503121561303457600080fd5b61303d83613008565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600581106130b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b84815260208101849052608081016130d0604083018561307a565b82606083015295945050505050565b6000602082840312156130f157600080fd5b81356124e481612dcd565b6000806000806080858703121561311257600080fd5b843561311d81612dcd565b9350602085013561312d81612dcd565b9250604085013561313d81612dcd565b9396929550929360600135925050565b60008060006060848603121561316257600080fd5b61316b84613008565b925060208401359150604084013561318281612dcd565b809150509250925092565b600080604083850312156131a057600080fd5b82356131ab81612dcd565b91506020830135612e1481612dcd565b600081518084526020808501945080840160005b8381101561320157815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016131cf565b509495945050505050565b6020815281516020820152602082015160408201526000604083015160c0606084015261323c60e08401826131bb565b905060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084830301608085015261327782826131bb565b915050608084015161328c60a085018261307a565b5060a084015160c08401528091505092915050565b6000806000606084860312156132b657600080fd5b833561316b81612dcd565b600080600080600060a086880312156132d957600080fd5b85356132e481612dcd565b94506020860135935060408601356132fb81612dcd565b925061330960608701612c1a565b915061331760808701612c1a565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168181141561337057613370613323565b6001019392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b86815260ff8616602082015267ffffffffffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015260a06080820152600061341260a08301848661337a565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561345057613450613323565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c908216806134c957607f821691505b60208210811415613503577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b83815260406020820152600061356260408301848661337a565b95945050505050565b60008161357a5761357a613323565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135d8576135d8613323565b500290565b600082198211156135f0576135f0613323565b500190565b60008282101561360757613607613323565b500390565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613644816017850160208801612e52565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613681816028840160208801612e52565b0160280194935050505056fea26469706673582212201bdb0ea97e34c099dba75c931fd443e06ad9b83a5e4a196f8c0e6041a308aeea64736f6c63430008090033e2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc4";
1028
+
1029
+ type BridgeConstructorParams =
1030
+ | [signer?: Signer]
1031
+ | ConstructorParameters<typeof ContractFactory>;
1032
+
1033
+ const isSuperArgs = (
1034
+ xs: BridgeConstructorParams
1035
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1036
+
1037
+ export class Bridge__factory extends ContractFactory {
1038
+ constructor(...args: BridgeConstructorParams) {
1039
+ if (isSuperArgs(args)) {
1040
+ super(...args);
1041
+ } else {
1042
+ super(_abi, _bytecode, args[0]);
1043
+ }
1044
+ }
1045
+
1046
+ deploy(
1047
+ chainID: BigNumberish,
1048
+ initialRelayers: string[],
1049
+ initialRelayerThreshold: BigNumberish,
1050
+ fee: BigNumberish,
1051
+ expiry: BigNumberish,
1052
+ overrides?: Overrides & { from?: string | Promise<string> }
1053
+ ): Promise<Bridge> {
1054
+ return super.deploy(
1055
+ chainID,
1056
+ initialRelayers,
1057
+ initialRelayerThreshold,
1058
+ fee,
1059
+ expiry,
1060
+ overrides || {}
1061
+ ) as Promise<Bridge>;
1062
+ }
1063
+ getDeployTransaction(
1064
+ chainID: BigNumberish,
1065
+ initialRelayers: string[],
1066
+ initialRelayerThreshold: BigNumberish,
1067
+ fee: BigNumberish,
1068
+ expiry: BigNumberish,
1069
+ overrides?: Overrides & { from?: string | Promise<string> }
1070
+ ): TransactionRequest {
1071
+ return super.getDeployTransaction(
1072
+ chainID,
1073
+ initialRelayers,
1074
+ initialRelayerThreshold,
1075
+ fee,
1076
+ expiry,
1077
+ overrides || {}
1078
+ );
1079
+ }
1080
+ attach(address: string): Bridge {
1081
+ return super.attach(address) as Bridge;
1082
+ }
1083
+ connect(signer: Signer): Bridge__factory {
1084
+ return super.connect(signer) as Bridge__factory;
1085
+ }
1086
+ static readonly bytecode = _bytecode;
1087
+ static readonly abi = _abi;
1088
+ static createInterface(): BridgeInterface {
1089
+ return new utils.Interface(_abi) as BridgeInterface;
1090
+ }
1091
+ static connect(address: string, signerOrProvider: Signer | Provider): Bridge {
1092
+ return new Contract(address, _abi, signerOrProvider) as Bridge;
1093
+ }
1094
+ }