@wireio/stake 0.2.0 → 0.2.2

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 (120) hide show
  1. package/lib/stake.browser.js +11779 -2023
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +94 -40
  4. package/lib/stake.js +11906 -2088
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +11779 -2023
  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/networks/ethereum/clients/deposit.client.ts +82 -0
  110. package/src/networks/ethereum/clients/stake.client.ts +215 -0
  111. package/src/networks/ethereum/contract.ts +79 -23
  112. package/src/networks/ethereum/ethereum.ts +130 -66
  113. package/src/networks/ethereum/types.ts +74 -7
  114. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.dbg.json +0 -4
  115. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.json +0 -24
  116. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.dbg.json +0 -4
  117. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.dbg.json +0 -4
  118. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.json +0 -391
  119. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.dbg.json +0 -4
  120. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.json +0 -402
@@ -0,0 +1,930 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OPP",
4
+ "sourceName": "contracts/outpost/OPP.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": "address",
321
+ "name": "authority",
322
+ "type": "address"
323
+ }
324
+ ],
325
+ "name": "AuthorityUpdated",
326
+ "type": "event"
327
+ },
328
+ {
329
+ "anonymous": false,
330
+ "inputs": [
331
+ {
332
+ "indexed": false,
333
+ "internalType": "uint64",
334
+ "name": "version",
335
+ "type": "uint64"
336
+ }
337
+ ],
338
+ "name": "Initialized",
339
+ "type": "event"
340
+ },
341
+ {
342
+ "anonymous": false,
343
+ "inputs": [
344
+ {
345
+ "components": [
346
+ {
347
+ "internalType": "uint32",
348
+ "name": "epochNumber",
349
+ "type": "uint32"
350
+ },
351
+ {
352
+ "internalType": "uint64",
353
+ "name": "timestamp",
354
+ "type": "uint64"
355
+ },
356
+ {
357
+ "internalType": "bytes32",
358
+ "name": "prevEpochHash",
359
+ "type": "bytes32"
360
+ },
361
+ {
362
+ "internalType": "bytes32",
363
+ "name": "merkleRoot",
364
+ "type": "bytes32"
365
+ },
366
+ {
367
+ "internalType": "bytes32",
368
+ "name": "firstMessageID",
369
+ "type": "bytes32"
370
+ },
371
+ {
372
+ "internalType": "bytes32",
373
+ "name": "lastMessageID",
374
+ "type": "bytes32"
375
+ }
376
+ ],
377
+ "indexed": false,
378
+ "internalType": "struct OPPEpochEnvelope",
379
+ "name": "envelope",
380
+ "type": "tuple"
381
+ }
382
+ ],
383
+ "name": "OPPEpoch",
384
+ "type": "event"
385
+ },
386
+ {
387
+ "anonymous": false,
388
+ "inputs": [
389
+ {
390
+ "components": [
391
+ {
392
+ "internalType": "bytes32",
393
+ "name": "messageID",
394
+ "type": "bytes32"
395
+ },
396
+ {
397
+ "internalType": "bytes32",
398
+ "name": "previousMessageID",
399
+ "type": "bytes32"
400
+ },
401
+ {
402
+ "internalType": "bytes32",
403
+ "name": "payloadHash",
404
+ "type": "bytes32"
405
+ },
406
+ {
407
+ "internalType": "uint64",
408
+ "name": "timestamp",
409
+ "type": "uint64"
410
+ }
411
+ ],
412
+ "indexed": false,
413
+ "internalType": "struct OPPMessageHeader",
414
+ "name": "header",
415
+ "type": "tuple"
416
+ },
417
+ {
418
+ "components": [
419
+ {
420
+ "internalType": "uint8",
421
+ "name": "protocolVersion",
422
+ "type": "uint8"
423
+ },
424
+ {
425
+ "internalType": "uint8",
426
+ "name": "encodingFlags",
427
+ "type": "uint8"
428
+ },
429
+ {
430
+ "components": [
431
+ {
432
+ "internalType": "uint16",
433
+ "name": "assertionType",
434
+ "type": "uint16"
435
+ },
436
+ {
437
+ "internalType": "bytes",
438
+ "name": "assertion",
439
+ "type": "bytes"
440
+ }
441
+ ],
442
+ "internalType": "struct OPPAssertion[]",
443
+ "name": "assertions",
444
+ "type": "tuple[]"
445
+ }
446
+ ],
447
+ "indexed": false,
448
+ "internalType": "struct OPPPayload",
449
+ "name": "payload",
450
+ "type": "tuple"
451
+ }
452
+ ],
453
+ "name": "OPPMessage",
454
+ "type": "event"
455
+ },
456
+ {
457
+ "anonymous": false,
458
+ "inputs": [
459
+ {
460
+ "indexed": true,
461
+ "internalType": "address",
462
+ "name": "implementation",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "name": "Upgraded",
467
+ "type": "event"
468
+ },
469
+ {
470
+ "inputs": [],
471
+ "name": "MESSAGE_EPOCH_SECS",
472
+ "outputs": [
473
+ {
474
+ "internalType": "uint256",
475
+ "name": "",
476
+ "type": "uint256"
477
+ }
478
+ ],
479
+ "stateMutability": "view",
480
+ "type": "function"
481
+ },
482
+ {
483
+ "inputs": [],
484
+ "name": "UPGRADE_INTERFACE_VERSION",
485
+ "outputs": [
486
+ {
487
+ "internalType": "string",
488
+ "name": "",
489
+ "type": "string"
490
+ }
491
+ ],
492
+ "stateMutability": "view",
493
+ "type": "function"
494
+ },
495
+ {
496
+ "inputs": [
497
+ {
498
+ "internalType": "uint16",
499
+ "name": "assertionType",
500
+ "type": "uint16"
501
+ },
502
+ {
503
+ "components": [
504
+ {
505
+ "internalType": "bytes",
506
+ "name": "data",
507
+ "type": "bytes"
508
+ }
509
+ ],
510
+ "internalType": "struct iodata.Buffer",
511
+ "name": "assertion",
512
+ "type": "tuple"
513
+ }
514
+ ],
515
+ "name": "addAssertion",
516
+ "outputs": [],
517
+ "stateMutability": "nonpayable",
518
+ "type": "function"
519
+ },
520
+ {
521
+ "inputs": [
522
+ {
523
+ "internalType": "uint256",
524
+ "name": "",
525
+ "type": "uint256"
526
+ }
527
+ ],
528
+ "name": "allAuthorizedSenders",
529
+ "outputs": [
530
+ {
531
+ "internalType": "address",
532
+ "name": "",
533
+ "type": "address"
534
+ }
535
+ ],
536
+ "stateMutability": "view",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [],
541
+ "name": "authority",
542
+ "outputs": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "",
546
+ "type": "address"
547
+ }
548
+ ],
549
+ "stateMutability": "view",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [
554
+ {
555
+ "internalType": "bytes32",
556
+ "name": "",
557
+ "type": "bytes32"
558
+ }
559
+ ],
560
+ "name": "authorizedSenders",
561
+ "outputs": [
562
+ {
563
+ "internalType": "bool",
564
+ "name": "",
565
+ "type": "bool"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "tag",
576
+ "type": "uint256"
577
+ }
578
+ ],
579
+ "name": "enterSendMode",
580
+ "outputs": [],
581
+ "stateMutability": "nonpayable",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [],
586
+ "name": "epochNumber",
587
+ "outputs": [
588
+ {
589
+ "internalType": "uint32",
590
+ "name": "",
591
+ "type": "uint32"
592
+ }
593
+ ],
594
+ "stateMutability": "view",
595
+ "type": "function"
596
+ },
597
+ {
598
+ "inputs": [
599
+ {
600
+ "internalType": "uint256",
601
+ "name": "tag",
602
+ "type": "uint256"
603
+ }
604
+ ],
605
+ "name": "exitSendMode",
606
+ "outputs": [],
607
+ "stateMutability": "nonpayable",
608
+ "type": "function"
609
+ },
610
+ {
611
+ "inputs": [],
612
+ "name": "finalizeEpoch",
613
+ "outputs": [],
614
+ "stateMutability": "nonpayable",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [],
619
+ "name": "inSendMode",
620
+ "outputs": [
621
+ {
622
+ "internalType": "bool",
623
+ "name": "",
624
+ "type": "bool"
625
+ }
626
+ ],
627
+ "stateMutability": "view",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "address",
634
+ "name": "_authority",
635
+ "type": "address"
636
+ }
637
+ ],
638
+ "name": "initialize",
639
+ "outputs": [],
640
+ "stateMutability": "nonpayable",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [],
645
+ "name": "isConsumingScheduledOp",
646
+ "outputs": [
647
+ {
648
+ "internalType": "bytes4",
649
+ "name": "",
650
+ "type": "bytes4"
651
+ }
652
+ ],
653
+ "stateMutability": "view",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [],
658
+ "name": "lastMessageID",
659
+ "outputs": [
660
+ {
661
+ "internalType": "bytes32",
662
+ "name": "",
663
+ "type": "bytes32"
664
+ }
665
+ ],
666
+ "stateMutability": "view",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [],
671
+ "name": "lastMessageTimestamp",
672
+ "outputs": [
673
+ {
674
+ "internalType": "uint64",
675
+ "name": "",
676
+ "type": "uint64"
677
+ }
678
+ ],
679
+ "stateMutability": "view",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [],
684
+ "name": "pendingAssertionCount",
685
+ "outputs": [
686
+ {
687
+ "internalType": "uint256",
688
+ "name": "",
689
+ "type": "uint256"
690
+ }
691
+ ],
692
+ "stateMutability": "view",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [],
697
+ "name": "prevEpochSent",
698
+ "outputs": [
699
+ {
700
+ "internalType": "bool",
701
+ "name": "",
702
+ "type": "bool"
703
+ }
704
+ ],
705
+ "stateMutability": "view",
706
+ "type": "function"
707
+ },
708
+ {
709
+ "inputs": [],
710
+ "name": "proxiableUUID",
711
+ "outputs": [
712
+ {
713
+ "internalType": "bytes32",
714
+ "name": "",
715
+ "type": "bytes32"
716
+ }
717
+ ],
718
+ "stateMutability": "view",
719
+ "type": "function"
720
+ },
721
+ {
722
+ "inputs": [],
723
+ "name": "sendModeTag",
724
+ "outputs": [
725
+ {
726
+ "internalType": "uint256",
727
+ "name": "",
728
+ "type": "uint256"
729
+ }
730
+ ],
731
+ "stateMutability": "view",
732
+ "type": "function"
733
+ },
734
+ {
735
+ "inputs": [
736
+ {
737
+ "components": [
738
+ {
739
+ "internalType": "bytes32",
740
+ "name": "messageID",
741
+ "type": "bytes32"
742
+ },
743
+ {
744
+ "internalType": "bytes32",
745
+ "name": "previousMessageID",
746
+ "type": "bytes32"
747
+ },
748
+ {
749
+ "internalType": "bytes32",
750
+ "name": "payloadHash",
751
+ "type": "bytes32"
752
+ },
753
+ {
754
+ "internalType": "uint64",
755
+ "name": "timestamp",
756
+ "type": "uint64"
757
+ }
758
+ ],
759
+ "internalType": "struct OPPMessageHeader",
760
+ "name": "header",
761
+ "type": "tuple"
762
+ },
763
+ {
764
+ "components": [
765
+ {
766
+ "internalType": "uint8",
767
+ "name": "protocolVersion",
768
+ "type": "uint8"
769
+ },
770
+ {
771
+ "internalType": "uint8",
772
+ "name": "encodingFlags",
773
+ "type": "uint8"
774
+ },
775
+ {
776
+ "components": [
777
+ {
778
+ "internalType": "uint16",
779
+ "name": "assertionType",
780
+ "type": "uint16"
781
+ },
782
+ {
783
+ "internalType": "bytes",
784
+ "name": "assertion",
785
+ "type": "bytes"
786
+ }
787
+ ],
788
+ "internalType": "struct OPPAssertion[]",
789
+ "name": "assertions",
790
+ "type": "tuple[]"
791
+ }
792
+ ],
793
+ "internalType": "struct OPPPayload",
794
+ "name": "payload",
795
+ "type": "tuple"
796
+ }
797
+ ],
798
+ "name": "serializeMessage",
799
+ "outputs": [
800
+ {
801
+ "components": [
802
+ {
803
+ "internalType": "bytes32",
804
+ "name": "messageID",
805
+ "type": "bytes32"
806
+ },
807
+ {
808
+ "internalType": "bytes32",
809
+ "name": "previousMessageID",
810
+ "type": "bytes32"
811
+ },
812
+ {
813
+ "internalType": "bytes32",
814
+ "name": "payloadHash",
815
+ "type": "bytes32"
816
+ },
817
+ {
818
+ "internalType": "uint64",
819
+ "name": "timestamp",
820
+ "type": "uint64"
821
+ }
822
+ ],
823
+ "internalType": "struct OPPMessageHeader",
824
+ "name": "",
825
+ "type": "tuple"
826
+ }
827
+ ],
828
+ "stateMutability": "pure",
829
+ "type": "function"
830
+ },
831
+ {
832
+ "inputs": [
833
+ {
834
+ "internalType": "address",
835
+ "name": "newAuthority",
836
+ "type": "address"
837
+ }
838
+ ],
839
+ "name": "setAuthority",
840
+ "outputs": [],
841
+ "stateMutability": "nonpayable",
842
+ "type": "function"
843
+ },
844
+ {
845
+ "inputs": [
846
+ {
847
+ "internalType": "uint256",
848
+ "name": "adjustment",
849
+ "type": "uint256"
850
+ }
851
+ ],
852
+ "name": "testAdvanceEpochClock",
853
+ "outputs": [],
854
+ "stateMutability": "nonpayable",
855
+ "type": "function"
856
+ },
857
+ {
858
+ "inputs": [
859
+ {
860
+ "internalType": "address",
861
+ "name": "newImplementation",
862
+ "type": "address"
863
+ },
864
+ {
865
+ "internalType": "bytes",
866
+ "name": "data",
867
+ "type": "bytes"
868
+ }
869
+ ],
870
+ "name": "upgradeToAndCall",
871
+ "outputs": [],
872
+ "stateMutability": "payable",
873
+ "type": "function"
874
+ }
875
+ ],
876
+ "bytecode": "0x60a0806040523460295730608052612293908161002f8239608051818181610deb0152611fa50152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806327e935a1146113685780633a4ae349146111c957806347453a2a1461116e5780634ee21f52146110225780634f1ef28614610e5557806352d1902d14610dd8578063621fbd5914610dba578063733e561614610d9c5780637a9e5e4b14610d1f57806382ae9ef714610c085780638fb3603714610bb55780639b07150014610b99578063a9e50c1014610b72578063ad3cb1cc14610b28578063bf7e214f14610af2578063c4d66de8146107b0578063c94c93e71461077f578063da55d96a1461075c578063e11418b71461071c578063e36f9a07146106fe578063e44efb5a146106de578063f4145a83146106ba5763f5786b4b1461011957600080fd5b346105ef5760203660031901126105ef57600435600454156106a85761013f36336117d5565b8015610696576004541461014f57005b6000600455600354801561068457600054906040519161016e836113a0565b6000835260208301526000604083015260606001600160401b034216606084015261019882611469565b906101a6604051928361143a565b828252601f196101b584611469565b019060005b828110610660575050506040519283916101d3836113bb565b600183526000602084015260408301526000925b80841061045557506101f9925061157b565b80516001600160401b03606083015116610211611be2565b6013541561044c575b816000556001600160401b0319600154161760015561023a600854611930565b80600855610249600a54611930565b600e54909260001991828501908582116103f8578181111561040e5750610272610289916114e2565b819391549060031b91821b91600019901b19161790565b90555b6001821615610394575050600a556102ce60405180926001600160401b0360608092805185526020810151602086015260408101516040860152015116910152565b60a06080820152604061010082019260ff81511660a084015260ff60208201511660c0840152015191606060e08301528251809152610120906020828401928260051b8501019401916000905b8282106103535750505050807fb01e846518c5ef489bbec213b6cdb2e1b2ddbfd7a6fc74d8dc675d3d90e92892920390a16000600355005b9091929460208061038660019361011f198982030186526040838b5161ffff815116845201519181858201520190611556565b97019201920190929161031b565b90916001198101908082116103f8576103ac826114e2565b90549060031b1c918382018281116103f8576102726103e16103ee956103d46103e7946114e2565b90549060031b1c90612059565b926114e2565b9055611e4c565b9160011c9061028c565b634e487b7160e01b600052601160045260246000fd5b9050600160401b8110156104365761027281600161042f9301600e556114e2565b905561028c565b634e487b7160e01b600052604160045260246000fd5b8160135561021a565b91506104608361193f565b50926040519361046f856113d6565b61ffff815416855260405190610484826113f1565b6040519060009060018101549061049a82611979565b808552916001811690811561063b5750600114610600575b50506105009596826104cb60009461ffff94038261143a565b84528360208201525116916040518096819263509106ff60e11b83526020600484015251602060248401526044830190611556565b038173__$871508ae888325252fdba23f15f3f16064$__5af480156105f4578694600091610565575b50826001939261055d9260405191610540836113d6565b825260208201526040870151906105578383611e38565b52611e38565b5001926101e7565b92919450503d806000843e61057a818461143a565b8201916020818403126105ef578051906001600160401b0382116105ef570182601f820112156105ef5780516105af81611480565b936105bd604051958661143a565b818552602082840101116105ef578795846105e5859361055d9560208060019a019101611533565b9250929350610529565b600080fd5b6040513d6000823e3d90fd5b6001016000908152602081209092505b818310610625575050810160200186826104b2565b6001816020925483868801015201920191610610565b60ff191660208087019190915292151560051b850190920192508891508390506104b2565b60209060405161066f816113d6565b600081528383820152828287010152016101ba565b604051639383deb360e01b8152600490fd5b604051636ad43cc360e11b8152600490fd5b60405163738c481160e01b8152600490fd5b346105ef5760003660031901126105ef57602063ffffffff60075416604051908152f35b346105ef5760003660031901126105ef5760206004541515604051908152f35b346105ef5760003660031901126105ef576020600454604051908152f35b346105ef5760203660031901126105ef5760043561073a36336117d5565b60105490816107535761074e9150426117c8565b601055005b61074e916117c8565b346105ef5760003660031901126105ef57602060ff601654166040519015158152f35b346105ef5760203660031901126105ef576004356000526005602052602060ff604060002054166040519015158152f35b346105ef5760203660031901126105ef576107c961151d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b039081811694851580610aeb575b60018097149081610ae1575b159081610ad8575b50610ac65767ffffffffffffffff198216861785556108639184610aa7575b50610846612159565b61084e612159565b610856612159565b61085e612159565b611b89565b61086b612159565b610873612159565b6000604051610881816113f1565b52600c546000600c5580610a66575b50600c60005260006040516108a4816113f1565b52600d546000600d5580610a25575b508360ff196016541617601655600c5481811161043657600160401b811161043657600e5481600e558082106109f4575b507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7600e600052858154916000925b8484106109d1575050505050600d549081116104365761093281612007565b7fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5600f600052848154916000925b8484106109ae5782878761097057005b805468ff0000000000000000191690556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b8280919201938454928160008051602061223e8339815191520155019290610960565b8280919201938454928160008051602061221e8339815191520155019290610913565b858260008051602061221e83398151915292830192015b828110610a195750506108e4565b60008155018690610a0b565b847fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5918201915b828110610a5a5750506108b3565b60008155018590610a4c565b847fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7918201915b828110610a9b575050610890565b60008155018590610a8d565b68ffffffffffffffffff1916680100000000000000011785558661083d565b60405163f92ee8a960e01b8152600490fd5b9050158761081e565b303b159150610816565b508361080a565b346105ef5760003660031901126105ef576000805160206121fe833981519152546040516001600160a01b039091168152602090f35b346105ef5760003660031901126105ef57610b6e604051610b48816113d6565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611556565b0390f35b346105ef5760003660031901126105ef5760206001600160401b0360015416604051908152f35b346105ef5760003660031901126105ef57602060405160fc8152f35b346105ef5760003660031901126105ef576000805160206121fe8339815191525460a01c60ff1615610bff576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610bec565b346105ef5760003660031901126105ef57610c21611be2565b60ff60165416610cf957610c33611e59565b63ffffffff600019816007541601918183116103f8576001600160401b03906012549060145490601554926040519460c086019686881082891117610436577f101671622a528cbccc694b83bb184454625501848b1ae91273499048941352309860c098604052169586815260a06020820191834216835260408101948552606081019586526080810196875201958652600160ff196016541617601655604051968752511660208601525160408501525160608401525160808301525160a0820152a1005b602463ffffffff6000198160075416011660405190630642fe1b60e11b82526004820152fd5b346105ef5760203660031901126105ef57610d3861151d565b6000805160206121fe833981519152546001600160a01b03919082163303610d8557803b15610d6c57610d6a90611b89565b005b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b346105ef5760003660031901126105ef576020600354604051908152f35b346105ef5760003660031901126105ef576020600054604051908152f35b346105ef5760003660031901126105ef577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610e435760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b60403660031901126105ef57610e6961151d565b6024356001600160401b0381116105ef57610e8890369060040161149b565b90610e91611f9b565b610e9b36336117d5565b610ea3611f9b565b6040516352d1902d60e01b81526001600160a01b038216916020918281600481875afa60009181610ff3575b50610eed57604051634c9c8ce360e01b815260048101859052602490fd5b9284937f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90818103610fdb5750823b15610fc25780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2835115610fa857506000808484610d6a96519101845af4903d15610f9f573d610f8281611480565b90610f90604051928361143a565b8152600081943d92013e61219a565b6060925061219a565b9250505034610fb357005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d831161101b575b61100b818361143a565b810103126105ef57519086610ecf565b503d611001565b346105ef576003196040368201126105ef576004359061ffff8216918281036105ef57602435916001600160401b03908184116105ef5760209084360301126105ef5760405192611072846113f1565b80600401359182116105ef57600461108d923692010161149b565b8252600454156106a8576110a136336117d5565b6000805160206121fe83398151915254604080516368fc2b7760e11b8152620100008617600482015233602482015291829060449082906001600160a01b03165afa9081156105f457600091611121575b501561110257610d6a9250611af8565b60405163cc956ccf60e01b815233600482015260248101849052604490fd5b90506040813d604011611166575b8161113c6040938361143a565b810103126105ef5780519081151582036105ef576020015163ffffffff8116036105ef57846110f2565b3d915061112f565b346105ef5760203660031901126105ef576004356006548110156105ef5760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01546040516001600160a01b039091168152602090f35b346105ef5760031936810160a081126105ef576080136105ef576040516111ef816113a0565b600435815260246020813581840152604480356040850152606435926001600160401b039384811681036105ef576060860152608435958487116105ef5760609087360301126105ef5760405195611246876113bb565b6112528160040161145b565b875261125f82820161145b565b848801526044810135908582116105ef570191366023840112156105ef5760048301359061128c82611469565b9561129a604051978861143a565b828752838688019360051b860101943686116105ef57848101935b8685106113045760806112ce8c8c8c604083015261157b565b61130260405180926001600160401b0360608092805185526020810151602086015260408101516040860152015116910152565bf35b84358381116105ef578201604060231982360301126105ef576040519161132a836113d6565b8782013561ffff811681036105ef57835285820135928584116105ef576113598b94938a86953692010161149b565b838201528152019401936112b5565b346105ef5760203660031901126105ef5760043561138636336117d5565b8015610696576004541561139657005b6004556000600355005b608081019081106001600160401b0382111761043657604052565b606081019081106001600160401b0382111761043657604052565b604081019081106001600160401b0382111761043657604052565b602081019081106001600160401b0382111761043657604052565b6001600160401b03811161043657604052565b60a081019081106001600160401b0382111761043657604052565b90601f801991011681019081106001600160401b0382111761043657604052565b359060ff821682036105ef57565b6001600160401b0381116104365760051b60200190565b6001600160401b03811161043657601f01601f191660200190565b81601f820112156105ef578035906114b282611480565b926114c0604051948561143a565b828452602083830101116105ef57816000926020809301838601378301015290565b600e5481101561150757600e60005260008051602061221e8339815191520190600090565b634e487b7160e01b600052603260045260246000fd5b600435906001600160a01b03821682036105ef57565b60005b8381106115465750506000910152565b8181015183820152602001611536565b9060209161156f81518092818552858086019101611533565b601f01601f1916010190565b90604080519161158a836113a0565b600080845280606060209582878201528286820152015273__$b91d2ad766fd07dc99f56c1a0b020615bb$__8484518094630cdf0d5f60e31b825282600483015286608483019160ff815116602485015260ff8582015116604485015201519060606064840152815180915260a48301908460a48260051b86010193019187905b828210611786575050505081900381845af492831561177c579085918394611747575b5086850180519490856117115760849550525b845163ee37a99560e01b815287516004820152602088015160248201526040880151604482015260608801516001600160401b0316606482015293849182905af49384156117055781946116cf575b50505082519081156000146116a6575050815290565b8282036116b35750505090565b60449350519163fa28addf60e01b835260048301526024820152fd5b909180939450813d83116116fe575b6116e8818361143a565b810103126116fb57505190388080611690565b80fd5b503d6116de565b508251903d90823e3d90fd5b50809250849193940361172a5750509083608492611641565b60449250845191635c2444ad60e11b835260048301526024820152fd5b8281939295503d8311611775575b61175f818361143a565b8101031261177157849051923861162e565b5080fd5b503d611755565b84513d84823e3d90fd5b929560019295506117b781929560a3198c82030186528c838a5161ffff815116845201519181858201520190611556565b9601920192019287938a959361160b565b919082039182116103f857565b6000805160206121fe8339815191528054909290916001600160a01b0380841692600481106105ef5760009260009384916040958691825196602088019163b700961360e01b8352169687602482015230604482015263ffffffff60e01b8335166064820152606481526118488161141f565b828052826020525190895afa61191f575b15611868575b50505050505050565b63ffffffff16156119095760ff60a01b19948516600160a01b178655833b156105ef57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af19081156118ff57506118f0575b5081541690553880808080808061185f565b6118f99061140c565b386118de565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c150290611859565b60001981146103f85760010190565b60025481101561150757600260005260011b7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0190600090565b90600182811c921680156119a9575b602083101461199357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611988565b90611ae25761ffff82511661ffff1982541617815560018091019160208091015151908151916001600160401b038311610436576119f18554611979565b601f8111611a97575b5081601f8411600114611a345750928293918392600094611a29575b50501b916000199060031b1c1916179055565b015192503880611a16565b919083601f1981168760005284600020946000905b88838310611a7d5750505010611a64575b505050811b019055565b015160001960f88460031b161c19169055388080611a5a565b858701518855909601959485019487935090810190611a49565b60008660005283600020601f860160051c810192858710611ad8575b601f0160051c019186905b838110611acd575050506119fa565b828155018690611abe565b9092508290611ab3565b634e487b7160e01b600052600060045260246000fd5b60025491600354808411600014611b465750611b44925061ffff60405192611b1f846113d6565b1682526020820152611b3e600354611b3681611930565b60035561193f565b906119b3565b565b611b4f90611930565b60035561ffff60405192611b62846113d6565b1682526020820152600160401b82101561043657611b3e826001611b44940160025561193f565b6000805160206121fe83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b60105415611e325760105460fc81018091116103f857421015611c0157565b60165460ff811615611e0c5760ff19809116601655600854600955600a54600b556040519081600f54808452602080940193849183600096600f885260008051602061223e83398151915292885b85828210611df657505050611c669250038461143a565b600e54926001600160401b0393848111611de257611c8381612007565b60008051602061221e833981519152600f885280549088915b838310611dbe57505050505191838311611daa57600160401b8311611daa57600e5483600e55808410611d70575b5090600e8652855b838110611d5057505050508260085582600a5542601055600154166001600160401b03196011541617601155601354601455815460155560165416601655806013556007549063ffffffff9060018284160190828211611d3c5750169063ffffffff191617600755565b634e487b7160e01b81526011600452602490fd5b825160008051602061221e83398151915282015591810191600101611cd2565b60008051602061221e833981519152018360008051602061221e833981519152015b818110611d9f5750611cca565b878155600101611d92565b634e487b7160e01b86526041600452602486fd5b600180919201928354928160008051602061223e8339815191520155019190611c9c565b634e487b7160e01b87526041600452602487fd5b8554845260019586019589955093019201611c4f565b602463ffffffff6000198160075416011660405190631c70a36560e21b82526004820152fd5b42601055565b80518210156115075760209160051b010190565b80156103f8576000190190565b600954600b54908015611f945791611e7082611469565b611e7d604051918261143a565b828152611e8983611469565b602082019490601f1901368637600f805460005b868110611f5c575050505b60019081811115611f4c578082168203611f04576000198501908582116103f85781611ef6611eef611edd611efc9588611e38565b51611ee88489611e38565b5190612059565b9186611e38565b52611930565b905b1c611ea8565b90936001198101908082116103f857611f1d8285611e38565b51600019820192908284116103f857611eef611f4091611ee8611f469689611e38565b52611e4c565b93611efe565b5050909291505115611507575190565b8181969496101561150757600190836000528060008051602061223e8339815191520154611f8a8288611e38565b5201949294611e9d565b5050600090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215611fd9575b5050610e4357565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880611fd1565b600160401b811161043657600f549080600f55818110612025575050565b600090600f60005260008051602061223e83398151915292830192015b82811061204e57505050565b818155600101612042565b9073__$398d4f030862acab53d338aebf0b4256d7$__6040908151936334509dd160e01b855260048501526020928385602481855af494851561214e5760009561211f575b50839060248451809481936333aec0ad60e21b835260048301525af4908115612114576000916120e7575b5081519283019384528183015281526120e1816113bb565b51902090565b90508281813d831161210d575b6120fe818361143a565b810103126105ef5751386120c9565b503d6120f4565b82513d6000823e3d90fd5b9094508381813d8311612147575b612137818361143a565b810103126105ef5751938361209e565b503d61212d565b83513d6000823e3d90fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561218857565b604051631afcd79f60e31b8152600490fd5b906121c157508051156121af57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806121f4575b6121d2575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156121ca56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00bb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802a2646970667358221220d17656696cb121b5a71ab65205d2562087b8546074df34292c1411c3fdfa0db564736f6c63430008190033",
877
+ "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806327e935a1146113685780633a4ae349146111c957806347453a2a1461116e5780634ee21f52146110225780634f1ef28614610e5557806352d1902d14610dd8578063621fbd5914610dba578063733e561614610d9c5780637a9e5e4b14610d1f57806382ae9ef714610c085780638fb3603714610bb55780639b07150014610b99578063a9e50c1014610b72578063ad3cb1cc14610b28578063bf7e214f14610af2578063c4d66de8146107b0578063c94c93e71461077f578063da55d96a1461075c578063e11418b71461071c578063e36f9a07146106fe578063e44efb5a146106de578063f4145a83146106ba5763f5786b4b1461011957600080fd5b346105ef5760203660031901126105ef57600435600454156106a85761013f36336117d5565b8015610696576004541461014f57005b6000600455600354801561068457600054906040519161016e836113a0565b6000835260208301526000604083015260606001600160401b034216606084015261019882611469565b906101a6604051928361143a565b828252601f196101b584611469565b019060005b828110610660575050506040519283916101d3836113bb565b600183526000602084015260408301526000925b80841061045557506101f9925061157b565b80516001600160401b03606083015116610211611be2565b6013541561044c575b816000556001600160401b0319600154161760015561023a600854611930565b80600855610249600a54611930565b600e54909260001991828501908582116103f8578181111561040e5750610272610289916114e2565b819391549060031b91821b91600019901b19161790565b90555b6001821615610394575050600a556102ce60405180926001600160401b0360608092805185526020810151602086015260408101516040860152015116910152565b60a06080820152604061010082019260ff81511660a084015260ff60208201511660c0840152015191606060e08301528251809152610120906020828401928260051b8501019401916000905b8282106103535750505050807fb01e846518c5ef489bbec213b6cdb2e1b2ddbfd7a6fc74d8dc675d3d90e92892920390a16000600355005b9091929460208061038660019361011f198982030186526040838b5161ffff815116845201519181858201520190611556565b97019201920190929161031b565b90916001198101908082116103f8576103ac826114e2565b90549060031b1c918382018281116103f8576102726103e16103ee956103d46103e7946114e2565b90549060031b1c90612059565b926114e2565b9055611e4c565b9160011c9061028c565b634e487b7160e01b600052601160045260246000fd5b9050600160401b8110156104365761027281600161042f9301600e556114e2565b905561028c565b634e487b7160e01b600052604160045260246000fd5b8160135561021a565b91506104608361193f565b50926040519361046f856113d6565b61ffff815416855260405190610484826113f1565b6040519060009060018101549061049a82611979565b808552916001811690811561063b5750600114610600575b50506105009596826104cb60009461ffff94038261143a565b84528360208201525116916040518096819263509106ff60e11b83526020600484015251602060248401526044830190611556565b038173__$871508ae888325252fdba23f15f3f16064$__5af480156105f4578694600091610565575b50826001939261055d9260405191610540836113d6565b825260208201526040870151906105578383611e38565b52611e38565b5001926101e7565b92919450503d806000843e61057a818461143a565b8201916020818403126105ef578051906001600160401b0382116105ef570182601f820112156105ef5780516105af81611480565b936105bd604051958661143a565b818552602082840101116105ef578795846105e5859361055d9560208060019a019101611533565b9250929350610529565b600080fd5b6040513d6000823e3d90fd5b6001016000908152602081209092505b818310610625575050810160200186826104b2565b6001816020925483868801015201920191610610565b60ff191660208087019190915292151560051b850190920192508891508390506104b2565b60209060405161066f816113d6565b600081528383820152828287010152016101ba565b604051639383deb360e01b8152600490fd5b604051636ad43cc360e11b8152600490fd5b60405163738c481160e01b8152600490fd5b346105ef5760003660031901126105ef57602063ffffffff60075416604051908152f35b346105ef5760003660031901126105ef5760206004541515604051908152f35b346105ef5760003660031901126105ef576020600454604051908152f35b346105ef5760203660031901126105ef5760043561073a36336117d5565b60105490816107535761074e9150426117c8565b601055005b61074e916117c8565b346105ef5760003660031901126105ef57602060ff601654166040519015158152f35b346105ef5760203660031901126105ef576004356000526005602052602060ff604060002054166040519015158152f35b346105ef5760203660031901126105ef576107c961151d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b039081811694851580610aeb575b60018097149081610ae1575b159081610ad8575b50610ac65767ffffffffffffffff198216861785556108639184610aa7575b50610846612159565b61084e612159565b610856612159565b61085e612159565b611b89565b61086b612159565b610873612159565b6000604051610881816113f1565b52600c546000600c5580610a66575b50600c60005260006040516108a4816113f1565b52600d546000600d5580610a25575b508360ff196016541617601655600c5481811161043657600160401b811161043657600e5481600e558082106109f4575b507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7600e600052858154916000925b8484106109d1575050505050600d549081116104365761093281612007565b7fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5600f600052848154916000925b8484106109ae5782878761097057005b805468ff0000000000000000191690556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b8280919201938454928160008051602061223e8339815191520155019290610960565b8280919201938454928160008051602061221e8339815191520155019290610913565b858260008051602061221e83398151915292830192015b828110610a195750506108e4565b60008155018690610a0b565b847fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5918201915b828110610a5a5750506108b3565b60008155018590610a4c565b847fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7918201915b828110610a9b575050610890565b60008155018590610a8d565b68ffffffffffffffffff1916680100000000000000011785558661083d565b60405163f92ee8a960e01b8152600490fd5b9050158761081e565b303b159150610816565b508361080a565b346105ef5760003660031901126105ef576000805160206121fe833981519152546040516001600160a01b039091168152602090f35b346105ef5760003660031901126105ef57610b6e604051610b48816113d6565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611556565b0390f35b346105ef5760003660031901126105ef5760206001600160401b0360015416604051908152f35b346105ef5760003660031901126105ef57602060405160fc8152f35b346105ef5760003660031901126105ef576000805160206121fe8339815191525460a01c60ff1615610bff576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610bec565b346105ef5760003660031901126105ef57610c21611be2565b60ff60165416610cf957610c33611e59565b63ffffffff600019816007541601918183116103f8576001600160401b03906012549060145490601554926040519460c086019686881082891117610436577f101671622a528cbccc694b83bb184454625501848b1ae91273499048941352309860c098604052169586815260a06020820191834216835260408101948552606081019586526080810196875201958652600160ff196016541617601655604051968752511660208601525160408501525160608401525160808301525160a0820152a1005b602463ffffffff6000198160075416011660405190630642fe1b60e11b82526004820152fd5b346105ef5760203660031901126105ef57610d3861151d565b6000805160206121fe833981519152546001600160a01b03919082163303610d8557803b15610d6c57610d6a90611b89565b005b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b346105ef5760003660031901126105ef576020600354604051908152f35b346105ef5760003660031901126105ef576020600054604051908152f35b346105ef5760003660031901126105ef577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610e435760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b60403660031901126105ef57610e6961151d565b6024356001600160401b0381116105ef57610e8890369060040161149b565b90610e91611f9b565b610e9b36336117d5565b610ea3611f9b565b6040516352d1902d60e01b81526001600160a01b038216916020918281600481875afa60009181610ff3575b50610eed57604051634c9c8ce360e01b815260048101859052602490fd5b9284937f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90818103610fdb5750823b15610fc25780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2835115610fa857506000808484610d6a96519101845af4903d15610f9f573d610f8281611480565b90610f90604051928361143a565b8152600081943d92013e61219a565b6060925061219a565b9250505034610fb357005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d831161101b575b61100b818361143a565b810103126105ef57519086610ecf565b503d611001565b346105ef576003196040368201126105ef576004359061ffff8216918281036105ef57602435916001600160401b03908184116105ef5760209084360301126105ef5760405192611072846113f1565b80600401359182116105ef57600461108d923692010161149b565b8252600454156106a8576110a136336117d5565b6000805160206121fe83398151915254604080516368fc2b7760e11b8152620100008617600482015233602482015291829060449082906001600160a01b03165afa9081156105f457600091611121575b501561110257610d6a9250611af8565b60405163cc956ccf60e01b815233600482015260248101849052604490fd5b90506040813d604011611166575b8161113c6040938361143a565b810103126105ef5780519081151582036105ef576020015163ffffffff8116036105ef57846110f2565b3d915061112f565b346105ef5760203660031901126105ef576004356006548110156105ef5760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01546040516001600160a01b039091168152602090f35b346105ef5760031936810160a081126105ef576080136105ef576040516111ef816113a0565b600435815260246020813581840152604480356040850152606435926001600160401b039384811681036105ef576060860152608435958487116105ef5760609087360301126105ef5760405195611246876113bb565b6112528160040161145b565b875261125f82820161145b565b848801526044810135908582116105ef570191366023840112156105ef5760048301359061128c82611469565b9561129a604051978861143a565b828752838688019360051b860101943686116105ef57848101935b8685106113045760806112ce8c8c8c604083015261157b565b61130260405180926001600160401b0360608092805185526020810151602086015260408101516040860152015116910152565bf35b84358381116105ef578201604060231982360301126105ef576040519161132a836113d6565b8782013561ffff811681036105ef57835285820135928584116105ef576113598b94938a86953692010161149b565b838201528152019401936112b5565b346105ef5760203660031901126105ef5760043561138636336117d5565b8015610696576004541561139657005b6004556000600355005b608081019081106001600160401b0382111761043657604052565b606081019081106001600160401b0382111761043657604052565b604081019081106001600160401b0382111761043657604052565b602081019081106001600160401b0382111761043657604052565b6001600160401b03811161043657604052565b60a081019081106001600160401b0382111761043657604052565b90601f801991011681019081106001600160401b0382111761043657604052565b359060ff821682036105ef57565b6001600160401b0381116104365760051b60200190565b6001600160401b03811161043657601f01601f191660200190565b81601f820112156105ef578035906114b282611480565b926114c0604051948561143a565b828452602083830101116105ef57816000926020809301838601378301015290565b600e5481101561150757600e60005260008051602061221e8339815191520190600090565b634e487b7160e01b600052603260045260246000fd5b600435906001600160a01b03821682036105ef57565b60005b8381106115465750506000910152565b8181015183820152602001611536565b9060209161156f81518092818552858086019101611533565b601f01601f1916010190565b90604080519161158a836113a0565b600080845280606060209582878201528286820152015273__$b91d2ad766fd07dc99f56c1a0b020615bb$__8484518094630cdf0d5f60e31b825282600483015286608483019160ff815116602485015260ff8582015116604485015201519060606064840152815180915260a48301908460a48260051b86010193019187905b828210611786575050505081900381845af492831561177c579085918394611747575b5086850180519490856117115760849550525b845163ee37a99560e01b815287516004820152602088015160248201526040880151604482015260608801516001600160401b0316606482015293849182905af49384156117055781946116cf575b50505082519081156000146116a6575050815290565b8282036116b35750505090565b60449350519163fa28addf60e01b835260048301526024820152fd5b909180939450813d83116116fe575b6116e8818361143a565b810103126116fb57505190388080611690565b80fd5b503d6116de565b508251903d90823e3d90fd5b50809250849193940361172a5750509083608492611641565b60449250845191635c2444ad60e11b835260048301526024820152fd5b8281939295503d8311611775575b61175f818361143a565b8101031261177157849051923861162e565b5080fd5b503d611755565b84513d84823e3d90fd5b929560019295506117b781929560a3198c82030186528c838a5161ffff815116845201519181858201520190611556565b9601920192019287938a959361160b565b919082039182116103f857565b6000805160206121fe8339815191528054909290916001600160a01b0380841692600481106105ef5760009260009384916040958691825196602088019163b700961360e01b8352169687602482015230604482015263ffffffff60e01b8335166064820152606481526118488161141f565b828052826020525190895afa61191f575b15611868575b50505050505050565b63ffffffff16156119095760ff60a01b19948516600160a01b178655833b156105ef57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af19081156118ff57506118f0575b5081541690553880808080808061185f565b6118f99061140c565b386118de565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c150290611859565b60001981146103f85760010190565b60025481101561150757600260005260011b7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0190600090565b90600182811c921680156119a9575b602083101461199357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611988565b90611ae25761ffff82511661ffff1982541617815560018091019160208091015151908151916001600160401b038311610436576119f18554611979565b601f8111611a97575b5081601f8411600114611a345750928293918392600094611a29575b50501b916000199060031b1c1916179055565b015192503880611a16565b919083601f1981168760005284600020946000905b88838310611a7d5750505010611a64575b505050811b019055565b015160001960f88460031b161c19169055388080611a5a565b858701518855909601959485019487935090810190611a49565b60008660005283600020601f860160051c810192858710611ad8575b601f0160051c019186905b838110611acd575050506119fa565b828155018690611abe565b9092508290611ab3565b634e487b7160e01b600052600060045260246000fd5b60025491600354808411600014611b465750611b44925061ffff60405192611b1f846113d6565b1682526020820152611b3e600354611b3681611930565b60035561193f565b906119b3565b565b611b4f90611930565b60035561ffff60405192611b62846113d6565b1682526020820152600160401b82101561043657611b3e826001611b44940160025561193f565b6000805160206121fe83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b60105415611e325760105460fc81018091116103f857421015611c0157565b60165460ff811615611e0c5760ff19809116601655600854600955600a54600b556040519081600f54808452602080940193849183600096600f885260008051602061223e83398151915292885b85828210611df657505050611c669250038461143a565b600e54926001600160401b0393848111611de257611c8381612007565b60008051602061221e833981519152600f885280549088915b838310611dbe57505050505191838311611daa57600160401b8311611daa57600e5483600e55808410611d70575b5090600e8652855b838110611d5057505050508260085582600a5542601055600154166001600160401b03196011541617601155601354601455815460155560165416601655806013556007549063ffffffff9060018284160190828211611d3c5750169063ffffffff191617600755565b634e487b7160e01b81526011600452602490fd5b825160008051602061221e83398151915282015591810191600101611cd2565b60008051602061221e833981519152018360008051602061221e833981519152015b818110611d9f5750611cca565b878155600101611d92565b634e487b7160e01b86526041600452602486fd5b600180919201928354928160008051602061223e8339815191520155019190611c9c565b634e487b7160e01b87526041600452602487fd5b8554845260019586019589955093019201611c4f565b602463ffffffff6000198160075416011660405190631c70a36560e21b82526004820152fd5b42601055565b80518210156115075760209160051b010190565b80156103f8576000190190565b600954600b54908015611f945791611e7082611469565b611e7d604051918261143a565b828152611e8983611469565b602082019490601f1901368637600f805460005b868110611f5c575050505b60019081811115611f4c578082168203611f04576000198501908582116103f85781611ef6611eef611edd611efc9588611e38565b51611ee88489611e38565b5190612059565b9186611e38565b52611930565b905b1c611ea8565b90936001198101908082116103f857611f1d8285611e38565b51600019820192908284116103f857611eef611f4091611ee8611f469689611e38565b52611e4c565b93611efe565b5050909291505115611507575190565b8181969496101561150757600190836000528060008051602061223e8339815191520154611f8a8288611e38565b5201949294611e9d565b5050600090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215611fd9575b5050610e4357565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880611fd1565b600160401b811161043657600f549080600f55818110612025575050565b600090600f60005260008051602061223e83398151915292830192015b82811061204e57505050565b818155600101612042565b9073__$398d4f030862acab53d338aebf0b4256d7$__6040908151936334509dd160e01b855260048501526020928385602481855af494851561214e5760009561211f575b50839060248451809481936333aec0ad60e21b835260048301525af4908115612114576000916120e7575b5081519283019384528183015281526120e1816113bb565b51902090565b90508281813d831161210d575b6120fe818361143a565b810103126105ef5751386120c9565b503d6120f4565b82513d6000823e3d90fd5b9094508381813d8311612147575b612137818361143a565b810103126105ef5751938361209e565b503d61212d565b83513d6000823e3d90fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561218857565b604051631afcd79f60e31b8152600490fd5b906121c157508051156121af57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806121f4575b6121d2575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156121ca56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00bb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802a2646970667358221220d17656696cb121b5a71ab65205d2562087b8546074df34292c1411c3fdfa0db564736f6c63430008190033",
878
+ "linkReferences": {
879
+ "contracts/common/iodata.sol": {
880
+ "iodata": [
881
+ {
882
+ "length": 20,
883
+ "start": 1331
884
+ }
885
+ ]
886
+ },
887
+ "contracts/common/sysio_merkle.sol": {
888
+ "sysio_merkle": [
889
+ {
890
+ "length": 20,
891
+ "start": 8331
892
+ }
893
+ ]
894
+ },
895
+ "contracts/outpost/OPPCommon.sol": {
896
+ "OPPCommon": [
897
+ {
898
+ "length": 20,
899
+ "start": 5586
900
+ }
901
+ ]
902
+ }
903
+ },
904
+ "deployedLinkReferences": {
905
+ "contracts/common/iodata.sol": {
906
+ "iodata": [
907
+ {
908
+ "length": 20,
909
+ "start": 1284
910
+ }
911
+ ]
912
+ },
913
+ "contracts/common/sysio_merkle.sol": {
914
+ "sysio_merkle": [
915
+ {
916
+ "length": 20,
917
+ "start": 8284
918
+ }
919
+ ]
920
+ },
921
+ "contracts/outpost/OPPCommon.sol": {
922
+ "OPPCommon": [
923
+ {
924
+ "length": 20,
925
+ "start": 5539
926
+ }
927
+ ]
928
+ }
929
+ }
930
+ }