@keep-network/tbtc-v2 1.6.0-dev.17 → 1.6.0-dev.19

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 (157) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +3 -3
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +2 -2
  11. package/artifacts/Deposit.json +2 -2
  12. package/artifacts/DepositSweep.json +2 -2
  13. package/artifacts/DonationVault.json +3 -3
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +2 -2
  18. package/artifacts/LightRelay.json +18 -18
  19. package/artifacts/LightRelayMaintainerProxy.json +8 -8
  20. package/artifacts/MaintainerProxy.json +19 -19
  21. package/artifacts/MovingFunds.json +2 -2
  22. package/artifacts/NuCypherToken.json +2 -2
  23. package/artifacts/RandomBeacon.json +2 -2
  24. package/artifacts/RandomBeaconChaosnet.json +2 -2
  25. package/artifacts/RandomBeaconGovernance.json +2 -2
  26. package/artifacts/Redemption.json +2 -2
  27. package/artifacts/ReimbursementPool.json +2 -2
  28. package/artifacts/T.json +2 -2
  29. package/artifacts/TBTC.json +3 -3
  30. package/artifacts/TBTCToken.json +3 -3
  31. package/artifacts/TBTCVault.json +23 -23
  32. package/artifacts/TokenStaking.json +1 -1
  33. package/artifacts/TokenholderGovernor.json +9 -9
  34. package/artifacts/TokenholderTimelock.json +8 -8
  35. package/artifacts/VendingMachine.json +3 -3
  36. package/artifacts/VendingMachineNuCypher.json +1 -1
  37. package/artifacts/VendingMachineV2.json +3 -3
  38. package/artifacts/VendingMachineV3.json +3 -3
  39. package/artifacts/WalletProposalValidator.json +2 -2
  40. package/artifacts/WalletRegistry.json +5 -5
  41. package/artifacts/WalletRegistryGovernance.json +2 -2
  42. package/artifacts/Wallets.json +2 -2
  43. package/artifacts/solcInputs/{d86f3b9c8cafe2e77604a4fc30b88b09.json → 19f15a13262ffc15233697ce606a19a1.json} +1 -1
  44. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  45. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  46. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  47. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  48. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  49. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  50. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  51. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  52. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  53. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  54. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  55. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  56. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  57. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  58. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  59. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  60. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  61. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  62. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  63. package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
  64. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  65. package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.dbg.json +1 -1
  66. package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.json +0 -19
  67. package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
  68. package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
  69. package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
  70. package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  71. package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
  72. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  73. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  74. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  75. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  76. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  77. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  78. package/build/contracts/test/BankStub.sol/BankStub.dbg.json +4 -0
  79. package/build/contracts/test/BankStub.sol/BankStub.json +555 -0
  80. package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +4 -0
  81. package/build/contracts/test/BridgeStub.sol/BridgeStub.json +3318 -0
  82. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +4 -0
  83. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +30 -0
  84. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +4 -0
  85. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.json +467 -0
  86. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +4 -0
  87. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +96 -0
  88. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +4 -0
  89. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +456 -0
  90. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +4 -0
  91. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +89 -0
  92. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +4 -0
  93. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +102 -0
  94. package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +4 -0
  95. package/build/contracts/test/TestERC20.sol/TestERC20.json +508 -0
  96. package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +4 -0
  97. package/build/contracts/test/TestERC721.sol/TestERC721.json +390 -0
  98. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +4 -0
  99. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +35 -0
  100. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +4 -0
  101. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.json +224 -0
  102. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +4 -0
  103. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +87 -0
  104. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +4 -0
  105. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +264 -0
  106. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +4 -0
  107. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +372 -0
  108. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  109. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  110. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  111. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  112. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  113. package/contracts/integrator/AbstractTBTCDepositor.sol +10 -17
  114. package/contracts/test/BankStub.sol +11 -0
  115. package/contracts/test/BridgeStub.sol +174 -0
  116. package/contracts/test/HeartbeatStub.sol +16 -0
  117. package/contracts/test/LightRelayStub.sol +15 -0
  118. package/contracts/test/ReceiveApprovalStub.sol +33 -0
  119. package/contracts/test/SepoliaLightRelay.sol +48 -0
  120. package/contracts/test/SystemTestRelay.sol +57 -0
  121. package/contracts/test/TestBitcoinTx.sol +24 -0
  122. package/contracts/test/TestERC20.sol +12 -0
  123. package/contracts/test/TestERC721.sol +16 -0
  124. package/contracts/test/TestEcdsaLib.sol +17 -0
  125. package/contracts/test/TestTBTCDepositor.sol +196 -0
  126. package/contracts/test/WormholeBridgeStub.sol +125 -0
  127. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
  128. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
  129. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
  130. package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +40 -40
  131. package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +47 -47
  132. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +88 -88
  133. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
  134. package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +31 -31
  135. package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +2 -2
  136. package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +30 -30
  137. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
  138. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
  139. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
  140. package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +59 -59
  141. package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
  142. package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +5 -5
  143. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
  144. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
  145. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
  146. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockBridge.json +36 -36
  147. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +23 -23
  148. package/export/artifacts/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +1846 -2016
  149. package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
  150. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
  151. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
  152. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
  153. package/export/typechain/factories/AbstractTBTCDepositor__factory.js +0 -19
  154. package/export/typechain/factories/MockBridge__factory.js +1 -1
  155. package/export/typechain/factories/MockTBTCVault__factory.js +1 -1
  156. package/export/typechain/factories/TestTBTCDepositor__factory.js +1 -20
  157. package/package.json +1 -2
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/8b16fc152b88a0a691ccc6c859790c3d.json"
4
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "HeartbeatStub",
4
+ "sourceName": "contracts/test/HeartbeatStub.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes",
10
+ "name": "message",
11
+ "type": "bytes"
12
+ }
13
+ ],
14
+ "name": "isValidHeartbeatMessage",
15
+ "outputs": [
16
+ {
17
+ "internalType": "bool",
18
+ "name": "",
19
+ "type": "bool"
20
+ }
21
+ ],
22
+ "stateMutability": "pure",
23
+ "type": "function"
24
+ }
25
+ ],
26
+ "bytecode": "0x608060405234801561001057600080fd5b506101b3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea5bf84914610030575b600080fd5b61004361003e36600461010b565b610057565b604051901515815260200160405180910390f35b6000610063838361006c565b90505b92915050565b60006010821461007e57506000610066565b6100c2600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506100fc9050565b7fffffffffffffffff000000000000000000000000000000000000000000000000908116146100f357506000610066565b50600192915050565b60006100638383016020015190565b6000806020838503121561011e57600080fd5b823567ffffffffffffffff8082111561013657600080fd5b818501915085601f83011261014a57600080fd5b81358181111561015957600080fd5b86602082850101111561016b57600080fd5b6020929092019691955090935050505056fea264697066735822122070b2f1b2d2ab237110e2d7405365b63e123144198c2419d43fdc397b756c316c64736f6c63430008110033",
27
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea5bf84914610030575b600080fd5b61004361003e36600461010b565b610057565b604051901515815260200160405180910390f35b6000610063838361006c565b90505b92915050565b60006010821461007e57506000610066565b6100c2600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506100fc9050565b7fffffffffffffffff000000000000000000000000000000000000000000000000908116146100f357506000610066565b50600192915050565b60006100638383016020015190565b6000806020838503121561011e57600080fd5b823567ffffffffffffffff8082111561013657600080fd5b818501915085601f83011261014a57600080fd5b81358181111561015957600080fd5b86602082850101111561016b57600080fd5b6020929092019691955090935050505056fea264697066735822122070b2f1b2d2ab237110e2d7405365b63e123144198c2419d43fdc397b756c316c64736f6c63430008110033",
28
+ "linkReferences": {},
29
+ "deployedLinkReferences": {}
30
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/8b16fc152b88a0a691ccc6c859790c3d.json"
4
+ }
@@ -0,0 +1,467 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LightRelayStub",
4
+ "sourceName": "contracts/test/LightRelayStub.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
+ "inputs": [
440
+ {
441
+ "internalType": "bytes",
442
+ "name": "headers",
443
+ "type": "bytes"
444
+ }
445
+ ],
446
+ "name": "validateChainGasReport",
447
+ "outputs": [
448
+ {
449
+ "internalType": "uint256",
450
+ "name": "",
451
+ "type": "uint256"
452
+ },
453
+ {
454
+ "internalType": "uint256",
455
+ "name": "",
456
+ "type": "uint256"
457
+ }
458
+ ],
459
+ "stateMutability": "nonpayable",
460
+ "type": "function"
461
+ }
462
+ ],
463
+ "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6121aa8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063715018a6116100e3578063b70e6be61161008c578063f2fde38b11610066578063f2fde38b14610340578063f5619fda14610353578063fe9fbb801461036e57600080fd5b8063b70e6be614610306578063e97dccf31461031a578063eb8695ef1461032d57600080fd5b80638da5cb5b116100bd5780638da5cb5b146102c457806395410d2b146102df578063b6a5d7de146102f357600080fd5b8063715018a614610275578063766718081461027d5780637ca5b1dd146102b157600080fd5b806327c97fa5116101455780634ca49f511161011f5780634ca49f511461022b578063620414e61461023e5780636defbf801461025157600080fd5b806327c97fa5146102055780632b97be24146102185780633a1b77b01461022057600080fd5b8063113764be11610176578063113764be146101d5578063189179a3146101dd57806319c9aa32146101f057600080fd5b806306a274221461019257806310b76ed8146101b8575b600080fd5b6101a56101a0366004611cd8565b610391565b6040519081526020015b60405180910390f35b6101c06103a8565b604080519283526020830191909152016101af565b6002546101a5565b6101c06101eb366004611d07565b610408565b6102036101fe366004611dd5565b610800565b005b610203610213366004611df0565b6109f3565b6003546101a5565b6002546003546101c0565b610203610239366004611e19565b610a4c565b6101a561024c366004611cd8565b610e15565b60005461026590600160a01b900460ff1681565b60405190151581526020016101af565b610203610f25565b60015461029890600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101af565b6102036102bf366004611d07565b610f39565b6000546040516001600160a01b0390911681526020016101af565b60005461026590600160a81b900460ff1681565b610203610301366004611df0565b6114d7565b6001546102989067ffffffffffffffff1681565b6101c0610328366004611d07565b611533565b61020361033b366004611ea2565b6115bd565b61020361034e366004611df0565b61162d565b60005461029890600160b01b900467ffffffffffffffff1681565b61026561037c366004611df0565b60056020526000908152604090205460ff1681565b60006103a261024c6107e084611ef0565b92915050565b60015460009081906103c69067ffffffffffffffff166107e0611f04565b60015467ffffffffffffffff91821693506103ec91600160401b909104166107e0611f04565b6103f8906107df611f30565b67ffffffffffffffff1690509091565b600080605083516104199190611f58565b1561046b5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104799190611ef0565b905060018111801561048c57506107e081105b6104d85760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610462565b6104e1836116bd565b63ffffffff1691506000806104f78582806116f1565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105bd57610579600184611f6c565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290935091905061055f565b815163ffffffff166106375760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610462565b81602001516001600160e01b031685146107015780602001516001600160e01b0316850361066757905082610701565b610672600184611f6c565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146107015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b60015b878110156107f45760006107238b61071d846050611f7f565b8a6116f1565b60208601519098509091506001600160e01b031687146107e057600061075461074d846050611f7f565b8d906117c9565b845163ffffffff9182169250161580159061077b575083602001516001600160e01b031688145b801561078d5750835163ffffffff1681145b6107d95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b5091925084915b9650806107ec81611f96565b915050610704565b50505050505050915091565b600054600160a01b900460ff166108595760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b6108616117ea565b6107e08167ffffffffffffffff16106108bc5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff16116109165760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b60005467ffffffffffffffff600160b01b90910481169082160361097c5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610462565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109fb6117ea565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109e8565b610a546117ea565b600054600160a01b900460ff1615610aae5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610462565b60508314610afe5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610462565b610b0a6107e083611f58565b15610b7d5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610462565b6107e08167ffffffffffffffff1610610bd85760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff1611610c325760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b610c3e6107e083611ef0565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610cc49190879087908190840183828082843760009201919091525061184492505050565b90506000610d0786868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116bd92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610da282611851565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610e059086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e745760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610462565b600154600160401b900467ffffffffffffffff16821115610efc5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610462565b6000828152600460205260409020546103a29064010000000090046001600160e01b0316611851565b610f2d6117ea565b610f376000611879565b565b600054600160a01b900460ff16610f925760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b600054600160a81b900460ff1615611003573360009081526005602052604090205460ff166110035760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610462565b60005461102290600160b01b900467ffffffffffffffff166002611f04565b61102d906050611f04565b67ffffffffffffffff168151146110865760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610462565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff16811015611182576000806110f4876110ee856050611f7f565b866116f1565b9150915084811461116d5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610462565b5091508061117a81611f96565b9150506110c1565b50600080546111c4906111a890600190600160b01b900467ffffffffffffffff16611faf565b6111b3906050611f04565b869067ffffffffffffffff166117c9565b63ffffffff16905042811061121b5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610462565b835460009061123290859063ffffffff16846118e1565b905060008061126e600060169054906101000a900467ffffffffffffffff16605061125d9190611f04565b899067ffffffffffffffff166117c9565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546112ad90600160b01b900467ffffffffffffffff166002611f04565b67ffffffffffffffff168110156113bf576000806112d08b61071d856050611f7f565b91509150846000036113355780945080861681146113305760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610462565b6113aa565b8481146113aa5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610462565b509550806113b781611f96565b91505061128e565b50600160089054906101000a900467ffffffffffffffff1660016113e39190611f30565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b038089166020808501918252959096049096166000908152600490945291832090519351909416640100000000029216919091179091556002549061148584611851565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114df6117ea565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109e8565b6040517f189179a30000000000000000000000000000000000000000000000000000000081526000908190309063189179a390611574908690600401611fd0565b6040805180830381865afa158015611590573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b4919061201e565b91509150915091565b6115c56117ea565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109e890831515815260200190565b6116356117ea565b6001600160a01b0381166116b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610462565b6116ba81611879565b50565b60006103a26116cb83611975565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b600080821561175157611705858585611982565b6117515760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610462565b61175b85856119ad565b905061176985856050611a4f565b91506117758282611a79565b6117c15760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610462565b935093915050565b60006117e36116cb6117dc846044612042565b8590611bd2565b9392505050565b6000546001600160a01b03163314610f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610462565b60006103a28260006119ad565b60006103a27bffff000000000000000000000000000000000000000000000000000083611be1565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806118ee8385611bed565b90506118fe621275006004611be1565b81101561191657611913621275006004611be1565b90505b611924621275006004611c49565b81111561193c57611939621275006004611c49565b90505b60006119558261194f8862010000611be1565b90611c49565b905061196b6201000061194f8362127500611be1565b9695505050505050565b60006103a2826044611bd2565b60008061198f8585611cbf565b90508281146119a25760009150506117e3565b506001949350505050565b6000806119be6117dc846048612042565b60e81c90506000846119d185604b612042565b815181106119e1576119e1612055565b016020015160f81c90506000611a1583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611a2960038461206b565b60ff169050611a3a81610100612168565b611a449083611f7f565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611a88575060006103a2565b81611bca8460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117e38383016020015190565b60006117e38284611ef0565b600082821115611c3f5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610462565b6117e38284611f6c565b600082600003611c5b575060006103a2565b611c658284611f7f565b905081611c728483611ef0565b146103a25760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610462565b60006117e3611ccf836004612042565b84016020015190565b600060208284031215611cea57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611d1957600080fd5b813567ffffffffffffffff80821115611d3157600080fd5b818401915084601f830112611d4557600080fd5b813581811115611d5757611d57611cf1565b604051601f8201601f19908116603f01168101908382118183101715611d7f57611d7f611cf1565b81604052828152876020848701011115611d9857600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611dd057600080fd5b919050565b600060208284031215611de757600080fd5b6117e382611db8565b600060208284031215611e0257600080fd5b81356001600160a01b03811681146117e357600080fd5b60008060008060608587031215611e2f57600080fd5b843567ffffffffffffffff80821115611e4757600080fd5b818701915087601f830112611e5b57600080fd5b813581811115611e6a57600080fd5b886020828501011115611e7c57600080fd5b602092830196509450508501359150611e9760408601611db8565b905092959194509250565b600060208284031215611eb457600080fd5b813580151581146117e357600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611eff57611eff611ec4565b500490565b67ffffffffffffffff818116838216028082169190828114611f2857611f28611eda565b505092915050565b67ffffffffffffffff818116838216019080821115611f5157611f51611eda565b5092915050565b600082611f6757611f67611ec4565b500690565b818103818111156103a2576103a2611eda565b80820281158282048414176103a2576103a2611eda565b600060018201611fa857611fa8611eda565b5060010190565b67ffffffffffffffff828116828216039080821115611f5157611f51611eda565b600060208083528351808285015260005b81811015611ffd57858101830151858201604001528201611fe1565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561203157600080fd5b505080516020909101519092909150565b808201808211156103a2576103a2611eda565b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103a2576103a2611eda565b600181815b808511156120bf5781600019048211156120a5576120a5611eda565b808516156120b257918102915b93841c9390800290612089565b509250929050565b6000826120d6575060016103a2565b816120e3575060006103a2565b81600181146120f957600281146121035761211f565b60019150506103a2565b60ff84111561211457612114611eda565b50506001821b6103a2565b5060208310610133831016604e8410600b8410161715612142575081810a6103a2565b61214c8383612084565b806000190482111561216057612160611eda565b029392505050565b60006117e383836120c756fea2646970667358221220a2e3d0655e2870a5653b7c686e1d4593c75e6b1676f4b4e62370b754a5d9a9d964736f6c63430008110033",
464
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063715018a6116100e3578063b70e6be61161008c578063f2fde38b11610066578063f2fde38b14610340578063f5619fda14610353578063fe9fbb801461036e57600080fd5b8063b70e6be614610306578063e97dccf31461031a578063eb8695ef1461032d57600080fd5b80638da5cb5b116100bd5780638da5cb5b146102c457806395410d2b146102df578063b6a5d7de146102f357600080fd5b8063715018a614610275578063766718081461027d5780637ca5b1dd146102b157600080fd5b806327c97fa5116101455780634ca49f511161011f5780634ca49f511461022b578063620414e61461023e5780636defbf801461025157600080fd5b806327c97fa5146102055780632b97be24146102185780633a1b77b01461022057600080fd5b8063113764be11610176578063113764be146101d5578063189179a3146101dd57806319c9aa32146101f057600080fd5b806306a274221461019257806310b76ed8146101b8575b600080fd5b6101a56101a0366004611cd8565b610391565b6040519081526020015b60405180910390f35b6101c06103a8565b604080519283526020830191909152016101af565b6002546101a5565b6101c06101eb366004611d07565b610408565b6102036101fe366004611dd5565b610800565b005b610203610213366004611df0565b6109f3565b6003546101a5565b6002546003546101c0565b610203610239366004611e19565b610a4c565b6101a561024c366004611cd8565b610e15565b60005461026590600160a01b900460ff1681565b60405190151581526020016101af565b610203610f25565b60015461029890600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101af565b6102036102bf366004611d07565b610f39565b6000546040516001600160a01b0390911681526020016101af565b60005461026590600160a81b900460ff1681565b610203610301366004611df0565b6114d7565b6001546102989067ffffffffffffffff1681565b6101c0610328366004611d07565b611533565b61020361033b366004611ea2565b6115bd565b61020361034e366004611df0565b61162d565b60005461029890600160b01b900467ffffffffffffffff1681565b61026561037c366004611df0565b60056020526000908152604090205460ff1681565b60006103a261024c6107e084611ef0565b92915050565b60015460009081906103c69067ffffffffffffffff166107e0611f04565b60015467ffffffffffffffff91821693506103ec91600160401b909104166107e0611f04565b6103f8906107df611f30565b67ffffffffffffffff1690509091565b600080605083516104199190611f58565b1561046b5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104799190611ef0565b905060018111801561048c57506107e081105b6104d85760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610462565b6104e1836116bd565b63ffffffff1691506000806104f78582806116f1565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105bd57610579600184611f6c565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290935091905061055f565b815163ffffffff166106375760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610462565b81602001516001600160e01b031685146107015780602001516001600160e01b0316850361066757905082610701565b610672600184611f6c565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146107015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b60015b878110156107f45760006107238b61071d846050611f7f565b8a6116f1565b60208601519098509091506001600160e01b031687146107e057600061075461074d846050611f7f565b8d906117c9565b845163ffffffff9182169250161580159061077b575083602001516001600160e01b031688145b801561078d5750835163ffffffff1681145b6107d95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b5091925084915b9650806107ec81611f96565b915050610704565b50505050505050915091565b600054600160a01b900460ff166108595760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b6108616117ea565b6107e08167ffffffffffffffff16106108bc5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff16116109165760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b60005467ffffffffffffffff600160b01b90910481169082160361097c5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610462565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109fb6117ea565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109e8565b610a546117ea565b600054600160a01b900460ff1615610aae5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610462565b60508314610afe5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610462565b610b0a6107e083611f58565b15610b7d5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610462565b6107e08167ffffffffffffffff1610610bd85760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff1611610c325760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b610c3e6107e083611ef0565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610cc49190879087908190840183828082843760009201919091525061184492505050565b90506000610d0786868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116bd92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610da282611851565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610e059086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e745760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610462565b600154600160401b900467ffffffffffffffff16821115610efc5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610462565b6000828152600460205260409020546103a29064010000000090046001600160e01b0316611851565b610f2d6117ea565b610f376000611879565b565b600054600160a01b900460ff16610f925760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b600054600160a81b900460ff1615611003573360009081526005602052604090205460ff166110035760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610462565b60005461102290600160b01b900467ffffffffffffffff166002611f04565b61102d906050611f04565b67ffffffffffffffff168151146110865760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610462565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff16811015611182576000806110f4876110ee856050611f7f565b866116f1565b9150915084811461116d5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610462565b5091508061117a81611f96565b9150506110c1565b50600080546111c4906111a890600190600160b01b900467ffffffffffffffff16611faf565b6111b3906050611f04565b869067ffffffffffffffff166117c9565b63ffffffff16905042811061121b5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610462565b835460009061123290859063ffffffff16846118e1565b905060008061126e600060169054906101000a900467ffffffffffffffff16605061125d9190611f04565b899067ffffffffffffffff166117c9565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546112ad90600160b01b900467ffffffffffffffff166002611f04565b67ffffffffffffffff168110156113bf576000806112d08b61071d856050611f7f565b91509150846000036113355780945080861681146113305760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610462565b6113aa565b8481146113aa5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610462565b509550806113b781611f96565b91505061128e565b50600160089054906101000a900467ffffffffffffffff1660016113e39190611f30565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b038089166020808501918252959096049096166000908152600490945291832090519351909416640100000000029216919091179091556002549061148584611851565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114df6117ea565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109e8565b6040517f189179a30000000000000000000000000000000000000000000000000000000081526000908190309063189179a390611574908690600401611fd0565b6040805180830381865afa158015611590573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b4919061201e565b91509150915091565b6115c56117ea565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109e890831515815260200190565b6116356117ea565b6001600160a01b0381166116b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610462565b6116ba81611879565b50565b60006103a26116cb83611975565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b600080821561175157611705858585611982565b6117515760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610462565b61175b85856119ad565b905061176985856050611a4f565b91506117758282611a79565b6117c15760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610462565b935093915050565b60006117e36116cb6117dc846044612042565b8590611bd2565b9392505050565b6000546001600160a01b03163314610f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610462565b60006103a28260006119ad565b60006103a27bffff000000000000000000000000000000000000000000000000000083611be1565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806118ee8385611bed565b90506118fe621275006004611be1565b81101561191657611913621275006004611be1565b90505b611924621275006004611c49565b81111561193c57611939621275006004611c49565b90505b60006119558261194f8862010000611be1565b90611c49565b905061196b6201000061194f8362127500611be1565b9695505050505050565b60006103a2826044611bd2565b60008061198f8585611cbf565b90508281146119a25760009150506117e3565b506001949350505050565b6000806119be6117dc846048612042565b60e81c90506000846119d185604b612042565b815181106119e1576119e1612055565b016020015160f81c90506000611a1583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611a2960038461206b565b60ff169050611a3a81610100612168565b611a449083611f7f565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611a88575060006103a2565b81611bca8460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117e38383016020015190565b60006117e38284611ef0565b600082821115611c3f5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610462565b6117e38284611f6c565b600082600003611c5b575060006103a2565b611c658284611f7f565b905081611c728483611ef0565b146103a25760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610462565b60006117e3611ccf836004612042565b84016020015190565b600060208284031215611cea57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611d1957600080fd5b813567ffffffffffffffff80821115611d3157600080fd5b818401915084601f830112611d4557600080fd5b813581811115611d5757611d57611cf1565b604051601f8201601f19908116603f01168101908382118183101715611d7f57611d7f611cf1565b81604052828152876020848701011115611d9857600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611dd057600080fd5b919050565b600060208284031215611de757600080fd5b6117e382611db8565b600060208284031215611e0257600080fd5b81356001600160a01b03811681146117e357600080fd5b60008060008060608587031215611e2f57600080fd5b843567ffffffffffffffff80821115611e4757600080fd5b818701915087601f830112611e5b57600080fd5b813581811115611e6a57600080fd5b886020828501011115611e7c57600080fd5b602092830196509450508501359150611e9760408601611db8565b905092959194509250565b600060208284031215611eb457600080fd5b813580151581146117e357600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611eff57611eff611ec4565b500490565b67ffffffffffffffff818116838216028082169190828114611f2857611f28611eda565b505092915050565b67ffffffffffffffff818116838216019080821115611f5157611f51611eda565b5092915050565b600082611f6757611f67611ec4565b500690565b818103818111156103a2576103a2611eda565b80820281158282048414176103a2576103a2611eda565b600060018201611fa857611fa8611eda565b5060010190565b67ffffffffffffffff828116828216039080821115611f5157611f51611eda565b600060208083528351808285015260005b81811015611ffd57858101830151858201604001528201611fe1565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561203157600080fd5b505080516020909101519092909150565b808201808211156103a2576103a2611eda565b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103a2576103a2611eda565b600181815b808511156120bf5781600019048211156120a5576120a5611eda565b808516156120b257918102915b93841c9390800290612089565b509250929050565b6000826120d6575060016103a2565b816120e3575060006103a2565b81600181146120f957600281146121035761211f565b60019150506103a2565b60ff84111561211457612114611eda565b50506001821b6103a2565b5060208310610133831016604e8410600b8410161715612142575081810a6103a2565b61214c8383612084565b806000190482111561216057612160611eda565b029392505050565b60006117e383836120c756fea2646970667358221220a2e3d0655e2870a5653b7c686e1d4593c75e6b1676f4b4e62370b754a5d9a9d964736f6c63430008110033",
465
+ "linkReferences": {},
466
+ "deployedLinkReferences": {}
467
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/8b16fc152b88a0a691ccc6c859790c3d.json"
4
+ }