@keep-network/tbtc-v2 0.1.1-dev.105 → 0.1.1-dev.108

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 (74) hide show
  1. package/artifacts/Bank.json +3 -3
  2. package/artifacts/Bridge.json +10 -5
  3. package/artifacts/BridgeGovernance.json +92 -92
  4. package/artifacts/BridgeGovernanceParameters.json +2 -2
  5. package/artifacts/Deposit.json +2 -2
  6. package/artifacts/DepositSweep.json +2 -2
  7. package/artifacts/EcdsaDkgValidator.json +1 -1
  8. package/artifacts/EcdsaInactivity.json +1 -1
  9. package/artifacts/EcdsaSortitionPool.json +2 -2
  10. package/artifacts/Fraud.json +2 -2
  11. package/artifacts/KeepRegistry.json +1 -1
  12. package/artifacts/KeepStake.json +2 -2
  13. package/artifacts/KeepToken.json +2 -2
  14. package/artifacts/KeepTokenStaking.json +1 -1
  15. package/artifacts/MaintainerProxy.json +26 -26
  16. package/artifacts/MovingFunds.json +2 -2
  17. package/artifacts/NuCypherStakingEscrow.json +1 -1
  18. package/artifacts/NuCypherToken.json +2 -2
  19. package/artifacts/RandomBeaconStub.json +1 -1
  20. package/artifacts/Redemption.json +2 -2
  21. package/artifacts/ReimbursementPool.json +2 -2
  22. package/artifacts/Relay.json +9 -9
  23. package/artifacts/T.json +2 -2
  24. package/artifacts/TBTC.json +3 -3
  25. package/artifacts/TBTCToken.json +3 -3
  26. package/artifacts/TBTCVault.json +9 -9
  27. package/artifacts/TokenStaking.json +1 -1
  28. package/artifacts/TokenholderGovernor.json +9 -9
  29. package/artifacts/TokenholderTimelock.json +8 -8
  30. package/artifacts/VendingMachine.json +10 -10
  31. package/artifacts/VendingMachineKeep.json +1 -1
  32. package/artifacts/VendingMachineNuCypher.json +1 -1
  33. package/artifacts/WalletRegistry.json +5 -5
  34. package/artifacts/WalletRegistryGovernance.json +2 -2
  35. package/artifacts/Wallets.json +2 -2
  36. package/artifacts/solcInputs/{994d332a7e2e8231d02a8a41da7ec393.json → ca06d7336565753de6867fd69d3e145d.json} +13 -7
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  39. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  40. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  41. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  42. package/build/contracts/bridge/Bridge.sol/Bridge.json +28 -23
  43. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.dbg.json +1 -1
  44. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.json +2 -2
  45. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  47. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  48. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  49. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  50. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  51. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  52. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  53. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  54. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  55. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  56. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  57. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  58. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  59. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2 -2
  60. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +4 -0
  61. package/build/contracts/relay/LightRelay.sol/ILightRelay.json +214 -0
  62. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +4 -0
  63. package/build/contracts/relay/LightRelay.sol/LightRelay.json +443 -0
  64. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +4 -0
  65. package/build/contracts/relay/LightRelay.sol/RelayUtils.json +10 -0
  66. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  67. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  68. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  69. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  70. package/contracts/bridge/Bridge.sol +5 -0
  71. package/contracts/relay/LightRelay.sol +606 -0
  72. package/deploy/03_transfer_vending_machine_roles.ts +0 -3
  73. package/export.json +5 -0
  74. package/package.json +1 -1
