@wireio/stake 0.1.3 → 0.2.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 (135) hide show
  1. package/lib/stake.browser.js +15333 -4964
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +4880 -112
  4. package/lib/stake.js +15636 -5116
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +15333 -4964
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +1 -1
  10. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +26 -65
  11. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +1 -1
  12. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.json +24 -20
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +1 -1
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +1 -1
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +1 -1
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +1 -1
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -20
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +1 -1
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +1 -1
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +1 -1
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  22. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +1 -1
  23. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +1 -1
  24. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +1 -1
  25. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +1 -1
  26. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +1 -1
  27. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +1 -1
  28. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +2 -2
  29. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +1 -1
  30. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +2 -2
  31. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +1 -1
  32. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +2 -2
  33. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +1 -1
  34. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +31 -109
  35. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +1 -1
  36. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +2 -25
  37. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +1 -1
  38. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +30 -72
  39. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +1 -1
  40. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +2 -2
  41. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +1 -1
  42. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  43. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +1 -1
  44. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +2 -2
  45. package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.dbg.json +4 -0
  46. package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.json +1856 -0
  47. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  48. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +1753 -0
  49. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  50. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  51. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  52. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +601 -0
  53. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +4 -0
  54. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.json +930 -0
  55. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  56. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.json +88 -0
  57. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  58. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  59. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  60. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  61. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  62. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  63. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  64. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  65. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  66. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  67. package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  68. package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  69. package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  70. package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  71. package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  72. package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  73. package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  74. package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  75. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  76. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  77. package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  78. package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  79. package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  80. package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.json +298 -0
  81. package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  82. package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.json +473 -0
  83. package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  84. package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  85. package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  86. package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.json +730 -0
  87. package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  88. package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  89. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  90. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  91. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  92. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  93. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  94. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  95. package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  96. package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  97. package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.dbg.json +4 -0
  98. package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.json +921 -0
  99. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  100. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.json +2020 -0
  101. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.dbg.json +4 -0
  102. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.json +1650 -0
  103. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  104. package/src/assets/ethereum/ABI/{liqEth/LiqEthCommon.sol/ILiqEthMint.json → outpost/interfaces/IWarrant.sol/IWarrant.json} +6 -12
  105. package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  106. package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  107. package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  108. package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  109. package/src/assets/solana/idl/liqsol_core.json +1369 -1129
  110. package/src/assets/solana/idl/liqsol_token.json +1 -1
  111. package/src/assets/solana/idl/validator_leaderboard.json +1 -1
  112. package/src/assets/solana/types/liqsol_core.ts +1369 -1129
  113. package/src/assets/solana/types/liqsol_token.ts +1 -1
  114. package/src/assets/solana/types/validator_leaderboard.ts +1 -1
  115. package/src/index.ts +2 -1
  116. package/src/networks/ethereum/clients/deposit.client.ts +82 -0
  117. package/src/networks/ethereum/clients/stake.client.ts +215 -0
  118. package/src/networks/ethereum/contract.ts +82 -23
  119. package/src/networks/ethereum/ethereum.ts +148 -69
  120. package/src/networks/ethereum/types.ts +74 -7
  121. package/src/networks/solana/clients/deposit.client.ts +7 -11
  122. package/src/networks/solana/clients/distribution.client.ts +1 -3
  123. package/src/networks/solana/clients/outpost.client.ts +474 -0
  124. package/src/networks/solana/constants.ts +90 -52
  125. package/src/networks/solana/solana.ts +155 -128
  126. package/src/networks/solana/types.ts +95 -8
  127. package/src/networks/solana/utils.ts +111 -94
  128. package/src/staker/types.ts +7 -5
  129. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.dbg.json +0 -4
  130. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.json +0 -24
  131. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.dbg.json +0 -4
  132. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.dbg.json +0 -4
  133. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.json +0 -391
  134. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.dbg.json +0 -4
  135. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.json +0 -402
