@keep-network/tbtc-v2 1.0.0-dev.0 → 1.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) 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/EcdsaDkgValidator.json +1 -1
  14. package/artifacts/EcdsaInactivity.json +1 -1
  15. package/artifacts/EcdsaSortitionPool.json +3 -3
  16. package/artifacts/Fraud.json +2 -2
  17. package/artifacts/KeepRegistry.json +1 -1
  18. package/artifacts/KeepStake.json +2 -2
  19. package/artifacts/KeepToken.json +2 -2
  20. package/artifacts/KeepTokenStaking.json +1 -1
  21. package/artifacts/LightRelay.json +4 -4
  22. package/artifacts/MaintainerProxy.json +3 -3
  23. package/artifacts/MovingFunds.json +2 -2
  24. package/artifacts/NuCypherStakingEscrow.json +1 -1
  25. package/artifacts/NuCypherToken.json +2 -2
  26. package/artifacts/RandomBeacon.json +2 -2
  27. package/artifacts/RandomBeaconChaosnet.json +2 -2
  28. package/artifacts/RandomBeaconGovernance.json +2 -2
  29. package/artifacts/Redemption.json +2 -2
  30. package/artifacts/ReimbursementPool.json +2 -2
  31. package/artifacts/T.json +2 -2
  32. package/artifacts/TBTC.json +3 -3
  33. package/artifacts/TBTCToken.json +3 -3
  34. package/artifacts/TBTCVault.json +23 -23
  35. package/artifacts/TokenStaking.json +1 -1
  36. package/artifacts/TokenholderGovernor.json +9 -9
  37. package/artifacts/TokenholderTimelock.json +8 -8
  38. package/artifacts/VendingMachine.json +3 -3
  39. package/artifacts/VendingMachineKeep.json +1 -1
  40. package/artifacts/VendingMachineNuCypher.json +1 -1
  41. package/artifacts/WalletRegistry.json +5 -5
  42. package/artifacts/WalletRegistryGovernance.json +2 -2
  43. package/artifacts/Wallets.json +2 -2
  44. package/artifacts/solcInputs/{155bbd01797c525b694dc9f75cefed21.json → 601573cb2697bb9512dba002bb727262.json} +4 -1
  45. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  46. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  47. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  48. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  49. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  50. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  51. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  52. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  53. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  54. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  55. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  57. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  58. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  59. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  60. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  61. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  62. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  63. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  64. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  65. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  66. package/build/contracts/relay/LightRelay.sol/LightRelay.json +2 -2
  67. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  68. package/build/contracts/relay/LightRelay.sol/RelayUtils.json +2 -2
  69. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  70. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  71. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  72. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  73. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  74. package/contracts/relay/LightRelay.sol +7 -2
  75. package/deploy/01_deploy_light_relay.ts +16 -4
  76. package/export/artifacts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol/BTCUtils.json +20 -20
  77. package/export/artifacts/@keep-network/ecdsa/contracts/EcdsaDkgValidator.sol/EcdsaDkgValidator.json +2025 -2025
  78. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaDkg.sol/EcdsaDkg.json +20 -20
  79. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaInactivity.sol/EcdsaInactivity.json +1875 -1875
  80. package/export/artifacts/@keep-network/random-beacon/contracts/ReimbursementPool.sol/ReimbursementPool.json +545 -545
  81. package/export/artifacts/@keep-network/sortition-pools/contracts/Chaosnet.sol/Chaosnet.json +506 -506
  82. package/export/artifacts/@keep-network/sortition-pools/contracts/Rewards.sol/Rewards.json +23 -23
  83. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionPool.sol/SortitionPool.json +2456 -2456
  84. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionTree.sol/SortitionTree.json +465 -465
  85. package/export/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +639 -639
  86. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +603 -603
  87. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1072 -1072
  88. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +2078 -2078
  89. package/export/artifacts/@thesis/solidity-contracts/contracts/token/ERC20WithPermit.sol/ERC20WithPermit.json +2534 -2534
  90. package/export/artifacts/@thesis/solidity-contracts/contracts/token/MisfundRecovery.sol/MisfundRecovery.json +736 -736
  91. package/export/artifacts/contracts/bank/Bank.sol/Bank.json +1872 -1872
  92. package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +7050 -7050
  93. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +1257 -1257
  94. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2305 -2305
  95. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +1870 -1870
  96. package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +1872 -1872
  97. package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +8053 -8053
  98. package/export/artifacts/contracts/test/GoerliLightRelay.sol/GoerliLightRelay.json +11982 -0
  99. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +130 -130
  100. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +1995 -1995
  101. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +354 -354
  102. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +2291 -2291
  103. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +1899 -1899
  104. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +189 -189
  105. package/export/artifacts/contracts/test/TestRelay.sol/TestRelay.json +568 -568
  106. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2847 -2847
  107. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +858 -858
  108. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +3387 -3387
  109. package/export/deploy/01_deploy_light_relay.js +20 -4
  110. package/export/typechain/GoerliLightRelay.js +2 -0
  111. package/export/typechain/factories/GoerliLightRelay__factory.js +522 -0
  112. package/export/typechain/factories/LightRelayStub__factory.js +1 -1
  113. package/export/typechain/factories/LightRelay__factory.js +1 -1
  114. package/export/typechain/index.js +3 -1
  115. package/package.json +1 -1