@@ -0,0 +1,443 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LightRelay",
4
+ "sourceName": "contracts/relay/LightRelay.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "bool",
12
+ "name": "newStatus",
13
+ "type": "bool"
14
+ }
15
+ ],
16
+ "name": "AuthorizationRequirementChanged",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "anonymous": false,
21
+ "inputs": [
22
+ {
23
+ "indexed": false,
24
+ "internalType": "uint256",
25
+ "name": "blockHeight",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "Genesis",
30
+ "type": "event"
31
+ },
32
+ {
33
+ "anonymous": false,
34
+ "inputs": [
35
+ {
36
+ "indexed": true,
37
+ "internalType": "address",
38
+ "name": "previousOwner",
39
+ "type": "address"
40
+ },
41
+ {
42
+ "indexed": true,
43
+ "internalType": "address",
44
+ "name": "newOwner",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "OwnershipTransferred",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": false,
56
+ "internalType": "uint256",
57
+ "name": "newLength",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "ProofLengthChanged",
62
+ "type": "event"
63
+ },
64
+ {
65
+ "anonymous": false,
66
+ "inputs": [
67
+ {
68
+ "indexed": false,
69
+ "internalType": "uint256",
70
+ "name": "oldDifficulty",
71
+ "type": "uint256"
72
+ },
73
+ {
74
+ "indexed": false,
75
+ "internalType": "uint256",
76
+ "name": "newDifficulty",
77
+ "type": "uint256"
78
+ }
79
+ ],
80
+ "name": "Retarget",
81
+ "type": "event"
82
+ },
83
+ {
84
+ "anonymous": false,
85
+ "inputs": [
86
+ {
87
+ "indexed": false,
88
+ "internalType": "address",
89
+ "name": "submitter",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "SubmitterAuthorized",
94
+ "type": "event"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "indexed": false,
101
+ "internalType": "address",
102
+ "name": "submitter",
103
+ "type": "address"
104
+ }
105
+ ],
106
+ "name": "SubmitterDeauthorized",
107
+ "type": "event"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "authorizationRequired",
112
+ "outputs": [
113
+ {
114
+ "internalType": "bool",
115
+ "name": "",
116
+ "type": "bool"
117
+ }
118
+ ],
119
+ "stateMutability": "view",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "submitter",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "authorize",
131
+ "outputs": [],
132
+ "stateMutability": "nonpayable",
133
+ "type": "function"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "currentEpoch",
138
+ "outputs": [
139
+ {
140
+ "internalType": "uint64",
141
+ "name": "",
142
+ "type": "uint64"
143
+ }
144
+ ],
145
+ "stateMutability": "view",
146
+ "type": "function"
147
+ },
148
+ {
149
+ "inputs": [
150
+ {
151
+ "internalType": "address",
152
+ "name": "submitter",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "deauthorize",
157
+ "outputs": [],
158
+ "stateMutability": "nonpayable",
159
+ "type": "function"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "bytes",
165
+ "name": "genesisHeader",
166
+ "type": "bytes"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "genesisHeight",
171
+ "type": "uint256"
172
+ },
173
+ {
174
+ "internalType": "uint64",
175
+ "name": "genesisProofLength",
176
+ "type": "uint64"
177
+ }
178
+ ],
179
+ "name": "genesis",
180
+ "outputs": [],
181
+ "stateMutability": "nonpayable",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [],
186
+ "name": "genesisEpoch",
187
+ "outputs": [
188
+ {
189
+ "internalType": "uint64",
190
+ "name": "",
191
+ "type": "uint64"
192
+ }
193
+ ],
194
+ "stateMutability": "view",
195
+ "type": "function"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "blockNumber",
202
+ "type": "uint256"
203
+ }
204
+ ],
205
+ "name": "getBlockDifficulty",
206
+ "outputs": [
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "",
210
+ "type": "uint256"
211
+ }
212
+ ],
213
+ "stateMutability": "view",
214
+ "type": "function"
215
+ },
216
+ {
217
+ "inputs": [],
218
+ "name": "getCurrentAndPrevEpochDifficulty",
219
+ "outputs": [
220
+ {
221
+ "internalType": "uint256",
222
+ "name": "current",
223
+ "type": "uint256"
224
+ },
225
+ {
226
+ "internalType": "uint256",
227
+ "name": "previous",
228
+ "type": "uint256"
229
+ }
230
+ ],
231
+ "stateMutability": "view",
232
+ "type": "function"
233
+ },
234
+ {
235
+ "inputs": [],
236
+ "name": "getCurrentEpochDifficulty",
237
+ "outputs": [
238
+ {
239
+ "internalType": "uint256",
240
+ "name": "",
241
+ "type": "uint256"
242
+ }
243
+ ],
244
+ "stateMutability": "view",
245
+ "type": "function"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "epochNumber",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "name": "getEpochDifficulty",
256
+ "outputs": [
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "stateMutability": "view",
264
+ "type": "function"
265
+ },
266
+ {
267
+ "inputs": [],
268
+ "name": "getPrevEpochDifficulty",
269
+ "outputs": [
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "",
273
+ "type": "uint256"
274
+ }
275
+ ],
276
+ "stateMutability": "view",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "inputs": [],
281
+ "name": "getRelayRange",
282
+ "outputs": [
283
+ {
284
+ "internalType": "uint256",
285
+ "name": "relayGenesis",
286
+ "type": "uint256"
287
+ },
288
+ {
289
+ "internalType": "uint256",
290
+ "name": "currentEpochEnd",
291
+ "type": "uint256"
292
+ }
293
+ ],
294
+ "stateMutability": "view",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "address",
301
+ "name": "",
302
+ "type": "address"
303
+ }
304
+ ],
305
+ "name": "isAuthorized",
306
+ "outputs": [
307
+ {
308
+ "internalType": "bool",
309
+ "name": "",
310
+ "type": "bool"
311
+ }
312
+ ],
313
+ "stateMutability": "view",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [],
318
+ "name": "owner",
319
+ "outputs": [
320
+ {
321
+ "internalType": "address",
322
+ "name": "",
323
+ "type": "address"
324
+ }
325
+ ],
326
+ "stateMutability": "view",
327
+ "type": "function"
328
+ },
329
+ {
330
+ "inputs": [],
331
+ "name": "proofLength",
332
+ "outputs": [
333
+ {
334
+ "internalType": "uint64",
335
+ "name": "",
336
+ "type": "uint64"
337
+ }
338
+ ],
339
+ "stateMutability": "view",
340
+ "type": "function"
341
+ },
342
+ {
343
+ "inputs": [],
344
+ "name": "ready",
345
+ "outputs": [
346
+ {
347
+ "internalType": "bool",
348
+ "name": "",
349
+ "type": "bool"
350
+ }
351
+ ],
352
+ "stateMutability": "view",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [],
357
+ "name": "renounceOwnership",
358
+ "outputs": [],
359
+ "stateMutability": "nonpayable",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [
364
+ {
365
+ "internalType": "bytes",
366
+ "name": "headers",
367
+ "type": "bytes"
368
+ }
369
+ ],
370
+ "name": "retarget",
371
+ "outputs": [],
372
+ "stateMutability": "nonpayable",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [
377
+ {
378
+ "internalType": "bool",
379
+ "name": "status",
380
+ "type": "bool"
381
+ }
382
+ ],
383
+ "name": "setAuthorizationStatus",
384
+ "outputs": [],
385
+ "stateMutability": "nonpayable",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [
390
+ {
391
+ "internalType": "uint64",
392
+ "name": "newLength",
393
+ "type": "uint64"
394
+ }
395
+ ],
396
+ "name": "setProofLength",
397
+ "outputs": [],
398
+ "stateMutability": "nonpayable",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [
403
+ {
404
+ "internalType": "address",
405
+ "name": "newOwner",
406
+ "type": "address"
407
+ }
408
+ ],
409
+ "name": "transferOwnership",
410
+ "outputs": [],
411
+ "stateMutability": "nonpayable",
412
+ "type": "function"
413
+ },
414
+ {
415
+ "inputs": [
416
+ {
417
+ "internalType": "bytes",
418
+ "name": "headers",
419
+ "type": "bytes"
420
+ }
421
+ ],
422
+ "name": "validateChain",
423
+ "outputs": [
424
+ {
425
+ "internalType": "uint256",
426
+ "name": "startingHeaderTimestamp",
427
+ "type": "uint256"
428
+ },
429
+ {
430
+ "internalType": "uint256",
431
+ "name": "headerCount",
432
+ "type": "uint256"
433
+ }
434
+ ],
435
+ "stateMutability": "view",
436
+ "type": "function"
437
+ }
438
+ ],
439
+ "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6122a08061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063715018a6116100d8578063b6a5d7de1161008c578063f2fde38b11610066578063f2fde38b14610322578063f5619fda14610335578063fe9fbb801461035057600080fd5b8063b6a5d7de146102e8578063b70e6be6146102fb578063eb8695ef1461030f57600080fd5b80637ca5b1dd116100bd5780637ca5b1dd146102a65780638da5cb5b146102b957806395410d2b146102d457600080fd5b8063715018a61461026a578063766718081461027257600080fd5b806327c97fa51161013a5780634ca49f51116101145780634ca49f5114610220578063620414e6146102335780636defbf801461024657600080fd5b806327c97fa5146101fa5780632b97be241461020d5780633a1b77b01461021557600080fd5b8063113764be1161016b578063113764be146101ca578063189179a3146101d257806319c9aa32146101e557600080fd5b806306a274221461018757806310b76ed8146101ad575b600080fd5b61019a610195366004611e13565b610373565b6040519081526020015b60405180910390f35b6101b561038a565b604080519283526020830191909152016101a4565b60025461019a565b6101b56101e0366004611e42565b6103ea565b6101f86101f3366004611f10565b6107e3565b005b6101f8610208366004611f2b565b610a28565b60035461019a565b6002546003546101b5565b6101f861022e366004611f54565b610ad3565b61019a610241366004611e13565b610eee565b60005461025a90600160a01b900460ff1681565b60405190151581526020016101a4565b6101f8610ffe565b60015461028d90600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a4565b6101f86102b4366004611e42565b611064565b6000546040516001600160a01b0390911681526020016101a4565b60005461025a90600160a81b900460ff1681565b6101f86102f6366004611f2b565b611603565b60015461028d9067ffffffffffffffff1681565b6101f861031d366004611fdd565b6116b1565b6101f8610330366004611f2b565b611773565b60005461028d90600160b01b900467ffffffffffffffff1681565b61025a61035e366004611f2b565b60056020526000908152604090205460ff1681565b60006103846102416107e08461202b565b92915050565b60015460009081906103a89067ffffffffffffffff166107e061203f565b60015467ffffffffffffffff91821693506103ce91600160401b909104166107e061203f565b6103da906107df61206f565b67ffffffffffffffff1690509091565b600080605083516103fb919061209b565b1561044d5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b6050835161045b919061202b565b905060018111801561046e57506107e081105b6104ba5760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610444565b6104c383611855565b63ffffffff1691506000806104d9858280611889565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff1688101561059f5761055b6001846120af565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820152909350919050610541565b815163ffffffff166106195760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610444565b81602001516001600160e01b031685146106e45780602001516001600160e01b031685141561064a579050826106e4565b6106556001846120af565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146106e45760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610444565b60015b878110156107d75760006107068b6107008460506120c6565b8a611889565b60208601519098509091506001600160e01b031687146107c35760006107376107308460506120c6565b8d90611961565b845163ffffffff9182169250161580159061075e575083602001516001600160e01b031688145b80156107705750835163ffffffff1681145b6107bc5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610444565b5091925084915b9650806107cf816120e5565b9150506106e7565b50505050505050915091565b600054600160a01b900460ff1661083c5760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610444565b6000546001600160a01b031633146108965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6107e08167ffffffffffffffff16106108f15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610444565b60008167ffffffffffffffff161161094b5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610444565b60005467ffffffffffffffff828116600160b01b9092041614156109b15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610444565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6000546001600160a01b03163314610a825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b689101610a1d565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b600054600160a01b900460ff1615610b875760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610444565b60508314610bd75760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610444565b610be36107e08361209b565b15610c565760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610444565b6107e08167ffffffffffffffff1610610cb15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610444565b60008167ffffffffffffffff1611610d0b5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610444565b610d176107e08361202b565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610d9d9190879087908190840183828082843760009201919091525061198292505050565b90506000610de086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061185592505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610e7b8261198f565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610ede9086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610f4d5760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610444565b600154600160401b900467ffffffffffffffff16821115610fd55760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610444565b6000828152600460205260409020546103849064010000000090046001600160e01b031661198f565b6000546001600160a01b031633146110585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b61106260006119b7565b565b600054600160a01b900460ff166110bd5760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610444565b600054600160a81b900460ff161561112e573360009081526005602052604090205460ff1661112e5760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610444565b60005461114d90600160b01b900467ffffffffffffffff16600261203f565b61115890605061203f565b67ffffffffffffffff168151146111b15760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610444565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff168110156112ad5760008061121f876112198560506120c6565b86611889565b915091508481146112985760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610444565b509150806112a5816120e5565b9150506111ec565b50600080546112ef906112d390600190600160b01b900467ffffffffffffffff16612100565b6112de90605061203f565b869067ffffffffffffffff16611961565b63ffffffff1690504281106113465760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610444565b835460009061135d90859063ffffffff1684611a1f565b9050600080611399600060169054906101000a900467ffffffffffffffff166050611388919061203f565b899067ffffffffffffffff16611961565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546113d890600160b01b900467ffffffffffffffff16600261203f565b67ffffffffffffffff168110156114eb576000806113fb8b6107008560506120c6565b91509150846000141561146157809450808616811461145c5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610444565b6114d6565b8481146114d65760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610444565b509550806114e3816120e5565b9150506113b9565b50600160089054906101000a900467ffffffffffffffff16600161150f919061206f565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b03808916602080850191825295909604909616600090815260049094529183209051935190941664010000000002921691909117909155600254906115b18461198f565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6000546001600160a01b0316331461165d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e299101610a1d565b6000546001600160a01b0316331461170b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a90610a1d90831515815260200190565b6000546001600160a01b031633146117cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b0381166118495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610444565b611852816119b7565b50565b600061038461186383611ab3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156118e95761189d858585611ac0565b6118e95760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610444565b6118f38585611aeb565b905061190185856050611b8d565b915061190d8282611bb7565b6119595760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610444565b935093915050565b600061197b611863611974846044612129565b8590611d10565b9392505050565b6000610384826000611aeb565b60006103847bffff000000000000000000000000000000000000000000000000000083611d1f565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080611a2c8385611d2b565b9050611a3c621275006004611d1f565b811015611a5457611a51621275006004611d1f565b90505b611a62621275006004611d87565b811115611a7a57611a77621275006004611d87565b90505b6000611a9382611a8d8862010000611d1f565b90611d87565b9050611aa962010000611a8d8362127500611d1f565b9695505050505050565b6000610384826044611d10565b600080611acd8585611dfa565b9050828114611ae057600091505061197b565b506001949350505050565b600080611afc611974846048612129565b60e81c9050600084611b0f85604b612129565b81518110611b1f57611b1f612141565b016020015160f81c90506000611b5383600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611b67600384612157565b60ff169050611b788161010061225e565b611b8290836120c6565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611bc657506000610384565b81611d088460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b600061197b8383016020015190565b600061197b828461202b565b600082821115611d7d5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610444565b61197b82846120af565b600082611d9657506000610384565b611da082846120c6565b905081611dad848361202b565b146103845760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610444565b600061197b611e0a836004612129565b84016020015190565b600060208284031215611e2557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e5457600080fd5b813567ffffffffffffffff80821115611e6c57600080fd5b818401915084601f830112611e8057600080fd5b813581811115611e9257611e92611e2c565b604051601f8201601f19908116603f01168101908382118183101715611eba57611eba611e2c565b81604052828152876020848701011115611ed357600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611f0b57600080fd5b919050565b600060208284031215611f2257600080fd5b61197b82611ef3565b600060208284031215611f3d57600080fd5b81356001600160a01b038116811461197b57600080fd5b60008060008060608587031215611f6a57600080fd5b843567ffffffffffffffff80821115611f8257600080fd5b818701915087601f830112611f9657600080fd5b813581811115611fa557600080fd5b886020828501011115611fb757600080fd5b602092830196509450508501359150611fd260408601611ef3565b905092959194509250565b600060208284031215611fef57600080fd5b8135801515811461197b57600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261203a5761203a611fff565b500490565b600067ffffffffffffffff8083168185168183048111821515161561206657612066612015565b02949350505050565b600067ffffffffffffffff80831681851680830382111561209257612092612015565b01949350505050565b6000826120aa576120aa611fff565b500690565b6000828210156120c1576120c1612015565b500390565b60008160001904831182151516156120e0576120e0612015565b500290565b60006000198214156120f9576120f9612015565b5060010190565b600067ffffffffffffffff8381169083168181101561212157612121612015565b039392505050565b6000821982111561213c5761213c612015565b500190565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168082101561217157612171612015565b90039392505050565b600181815b808511156121b557816000190482111561219b5761219b612015565b808516156121a857918102915b93841c939080029061217f565b509250929050565b6000826121cc57506001610384565b816121d957506000610384565b81600181146121ef57600281146121f957612215565b6001915050610384565b60ff84111561220a5761220a612015565b50506001821b610384565b5060208310610133831016604e8410600b8410161715612238575081810a610384565b612242838361217a565b806000190482111561225657612256612015565b029392505050565b600061197b83836121bd56fea26469706673582212202187b2cccd98706e5f4919f46f949f666df2124d0973dda7e05768790b1822ab64736f6c63430008090033",
440
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c8063715018a6116100d8578063b6a5d7de1161008c578063f2fde38b11610066578063f2fde38b14610322578063f5619fda14610335578063fe9fbb801461035057600080fd5b8063b6a5d7de146102e8578063b70e6be6146102fb578063eb8695ef1461030f57600080fd5b80637ca5b1dd116100bd5780637ca5b1dd146102a65780638da5cb5b146102b957806395410d2b146102d457600080fd5b8063715018a61461026a578063766718081461027257600080fd5b806327c97fa51161013a5780634ca49f51116101145780634ca49f5114610220578063620414e6146102335780636defbf801461024657600080fd5b806327c97fa5146101fa5780632b97be241461020d5780633a1b77b01461021557600080fd5b8063113764be1161016b578063113764be146101ca578063189179a3146101d257806319c9aa32146101e557600080fd5b806306a274221461018757806310b76ed8146101ad575b600080fd5b61019a610195366004611e13565b610373565b6040519081526020015b60405180910390f35b6101b561038a565b604080519283526020830191909152016101a4565b60025461019a565b6101b56101e0366004611e42565b6103ea565b6101f86101f3366004611f10565b6107e3565b005b6101f8610208366004611f2b565b610a28565b60035461019a565b6002546003546101b5565b6101f861022e366004611f54565b610ad3565b61019a610241366004611e13565b610eee565b60005461025a90600160a01b900460ff1681565b60405190151581526020016101a4565b6101f8610ffe565b60015461028d90600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a4565b6101f86102b4366004611e42565b611064565b6000546040516001600160a01b0390911681526020016101a4565b60005461025a90600160a81b900460ff1681565b6101f86102f6366004611f2b565b611603565b60015461028d9067ffffffffffffffff1681565b6101f861031d366004611fdd565b6116b1565b6101f8610330366004611f2b565b611773565b60005461028d90600160b01b900467ffffffffffffffff1681565b61025a61035e366004611f2b565b60056020526000908152604090205460ff1681565b60006103846102416107e08461202b565b92915050565b60015460009081906103a89067ffffffffffffffff166107e061203f565b60015467ffffffffffffffff91821693506103ce91600160401b909104166107e061203f565b6103da906107df61206f565b67ffffffffffffffff1690509091565b600080605083516103fb919061209b565b1561044d5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b6050835161045b919061202b565b905060018111801561046e57506107e081105b6104ba5760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610444565b6104c383611855565b63ffffffff1691506000806104d9858280611889565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff1688101561059f5761055b6001846120af565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820152909350919050610541565b815163ffffffff166106195760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610444565b81602001516001600160e01b031685146106e45780602001516001600160e01b031685141561064a579050826106e4565b6106556001846120af565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146106e45760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610444565b60015b878110156107d75760006107068b6107008460506120c6565b8a611889565b60208601519098509091506001600160e01b031687146107c35760006107376107308460506120c6565b8d90611961565b845163ffffffff9182169250161580159061075e575083602001516001600160e01b031688145b80156107705750835163ffffffff1681145b6107bc5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610444565b5091925084915b9650806107cf816120e5565b9150506106e7565b50505050505050915091565b600054600160a01b900460ff1661083c5760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610444565b6000546001600160a01b031633146108965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6107e08167ffffffffffffffff16106108f15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610444565b60008167ffffffffffffffff161161094b5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610444565b60005467ffffffffffffffff828116600160b01b9092041614156109b15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610444565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6000546001600160a01b03163314610a825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b689101610a1d565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b600054600160a01b900460ff1615610b875760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610444565b60508314610bd75760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610444565b610be36107e08361209b565b15610c565760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610444565b6107e08167ffffffffffffffff1610610cb15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610444565b60008167ffffffffffffffff1611610d0b5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610444565b610d176107e08361202b565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610d9d9190879087908190840183828082843760009201919091525061198292505050565b90506000610de086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061185592505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610e7b8261198f565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610ede9086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610f4d5760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610444565b600154600160401b900467ffffffffffffffff16821115610fd55760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610444565b6000828152600460205260409020546103849064010000000090046001600160e01b031661198f565b6000546001600160a01b031633146110585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b61106260006119b7565b565b600054600160a01b900460ff166110bd5760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610444565b600054600160a81b900460ff161561112e573360009081526005602052604090205460ff1661112e5760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610444565b60005461114d90600160b01b900467ffffffffffffffff16600261203f565b61115890605061203f565b67ffffffffffffffff168151146111b15760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610444565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff168110156112ad5760008061121f876112198560506120c6565b86611889565b915091508481146112985760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610444565b509150806112a5816120e5565b9150506111ec565b50600080546112ef906112d390600190600160b01b900467ffffffffffffffff16612100565b6112de90605061203f565b869067ffffffffffffffff16611961565b63ffffffff1690504281106113465760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610444565b835460009061135d90859063ffffffff1684611a1f565b9050600080611399600060169054906101000a900467ffffffffffffffff166050611388919061203f565b899067ffffffffffffffff16611961565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546113d890600160b01b900467ffffffffffffffff16600261203f565b67ffffffffffffffff168110156114eb576000806113fb8b6107008560506120c6565b91509150846000141561146157809450808616811461145c5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610444565b6114d6565b8481146114d65760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610444565b509550806114e3816120e5565b9150506113b9565b50600160089054906101000a900467ffffffffffffffff16600161150f919061206f565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b03808916602080850191825295909604909616600090815260049094529183209051935190941664010000000002921691909117909155600254906115b18461198f565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6000546001600160a01b0316331461165d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e299101610a1d565b6000546001600160a01b0316331461170b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a90610a1d90831515815260200190565b6000546001600160a01b031633146117cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610444565b6001600160a01b0381166118495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610444565b611852816119b7565b50565b600061038461186383611ab3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156118e95761189d858585611ac0565b6118e95760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610444565b6118f38585611aeb565b905061190185856050611b8d565b915061190d8282611bb7565b6119595760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610444565b935093915050565b600061197b611863611974846044612129565b8590611d10565b9392505050565b6000610384826000611aeb565b60006103847bffff000000000000000000000000000000000000000000000000000083611d1f565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080611a2c8385611d2b565b9050611a3c621275006004611d1f565b811015611a5457611a51621275006004611d1f565b90505b611a62621275006004611d87565b811115611a7a57611a77621275006004611d87565b90505b6000611a9382611a8d8862010000611d1f565b90611d87565b9050611aa962010000611a8d8362127500611d1f565b9695505050505050565b6000610384826044611d10565b600080611acd8585611dfa565b9050828114611ae057600091505061197b565b506001949350505050565b600080611afc611974846048612129565b60e81c9050600084611b0f85604b612129565b81518110611b1f57611b1f612141565b016020015160f81c90506000611b5383600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611b67600384612157565b60ff169050611b788161010061225e565b611b8290836120c6565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611bc657506000610384565b81611d088460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b600061197b8383016020015190565b600061197b828461202b565b600082821115611d7d5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610444565b61197b82846120af565b600082611d9657506000610384565b611da082846120c6565b905081611dad848361202b565b146103845760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610444565b600061197b611e0a836004612129565b84016020015190565b600060208284031215611e2557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e5457600080fd5b813567ffffffffffffffff80821115611e6c57600080fd5b818401915084601f830112611e8057600080fd5b813581811115611e9257611e92611e2c565b604051601f8201601f19908116603f01168101908382118183101715611eba57611eba611e2c565b81604052828152876020848701011115611ed357600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611f0b57600080fd5b919050565b600060208284031215611f2257600080fd5b61197b82611ef3565b600060208284031215611f3d57600080fd5b81356001600160a01b038116811461197b57600080fd5b60008060008060608587031215611f6a57600080fd5b843567ffffffffffffffff80821115611f8257600080fd5b818701915087601f830112611f9657600080fd5b813581811115611fa557600080fd5b886020828501011115611fb757600080fd5b602092830196509450508501359150611fd260408601611ef3565b905092959194509250565b600060208284031215611fef57600080fd5b8135801515811461197b57600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261203a5761203a611fff565b500490565b600067ffffffffffffffff8083168185168183048111821515161561206657612066612015565b02949350505050565b600067ffffffffffffffff80831681851680830382111561209257612092612015565b01949350505050565b6000826120aa576120aa611fff565b500690565b6000828210156120c1576120c1612015565b500390565b60008160001904831182151516156120e0576120e0612015565b500290565b60006000198214156120f9576120f9612015565b5060010190565b600067ffffffffffffffff8381169083168181101561212157612121612015565b039392505050565b6000821982111561213c5761213c612015565b500190565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168082101561217157612171612015565b90039392505050565b600181815b808511156121b557816000190482111561219b5761219b612015565b808516156121a857918102915b93841c939080029061217f565b509250929050565b6000826121cc57506001610384565b816121d957506000610384565b81600181146121ef57600281146121f957612215565b6001915050610384565b60ff84111561220a5761220a612015565b50506001821b610384565b5060208310610133831016604e8410600b8410161715612238575081810a610384565b612242838361217a565b806000190482111561225657612256612015565b029392505050565b600061197b83836121bd56fea26469706673582212202187b2cccd98706e5f4919f46f949f666df2124d0973dda7e05768790b1822ab64736f6c63430008090033",
441
+ "linkReferences": {},
442
+ "deployedLinkReferences": {}
443
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RelayUtils",
4
+ "sourceName": "contracts/relay/LightRelay.sol",
5
+ "abi": [],
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122006f6b34eb6caa7a8c12abc3d4e22978a11f28a13702c3043c67f08a32a72017864736f6c63430008090033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122006f6b34eb6caa7a8c12abc3d4e22978a11f28a13702c3043c67f08a32a72017864736f6c63430008090033",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0536f933f2bac07a4874ead3bd016225.json"
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0536f933f2bac07a4874ead3bd016225.json"
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0536f933f2bac07a4874ead3bd016225.json"
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0536f933f2bac07a4874ead3bd016225.json"
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
4
  }
@@ -225,6 +225,11 @@ contract Bridge is
225
225
  uint32 fraudNotifierRewardMultiplier
226
226
  );
227
227
 
228
+ /// @custom:oz-upgrades-unsafe-allow constructor
229
+ constructor() {
230
+ _disableInitializers();
231
+ }
232
+
228
233
  /// @dev Initializes upgradable contract on deployment.
229
234
  /// @param _bank Address of the Bank the Bridge belongs to.
230
235
  /// @param _relay Address of the Bitcoin relay providing the current Bitcoin