@@ -0,0 +1,1010 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OPPInbound",
4
+ "sourceName": "contracts/outpost/OPPInbound.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "target",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "AddressEmptyCode",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "implementation",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ERC1967InvalidImplementation",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ERC1967NonPayable",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "FailedCall",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "InvalidInitialization",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "NotInitializing",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "bytes32",
90
+ "name": "expected",
91
+ "type": "bytes32"
92
+ },
93
+ {
94
+ "internalType": "bytes32",
95
+ "name": "actual",
96
+ "type": "bytes32"
97
+ }
98
+ ],
99
+ "name": "OPP_EpochHashMismatch",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "uint256",
106
+ "name": "required",
107
+ "type": "uint256"
108
+ },
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "provided",
112
+ "type": "uint256"
113
+ }
114
+ ],
115
+ "name": "OPP_InsufficientSignatureWeight",
116
+ "type": "error"
117
+ },
118
+ {
119
+ "inputs": [
120
+ {
121
+ "internalType": "address",
122
+ "name": "caller",
123
+ "type": "address"
124
+ },
125
+ {
126
+ "internalType": "address",
127
+ "name": "expected",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "name": "OPP_InvalidOPPAddress",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "bytes32",
138
+ "name": "expected",
139
+ "type": "bytes32"
140
+ },
141
+ {
142
+ "internalType": "bytes32",
143
+ "name": "actual",
144
+ "type": "bytes32"
145
+ }
146
+ ],
147
+ "name": "OPP_MessageIDMismatch",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [],
152
+ "name": "OPP_NoAssertionsSent",
153
+ "type": "error"
154
+ },
155
+ {
156
+ "inputs": [],
157
+ "name": "OPP_NoPendingAssertions",
158
+ "type": "error"
159
+ },
160
+ {
161
+ "inputs": [
162
+ {
163
+ "internalType": "uint32",
164
+ "name": "expected",
165
+ "type": "uint32"
166
+ },
167
+ {
168
+ "internalType": "uint32",
169
+ "name": "actual",
170
+ "type": "uint32"
171
+ }
172
+ ],
173
+ "name": "OPP_NonSequentialEpoch",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "OPP_NotSending",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "OPP_OPPAddressNotSet",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "bytes32",
190
+ "name": "expected",
191
+ "type": "bytes32"
192
+ },
193
+ {
194
+ "internalType": "bytes32",
195
+ "name": "actual",
196
+ "type": "bytes32"
197
+ }
198
+ ],
199
+ "name": "OPP_PayloadHashMismatch",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "uint32",
206
+ "name": "epochNumber",
207
+ "type": "uint32"
208
+ },
209
+ {
210
+ "internalType": "uint256",
211
+ "name": "messageCount",
212
+ "type": "uint256"
213
+ }
214
+ ],
215
+ "name": "OPP_PreviousEpochPendingMessages",
216
+ "type": "error"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "uint32",
222
+ "name": "epochNumber",
223
+ "type": "uint32"
224
+ }
225
+ ],
226
+ "name": "OPP_PreviousEpochSent",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [
231
+ {
232
+ "internalType": "uint32",
233
+ "name": "epochNumber",
234
+ "type": "uint32"
235
+ }
236
+ ],
237
+ "name": "OPP_PreviousEpochUnsent",
238
+ "type": "error"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "uint256",
244
+ "name": "stack",
245
+ "type": "uint256"
246
+ }
247
+ ],
248
+ "name": "OPP_SendStackError",
249
+ "type": "error"
250
+ },
251
+ {
252
+ "inputs": [
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "expectedMaxMessages",
256
+ "type": "uint256"
257
+ },
258
+ {
259
+ "internalType": "uint256",
260
+ "name": "actualMessages",
261
+ "type": "uint256"
262
+ }
263
+ ],
264
+ "name": "OPP_TooManyMessages",
265
+ "type": "error"
266
+ },
267
+ {
268
+ "inputs": [
269
+ {
270
+ "internalType": "address",
271
+ "name": "sender",
272
+ "type": "address"
273
+ },
274
+ {
275
+ "internalType": "uint16",
276
+ "name": "assertionType",
277
+ "type": "uint16"
278
+ }
279
+ ],
280
+ "name": "OPP_UnauthorizedAssertionType",
281
+ "type": "error"
282
+ },
283
+ {
284
+ "inputs": [
285
+ {
286
+ "internalType": "uint16",
287
+ "name": "assertionType",
288
+ "type": "uint16"
289
+ }
290
+ ],
291
+ "name": "OPP_UnhandledAssertionType",
292
+ "type": "error"
293
+ },
294
+ {
295
+ "inputs": [],
296
+ "name": "OPP_ZeroTag",
297
+ "type": "error"
298
+ },
299
+ {
300
+ "inputs": [],
301
+ "name": "UUPSUnauthorizedCallContext",
302
+ "type": "error"
303
+ },
304
+ {
305
+ "inputs": [
306
+ {
307
+ "internalType": "bytes32",
308
+ "name": "slot",
309
+ "type": "bytes32"
310
+ }
311
+ ],
312
+ "name": "UUPSUnsupportedProxiableUUID",
313
+ "type": "error"
314
+ },
315
+ {
316
+ "anonymous": false,
317
+ "inputs": [
318
+ {
319
+ "indexed": false,
320
+ "internalType": "bytes32",
321
+ "name": "messageID",
322
+ "type": "bytes32"
323
+ },
324
+ {
325
+ "indexed": false,
326
+ "internalType": "uint16",
327
+ "name": "assertionType",
328
+ "type": "uint16"
329
+ },
330
+ {
331
+ "indexed": false,
332
+ "internalType": "uint16",
333
+ "name": "sequenceNumber",
334
+ "type": "uint16"
335
+ }
336
+ ],
337
+ "name": "AssertionBlackholed",
338
+ "type": "event"
339
+ },
340
+ {
341
+ "anonymous": false,
342
+ "inputs": [
343
+ {
344
+ "indexed": true,
345
+ "internalType": "address",
346
+ "name": "handler",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": false,
351
+ "internalType": "bytes32",
352
+ "name": "messageID",
353
+ "type": "bytes32"
354
+ },
355
+ {
356
+ "indexed": false,
357
+ "internalType": "uint16",
358
+ "name": "assertionType",
359
+ "type": "uint16"
360
+ },
361
+ {
362
+ "indexed": false,
363
+ "internalType": "uint16",
364
+ "name": "sequenceNumber",
365
+ "type": "uint16"
366
+ }
367
+ ],
368
+ "name": "AssertionDelivered",
369
+ "type": "event"
370
+ },
371
+ {
372
+ "anonymous": false,
373
+ "inputs": [
374
+ {
375
+ "indexed": true,
376
+ "internalType": "uint16",
377
+ "name": "assertionType",
378
+ "type": "uint16"
379
+ },
380
+ {
381
+ "indexed": false,
382
+ "internalType": "address",
383
+ "name": "handler",
384
+ "type": "address"
385
+ },
386
+ {
387
+ "indexed": false,
388
+ "internalType": "address",
389
+ "name": "oldHandler",
390
+ "type": "address"
391
+ }
392
+ ],
393
+ "name": "AssertionHandlerSet",
394
+ "type": "event"
395
+ },
396
+ {
397
+ "anonymous": false,
398
+ "inputs": [
399
+ {
400
+ "indexed": false,
401
+ "internalType": "address",
402
+ "name": "authority",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "name": "AuthorityUpdated",
407
+ "type": "event"
408
+ },
409
+ {
410
+ "anonymous": false,
411
+ "inputs": [
412
+ {
413
+ "indexed": false,
414
+ "internalType": "uint32",
415
+ "name": "epochNumber",
416
+ "type": "uint32"
417
+ }
418
+ ],
419
+ "name": "EpochComplete",
420
+ "type": "event"
421
+ },
422
+ {
423
+ "anonymous": false,
424
+ "inputs": [
425
+ {
426
+ "indexed": false,
427
+ "internalType": "uint32",
428
+ "name": "epochNumber",
429
+ "type": "uint32"
430
+ },
431
+ {
432
+ "indexed": false,
433
+ "internalType": "bytes32",
434
+ "name": "epochHash",
435
+ "type": "bytes32"
436
+ },
437
+ {
438
+ "indexed": false,
439
+ "internalType": "uint256",
440
+ "name": "messageCount",
441
+ "type": "uint256"
442
+ }
443
+ ],
444
+ "name": "EpochReceived",
445
+ "type": "event"
446
+ },
447
+ {
448
+ "anonymous": false,
449
+ "inputs": [
450
+ {
451
+ "indexed": false,
452
+ "internalType": "uint64",
453
+ "name": "version",
454
+ "type": "uint64"
455
+ }
456
+ ],
457
+ "name": "Initialized",
458
+ "type": "event"
459
+ },
460
+ {
461
+ "anonymous": false,
462
+ "inputs": [
463
+ {
464
+ "indexed": false,
465
+ "internalType": "bytes32",
466
+ "name": "messageID",
467
+ "type": "bytes32"
468
+ },
469
+ {
470
+ "indexed": false,
471
+ "internalType": "uint16",
472
+ "name": "assertionCount",
473
+ "type": "uint16"
474
+ }
475
+ ],
476
+ "name": "MessageProcessed",
477
+ "type": "event"
478
+ },
479
+ {
480
+ "anonymous": false,
481
+ "inputs": [
482
+ {
483
+ "indexed": false,
484
+ "internalType": "uint32",
485
+ "name": "epochNumber",
486
+ "type": "uint32"
487
+ },
488
+ {
489
+ "indexed": false,
490
+ "internalType": "bytes32",
491
+ "name": "firstMessageID",
492
+ "type": "bytes32"
493
+ },
494
+ {
495
+ "indexed": false,
496
+ "internalType": "bytes32",
497
+ "name": "lastMessageID",
498
+ "type": "bytes32"
499
+ }
500
+ ],
501
+ "name": "MessagesReceived",
502
+ "type": "event"
503
+ },
504
+ {
505
+ "anonymous": false,
506
+ "inputs": [
507
+ {
508
+ "indexed": true,
509
+ "internalType": "address",
510
+ "name": "implementation",
511
+ "type": "address"
512
+ }
513
+ ],
514
+ "name": "Upgraded",
515
+ "type": "event"
516
+ },
517
+ {
518
+ "inputs": [],
519
+ "name": "MIN_SIG_WEIGHT",
520
+ "outputs": [
521
+ {
522
+ "internalType": "uint256",
523
+ "name": "",
524
+ "type": "uint256"
525
+ }
526
+ ],
527
+ "stateMutability": "view",
528
+ "type": "function"
529
+ },
530
+ {
531
+ "inputs": [],
532
+ "name": "UPGRADE_INTERFACE_VERSION",
533
+ "outputs": [
534
+ {
535
+ "internalType": "string",
536
+ "name": "",
537
+ "type": "string"
538
+ }
539
+ ],
540
+ "stateMutability": "view",
541
+ "type": "function"
542
+ },
543
+ {
544
+ "inputs": [
545
+ {
546
+ "internalType": "uint16",
547
+ "name": "",
548
+ "type": "uint16"
549
+ }
550
+ ],
551
+ "name": "assertionHandlers",
552
+ "outputs": [
553
+ {
554
+ "internalType": "contract IOPPReceiver",
555
+ "name": "",
556
+ "type": "address"
557
+ }
558
+ ],
559
+ "stateMutability": "view",
560
+ "type": "function"
561
+ },
562
+ {
563
+ "inputs": [],
564
+ "name": "authority",
565
+ "outputs": [
566
+ {
567
+ "internalType": "address",
568
+ "name": "",
569
+ "type": "address"
570
+ }
571
+ ],
572
+ "stateMutability": "view",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "components": [
579
+ {
580
+ "internalType": "uint32",
581
+ "name": "epochNumber",
582
+ "type": "uint32"
583
+ },
584
+ {
585
+ "internalType": "uint64",
586
+ "name": "timestamp",
587
+ "type": "uint64"
588
+ },
589
+ {
590
+ "internalType": "bytes32",
591
+ "name": "prevEpochHash",
592
+ "type": "bytes32"
593
+ },
594
+ {
595
+ "internalType": "bytes32",
596
+ "name": "merkleRoot",
597
+ "type": "bytes32"
598
+ },
599
+ {
600
+ "internalType": "bytes32",
601
+ "name": "firstMessageID",
602
+ "type": "bytes32"
603
+ },
604
+ {
605
+ "internalType": "bytes32",
606
+ "name": "lastMessageID",
607
+ "type": "bytes32"
608
+ }
609
+ ],
610
+ "internalType": "struct OPPEpochEnvelope",
611
+ "name": "epoch",
612
+ "type": "tuple"
613
+ },
614
+ {
615
+ "components": [
616
+ {
617
+ "internalType": "bytes32",
618
+ "name": "r",
619
+ "type": "bytes32"
620
+ },
621
+ {
622
+ "internalType": "bytes32",
623
+ "name": "s",
624
+ "type": "bytes32"
625
+ },
626
+ {
627
+ "internalType": "uint8",
628
+ "name": "v",
629
+ "type": "uint8"
630
+ }
631
+ ],
632
+ "internalType": "struct signature[]",
633
+ "name": "signatures",
634
+ "type": "tuple[]"
635
+ }
636
+ ],
637
+ "name": "epochIn",
638
+ "outputs": [],
639
+ "stateMutability": "nonpayable",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "address",
646
+ "name": "oppManager",
647
+ "type": "address"
648
+ }
649
+ ],
650
+ "name": "initialize",
651
+ "outputs": [],
652
+ "stateMutability": "nonpayable",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [],
657
+ "name": "isConsumingScheduledOp",
658
+ "outputs": [
659
+ {
660
+ "internalType": "bytes4",
661
+ "name": "",
662
+ "type": "bytes4"
663
+ }
664
+ ],
665
+ "stateMutability": "view",
666
+ "type": "function"
667
+ },
668
+ {
669
+ "inputs": [],
670
+ "name": "lastMessageID",
671
+ "outputs": [
672
+ {
673
+ "internalType": "bytes32",
674
+ "name": "",
675
+ "type": "bytes32"
676
+ }
677
+ ],
678
+ "stateMutability": "view",
679
+ "type": "function"
680
+ },
681
+ {
682
+ "inputs": [
683
+ {
684
+ "components": [
685
+ {
686
+ "components": [
687
+ {
688
+ "internalType": "bytes32",
689
+ "name": "messageID",
690
+ "type": "bytes32"
691
+ },
692
+ {
693
+ "internalType": "bytes32",
694
+ "name": "previousMessageID",
695
+ "type": "bytes32"
696
+ },
697
+ {
698
+ "internalType": "bytes32",
699
+ "name": "payloadHash",
700
+ "type": "bytes32"
701
+ },
702
+ {
703
+ "internalType": "uint64",
704
+ "name": "timestamp",
705
+ "type": "uint64"
706
+ }
707
+ ],
708
+ "internalType": "struct OPPMessageHeader",
709
+ "name": "header",
710
+ "type": "tuple"
711
+ },
712
+ {
713
+ "components": [
714
+ {
715
+ "internalType": "uint8",
716
+ "name": "protocolVersion",
717
+ "type": "uint8"
718
+ },
719
+ {
720
+ "internalType": "uint8",
721
+ "name": "encodingFlags",
722
+ "type": "uint8"
723
+ },
724
+ {
725
+ "components": [
726
+ {
727
+ "internalType": "uint16",
728
+ "name": "assertionType",
729
+ "type": "uint16"
730
+ },
731
+ {
732
+ "internalType": "bytes",
733
+ "name": "assertion",
734
+ "type": "bytes"
735
+ }
736
+ ],
737
+ "internalType": "struct OPPAssertion[]",
738
+ "name": "assertions",
739
+ "type": "tuple[]"
740
+ }
741
+ ],
742
+ "internalType": "struct OPPPayload",
743
+ "name": "payload",
744
+ "type": "tuple"
745
+ }
746
+ ],
747
+ "internalType": "struct OPPMessageIn[]",
748
+ "name": "messages",
749
+ "type": "tuple[]"
750
+ },
751
+ {
752
+ "components": [
753
+ {
754
+ "internalType": "bytes32[]",
755
+ "name": "proof",
756
+ "type": "bytes32[]"
757
+ },
758
+ {
759
+ "internalType": "uint8[]",
760
+ "name": "ops",
761
+ "type": "uint8[]"
762
+ },
763
+ {
764
+ "internalType": "uint256",
765
+ "name": "maxStack",
766
+ "type": "uint256"
767
+ }
768
+ ],
769
+ "internalType": "struct MerkleProof",
770
+ "name": "merkleProof",
771
+ "type": "tuple"
772
+ }
773
+ ],
774
+ "name": "messagesIn",
775
+ "outputs": [],
776
+ "stateMutability": "nonpayable",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [],
781
+ "name": "nextEpochNum",
782
+ "outputs": [
783
+ {
784
+ "internalType": "uint32",
785
+ "name": "",
786
+ "type": "uint32"
787
+ }
788
+ ],
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [],
794
+ "name": "pendingEpoch",
795
+ "outputs": [
796
+ {
797
+ "internalType": "uint32",
798
+ "name": "epochNumber",
799
+ "type": "uint32"
800
+ },
801
+ {
802
+ "internalType": "uint64",
803
+ "name": "timestamp",
804
+ "type": "uint64"
805
+ },
806
+ {
807
+ "internalType": "bytes32",
808
+ "name": "prevEpochHash",
809
+ "type": "bytes32"
810
+ },
811
+ {
812
+ "internalType": "bytes32",
813
+ "name": "merkleRoot",
814
+ "type": "bytes32"
815
+ },
816
+ {
817
+ "internalType": "bytes32",
818
+ "name": "firstMessageID",
819
+ "type": "bytes32"
820
+ },
821
+ {
822
+ "internalType": "bytes32",
823
+ "name": "lastMessageID",
824
+ "type": "bytes32"
825
+ }
826
+ ],
827
+ "stateMutability": "view",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [],
832
+ "name": "pendingEpochHash",
833
+ "outputs": [
834
+ {
835
+ "internalType": "bytes32",
836
+ "name": "",
837
+ "type": "bytes32"
838
+ }
839
+ ],
840
+ "stateMutability": "view",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [],
845
+ "name": "pendingMessageCount",
846
+ "outputs": [
847
+ {
848
+ "internalType": "uint256",
849
+ "name": "",
850
+ "type": "uint256"
851
+ }
852
+ ],
853
+ "stateMutability": "view",
854
+ "type": "function"
855
+ },
856
+ {
857
+ "inputs": [],
858
+ "name": "previousEpochHash",
859
+ "outputs": [
860
+ {
861
+ "internalType": "bytes32",
862
+ "name": "",
863
+ "type": "bytes32"
864
+ }
865
+ ],
866
+ "stateMutability": "view",
867
+ "type": "function"
868
+ },
869
+ {
870
+ "inputs": [],
871
+ "name": "proxiableUUID",
872
+ "outputs": [
873
+ {
874
+ "internalType": "bytes32",
875
+ "name": "",
876
+ "type": "bytes32"
877
+ }
878
+ ],
879
+ "stateMutability": "view",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [
884
+ {
885
+ "internalType": "uint16",
886
+ "name": "assertionType",
887
+ "type": "uint16"
888
+ },
889
+ {
890
+ "internalType": "address",
891
+ "name": "handler",
892
+ "type": "address"
893
+ }
894
+ ],
895
+ "name": "setAssertionHandler",
896
+ "outputs": [],
897
+ "stateMutability": "nonpayable",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [
902
+ {
903
+ "internalType": "address",
904
+ "name": "newAuthority",
905
+ "type": "address"
906
+ }
907
+ ],
908
+ "name": "setAuthority",
909
+ "outputs": [],
910
+ "stateMutability": "nonpayable",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [
915
+ {
916
+ "internalType": "address",
917
+ "name": "newImplementation",
918
+ "type": "address"
919
+ },
920
+ {
921
+ "internalType": "bytes",
922
+ "name": "data",
923
+ "type": "bytes"
924
+ }
925
+ ],
926
+ "name": "upgradeToAndCall",
927
+ "outputs": [],
928
+ "stateMutability": "payable",
929
+ "type": "function"
930
+ }
931
+ ],
932
+ "bytecode": "0x60a08060405234603957306080526000805463ffffffff19168155600a55612141908161003f82396080518181816104b30152611e350152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063163c71df146101375780632c92892f1461013257806343df05c91461012d5780634f1ef2861461012857806352d1902d146101235780635d4e25ce1461011e578063621fbd5914610119578063711318e514610114578063713063281461010f5780637a9e5e4b1461010a5780638fb36037146101055780639ef604e114610100578063ad3cb1cc146100fb578063bf7e214f146100f6578063c4d66de8146100f1578063e3dff2af146100ec578063f552501a146100e75763f753fc48146100e257600080fd5b610c70565b6109fc565b6109de565b6108ad565b610877565b61082d565b6107c1565b61076e565b6106f3565b610666565b610547565b610529565b61050b565b6104a0565b610393565b61023f565b610221565b610177565b6004359061ffff8216820361014d57565b600080fd5b359061ffff8216820361014d57565b600435906001600160a01b038216820361014d57565b3461014d57604036600319011261014d5761019061013c565b6001600160a01b0390602435828116919082900361014d5761ffff906101b636336117a0565b16807fa391fabf4b6e7d7b48a0a019b195c3beeacfebbb484456ceb81a52891f26faab6040600095838752600360205281872054168151908682526020820152a2825260036020526040822080546001600160a01b031916909117905580f35b600091031261014d57565b3461014d57600036600319011261014d576020600a54604051908152f35b3461014d57600036600319011261014d57602060405160008152f35b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761028c57604052565b61025b565b60c081019081106001600160401b0382111761028c57604052565b604081019081106001600160401b0382111761028c57604052565b608081019081106001600160401b0382111761028c57604052565b6001600160401b03811161028c57604052565b602081019081106001600160401b0382111761028c57604052565b90601f801991011681019081106001600160401b0382111761028c57604052565b6001600160401b03811161028c57601f01601f191660200190565b81601f8201121561014d5780359061036382610331565b926103716040519485610310565b8284526020838301011161014d57816000926020809301838601378301015290565b604036600319011261014d576103a7610161565b6024356001600160401b03811161014d576103c690369060040161034c565b906103cf611e2b565b6103d936336117a0565b6103e1611e2b565b6040516352d1902d60e01b8152916020836004816001600160a01b0386165afa6000938161046f575b5061043457604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b0390fd5b906000805160206120cc8339815191528303610456576104549250611f5f565b005b604051632a87526960e21b815260048101849052602490fd5b61049291945060203d602011610499575b61048a8183610310565b8101906115a0565b923861040a565b503d610480565b3461014d57600036600319011261014d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104f95760206040516000805160206120cc8339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461014d57600036600319011261014d576020600254604051908152f35b3461014d57600036600319011261014d576020600154604051908152f35b3461014d57602036600319011261014d5761ffff61056361013c565b166000526003602052602060018060a01b0360406000205416604051908152f35b602435906001600160401b038216820361014d57565b35906001600160401b038216820361014d57565b6001600160401b03811161028c5760051b60200190565b359060ff8216820361014d57565b81601f8201121561014d5780359060206105ec836105ae565b9360406105fc6040519687610310565b848652828601918360608097028601019481861161014d578401925b858410610629575050505050505090565b868483031261014d57848791845161064081610271565b8635815282870135838201526106578688016105c5565b86820152815201930192610618565b3461014d57366003190160e0811261014d5760c01361014d5760405161068b81610291565b60043563ffffffff8116810361014d5781526106a5610584565b602082015260443560408201526064356060820152608435608082015260a43560a082015260c435906001600160401b03821161014d576106ed6104549236906004016105d3565b90610d9b565b3461014d57602036600319011261014d5761070c610161565b6000805160206120ac833981519152546001600160a01b0391908216330361075757803b1561073e5761045490611b78565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461014d57600036600319011261014d576000805160206120ac8339815191525460a01c60ff16156107b8576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b602060006107a5565b3461014d57600036600319011261014d57602063ffffffff60005416604051908152f35b60005b8381106107f85750506000910152565b81810151838201526020016107e8565b90602091610821815180928185528580860191016107e5565b601f01601f1916010190565b3461014d57600036600319011261014d5761087360405161084d816102ac565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610808565b0390f35b3461014d57600036600319011261014d576000805160206120ac833981519152546040516001600160a01b039091168152602090f35b3461014d57602036600319011261014d576108c6610161565b6000805160206120ec83398151915254906001600160401b0360ff8360401c16159216801590816109d6575b60011490816109cc575b1590816109c3575b506109b1576000805160206120ec833981519152805467ffffffffffffffff19166001179055610938908261098757611bd1565b61093e57005b6000805160206120ec833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6000805160206120ec833981519152805460ff60401b191668010000000000000000179055611bd1565b60405163f92ee8a960e01b8152600490fd5b90501538610904565b303b1591506108fc565b8391506108f2565b3461014d57600036600319011261014d576020600954604051908152f35b3461014d57600036600319011261014d5760c060045460055460065460075490600854926001600160401b036040519563ffffffff8116875260201c16602086015260408501526060840152608083015260a0820152f35b91909160608184031261014d5760408051610a6e81610271565b8094610a79846105c5565b8252602090610a898286016105c5565b82840152838501356001600160401b039586821161014d57019080601f8301121561014d578135610ab9816105ae565b96610ac687519889610310565b818852848089019260051b8501019383851161014d57858101925b858410610af357505050505050500152565b833583811161014d5782019089601f19838803011261014d57895190610b18826102ac565b610b23898401610152565b82528a8301359185831161014d57610b42888b8096958196010161034c565b83820152815201930192610ae1565b9080601f8301121561014d576020908235610b6b816105ae565b93610b796040519586610310565b81855260208086019260051b82010192831161014d57602001905b828210610ba2575050505090565b838091610bae846105c5565b815201910190610b94565b91909160608184031261014d5760405190610bd382610271565b81938135916001600160401b039283811161014d57810182601f8201121561014d578035602091610c03826105ae565b91610c116040519384610310565b808352838084019160051b8301019186831161014d5784809101915b838310610c60575050505085528082013593841161014d57610c556040949385948401610b51565b908501520135910152565b8235815291810191859101610c2d565b3461014d5760408060031936011261014d576004356001600160401b039182821161014d573660238301121561014d578160040135916024610cb1846105ae565b93610cbf6040519586610310565b8085526020936024602087019260051b8501019336851161014d5760248101925b858410610d0957602435888a821161014d57610d03610454923690600401610bb9565b9061110c565b833589811161014d578201602319813603019160a0831261014d576080855193610d32856102ac565b1261014d578451610d42816102c7565b87830135815260448301358a820152606483013586820152610d666084840161059a565b6060820152835260a4820135928b841161014d57610d8c8a949389869536920101610a54565b83820152815201930192610ce0565b919091610da836336117a0565b805163ffffffff16600090610dc1825463ffffffff1690565b63ffffffff8082169083160361102f575050600a5480610ffe57506040936040830180518015600014610fc9575060025490525b610dfe836119bc565b829483955b8351871015610e9057610e2388610e1a898761107d565b51015160ff1690565b85610e2e898761107d565b5151602092610e6a84610e418d8b61107d565b5101518d519384938a859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15610e8b57610e836001916110b3565b960195610e03565b611091565b5095509290507f92755d6396624ba7d332fd47df31ce92c55ea403dff51b832270c53ea4e380789350610f9b9150610f1b8160a09063ffffffff815116600454906bffffffffffffffff00000000602084015160201b16916bffffffffffffffffffffffff191617176004556040810151600555606081015160065560808101516007550151600855565b610f59610f54610f48610f43610f3560a086015160c01c90565b608086015160c01c906110c6565b6110df565b6001600160401b031690565b600a55565b610f6283600955565b610f91610f7b610f76835163ffffffff1690565b6110f7565b63ffffffff1663ffffffff196000541617600055565b5163ffffffff1690565b610fc4600a546040519384938460409194939263ffffffff606083019616825260208201520152565b0390a1565b9050600254808203610fdc575050610df5565b604051631d734b9160e01b815260048101919091526024810191909152604490fd5b60045463ffffffff1660405163172cc05360e31b815263ffffffff9190911660048201526024810191909152604490fd5b6040516307d3e83d60e51b815263ffffffff918216600482015291166024820152604490fd5b634e487b7160e01b600052603260045260246000fd5b8051156110785760200190565b611055565b80518210156110785760209160051b010190565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b90600182018092116110c157565b61109d565b6001600160401b0391821690821603919082116110c157565b9060016001600160401b03809316019182116110c157565b90600163ffffffff809316019182116110c157565b61111636336117a0565b600a5481519081811061154c575050611132819392935161156e565b9060009373__$b91d2ad766fd07dc99f56c1a0b020615bb$__945b825181101561134057602080611163838661107d565b51015160408051630cdf0d5f60e31b81528381806111856004968783016115af565b03818d5af4908115610e8b57600091611323575b50816111a5868961107d565b515101516112d157816111b8868961107d565b515101525b611213836111cb868961107d565b515183518093819263ee37a99560e01b835287830191909160606001600160401b03816080840195805185526020810151602086015260408101516040860152015116910152565b03818d5af4938415610e8b576000946112b2575b5050611233848761107d565b515151611260575050908160019261124b838761107d565b5151525b611259828761107d565b520161114d565b8261126b858861107d565b5151510361127e5750509060019161124f565b6104309061128c858861107d565b515151905163fa28addf60e01b8152928301938452602084015290918291604090910190565b6112c9929450803d106104995761048a8183610310565b913880611227565b80826112dd878a61107d565b51510151036112ec57506111bd565b8261043083806112fc898c61107d565b515101519051635c2444ad60e11b8152928301938452602084015290918291604090910190565b61133a9150843d86116104995761048a8183610310565b38611199565b5093509073__$398d4f030862acab53d338aebf0b4256d7$__9060065490823b1561014d5761138c9260009260409760405195869485938493633723f9ef60e21b85526004850161167f565b03915af48015610e8b57611533575b507fade24a421f85dbfb28bb1cd512d6f22ea8eada0f6f9231c67aae311011fb64936113cc60045463ffffffff1690565b6113d58361106b565b515151906114156113ef6113e98651611710565b8661107d565b5151516040519384938460409194939263ffffffff606083019616825260208201520152565b0390a160005b815181101561149d578061143a6114346001938561107d565b51611c15565b7f7e14d4713145813a3025a669be25c095551b19ab1276ca7fa072c6a315cc889d611465828561107d565b515151611485876020611478868961107d565b51015101515161ffff1690565b875191825261ffff166020820152604090a10161141b565b506114cf919250610f54906114c66114be6114b88351611710565b8361107d565b515151600155565b51600a5461171f565b600a54156114d957565b7fe784b22f2061de501b77364cab02ee109528afe4ddc8d423d076f6b49021b58e61152361150c60045463ffffffff1690565b60405163ffffffff90911681529081906020820190565b0390a1611531600954600255565b565b80611540611546926102e2565b80610216565b3861139b565b604051630daf4bc160e01b815260048101919091526024810191909152604490fd5b90611578826105ae565b6115856040519182610310565b8281528092611596601f19916105ae565b0190602036910137565b9081602091031261014d575190565b906020808352608083019060ff835116818501526040818401519360ff82951682870152015193606080820152845180935260a081018260a08560051b8401019601946000925b858410611607575050505050505090565b90919293949596858061163a600193609f1986820301885286838d5161ffff815116845201519181858201520190610808565b9901940194019295949391906115f6565b90815180825260208080930193019160005b82811061166b575050505090565b83518552938101939281019260010161165d565b939290916080855261169d83516060608088015260e087019061164b565b602080850151878303607f190160a089015280518084529282019591929083019060005b8181106116f957505050926116f19261153195926040606096015160c08a0152880152868203604088015261164b565b930160029052565b825160ff16885296840196918401916001016116c1565b6000198101919082116110c157565b919082039182116110c157565b60041161014d57600090600490565b6001600160e01b0319903581811693926004811061175857505050565b60040360031b82901b16169150565b6001600160a01b0390911681526040602082018190528101829052606091806000848401376000828201840152601f01601f1916010190565b6000805160206120ac83398151915280546117d9906001600160a01b03166117d06117ca8661172c565b9061173b565b90843091611d9c565b90156117e6575b50505050565b63ffffffff16156118a7576000805160206120ac833981519152805460ff60a01b1916600160a01b179055611835906118299081905b546001600160a01b031690565b6001600160a01b031690565b91823b1561014d576118619260009283604051809681958294634a63ebf760e11b845260048401611767565b03925af18015610e8b57611894575b506000805160206120ac833981519152805460ff60a01b19169055388080806117e0565b806115406118a1926102e2565b38611870565b60405162d1953b60e31b81526001600160a01b0383166004820152602490fd5b9060208282031261014d5781516001600160401b039283821161014d57019160208383031261014d57604051926118fd846102f5565b805191821161014d570181601f8201121561014d57805161191d81610331565b9261192b6040519485610310565b8184526020828401011161014d5761194991602080850191016107e5565b815290565b9063ffffffff61197260209295949560408552518360408601526060850190610808565b9416910152565b906001600160401b0361197260209295949560408552518360408601526060850190610808565b60406119b9926020835251916020808201520190610808565b90565b604051635ca2159160e11b81526000919073__$871508ae888325252fdba23f15f3f16064$__8382600481845af4918215610e8b578492611b5c575b50611a3d8473__$46bbbc6398365a8909166570292cf8d34e$__93611a21865163ffffffff1690565b604051632d1d135160e01b81529384928392906004840161194e565b0381865af48015610e8b57611a829386928392611b40575b5060208601516001600160401b03166040516375a2a7e360e01b8152958693849283929160048401611979565b03915af4918215610e8b57611af19360a0611acc611ac1611ab6602097611ad5968b91611b1e575b50604086015190611e85565b606085015190611e85565b608084015190611e85565b91015190611e85565b9060405180809581946308b9b14760e11b8352600483016119a0565b03915af4918215610e8b5791611b05575090565b6119b9915060203d6020116104995761048a8183610310565b611b3a91503d808d833e611b328183610310565b8101906118c7565b38611aaa565b611b559192503d8085833e611b328183610310565b9038611a55565b611b719192503d8086833e611b328183610310565b90386119f8565b6000805160206120ac83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b611bf290611bdd611f30565b611be5611f30565b611bed611f30565b611b78565b611531611f30565b60409061ffff6119b994931681528160208201520190610808565b9060005b602090818401604080825101518051841015611d9357611c3c84611c459261107d565b515161ffff1690565b90611c6461182961181c8461ffff166000526003602052604060002090565b946001600160a01b038616938415611d785761dead8514611d2c578583611c8d9251015161107d565b51015194803b1561014d57815163018f461360e21b8152956000918791829084908290611cbe908960048401611bfa565b03925af1918215610e8b576001957f4d8bbc67148b7893ff46fb6dd312667e5d041117d74072689d9e8d25d0e1b66193611d19575b50875151915191825261ffff908116602083015284166040820152606090a25b01611c19565b80611540611d26926102e2565b38611cf3565b5050865151905190815261ffff91821660208201529083166040820152600193507e963f431abd81ab972a0964227f8e9091d9243f92a721c1354fb4ac75673aa99150606090a1611d13565b82516316afadb560e01b815261ffff85166004820152602490fd5b50505050509050565b60405163b700961360e01b602082019081526001600160a01b0393841660248301529290931660448401526001600160e01b03199093166064808401919091528252600093849390928492909160a08301916001600160401b0383118484101761028c57604093859385528380528360205251915afa611e195750565b9150915051906020518060201c150290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215611e69575b50506104f957565b6000805160206120cc8339815191525416141590503880611e61565b611ede6000916060604051611e99816102f5565b5260405193611ea7856102ac565b602085526020850152611ef06040519485938493638353c19960e01b85526040600486015251602060448601526064850190610808565b83810360031901602485015290610808565b038173__$871508ae888325252fdba23f15f3f16064$__5af4908115610e8b57600091611f1b575090565b6119b991503d806000833e611b328183610310565b60ff6000805160206120ec8339815191525460401c1615611f4d57565b604051631afcd79f60e31b8152600490fd5b90813b15611fe5576000805160206120cc83398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115611fca57611fc791612006565b50565b505034611fd357565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b6000806119b993602081519101845af43d15612044573d9161202783610331565b926120356040519485610310565b83523d6000602085013e612048565b6060915b9061206f575080511561205d57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806120a2575b612080575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561207856fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bd885b1a6e2f2707c9c3c2038dd46e949536cdb3eed4697865d0dd04628a582664736f6c63430008190033",
933
+ "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063163c71df146101375780632c92892f1461013257806343df05c91461012d5780634f1ef2861461012857806352d1902d146101235780635d4e25ce1461011e578063621fbd5914610119578063711318e514610114578063713063281461010f5780637a9e5e4b1461010a5780638fb36037146101055780639ef604e114610100578063ad3cb1cc146100fb578063bf7e214f146100f6578063c4d66de8146100f1578063e3dff2af146100ec578063f552501a146100e75763f753fc48146100e257600080fd5b610c70565b6109fc565b6109de565b6108ad565b610877565b61082d565b6107c1565b61076e565b6106f3565b610666565b610547565b610529565b61050b565b6104a0565b610393565b61023f565b610221565b610177565b6004359061ffff8216820361014d57565b600080fd5b359061ffff8216820361014d57565b600435906001600160a01b038216820361014d57565b3461014d57604036600319011261014d5761019061013c565b6001600160a01b0390602435828116919082900361014d5761ffff906101b636336117a0565b16807fa391fabf4b6e7d7b48a0a019b195c3beeacfebbb484456ceb81a52891f26faab6040600095838752600360205281872054168151908682526020820152a2825260036020526040822080546001600160a01b031916909117905580f35b600091031261014d57565b3461014d57600036600319011261014d576020600a54604051908152f35b3461014d57600036600319011261014d57602060405160008152f35b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761028c57604052565b61025b565b60c081019081106001600160401b0382111761028c57604052565b604081019081106001600160401b0382111761028c57604052565b608081019081106001600160401b0382111761028c57604052565b6001600160401b03811161028c57604052565b602081019081106001600160401b0382111761028c57604052565b90601f801991011681019081106001600160401b0382111761028c57604052565b6001600160401b03811161028c57601f01601f191660200190565b81601f8201121561014d5780359061036382610331565b926103716040519485610310565b8284526020838301011161014d57816000926020809301838601378301015290565b604036600319011261014d576103a7610161565b6024356001600160401b03811161014d576103c690369060040161034c565b906103cf611e2b565b6103d936336117a0565b6103e1611e2b565b6040516352d1902d60e01b8152916020836004816001600160a01b0386165afa6000938161046f575b5061043457604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b0390fd5b906000805160206120cc8339815191528303610456576104549250611f5f565b005b604051632a87526960e21b815260048101849052602490fd5b61049291945060203d602011610499575b61048a8183610310565b8101906115a0565b923861040a565b503d610480565b3461014d57600036600319011261014d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104f95760206040516000805160206120cc8339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461014d57600036600319011261014d576020600254604051908152f35b3461014d57600036600319011261014d576020600154604051908152f35b3461014d57602036600319011261014d5761ffff61056361013c565b166000526003602052602060018060a01b0360406000205416604051908152f35b602435906001600160401b038216820361014d57565b35906001600160401b038216820361014d57565b6001600160401b03811161028c5760051b60200190565b359060ff8216820361014d57565b81601f8201121561014d5780359060206105ec836105ae565b9360406105fc6040519687610310565b848652828601918360608097028601019481861161014d578401925b858410610629575050505050505090565b868483031261014d57848791845161064081610271565b8635815282870135838201526106578688016105c5565b86820152815201930192610618565b3461014d57366003190160e0811261014d5760c01361014d5760405161068b81610291565b60043563ffffffff8116810361014d5781526106a5610584565b602082015260443560408201526064356060820152608435608082015260a43560a082015260c435906001600160401b03821161014d576106ed6104549236906004016105d3565b90610d9b565b3461014d57602036600319011261014d5761070c610161565b6000805160206120ac833981519152546001600160a01b0391908216330361075757803b1561073e5761045490611b78565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461014d57600036600319011261014d576000805160206120ac8339815191525460a01c60ff16156107b8576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b602060006107a5565b3461014d57600036600319011261014d57602063ffffffff60005416604051908152f35b60005b8381106107f85750506000910152565b81810151838201526020016107e8565b90602091610821815180928185528580860191016107e5565b601f01601f1916010190565b3461014d57600036600319011261014d5761087360405161084d816102ac565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610808565b0390f35b3461014d57600036600319011261014d576000805160206120ac833981519152546040516001600160a01b039091168152602090f35b3461014d57602036600319011261014d576108c6610161565b6000805160206120ec83398151915254906001600160401b0360ff8360401c16159216801590816109d6575b60011490816109cc575b1590816109c3575b506109b1576000805160206120ec833981519152805467ffffffffffffffff19166001179055610938908261098757611bd1565b61093e57005b6000805160206120ec833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6000805160206120ec833981519152805460ff60401b191668010000000000000000179055611bd1565b60405163f92ee8a960e01b8152600490fd5b90501538610904565b303b1591506108fc565b8391506108f2565b3461014d57600036600319011261014d576020600954604051908152f35b3461014d57600036600319011261014d5760c060045460055460065460075490600854926001600160401b036040519563ffffffff8116875260201c16602086015260408501526060840152608083015260a0820152f35b91909160608184031261014d5760408051610a6e81610271565b8094610a79846105c5565b8252602090610a898286016105c5565b82840152838501356001600160401b039586821161014d57019080601f8301121561014d578135610ab9816105ae565b96610ac687519889610310565b818852848089019260051b8501019383851161014d57858101925b858410610af357505050505050500152565b833583811161014d5782019089601f19838803011261014d57895190610b18826102ac565b610b23898401610152565b82528a8301359185831161014d57610b42888b8096958196010161034c565b83820152815201930192610ae1565b9080601f8301121561014d576020908235610b6b816105ae565b93610b796040519586610310565b81855260208086019260051b82010192831161014d57602001905b828210610ba2575050505090565b838091610bae846105c5565b815201910190610b94565b91909160608184031261014d5760405190610bd382610271565b81938135916001600160401b039283811161014d57810182601f8201121561014d578035602091610c03826105ae565b91610c116040519384610310565b808352838084019160051b8301019186831161014d5784809101915b838310610c60575050505085528082013593841161014d57610c556040949385948401610b51565b908501520135910152565b8235815291810191859101610c2d565b3461014d5760408060031936011261014d576004356001600160401b039182821161014d573660238301121561014d578160040135916024610cb1846105ae565b93610cbf6040519586610310565b8085526020936024602087019260051b8501019336851161014d5760248101925b858410610d0957602435888a821161014d57610d03610454923690600401610bb9565b9061110c565b833589811161014d578201602319813603019160a0831261014d576080855193610d32856102ac565b1261014d578451610d42816102c7565b87830135815260448301358a820152606483013586820152610d666084840161059a565b6060820152835260a4820135928b841161014d57610d8c8a949389869536920101610a54565b83820152815201930192610ce0565b919091610da836336117a0565b805163ffffffff16600090610dc1825463ffffffff1690565b63ffffffff8082169083160361102f575050600a5480610ffe57506040936040830180518015600014610fc9575060025490525b610dfe836119bc565b829483955b8351871015610e9057610e2388610e1a898761107d565b51015160ff1690565b85610e2e898761107d565b5151602092610e6a84610e418d8b61107d565b5101518d519384938a859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15610e8b57610e836001916110b3565b960195610e03565b611091565b5095509290507f92755d6396624ba7d332fd47df31ce92c55ea403dff51b832270c53ea4e380789350610f9b9150610f1b8160a09063ffffffff815116600454906bffffffffffffffff00000000602084015160201b16916bffffffffffffffffffffffff191617176004556040810151600555606081015160065560808101516007550151600855565b610f59610f54610f48610f43610f3560a086015160c01c90565b608086015160c01c906110c6565b6110df565b6001600160401b031690565b600a55565b610f6283600955565b610f91610f7b610f76835163ffffffff1690565b6110f7565b63ffffffff1663ffffffff196000541617600055565b5163ffffffff1690565b610fc4600a546040519384938460409194939263ffffffff606083019616825260208201520152565b0390a1565b9050600254808203610fdc575050610df5565b604051631d734b9160e01b815260048101919091526024810191909152604490fd5b60045463ffffffff1660405163172cc05360e31b815263ffffffff9190911660048201526024810191909152604490fd5b6040516307d3e83d60e51b815263ffffffff918216600482015291166024820152604490fd5b634e487b7160e01b600052603260045260246000fd5b8051156110785760200190565b611055565b80518210156110785760209160051b010190565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b90600182018092116110c157565b61109d565b6001600160401b0391821690821603919082116110c157565b9060016001600160401b03809316019182116110c157565b90600163ffffffff809316019182116110c157565b61111636336117a0565b600a5481519081811061154c575050611132819392935161156e565b9060009373__$b91d2ad766fd07dc99f56c1a0b020615bb$__945b825181101561134057602080611163838661107d565b51015160408051630cdf0d5f60e31b81528381806111856004968783016115af565b03818d5af4908115610e8b57600091611323575b50816111a5868961107d565b515101516112d157816111b8868961107d565b515101525b611213836111cb868961107d565b515183518093819263ee37a99560e01b835287830191909160606001600160401b03816080840195805185526020810151602086015260408101516040860152015116910152565b03818d5af4938415610e8b576000946112b2575b5050611233848761107d565b515151611260575050908160019261124b838761107d565b5151525b611259828761107d565b520161114d565b8261126b858861107d565b5151510361127e5750509060019161124f565b6104309061128c858861107d565b515151905163fa28addf60e01b8152928301938452602084015290918291604090910190565b6112c9929450803d106104995761048a8183610310565b913880611227565b80826112dd878a61107d565b51510151036112ec57506111bd565b8261043083806112fc898c61107d565b515101519051635c2444ad60e11b8152928301938452602084015290918291604090910190565b61133a9150843d86116104995761048a8183610310565b38611199565b5093509073__$398d4f030862acab53d338aebf0b4256d7$__9060065490823b1561014d5761138c9260009260409760405195869485938493633723f9ef60e21b85526004850161167f565b03915af48015610e8b57611533575b507fade24a421f85dbfb28bb1cd512d6f22ea8eada0f6f9231c67aae311011fb64936113cc60045463ffffffff1690565b6113d58361106b565b515151906114156113ef6113e98651611710565b8661107d565b5151516040519384938460409194939263ffffffff606083019616825260208201520152565b0390a160005b815181101561149d578061143a6114346001938561107d565b51611c15565b7f7e14d4713145813a3025a669be25c095551b19ab1276ca7fa072c6a315cc889d611465828561107d565b515151611485876020611478868961107d565b51015101515161ffff1690565b875191825261ffff166020820152604090a10161141b565b506114cf919250610f54906114c66114be6114b88351611710565b8361107d565b515151600155565b51600a5461171f565b600a54156114d957565b7fe784b22f2061de501b77364cab02ee109528afe4ddc8d423d076f6b49021b58e61152361150c60045463ffffffff1690565b60405163ffffffff90911681529081906020820190565b0390a1611531600954600255565b565b80611540611546926102e2565b80610216565b3861139b565b604051630daf4bc160e01b815260048101919091526024810191909152604490fd5b90611578826105ae565b6115856040519182610310565b8281528092611596601f19916105ae565b0190602036910137565b9081602091031261014d575190565b906020808352608083019060ff835116818501526040818401519360ff82951682870152015193606080820152845180935260a081018260a08560051b8401019601946000925b858410611607575050505050505090565b90919293949596858061163a600193609f1986820301885286838d5161ffff815116845201519181858201520190610808565b9901940194019295949391906115f6565b90815180825260208080930193019160005b82811061166b575050505090565b83518552938101939281019260010161165d565b939290916080855261169d83516060608088015260e087019061164b565b602080850151878303607f190160a089015280518084529282019591929083019060005b8181106116f957505050926116f19261153195926040606096015160c08a0152880152868203604088015261164b565b930160029052565b825160ff16885296840196918401916001016116c1565b6000198101919082116110c157565b919082039182116110c157565b60041161014d57600090600490565b6001600160e01b0319903581811693926004811061175857505050565b60040360031b82901b16169150565b6001600160a01b0390911681526040602082018190528101829052606091806000848401376000828201840152601f01601f1916010190565b6000805160206120ac83398151915280546117d9906001600160a01b03166117d06117ca8661172c565b9061173b565b90843091611d9c565b90156117e6575b50505050565b63ffffffff16156118a7576000805160206120ac833981519152805460ff60a01b1916600160a01b179055611835906118299081905b546001600160a01b031690565b6001600160a01b031690565b91823b1561014d576118619260009283604051809681958294634a63ebf760e11b845260048401611767565b03925af18015610e8b57611894575b506000805160206120ac833981519152805460ff60a01b19169055388080806117e0565b806115406118a1926102e2565b38611870565b60405162d1953b60e31b81526001600160a01b0383166004820152602490fd5b9060208282031261014d5781516001600160401b039283821161014d57019160208383031261014d57604051926118fd846102f5565b805191821161014d570181601f8201121561014d57805161191d81610331565b9261192b6040519485610310565b8184526020828401011161014d5761194991602080850191016107e5565b815290565b9063ffffffff61197260209295949560408552518360408601526060850190610808565b9416910152565b906001600160401b0361197260209295949560408552518360408601526060850190610808565b60406119b9926020835251916020808201520190610808565b90565b604051635ca2159160e11b81526000919073__$871508ae888325252fdba23f15f3f16064$__8382600481845af4918215610e8b578492611b5c575b50611a3d8473__$46bbbc6398365a8909166570292cf8d34e$__93611a21865163ffffffff1690565b604051632d1d135160e01b81529384928392906004840161194e565b0381865af48015610e8b57611a829386928392611b40575b5060208601516001600160401b03166040516375a2a7e360e01b8152958693849283929160048401611979565b03915af4918215610e8b57611af19360a0611acc611ac1611ab6602097611ad5968b91611b1e575b50604086015190611e85565b606085015190611e85565b608084015190611e85565b91015190611e85565b9060405180809581946308b9b14760e11b8352600483016119a0565b03915af4918215610e8b5791611b05575090565b6119b9915060203d6020116104995761048a8183610310565b611b3a91503d808d833e611b328183610310565b8101906118c7565b38611aaa565b611b559192503d8085833e611b328183610310565b9038611a55565b611b719192503d8086833e611b328183610310565b90386119f8565b6000805160206120ac83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b611bf290611bdd611f30565b611be5611f30565b611bed611f30565b611b78565b611531611f30565b60409061ffff6119b994931681528160208201520190610808565b9060005b602090818401604080825101518051841015611d9357611c3c84611c459261107d565b515161ffff1690565b90611c6461182961181c8461ffff166000526003602052604060002090565b946001600160a01b038616938415611d785761dead8514611d2c578583611c8d9251015161107d565b51015194803b1561014d57815163018f461360e21b8152956000918791829084908290611cbe908960048401611bfa565b03925af1918215610e8b576001957f4d8bbc67148b7893ff46fb6dd312667e5d041117d74072689d9e8d25d0e1b66193611d19575b50875151915191825261ffff908116602083015284166040820152606090a25b01611c19565b80611540611d26926102e2565b38611cf3565b5050865151905190815261ffff91821660208201529083166040820152600193507e963f431abd81ab972a0964227f8e9091d9243f92a721c1354fb4ac75673aa99150606090a1611d13565b82516316afadb560e01b815261ffff85166004820152602490fd5b50505050509050565b60405163b700961360e01b602082019081526001600160a01b0393841660248301529290931660448401526001600160e01b03199093166064808401919091528252600093849390928492909160a08301916001600160401b0383118484101761028c57604093859385528380528360205251915afa611e195750565b9150915051906020518060201c150290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215611e69575b50506104f957565b6000805160206120cc8339815191525416141590503880611e61565b611ede6000916060604051611e99816102f5565b5260405193611ea7856102ac565b602085526020850152611ef06040519485938493638353c19960e01b85526040600486015251602060448601526064850190610808565b83810360031901602485015290610808565b038173__$871508ae888325252fdba23f15f3f16064$__5af4908115610e8b57600091611f1b575090565b6119b991503d806000833e611b328183610310565b60ff6000805160206120ec8339815191525460401c1615611f4d57565b604051631afcd79f60e31b8152600490fd5b90813b15611fe5576000805160206120cc83398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115611fca57611fc791612006565b50565b505034611fd357565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b6000806119b993602081519101845af43d15612044573d9161202783610331565b926120356040519485610310565b83523d6000602085013e612048565b6060915b9061206f575080511561205d57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806120a2575b612080575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561207856fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bd885b1a6e2f2707c9c3c2038dd46e949536cdb3eed4697865d0dd04628a582664736f6c63430008190033",
934
+ "linkReferences": {
935
+ "contracts/common/iodata.sol": {
936
+ "iodata": [
937
+ {
938
+ "length": 20,
939
+ "start": 6670
940
+ },
941
+ {
942
+ "length": 20,
943
+ "start": 7987
944
+ }
945
+ ]
946
+ },
947
+ "contracts/common/sysio_merkle.sol": {
948
+ "sysio_merkle": [
949
+ {
950
+ "length": 20,
951
+ "start": 4997
952
+ }
953
+ ]
954
+ },
955
+ "contracts/common/sysio_write.sol": {
956
+ "sysio_write": [
957
+ {
958
+ "length": 20,
959
+ "start": 6718
960
+ }
961
+ ]
962
+ },
963
+ "contracts/outpost/OPPCommon.sol": {
964
+ "OPPCommon": [
965
+ {
966
+ "length": 20,
967
+ "start": 4471
968
+ }
969
+ ]
970
+ }
971
+ },
972
+ "deployedLinkReferences": {
973
+ "contracts/common/iodata.sol": {
974
+ "iodata": [
975
+ {
976
+ "length": 20,
977
+ "start": 6607
978
+ },
979
+ {
980
+ "length": 20,
981
+ "start": 7924
982
+ }
983
+ ]
984
+ },
985
+ "contracts/common/sysio_merkle.sol": {
986
+ "sysio_merkle": [
987
+ {
988
+ "length": 20,
989
+ "start": 4934
990
+ }
991
+ ]
992
+ },
993
+ "contracts/common/sysio_write.sol": {
994
+ "sysio_write": [
995
+ {
996
+ "length": 20,
997
+ "start": 6655
998
+ }
999
+ ]
1000
+ },
1001
+ "contracts/outpost/OPPCommon.sol": {
1002
+ "OPPCommon": [
1003
+ {
1004
+ "length": 20,
1005
+ "start": 4408
1006
+ }
1007
+ ]
1008
+ }
1009
+ }
1010
+ }