@@ -38,20 +38,36 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var func = function (hre) {
40
40
  return __awaiter(this, void 0, void 0, function () {
41
+ // LightRelay is the real-world relay and is deployed for mainnet.
42
+ // GoerliLightRelay is a stub version with immutable difficulties and is
43
+ // deployed for goerli.
44
+ // TestRelay is a stub version with mutable difficulties and is deployed for
45
+ // hardhat.
46
+ function resolveRelayContract() {
47
+ if (hre.network.name === "mainnet") {
48
+ return "LightRelay";
49
+ }
50
+ if (hre.network.name === "goerli") {
51
+ return "GoerliLightRelay";
52
+ }
53
+ return "TestRelay";
54
+ }
41
55
  var getNamedAccounts, deployments, helpers, deployer, lightRelay;
42
56
  return __generator(this, function (_a) {
43
57
  switch (_a.label) {
44
58
  case 0:
45
59
  getNamedAccounts = hre.getNamedAccounts, deployments = hre.deployments, helpers = hre.helpers;
46
60
  return [4 /*yield*/, getNamedAccounts()
47
- // LightRelay is deployed only for mainnet. For all other networks (Hardhat,
48
- // Goerli) we use TestRelay contract. LightRelay will work properly only with
49
- // Bitcoin Mainnet headers.
61
+ // LightRelay is the real-world relay and is deployed for mainnet.
62
+ // GoerliLightRelay is a stub version with immutable difficulties and is
63
+ // deployed for goerli.
64
+ // TestRelay is a stub version with mutable difficulties and is deployed for
65
+ // hardhat.
50
66
  ];
51
67
  case 1:
52
68
  deployer = (_a.sent()).deployer;
53
69
  return [4 /*yield*/, deployments.deploy("LightRelay", {
54
- contract: hre.network.name === "mainnet" ? "LightRelay" : "TestRelay",
70
+ contract: resolveRelayContract(),
55
71
  from: deployer,
56
72
  log: true,
57
73
  waitConfirmations: 1,
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,522 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
+ if (ar || !(i in from)) {
36
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
+ ar[i] = from[i];
38
+ }
39
+ }
40
+ return to.concat(ar || Array.prototype.slice.call(from));
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.GoerliLightRelay__factory = void 0;
44
+ /* Autogenerated file. Do not edit manually. */
45
+ /* tslint:disable */
46
+ /* eslint-disable */
47
+ var ethers_1 = require("ethers");
48
+ var _abi = [
49
+ {
50
+ anonymous: false,
51
+ inputs: [
52
+ {
53
+ indexed: false,
54
+ internalType: "bool",
55
+ name: "newStatus",
56
+ type: "bool",
57
+ },
58
+ ],
59
+ name: "AuthorizationRequirementChanged",
60
+ type: "event",
61
+ },
62
+ {
63
+ anonymous: false,
64
+ inputs: [
65
+ {
66
+ indexed: false,
67
+ internalType: "uint256",
68
+ name: "blockHeight",
69
+ type: "uint256",
70
+ },
71
+ ],
72
+ name: "Genesis",
73
+ type: "event",
74
+ },
75
+ {
76
+ anonymous: false,
77
+ inputs: [
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "previousOwner",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: true,
86
+ internalType: "address",
87
+ name: "newOwner",
88
+ type: "address",
89
+ },
90
+ ],
91
+ name: "OwnershipTransferred",
92
+ type: "event",
93
+ },
94
+ {
95
+ anonymous: false,
96
+ inputs: [
97
+ {
98
+ indexed: false,
99
+ internalType: "uint256",
100
+ name: "newLength",
101
+ type: "uint256",
102
+ },
103
+ ],
104
+ name: "ProofLengthChanged",
105
+ type: "event",
106
+ },
107
+ {
108
+ anonymous: false,
109
+ inputs: [
110
+ {
111
+ indexed: false,
112
+ internalType: "uint256",
113
+ name: "oldDifficulty",
114
+ type: "uint256",
115
+ },
116
+ {
117
+ indexed: false,
118
+ internalType: "uint256",
119
+ name: "newDifficulty",
120
+ type: "uint256",
121
+ },
122
+ ],
123
+ name: "Retarget",
124
+ type: "event",
125
+ },
126
+ {
127
+ anonymous: false,
128
+ inputs: [
129
+ {
130
+ indexed: false,
131
+ internalType: "address",
132
+ name: "submitter",
133
+ type: "address",
134
+ },
135
+ ],
136
+ name: "SubmitterAuthorized",
137
+ type: "event",
138
+ },
139
+ {
140
+ anonymous: false,
141
+ inputs: [
142
+ {
143
+ indexed: false,
144
+ internalType: "address",
145
+ name: "submitter",
146
+ type: "address",
147
+ },
148
+ ],
149
+ name: "SubmitterDeauthorized",
150
+ type: "event",
151
+ },
152
+ {
153
+ inputs: [],
154
+ name: "authorizationRequired",
155
+ outputs: [
156
+ {
157
+ internalType: "bool",
158
+ name: "",
159
+ type: "bool",
160
+ },
161
+ ],
162
+ stateMutability: "view",
163
+ type: "function",
164
+ },
165
+ {
166
+ inputs: [
167
+ {
168
+ internalType: "address",
169
+ name: "submitter",
170
+ type: "address",
171
+ },
172
+ ],
173
+ name: "authorize",
174
+ outputs: [],
175
+ stateMutability: "nonpayable",
176
+ type: "function",
177
+ },
178
+ {
179
+ inputs: [],
180
+ name: "currentEpoch",
181
+ outputs: [
182
+ {
183
+ internalType: "uint64",
184
+ name: "",
185
+ type: "uint64",
186
+ },
187
+ ],
188
+ stateMutability: "view",
189
+ type: "function",
190
+ },
191
+ {
192
+ inputs: [
193
+ {
194
+ internalType: "address",
195
+ name: "submitter",
196
+ type: "address",
197
+ },
198
+ ],
199
+ name: "deauthorize",
200
+ outputs: [],
201
+ stateMutability: "nonpayable",
202
+ type: "function",
203
+ },
204
+ {
205
+ inputs: [
206
+ {
207
+ internalType: "bytes",
208
+ name: "genesisHeader",
209
+ type: "bytes",
210
+ },
211
+ {
212
+ internalType: "uint256",
213
+ name: "genesisHeight",
214
+ type: "uint256",
215
+ },
216
+ {
217
+ internalType: "uint64",
218
+ name: "genesisProofLength",
219
+ type: "uint64",
220
+ },
221
+ ],
222
+ name: "genesis",
223
+ outputs: [],
224
+ stateMutability: "nonpayable",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [],
229
+ name: "genesisEpoch",
230
+ outputs: [
231
+ {
232
+ internalType: "uint64",
233
+ name: "",
234
+ type: "uint64",
235
+ },
236
+ ],
237
+ stateMutability: "view",
238
+ type: "function",
239
+ },
240
+ {
241
+ inputs: [
242
+ {
243
+ internalType: "uint256",
244
+ name: "blockNumber",
245
+ type: "uint256",
246
+ },
247
+ ],
248
+ name: "getBlockDifficulty",
249
+ outputs: [
250
+ {
251
+ internalType: "uint256",
252
+ name: "",
253
+ type: "uint256",
254
+ },
255
+ ],
256
+ stateMutability: "view",
257
+ type: "function",
258
+ },
259
+ {
260
+ inputs: [],
261
+ name: "getCurrentAndPrevEpochDifficulty",
262
+ outputs: [
263
+ {
264
+ internalType: "uint256",
265
+ name: "current",
266
+ type: "uint256",
267
+ },
268
+ {
269
+ internalType: "uint256",
270
+ name: "previous",
271
+ type: "uint256",
272
+ },
273
+ ],
274
+ stateMutability: "view",
275
+ type: "function",
276
+ },
277
+ {
278
+ inputs: [],
279
+ name: "getCurrentEpochDifficulty",
280
+ outputs: [
281
+ {
282
+ internalType: "uint256",
283
+ name: "",
284
+ type: "uint256",
285
+ },
286
+ ],
287
+ stateMutability: "view",
288
+ type: "function",
289
+ },
290
+ {
291
+ inputs: [
292
+ {
293
+ internalType: "uint256",
294
+ name: "epochNumber",
295
+ type: "uint256",
296
+ },
297
+ ],
298
+ name: "getEpochDifficulty",
299
+ outputs: [
300
+ {
301
+ internalType: "uint256",
302
+ name: "",
303
+ type: "uint256",
304
+ },
305
+ ],
306
+ stateMutability: "view",
307
+ type: "function",
308
+ },
309
+ {
310
+ inputs: [],
311
+ name: "getPrevEpochDifficulty",
312
+ outputs: [
313
+ {
314
+ internalType: "uint256",
315
+ name: "",
316
+ type: "uint256",
317
+ },
318
+ ],
319
+ stateMutability: "view",
320
+ type: "function",
321
+ },
322
+ {
323
+ inputs: [],
324
+ name: "getRelayRange",
325
+ outputs: [
326
+ {
327
+ internalType: "uint256",
328
+ name: "relayGenesis",
329
+ type: "uint256",
330
+ },
331
+ {
332
+ internalType: "uint256",
333
+ name: "currentEpochEnd",
334
+ type: "uint256",
335
+ },
336
+ ],
337
+ stateMutability: "view",
338
+ type: "function",
339
+ },
340
+ {
341
+ inputs: [
342
+ {
343
+ internalType: "address",
344
+ name: "",
345
+ type: "address",
346
+ },
347
+ ],
348
+ name: "isAuthorized",
349
+ outputs: [
350
+ {
351
+ internalType: "bool",
352
+ name: "",
353
+ type: "bool",
354
+ },
355
+ ],
356
+ stateMutability: "view",
357
+ type: "function",
358
+ },
359
+ {
360
+ inputs: [],
361
+ name: "owner",
362
+ outputs: [
363
+ {
364
+ internalType: "address",
365
+ name: "",
366
+ type: "address",
367
+ },
368
+ ],
369
+ stateMutability: "view",
370
+ type: "function",
371
+ },
372
+ {
373
+ inputs: [],
374
+ name: "proofLength",
375
+ outputs: [
376
+ {
377
+ internalType: "uint64",
378
+ name: "",
379
+ type: "uint64",
380
+ },
381
+ ],
382
+ stateMutability: "view",
383
+ type: "function",
384
+ },
385
+ {
386
+ inputs: [],
387
+ name: "ready",
388
+ outputs: [
389
+ {
390
+ internalType: "bool",
391
+ name: "",
392
+ type: "bool",
393
+ },
394
+ ],
395
+ stateMutability: "view",
396
+ type: "function",
397
+ },
398
+ {
399
+ inputs: [],
400
+ name: "renounceOwnership",
401
+ outputs: [],
402
+ stateMutability: "nonpayable",
403
+ type: "function",
404
+ },
405
+ {
406
+ inputs: [
407
+ {
408
+ internalType: "bytes",
409
+ name: "headers",
410
+ type: "bytes",
411
+ },
412
+ ],
413
+ name: "retarget",
414
+ outputs: [],
415
+ stateMutability: "nonpayable",
416
+ type: "function",
417
+ },
418
+ {
419
+ inputs: [
420
+ {
421
+ internalType: "bool",
422
+ name: "status",
423
+ type: "bool",
424
+ },
425
+ ],
426
+ name: "setAuthorizationStatus",
427
+ outputs: [],
428
+ stateMutability: "nonpayable",
429
+ type: "function",
430
+ },
431
+ {
432
+ inputs: [
433
+ {
434
+ internalType: "uint64",
435
+ name: "newLength",
436
+ type: "uint64",
437
+ },
438
+ ],
439
+ name: "setProofLength",
440
+ outputs: [],
441
+ stateMutability: "nonpayable",
442
+ type: "function",
443
+ },
444
+ {
445
+ inputs: [
446
+ {
447
+ internalType: "address",
448
+ name: "newOwner",
449
+ type: "address",
450
+ },
451
+ ],
452
+ name: "transferOwnership",
453
+ outputs: [],
454
+ stateMutability: "nonpayable",
455
+ type: "function",
456
+ },
457
+ {
458
+ inputs: [
459
+ {
460
+ internalType: "bytes",
461
+ name: "headers",
462
+ type: "bytes",
463
+ },
464
+ ],
465
+ name: "validateChain",
466
+ outputs: [
467
+ {
468
+ internalType: "uint256",
469
+ name: "startingHeaderTimestamp",
470
+ type: "uint256",
471
+ },
472
+ {
473
+ internalType: "uint256",
474
+ name: "headerCount",
475
+ type: "uint256",
476
+ },
477
+ ],
478
+ stateMutability: "view",
479
+ type: "function",
480
+ },
481
+ ];
482
+ var _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61226b8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063715018a6116100d8578063b6a5d7de1161008c578063f2fde38b11610066578063f2fde38b14610319578063f5619fda1461032c578063fe9fbb801461034757600080fd5b8063b6a5d7de146102df578063b70e6be6146102f2578063eb8695ef1461030657600080fd5b80637ca5b1dd116100bd5780637ca5b1dd1461029d5780638da5cb5b146102b057806395410d2b146102cb57600080fd5b8063715018a614610261578063766718081461026957600080fd5b806327c97fa51161013a5780634ca49f51116101145780634ca49f5114610217578063620414e61461022a5780636defbf801461023d57600080fd5b806327c97fa5146101f95780632b97be24146101ca5780633a1b77b01461020c57600080fd5b8063113764be1161016b578063113764be146101ca578063189179a3146101d157806319c9aa32146101e457600080fd5b806306a274221461018757806310b76ed8146101ad575b600080fd5b61019a610195366004611e0b565b61036a565b6040519081526020015b60405180910390f35b6101b5610381565b604080519283526020830191909152016101a4565b600161019a565b6101b56101df366004611e3a565b6103e1565b6101f76101f2366004611f08565b6107d9565b005b6101f7610207366004611f23565b610a1e565b6002546003546101b5565b6101f7610225366004611f4c565b610ac9565b61019a610238366004611e0b565b610ee4565b60005461025190600160a01b900460ff1681565b60405190151581526020016101a4565b6101f7610ff4565b60015461028490600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a4565b6101f76102ab366004611e3a565b61105a565b6000546040516001600160a01b0390911681526020016101a4565b60005461025190600160a81b900460ff1681565b6101f76102ed366004611f23565b6115f8565b6001546102849067ffffffffffffffff1681565b6101f7610314366004611fd5565b6116a6565b6101f7610327366004611f23565b611768565b60005461028490600160b01b900467ffffffffffffffff1681565b610251610355366004611f23565b60056020526000908152604090205460ff1681565b600061037b6102386107e084612023565b92915050565b600154600090819061039f9067ffffffffffffffff166107e0612037565b60015467ffffffffffffffff91821693506103c591600160401b909104166107e0612037565b6103d1906107df612063565b67ffffffffffffffff1690509091565b600080605083516103f2919061208b565b156104445760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104529190612023565b905060018111801561046557506107e081105b6104b15760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f66206865616465727300000000000000604482015260640161043b565b6104ba8361184a565b63ffffffff1691506000806104d085828061187e565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105965761055260018461209f565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820152909350919050610538565b815163ffffffff166106105760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e65736973000000000000000000000000000000000000000000606482015260840161043b565b81602001516001600160e01b031685146106da5780602001516001600160e01b03168503610640579050826106da565b61064b60018461209f565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146106da5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e0000604482015260640161043b565b60015b878110156107cd5760006106fc8b6106f68460506120b2565b8a61187e565b60208601519098509091506001600160e01b031687146107b957600061072d6107268460506120b2565b8d90611956565b845163ffffffff91821692501615801590610754575083602001516001600160e01b031688145b80156107665750835163ffffffff1681145b6107b25760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e0000604482015260640161043b565b5091925084915b9650806107c5816120c9565b9150506106dd565b50505050505050915091565b600054600160a01b900460ff166108325760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f7220757365000000000000604482015260640161043b565b6000546001600160a01b0316331461088c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b6107e08167ffffffffffffffff16106108e75760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e6774682065786365737369766500000000000000000000604482015260640161043b565b60008167ffffffffffffffff16116109415760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f00000000604482015260640161043b565b60005467ffffffffffffffff600160b01b9091048116908216036109a75760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e67656400000000000000000000604482015260640161043b565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6000546001600160a01b03163314610a785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b689101610a13565b6000546001600160a01b03163314610b235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b600054600160a01b900460ff1615610b7d5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d656400000000000000604482015260640161043b565b60508314610bcd5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e677468000000604482015260640161043b565b610bd96107e08361208b565b15610c4c5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b000000000000000000000000000000000000000000000000000000606482015260840161043b565b6107e08167ffffffffffffffff1610610ca75760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e6774682065786365737369766500000000000000000000604482015260640161043b565b60008167ffffffffffffffff1611610d015760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f00000000604482015260640161043b565b610d0d6107e083612023565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610d939190879087908190840183828082843760009201919091525061197792505050565b90506000610dd686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184a92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610e7182611984565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610ed49086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610f435760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e65736973000000604482015260640161043b565b600154600160401b900467ffffffffffffffff16821115610fcb5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f2079657400000000000000000000000000000000000000000000000000000000606482015260840161043b565b60008281526004602052604090205461037b9064010000000090046001600160e01b0316611984565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b61105860006119ac565b565b600054600160a01b900460ff166110b35760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f7220757365000000000000604482015260640161043b565b600054600160a81b900460ff1615611124573360009081526005602052604090205460ff166111245760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a656400000000000000000000604482015260640161043b565b60005461114390600160b01b900467ffffffffffffffff166002612037565b61114e906050612037565b67ffffffffffffffff168151146111a75760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e6774680000000000000000000000604482015260640161043b565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff168110156112a3576000806112158761120f8560506120b2565b8661187e565b9150915084811461128e5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f6561646572730000000000000000000000000000000000000000000000000000606482015260840161043b565b5091508061129b816120c9565b9150506111e2565b50600080546112e5906112c990600190600160b01b900467ffffffffffffffff166120e2565b6112d4906050612037565b869067ffffffffffffffff16611956565b63ffffffff16905042811061133c5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e20746865206675747572650000604482015260640161043b565b835460009061135390859063ffffffff1684611a14565b905060008061138f600060169054906101000a900467ffffffffffffffff16605061137e9190612037565b899067ffffffffffffffff16611956565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546113ce90600160b01b900467ffffffffffffffff166002612037565b67ffffffffffffffff168110156114e0576000806113f18b6106f68560506120b2565b91509150846000036114565780945080861681146114515760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f63680000000000604482015260640161043b565b6114cb565b8481146114cb5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f6574617267657400000000000000000000000000000000000000000000000000606482015260840161043b565b509550806114d8816120c9565b9150506113af565b50600160089054906101000a900467ffffffffffffffff1660016115049190612063565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b03808916602080850191825295909604909616600090815260049094529183209051935190941664010000000002921691909117909155600254906115a684611984565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6000546001600160a01b031633146116525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e299101610a13565b6000546001600160a01b031633146117005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a90610a1390831515815260200190565b6000546001600160a01b031633146117c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b6001600160a01b03811661183e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043b565b611847816119ac565b50565b600061037b61185883611aa8565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156118de57611892858585611ab5565b6118de5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e00000000000000000000000000000000000000604482015260640161043b565b6118e88585611ae0565b90506118f685856050611b82565b91506119028282611bac565b61194e5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b0000000000000000000000000000000000000000604482015260640161043b565b935093915050565b6000611970611858611969846044612103565b8590611d05565b9392505050565b600061037b826000611ae0565b600061037b7bffff000000000000000000000000000000000000000000000000000083611d14565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080611a218385611d20565b9050611a31621275006004611d14565b811015611a4957611a46621275006004611d14565b90505b611a57621275006004611d7c565b811115611a6f57611a6c621275006004611d7c565b90505b6000611a8882611a828862010000611d14565b90611d7c565b9050611a9e62010000611a828362127500611d14565b9695505050505050565b600061037b826044611d05565b600080611ac28585611df2565b9050828114611ad5576000915050611970565b506001949350505050565b600080611af1611969846048612103565b60e81c9050600084611b0485604b612103565b81518110611b1457611b14612116565b016020015160f81c90506000611b4883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611b5c60038461212c565b60ff169050611b6d81610100612229565b611b7790836120b2565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611bbb5750600061037b565b81611cfd8460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006119708383016020015190565b60006119708284612023565b600082821115611d725760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e000000604482015260640161043b565b611970828461209f565b600082600003611d8e5750600061037b565b611d9882846120b2565b905081611da58483612023565b1461037b5760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e00604482015260640161043b565b6000611970611e02836004612103565b84016020015190565b600060208284031215611e1d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e4c57600080fd5b813567ffffffffffffffff80821115611e6457600080fd5b818401915084601f830112611e7857600080fd5b813581811115611e8a57611e8a611e24565b604051601f8201601f19908116603f01168101908382118183101715611eb257611eb2611e24565b81604052828152876020848701011115611ecb57600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611f0357600080fd5b919050565b600060208284031215611f1a57600080fd5b61197082611eeb565b600060208284031215611f3557600080fd5b81356001600160a01b038116811461197057600080fd5b60008060008060608587031215611f6257600080fd5b843567ffffffffffffffff80821115611f7a57600080fd5b818701915087601f830112611f8e57600080fd5b813581811115611f9d57600080fd5b886020828501011115611faf57600080fd5b602092830196509450508501359150611fca60408601611eeb565b905092959194509250565b600060208284031215611fe757600080fd5b8135801515811461197057600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261203257612032611ff7565b500490565b67ffffffffffffffff81811683821602808216919082811461205b5761205b61200d565b505092915050565b67ffffffffffffffff8181168382160190808211156120845761208461200d565b5092915050565b60008261209a5761209a611ff7565b500690565b8181038181111561037b5761037b61200d565b808202811582820484141761037b5761037b61200d565b6000600182016120db576120db61200d565b5060010190565b67ffffffffffffffff8281168282160390808211156120845761208461200d565b8082018082111561037b5761037b61200d565b634e487b7160e01b600052603260045260246000fd5b60ff828116828216039081111561037b5761037b61200d565b600181815b808511156121805781600019048211156121665761216661200d565b8085161561217357918102915b93841c939080029061214a565b509250929050565b6000826121975750600161037b565b816121a45750600061037b565b81600181146121ba57600281146121c4576121e0565b600191505061037b565b60ff8411156121d5576121d561200d565b50506001821b61037b565b5060208310610133831016604e8410600b8410161715612203575081810a61037b565b61220d8383612145565b80600019048211156122215761222161200d565b029392505050565b6000611970838361218856fea26469706673582212205a23c48c7bb6a70b5af919f43bc3c387571d9c04d26e9edf6fb48f911b0410ca64736f6c63430008110033";
483
+ var isSuperArgs = function (xs) { return xs.length > 1; };
484
+ var GoerliLightRelay__factory = /** @class */ (function (_super) {
485
+ __extends(GoerliLightRelay__factory, _super);
486
+ function GoerliLightRelay__factory() {
487
+ var args = [];
488
+ for (var _i = 0; _i < arguments.length; _i++) {
489
+ args[_i] = arguments[_i];
490
+ }
491
+ var _this = this;
492
+ if (isSuperArgs(args)) {
493
+ _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;
494
+ }
495
+ else {
496
+ _this = _super.call(this, _abi, _bytecode, args[0]) || this;
497
+ }
498
+ return _this;
499
+ }
500
+ GoerliLightRelay__factory.prototype.deploy = function (overrides) {
501
+ return _super.prototype.deploy.call(this, overrides || {});
502
+ };
503
+ GoerliLightRelay__factory.prototype.getDeployTransaction = function (overrides) {
504
+ return _super.prototype.getDeployTransaction.call(this, overrides || {});
505
+ };
506
+ GoerliLightRelay__factory.prototype.attach = function (address) {
507
+ return _super.prototype.attach.call(this, address);
508
+ };
509
+ GoerliLightRelay__factory.prototype.connect = function (signer) {
510
+ return _super.prototype.connect.call(this, signer);
511
+ };
512
+ GoerliLightRelay__factory.createInterface = function () {
513
+ return new ethers_1.utils.Interface(_abi);
514
+ };
515
+ GoerliLightRelay__factory.connect = function (address, signerOrProvider) {
516
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
517
+ };
518
+ GoerliLightRelay__factory.bytecode = _bytecode;
519
+ GoerliLightRelay__factory.abi = _abi;
520
+ return GoerliLightRelay__factory;
521
+ }(ethers_1.ContractFactory));
522
+ exports.GoerliLightRelay__factory = GoerliLightRelay__factory;