@keep-network/tbtc-v2 0.1.0 → 0.1.1-dev

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 (296) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/.chainId +1 -1
  3. package/artifacts/Bank.json +807 -0
  4. package/artifacts/Bridge.json +2300 -0
  5. package/artifacts/Deposit.json +117 -0
  6. package/artifacts/DepositSweep.json +77 -0
  7. package/artifacts/EcdsaDkgValidator.json +532 -0
  8. package/artifacts/EcdsaInactivity.json +156 -0
  9. package/artifacts/EcdsaSortitionPool.json +1004 -0
  10. package/artifacts/Fraud.json +164 -0
  11. package/artifacts/KeepRegistry.json +99 -0
  12. package/artifacts/KeepStake.json +286 -0
  13. package/artifacts/KeepToken.json +711 -0
  14. package/artifacts/KeepTokenStaking.json +483 -0
  15. package/artifacts/MovingFunds.json +249 -0
  16. package/artifacts/NuCypherStakingEscrow.json +256 -0
  17. package/artifacts/NuCypherToken.json +711 -0
  18. package/artifacts/RandomBeaconStub.json +141 -0
  19. package/artifacts/Redemption.json +174 -0
  20. package/artifacts/ReimbursementPool.json +509 -0
  21. package/artifacts/Relay.json +123 -0
  22. package/artifacts/T.json +1148 -0
  23. package/artifacts/TBTC.json +36 -35
  24. package/artifacts/TBTCToken.json +738 -0
  25. package/artifacts/TBTCVault.json +691 -0
  26. package/artifacts/TokenStaking.json +2288 -0
  27. package/artifacts/TokenholderGovernor.json +1795 -0
  28. package/artifacts/TokenholderTimelock.json +1058 -0
  29. package/artifacts/VendingMachine.json +34 -33
  30. package/artifacts/VendingMachineKeep.json +400 -0
  31. package/artifacts/VendingMachineNuCypher.json +400 -0
  32. package/artifacts/WalletRegistry.json +1843 -0
  33. package/artifacts/WalletRegistryGovernance.json +2754 -0
  34. package/artifacts/Wallets.json +186 -0
  35. package/artifacts/solcInputs/5e62cff1ead0900b07facca4b559e818.json +314 -0
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +4 -0
  39. package/build/contracts/bank/Bank.sol/Bank.json +542 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  41. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
  43. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +10 -0
  44. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +4 -0
  45. package/build/contracts/bridge/Bridge.sol/Bridge.json +2686 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  47. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  49. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  51. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  53. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  55. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  57. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  59. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  61. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  63. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  65. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  68. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  69. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  70. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  71. package/build/contracts/token/TBTC.sol/TBTC.json +4 -4
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  73. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  74. package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
  75. package/build/contracts/vault/IVault.sol/IVault.json +52 -0
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +4 -0
  77. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +449 -0
  78. package/contracts/GovernanceUtils.sol +4 -4
  79. package/contracts/bank/Bank.sol +436 -0
  80. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  81. package/contracts/bridge/BitcoinTx.sol +326 -0
  82. package/contracts/bridge/Bridge.sol +1793 -0
  83. package/contracts/bridge/BridgeState.sol +739 -0
  84. package/contracts/bridge/Deposit.sol +269 -0
  85. package/contracts/bridge/DepositSweep.sol +574 -0
  86. package/contracts/bridge/EcdsaLib.sol +45 -0
  87. package/contracts/bridge/Fraud.sol +579 -0
  88. package/contracts/bridge/Heartbeat.sol +112 -0
  89. package/contracts/bridge/IRelay.sol +28 -0
  90. package/contracts/bridge/MovingFunds.sol +1077 -0
  91. package/contracts/bridge/Redemption.sol +1020 -0
  92. package/contracts/bridge/VendingMachine.sol +2 -2
  93. package/contracts/bridge/Wallets.sol +719 -0
  94. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  95. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  97. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  98. package/contracts/token/TBTC.sol +1 -1
  99. package/contracts/vault/DonationVault.sol +125 -0
  100. package/contracts/vault/IVault.sol +44 -0
  101. package/contracts/vault/TBTCVault.sol +305 -0
  102. package/deploy/00_resolve_relay.ts +28 -0
  103. package/deploy/00_resolve_tbtc_v1_token.ts +1 -1
  104. package/deploy/01_deploy_tbtc_v2_token.ts +8 -1
  105. package/deploy/02_deploy_vending_machine.ts +7 -0
  106. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  107. package/deploy/04_deploy_bank.ts +27 -0
  108. package/deploy/05_deploy_bridge.ts +80 -0
  109. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  110. package/deploy/07_bank_update_bridge.ts +19 -0
  111. package/deploy/08_transfer_bank_ownership.ts +15 -0
  112. package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
  113. package/deploy/10_transfer_bridge_governance.ts +20 -0
  114. package/deploy/11_initialize_wallet_owner.ts +18 -0
  115. package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
  116. package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
  117. package/export/deploy/00_resolve_relay.js +24 -0
  118. package/export/deploy/00_resolve_tbtc_v1_token.js +24 -0
  119. package/export/deploy/01_deploy_tbtc_v2_token.js +19 -0
  120. package/export/deploy/02_deploy_vending_machine.js +25 -0
  121. package/export/deploy/03_transfer_vending_machine_roles.js +19 -0
  122. package/export/deploy/04_deploy_bank.js +21 -0
  123. package/export/deploy/05_deploy_bridge.js +69 -0
  124. package/export/deploy/06_deploy_tbtc_vault.js +24 -0
  125. package/export/deploy/07_bank_update_bridge.js +13 -0
  126. package/export/deploy/08_transfer_bank_ownership.js +11 -0
  127. package/export/deploy/09_transfer_tbtc_vault_ownership.js +11 -0
  128. package/export/deploy/10_transfer_bridge_governance.js +11 -0
  129. package/export/deploy/11_initialize_wallet_owner.js +14 -0
  130. package/export/deploy/11_transfer_proxy_admin_ownership.js +23 -0
  131. package/export/deploy/12_deploy_proxy_admin_with_deputy.js +22 -0
  132. package/export/hardhat.config.js +169 -0
  133. package/export/test/bank/Bank.test.js +1012 -0
  134. package/export/test/bridge/Bridge.Deployment.test.js +76 -0
  135. package/export/test/bridge/Bridge.Deposit.test.js +1834 -0
  136. package/export/test/bridge/Bridge.Frauds.test.js +1349 -0
  137. package/export/test/bridge/Bridge.MovingFunds.test.js +2437 -0
  138. package/export/test/bridge/Bridge.Parameters.test.js +400 -0
  139. package/export/test/bridge/Bridge.Redemption.test.js +2523 -0
  140. package/export/test/bridge/Bridge.Vaults.test.js +74 -0
  141. package/export/test/bridge/Bridge.Wallets.test.js +1017 -0
  142. package/export/test/bridge/EcdsaLib.test.js +46 -0
  143. package/export/test/bridge/Heartbeat.test.js +77 -0
  144. package/export/test/bridge/VendingMachine.Upgrade.test.js +160 -0
  145. package/export/test/bridge/VendingMachine.test.js +762 -0
  146. package/export/test/data/deposit-sweep.js +655 -0
  147. package/export/test/data/ecdsa.js +18 -0
  148. package/export/test/data/fraud.js +158 -0
  149. package/export/test/data/moving-funds.js +815 -0
  150. package/export/test/data/redemption.js +1011 -0
  151. package/export/test/fixtures/bridge.js +54 -0
  152. package/export/test/fixtures/index.js +57 -0
  153. package/export/test/helpers/contract-test-helpers.js +18 -0
  154. package/export/test/integration/Slashing.test.js +279 -0
  155. package/export/test/integration/WalleCreation.test.js +66 -0
  156. package/export/test/integration/utils/ecdsa-wallet-registry.js +137 -0
  157. package/export/test/integration/utils/fixture.js +77 -0
  158. package/export/test/integration/utils/gas.js +36 -0
  159. package/export/test/integration/utils/random-beacon.js +26 -0
  160. package/export/test/integration/utils/staking.js +19 -0
  161. package/export/test/vault/DonationVault.test.js +202 -0
  162. package/export/test/vault/TBTCVault.Redemption.test.js +357 -0
  163. package/export/test/vault/TBTCVault.test.js +768 -0
  164. package/export/typechain/BTCUtils.js +2 -0
  165. package/export/typechain/Bank.js +2 -0
  166. package/export/typechain/BankStub.js +2 -0
  167. package/export/typechain/Bridge.js +2 -0
  168. package/export/typechain/BridgeState.js +2 -0
  169. package/export/typechain/BridgeStub.js +2 -0
  170. package/export/typechain/Deposit.js +2 -0
  171. package/export/typechain/DepositSweep.js +2 -0
  172. package/export/typechain/DonationVault.js +2 -0
  173. package/export/typechain/ERC165.js +2 -0
  174. package/export/typechain/ERC1967Proxy.js +2 -0
  175. package/export/typechain/ERC1967Upgrade.js +2 -0
  176. package/export/typechain/ERC20WithPermit.js +2 -0
  177. package/export/typechain/ERC721.js +2 -0
  178. package/export/typechain/EcdsaAuthorization.js +2 -0
  179. package/export/typechain/EcdsaDkg.js +2 -0
  180. package/export/typechain/EcdsaDkgValidator.js +2 -0
  181. package/export/typechain/EcdsaInactivity.js +2 -0
  182. package/export/typechain/Fraud.js +2 -0
  183. package/export/typechain/Governable.js +2 -0
  184. package/export/typechain/HeartbeatStub.js +2 -0
  185. package/export/typechain/IApplication.js +2 -0
  186. package/export/typechain/IApproveAndCall.js +2 -0
  187. package/export/typechain/IBeacon.js +2 -0
  188. package/export/typechain/IERC165.js +2 -0
  189. package/export/typechain/IERC1822Proxiable.js +2 -0
  190. package/export/typechain/IERC20.js +2 -0
  191. package/export/typechain/IERC20Metadata.js +2 -0
  192. package/export/typechain/IERC20WithPermit.js +2 -0
  193. package/export/typechain/IERC721.js +2 -0
  194. package/export/typechain/IERC721Metadata.js +2 -0
  195. package/export/typechain/IERC721Receiver.js +2 -0
  196. package/export/typechain/IRandomBeacon.js +2 -0
  197. package/export/typechain/IRandomBeaconConsumer.js +2 -0
  198. package/export/typechain/IReceiveApproval.js +2 -0
  199. package/export/typechain/IReceiveBalanceApproval.js +2 -0
  200. package/export/typechain/IRelay.js +2 -0
  201. package/export/typechain/IStaking.js +2 -0
  202. package/export/typechain/IVault.js +2 -0
  203. package/export/typechain/IWalletOwner.js +2 -0
  204. package/export/typechain/IWalletRegistry.js +2 -0
  205. package/export/typechain/Initializable.js +2 -0
  206. package/export/typechain/MisfundRecovery.js +2 -0
  207. package/export/typechain/MovingFunds.js +2 -0
  208. package/export/typechain/Ownable.js +2 -0
  209. package/export/typechain/Proxy.js +2 -0
  210. package/export/typechain/ProxyAdmin.js +2 -0
  211. package/export/typechain/ReceiveApprovalStub.js +2 -0
  212. package/export/typechain/Redemption.js +2 -0
  213. package/export/typechain/Reimbursable.js +2 -0
  214. package/export/typechain/ReimbursementPool.js +2 -0
  215. package/export/typechain/Rewards.js +2 -0
  216. package/export/typechain/SortitionPool.js +2 -0
  217. package/export/typechain/SortitionTree.js +2 -0
  218. package/export/typechain/TBTC.js +2 -0
  219. package/export/typechain/TBTCVault.js +2 -0
  220. package/export/typechain/TestERC20.js +2 -0
  221. package/export/typechain/TestERC721.js +2 -0
  222. package/export/typechain/TestEcdsaLib.js +2 -0
  223. package/export/typechain/TestRelay.js +2 -0
  224. package/export/typechain/TransparentUpgradeableProxy.js +2 -0
  225. package/export/typechain/VendingMachine.js +2 -0
  226. package/export/typechain/WalletRegistry.js +2 -0
  227. package/export/typechain/Wallets.js +2 -0
  228. package/export/typechain/common.js +2 -0
  229. package/export/typechain/factories/BTCUtils__factory.js +94 -0
  230. package/export/typechain/factories/BankStub__factory.js +586 -0
  231. package/export/typechain/factories/Bank__factory.js +573 -0
  232. package/export/typechain/factories/BridgeState__factory.js +257 -0
  233. package/export/typechain/factories/BridgeStub__factory.js +2912 -0
  234. package/export/typechain/factories/Bridge__factory.js +2526 -0
  235. package/export/typechain/factories/DepositSweep__factory.js +61 -0
  236. package/export/typechain/factories/Deposit__factory.js +103 -0
  237. package/export/typechain/factories/DonationVault__factory.js +139 -0
  238. package/export/typechain/factories/ERC165__factory.js +38 -0
  239. package/export/typechain/factories/ERC1967Proxy__factory.js +111 -0
  240. package/export/typechain/factories/ERC1967Upgrade__factory.js +64 -0
  241. package/export/typechain/factories/ERC20WithPermit__factory.js +524 -0
  242. package/export/typechain/factories/ERC721__factory.js +388 -0
  243. package/export/typechain/factories/EcdsaAuthorization__factory.js +211 -0
  244. package/export/typechain/factories/EcdsaDkgValidator__factory.js +441 -0
  245. package/export/typechain/factories/EcdsaDkg__factory.js +192 -0
  246. package/export/typechain/factories/EcdsaInactivity__factory.js +134 -0
  247. package/export/typechain/factories/Fraud__factory.js +117 -0
  248. package/export/typechain/factories/Governable__factory.js +64 -0
  249. package/export/typechain/factories/HeartbeatStub__factory.js +61 -0
  250. package/export/typechain/factories/IApplication__factory.js +152 -0
  251. package/export/typechain/factories/IApproveAndCall__factory.js +48 -0
  252. package/export/typechain/factories/IBeacon__factory.js +32 -0
  253. package/export/typechain/factories/IERC165__factory.js +38 -0
  254. package/export/typechain/factories/IERC1822Proxiable__factory.js +32 -0
  255. package/export/typechain/factories/IERC20Metadata__factory.js +241 -0
  256. package/export/typechain/factories/IERC20WithPermit__factory.js +389 -0
  257. package/export/typechain/factories/IERC20__factory.js +202 -0
  258. package/export/typechain/factories/IERC721Metadata__factory.js +349 -0
  259. package/export/typechain/factories/IERC721Receiver__factory.js +53 -0
  260. package/export/typechain/factories/IERC721__factory.js +304 -0
  261. package/export/typechain/factories/IRandomBeaconConsumer__factory.js +37 -0
  262. package/export/typechain/factories/IRandomBeacon__factory.js +32 -0
  263. package/export/typechain/factories/IReceiveApproval__factory.js +47 -0
  264. package/export/typechain/factories/IReceiveBalanceApproval__factory.js +42 -0
  265. package/export/typechain/factories/IRelay__factory.js +45 -0
  266. package/export/typechain/factories/IStaking__factory.js +722 -0
  267. package/export/typechain/factories/IVault__factory.js +60 -0
  268. package/export/typechain/factories/IWalletOwner__factory.js +65 -0
  269. package/export/typechain/factories/IWalletRegistry__factory.js +138 -0
  270. package/export/typechain/factories/Initializable__factory.js +32 -0
  271. package/export/typechain/factories/MisfundRecovery__factory.js +145 -0
  272. package/export/typechain/factories/MovingFunds__factory.js +169 -0
  273. package/export/typechain/factories/Ownable__factory.js +71 -0
  274. package/export/typechain/factories/ProxyAdmin__factory.js +191 -0
  275. package/export/typechain/factories/Proxy__factory.js +27 -0
  276. package/export/typechain/factories/ReceiveApprovalStub__factory.js +127 -0
  277. package/export/typechain/factories/Redemption__factory.js +123 -0
  278. package/export/typechain/factories/Reimbursable__factory.js +58 -0
  279. package/export/typechain/factories/ReimbursementPool__factory.js +350 -0
  280. package/export/typechain/factories/Rewards__factory.js +117 -0
  281. package/export/typechain/factories/SortitionPool__factory.js +610 -0
  282. package/export/typechain/factories/SortitionTree__factory.js +149 -0
  283. package/export/typechain/factories/TBTCVault__factory.js +480 -0
  284. package/export/typechain/factories/TBTC__factory.js +564 -0
  285. package/export/typechain/factories/TestERC20__factory.js +539 -0
  286. package/export/typechain/factories/TestERC721__factory.js +421 -0
  287. package/export/typechain/factories/TestEcdsaLib__factory.js +66 -0
  288. package/export/typechain/factories/TestRelay__factory.js +94 -0
  289. package/export/typechain/factories/TransparentUpgradeableProxy__factory.js +186 -0
  290. package/export/typechain/factories/VendingMachine__factory.js +549 -0
  291. package/export/typechain/factories/WalletRegistry__factory.js +1919 -0
  292. package/export/typechain/factories/Wallets__factory.js +143 -0
  293. package/export/typechain/index.js +132 -0
  294. package/export.json +15932 -503
  295. package/package.json +47 -26
  296. package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -104
@@ -0,0 +1,610 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SortitionPool__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "contract IERC20WithPermit",
13
+ name: "_rewardToken",
14
+ type: "address",
15
+ },
16
+ {
17
+ internalType: "uint256",
18
+ name: "_poolWeightDivisor",
19
+ type: "uint256",
20
+ },
21
+ ],
22
+ stateMutability: "nonpayable",
23
+ type: "constructor",
24
+ },
25
+ {
26
+ anonymous: false,
27
+ inputs: [
28
+ {
29
+ indexed: false,
30
+ internalType: "uint32[]",
31
+ name: "ids",
32
+ type: "uint32[]",
33
+ },
34
+ {
35
+ indexed: false,
36
+ internalType: "uint256",
37
+ name: "until",
38
+ type: "uint256",
39
+ },
40
+ ],
41
+ name: "IneligibleForRewards",
42
+ type: "event",
43
+ },
44
+ {
45
+ anonymous: false,
46
+ inputs: [
47
+ {
48
+ indexed: true,
49
+ internalType: "address",
50
+ name: "previousOwner",
51
+ type: "address",
52
+ },
53
+ {
54
+ indexed: true,
55
+ internalType: "address",
56
+ name: "newOwner",
57
+ type: "address",
58
+ },
59
+ ],
60
+ name: "OwnershipTransferred",
61
+ type: "event",
62
+ },
63
+ {
64
+ anonymous: false,
65
+ inputs: [
66
+ {
67
+ indexed: true,
68
+ internalType: "address",
69
+ name: "operator",
70
+ type: "address",
71
+ },
72
+ {
73
+ indexed: true,
74
+ internalType: "uint32",
75
+ name: "id",
76
+ type: "uint32",
77
+ },
78
+ ],
79
+ name: "RewardEligibilityRestored",
80
+ type: "event",
81
+ },
82
+ {
83
+ inputs: [
84
+ {
85
+ internalType: "uint32",
86
+ name: "operator",
87
+ type: "uint32",
88
+ },
89
+ ],
90
+ name: "canRestoreRewardEligibility",
91
+ outputs: [
92
+ {
93
+ internalType: "bool",
94
+ name: "",
95
+ type: "bool",
96
+ },
97
+ ],
98
+ stateMutability: "view",
99
+ type: "function",
100
+ },
101
+ {
102
+ inputs: [
103
+ {
104
+ internalType: "address",
105
+ name: "operator",
106
+ type: "address",
107
+ },
108
+ ],
109
+ name: "getAvailableRewards",
110
+ outputs: [
111
+ {
112
+ internalType: "uint96",
113
+ name: "",
114
+ type: "uint96",
115
+ },
116
+ ],
117
+ stateMutability: "view",
118
+ type: "function",
119
+ },
120
+ {
121
+ inputs: [
122
+ {
123
+ internalType: "uint32",
124
+ name: "id",
125
+ type: "uint32",
126
+ },
127
+ ],
128
+ name: "getIDOperator",
129
+ outputs: [
130
+ {
131
+ internalType: "address",
132
+ name: "",
133
+ type: "address",
134
+ },
135
+ ],
136
+ stateMutability: "view",
137
+ type: "function",
138
+ },
139
+ {
140
+ inputs: [
141
+ {
142
+ internalType: "uint32[]",
143
+ name: "ids",
144
+ type: "uint32[]",
145
+ },
146
+ ],
147
+ name: "getIDOperators",
148
+ outputs: [
149
+ {
150
+ internalType: "address[]",
151
+ name: "",
152
+ type: "address[]",
153
+ },
154
+ ],
155
+ stateMutability: "view",
156
+ type: "function",
157
+ },
158
+ {
159
+ inputs: [
160
+ {
161
+ internalType: "address",
162
+ name: "operator",
163
+ type: "address",
164
+ },
165
+ ],
166
+ name: "getOperatorID",
167
+ outputs: [
168
+ {
169
+ internalType: "uint32",
170
+ name: "",
171
+ type: "uint32",
172
+ },
173
+ ],
174
+ stateMutability: "view",
175
+ type: "function",
176
+ },
177
+ {
178
+ inputs: [
179
+ {
180
+ internalType: "address",
181
+ name: "operator",
182
+ type: "address",
183
+ },
184
+ ],
185
+ name: "getPoolWeight",
186
+ outputs: [
187
+ {
188
+ internalType: "uint256",
189
+ name: "",
190
+ type: "uint256",
191
+ },
192
+ ],
193
+ stateMutability: "view",
194
+ type: "function",
195
+ },
196
+ {
197
+ inputs: [],
198
+ name: "ineligibleEarnedRewards",
199
+ outputs: [
200
+ {
201
+ internalType: "uint96",
202
+ name: "",
203
+ type: "uint96",
204
+ },
205
+ ],
206
+ stateMutability: "view",
207
+ type: "function",
208
+ },
209
+ {
210
+ inputs: [
211
+ {
212
+ internalType: "address",
213
+ name: "operator",
214
+ type: "address",
215
+ },
216
+ {
217
+ internalType: "uint256",
218
+ name: "authorizedStake",
219
+ type: "uint256",
220
+ },
221
+ ],
222
+ name: "insertOperator",
223
+ outputs: [],
224
+ stateMutability: "nonpayable",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [
229
+ {
230
+ internalType: "uint32",
231
+ name: "operator",
232
+ type: "uint32",
233
+ },
234
+ ],
235
+ name: "isEligibleForRewards",
236
+ outputs: [
237
+ {
238
+ internalType: "bool",
239
+ name: "",
240
+ type: "bool",
241
+ },
242
+ ],
243
+ stateMutability: "view",
244
+ type: "function",
245
+ },
246
+ {
247
+ inputs: [],
248
+ name: "isLocked",
249
+ outputs: [
250
+ {
251
+ internalType: "bool",
252
+ name: "",
253
+ type: "bool",
254
+ },
255
+ ],
256
+ stateMutability: "view",
257
+ type: "function",
258
+ },
259
+ {
260
+ inputs: [
261
+ {
262
+ internalType: "address",
263
+ name: "operator",
264
+ type: "address",
265
+ },
266
+ ],
267
+ name: "isOperatorInPool",
268
+ outputs: [
269
+ {
270
+ internalType: "bool",
271
+ name: "",
272
+ type: "bool",
273
+ },
274
+ ],
275
+ stateMutability: "view",
276
+ type: "function",
277
+ },
278
+ {
279
+ inputs: [
280
+ {
281
+ internalType: "address",
282
+ name: "operator",
283
+ type: "address",
284
+ },
285
+ ],
286
+ name: "isOperatorRegistered",
287
+ outputs: [
288
+ {
289
+ internalType: "bool",
290
+ name: "",
291
+ type: "bool",
292
+ },
293
+ ],
294
+ stateMutability: "view",
295
+ type: "function",
296
+ },
297
+ {
298
+ inputs: [
299
+ {
300
+ internalType: "address",
301
+ name: "operator",
302
+ type: "address",
303
+ },
304
+ {
305
+ internalType: "uint256",
306
+ name: "authorizedStake",
307
+ type: "uint256",
308
+ },
309
+ ],
310
+ name: "isOperatorUpToDate",
311
+ outputs: [
312
+ {
313
+ internalType: "bool",
314
+ name: "",
315
+ type: "bool",
316
+ },
317
+ ],
318
+ stateMutability: "view",
319
+ type: "function",
320
+ },
321
+ {
322
+ inputs: [],
323
+ name: "lock",
324
+ outputs: [],
325
+ stateMutability: "nonpayable",
326
+ type: "function",
327
+ },
328
+ {
329
+ inputs: [],
330
+ name: "operatorsInPool",
331
+ outputs: [
332
+ {
333
+ internalType: "uint256",
334
+ name: "",
335
+ type: "uint256",
336
+ },
337
+ ],
338
+ stateMutability: "view",
339
+ type: "function",
340
+ },
341
+ {
342
+ inputs: [],
343
+ name: "owner",
344
+ outputs: [
345
+ {
346
+ internalType: "address",
347
+ name: "",
348
+ type: "address",
349
+ },
350
+ ],
351
+ stateMutability: "view",
352
+ type: "function",
353
+ },
354
+ {
355
+ inputs: [],
356
+ name: "poolWeightDivisor",
357
+ outputs: [
358
+ {
359
+ internalType: "uint256",
360
+ name: "",
361
+ type: "uint256",
362
+ },
363
+ ],
364
+ stateMutability: "view",
365
+ type: "function",
366
+ },
367
+ {
368
+ inputs: [
369
+ {
370
+ internalType: "address",
371
+ name: "sender",
372
+ type: "address",
373
+ },
374
+ {
375
+ internalType: "uint256",
376
+ name: "amount",
377
+ type: "uint256",
378
+ },
379
+ {
380
+ internalType: "address",
381
+ name: "token",
382
+ type: "address",
383
+ },
384
+ {
385
+ internalType: "bytes",
386
+ name: "",
387
+ type: "bytes",
388
+ },
389
+ ],
390
+ name: "receiveApproval",
391
+ outputs: [],
392
+ stateMutability: "nonpayable",
393
+ type: "function",
394
+ },
395
+ {
396
+ inputs: [],
397
+ name: "renounceOwnership",
398
+ outputs: [],
399
+ stateMutability: "nonpayable",
400
+ type: "function",
401
+ },
402
+ {
403
+ inputs: [
404
+ {
405
+ internalType: "address",
406
+ name: "operator",
407
+ type: "address",
408
+ },
409
+ ],
410
+ name: "restoreRewardEligibility",
411
+ outputs: [],
412
+ stateMutability: "nonpayable",
413
+ type: "function",
414
+ },
415
+ {
416
+ inputs: [],
417
+ name: "rewardToken",
418
+ outputs: [
419
+ {
420
+ internalType: "contract IERC20WithPermit",
421
+ name: "",
422
+ type: "address",
423
+ },
424
+ ],
425
+ stateMutability: "view",
426
+ type: "function",
427
+ },
428
+ {
429
+ inputs: [
430
+ {
431
+ internalType: "uint32",
432
+ name: "operator",
433
+ type: "uint32",
434
+ },
435
+ ],
436
+ name: "rewardsEligibilityRestorableAt",
437
+ outputs: [
438
+ {
439
+ internalType: "uint256",
440
+ name: "",
441
+ type: "uint256",
442
+ },
443
+ ],
444
+ stateMutability: "view",
445
+ type: "function",
446
+ },
447
+ {
448
+ inputs: [
449
+ {
450
+ internalType: "uint256",
451
+ name: "groupSize",
452
+ type: "uint256",
453
+ },
454
+ {
455
+ internalType: "bytes32",
456
+ name: "seed",
457
+ type: "bytes32",
458
+ },
459
+ ],
460
+ name: "selectGroup",
461
+ outputs: [
462
+ {
463
+ internalType: "uint32[]",
464
+ name: "",
465
+ type: "uint32[]",
466
+ },
467
+ ],
468
+ stateMutability: "view",
469
+ type: "function",
470
+ },
471
+ {
472
+ inputs: [
473
+ {
474
+ internalType: "uint32[]",
475
+ name: "operators",
476
+ type: "uint32[]",
477
+ },
478
+ {
479
+ internalType: "uint256",
480
+ name: "until",
481
+ type: "uint256",
482
+ },
483
+ ],
484
+ name: "setRewardIneligibility",
485
+ outputs: [],
486
+ stateMutability: "nonpayable",
487
+ type: "function",
488
+ },
489
+ {
490
+ inputs: [],
491
+ name: "totalWeight",
492
+ outputs: [
493
+ {
494
+ internalType: "uint256",
495
+ name: "",
496
+ type: "uint256",
497
+ },
498
+ ],
499
+ stateMutability: "view",
500
+ type: "function",
501
+ },
502
+ {
503
+ inputs: [
504
+ {
505
+ internalType: "address",
506
+ name: "newOwner",
507
+ type: "address",
508
+ },
509
+ ],
510
+ name: "transferOwnership",
511
+ outputs: [],
512
+ stateMutability: "nonpayable",
513
+ type: "function",
514
+ },
515
+ {
516
+ inputs: [],
517
+ name: "unlock",
518
+ outputs: [],
519
+ stateMutability: "nonpayable",
520
+ type: "function",
521
+ },
522
+ {
523
+ inputs: [
524
+ {
525
+ internalType: "address",
526
+ name: "operator",
527
+ type: "address",
528
+ },
529
+ {
530
+ internalType: "uint256",
531
+ name: "authorizedStake",
532
+ type: "uint256",
533
+ },
534
+ ],
535
+ name: "updateOperatorStatus",
536
+ outputs: [],
537
+ stateMutability: "nonpayable",
538
+ type: "function",
539
+ },
540
+ {
541
+ inputs: [
542
+ {
543
+ internalType: "address",
544
+ name: "recipient",
545
+ type: "address",
546
+ },
547
+ ],
548
+ name: "withdrawIneligible",
549
+ outputs: [],
550
+ stateMutability: "nonpayable",
551
+ type: "function",
552
+ },
553
+ {
554
+ inputs: [
555
+ {
556
+ internalType: "address",
557
+ name: "operator",
558
+ type: "address",
559
+ },
560
+ {
561
+ internalType: "address",
562
+ name: "beneficiary",
563
+ type: "address",
564
+ },
565
+ ],
566
+ name: "withdrawRewards",
567
+ outputs: [
568
+ {
569
+ internalType: "uint96",
570
+ name: "",
571
+ type: "uint96",
572
+ },
573
+ ],
574
+ stateMutability: "nonpayable",
575
+ type: "function",
576
+ },
577
+ ];
578
+ const _bytecode = "0x60e06040523480156200001157600080fd5b5060405162002b8538038062002b858339810160408190526200003491620000c1565b6000808055600481905560078054600101815590524260805262000058336200006f565b6001600160a01b0390911660a05260c052620000fd565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008060408385031215620000d557600080fd5b82516001600160a01b0381168114620000ed57600080fd5b6020939093015192949293505050565b60805160a05160c051612a2e62000157600039600081816101f901526113240152600081816104820152818161091e015281816109e201528181610c800152611027015260008181610ddf0152611a670152612a2e6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806396c82e5711610104578063dc7520c5116100a2578063f7186ce011610071578063f7186ce0146102ec578063f7c618c11461047d578063f7f9a8fa146104a4578063f83d08ba146104c457600080fd5b8063dc7520c51461043c578063e20981ca1461044f578063e7bfd89914610462578063f2fde38b1461046a57600080fd5b8063a7a7d391116100de578063a7a7d391146103f0578063a964941414610403578063b2f3db4d14610416578063be51fb4a1461042957600080fd5b806396c82e57146103cc578063a4e2d634146103d4578063a69df4b5146103e857600080fd5b80636b1906f81161017c5780638871ca5d1161014b5780638871ca5d1461036a5780638da5cb5b146103955780638f4ffcb1146103a6578063942f6892146103b957600080fd5b80636b1906f8146102ec5780636c2530b914610317578063715018a614610337578063873e31fa1461033f57600080fd5b80635222580a116101b85780635222580a146102515780635757ed5b146102825780635a48b46b1461029557806369ba3c33146102d957600080fd5b8063241a4188146101df57806343a3db30146101f45780634de824f01461022e575b600080fd5b6101f26101ed36600461240c565b6104cc565b005b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61024161023c36600461240c565b61061b565b6040519015158152602001610225565b61024161025f36600461244a565b63ffffffff9081166000908152600a6020526040902054600160c01b9004161590565b61021b610290366004612465565b610639565b6102c46102a3366004612465565b6001600160a01b031660009081526006602052604090205463ffffffff1690565b60405163ffffffff9091168152602001610225565b6102416102e736600461244a565b610684565b6102416102fa366004612465565b6001600160a01b0316600090815260036020526040902054151590565b61032a610325366004612480565b610698565b60405161022591906124a2565b6101f261083a565b61035261034d366004612465565b6108a0565b6040516001600160601b039091168152602001610225565b61037d61037836600461244a565b6108cf565b6040516001600160a01b039091168152602001610225565b600b546001600160a01b031661037d565b6101f26103b43660046124ec565b61091c565b6101f26103c73660046125cc565b610a7a565b61021b610b52565b600b5461024190600160a01b900460ff1681565b6101f2610b64565b600954610352906001600160601b031681565b6101f2610411366004612465565b610bcd565b6101f2610424366004612465565b610d03565b61021b61043736600461244a565b610d6b565b6101f261044a36600461240c565b610e0a565b61035261045d366004612618565b610f1b565b61021b6110ae565b6101f2610478366004612465565b6110c9565b61037d7f000000000000000000000000000000000000000000000000000000000000000081565b6104b76104b236600461264b565b6111ab565b604051610225919061268d565b6101f26112ae565b600b546001600160a01b0316331461052b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600b54600160a01b900460ff16156105855760405162461bcd60e51b815260206004820152601560248201527f536f72746974696f6e20706f6f6c206c6f636b656400000000000000000000006044820152606401610522565b60006105908261131d565b9050600081116105e25760405162461bcd60e51b815260206004820152601560248201527f4f70657261746f72206e6f7420656c696769626c6500000000000000000000006044820152606401610522565b6105ec8382611349565b6001600160a01b03831660009081526006602052604090205463ffffffff166106158183611477565b50505050565b600061062683610639565b61062f8361131d565b1490505b92915050565b6001600160a01b038116600090815260036020526040812054806106605750600092915050565b6001600160ff1b038116600061067582611627565b95945050505050565b50919050565b60004261069083610d6b565b111592915050565b600b54606090600160a01b900460ff166106f45760405162461bcd60e51b815260206004820152601760248201527f536f72746974696f6e20706f6f6c20756e6c6f636b65640000000000000000006044820152606401610522565b6000805490839061070483611684565b9050600081116107565760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f756768206f70657261746f727320696e20706f6f6c000000006044820152606401610522565b600080610762836116ab565b905060008867ffffffffffffffff81111561077f5761077f6126ce565b6040519080825280602002602001820160405280156107a8578160200160208202803683370190505b50905060005b8981101561082d576107c18587856116de565b9650935060006107d1858961175b565b6000818152600260205260409020549091506107ec8161182f565b8484815181106107fe576107fe6126e4565b602002602001019063ffffffff16908163ffffffff16815250505050808061082590612710565b9150506107ae565b5098975050505050505050565b600b546001600160a01b031633146108945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b61089e6000611868565b565b6001600160a01b03811660009081526006602052604081205463ffffffff166108c8816118c7565b9392505050565b60075460009063ffffffff8316106108e8576000610633565b60078263ffffffff1681548110610901576109016126e4565b6000918252602090912001546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461099d5760405162461bcd60e51b815260206004820152601160248201527f556e737570706f7274656420746f6b656e0000000000000000000000000000006044820152606401610522565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152306024830152604482018690527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90606401602060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5e919061272b565b50610a7384610a6e600054611684565b611973565b5050505050565b600b546001600160a01b03163314610ad45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b610b12838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611a2d915050565b7f01f5838e3dde8cf4817b958fe95be92bdfeccb34317e1d9f58d1cfe5230de231838383604051610b459392919061274d565b60405180910390a1505050565b6000610b5f600054611684565b905090565b600b546001600160a01b03163314610bbe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b600b805460ff60a01b19169055565b600b546001600160a01b03163314610c275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b6000610c4f600980546bffffffffffffffffffffffff1981169091556001600160601b031690565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526001600160601b03831660248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb90604401602060405180830381600087803b158015610cc657600080fd5b505af1158015610cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfe919061272b565b505050565b6001600160a01b03811660009081526006602052604090205463ffffffff16610d2b81611c47565b60405163ffffffff8216906001600160a01b038416907fe61e9f0f049b3bfae1ae903a5e3018c02a008aa0d238ffddf23a4fb4c027853690600090a35050565b63ffffffff8082166000908152600a60205260408120549091600160c01b9091041680610dda5760405162461bcd60e51b815260206004820152601960248201527f4f70657261746f7220616c726561647920656c696769626c65000000000000006044820152606401610522565b6108c87f000000000000000000000000000000000000000000000000000000000000000063ffffffff831661279e565b600b546001600160a01b03163314610e645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b600b54600160a01b900460ff1615610ebe5760405162461bcd60e51b815260206004820152601560248201527f536f72746974696f6e20706f6f6c206c6f636b656400000000000000000000006044820152606401610522565b6000610ec98261131d565b90506000610ef2846001600160a01b031660009081526006602052604090205463ffffffff1690565b9050610efe8183611477565b81610f1157610f0c84611e0c565b610615565b6106158483611ebc565b600b546000906001600160a01b03163314610f785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b6001600160a01b03831660009081526006602052604090205463ffffffff16610fa981610fa486610639565b611477565b63ffffffff81166000908152600a6020526040812080547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff8116909155600160601b90046001600160601b031660405163a9059cbb60e01b81526001600160a01b0386811660048301526001600160601b03831660248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb90604401602060405180830381600087803b15801561106d57600080fd5b505af1158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a5919061272b565b50949350505050565b600454600554600091906110c281836127b6565b9250505090565b600b546001600160a01b031633146111235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b6001600160a01b03811661119f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610522565b6111a881611868565b50565b60075460609060008367ffffffffffffffff8111156111cc576111cc6126ce565b6040519080825280602002602001820160405280156111f5578160200160208202803683370190505b50905060005b848110156110a5576000868683818110611217576112176126e4565b905060200201602081019061122c919061244a565b90508063ffffffff168411611242576000611271565b60078163ffffffff168154811061125b5761125b6126e4565b6000918252602090912001546001600160a01b03165b838381518110611283576112836126e4565b6001600160a01b039092166020928302919091019091015250806112a681612710565b9150506111fb565b600b546001600160a01b031633146113085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610522565b600b805460ff60a01b1916600160a01b179055565b60006106337f0000000000000000000000000000000000000000000000000000000000000000836127e3565b6001600160a01b038216600090815260036020526040902054156113d55760405162461bcd60e51b815260206004820152602a60248201527f4f70657261746f7220697320616c72656164792072656769737465726564206960448201527f6e2074686520706f6f6c000000000000000000000000000000000000000000006064820152608401610522565b6001600160a01b03821660009081526006602052604090205463ffffffff16806114055761140283611f6c565b90505b600061140f612043565b9050600061141e854385612137565b905061142e828286600054612215565b6000557f800000000000000000000000000000000000000000000000000000000000000082176001600160a01b0390951660009081526003602052604090209490945550505050565b60085463ffffffff8084166000908152600a60209081526040808320815160808101835290546001600160601b03818116808452600160601b8304821695840195909552600160c01b8204871693830193909352600160e01b900490941660608501819052941693906114ea90856127f7565b6114f4919061281f565b9050816040015163ffffffff166000141561152c57808260200181815161151b919061284e565b6001600160601b031690525061156f565b6009805482919060009061154a9084906001600160601b031661284e565b92506101000a8154816001600160601b0302191690836001600160601b031602179055505b506001600160601b03918216815263ffffffff928316606082019081529383166000908152600a60209081526040918290208351815492850151939094015196518616600160e01b026001600160e01b0397909616600160c01b029690961677ffffffffffffffffffffffffffffffffffffffffffffffff928516600160601b027fffffffffffffffff0000000000000000000000000000000000000000000000009092169390941692909217919091171617179055565b60008061163383612231565b905060006116418460031c90565b60008181527fdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237e602052604090205490915061067581846020021c63ffffffff1690565b63ffffffff8116602082901c5b801561067e5763ffffffff8116919091019060201c611691565b600081600114156116be57506000919050565b601f5b82816001901b106116d557600019016116c1565b60010192915050565b6000808080855b8261174e576000196001871b0181169150803060405160200161172492919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b6040516020818303038152906040528051906020012090508782101561174957600192505b6116e5565b9097909650945050505050565b60008282828061176a83611684565b87106117b85760405162461bcd60e51b815260206004820152601460248201527f496e6465782065786365656473207765696768740000000000000000000000006044820152606401610522565b6117c28385612241565b9450905060025b60078111611819576117db8383612278565b6000828152600160209081526040808320848452909152902054945092506118038486612241565b955091508061181181612710565b9150506117c9565b506118248282612278565b979650505050505050565b6000600161183f6003600261295d565b61184b906101006127e3565b61185690600261295d565b61186091906127b6565b909116919050565b600b80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60085463ffffffff8083166000908152600a60209081526040808320815160808101835290546001600160601b038181168352600160601b8204811694830194909452600160c01b81048616928201839052600160e01b900490941660608501529193169190611968576060810151815160009163ffffffff169061194c90856127f7565b611956919061281f565b9050808260200151610675919061284e565b602001519392505050565b60085460009061199390600160601b90046001600160601b03168461284e565b905060006119a763ffffffff841683612969565b905060006119bb63ffffffff85168461298f565b6008805491925083916000906119db9084906001600160601b031661284e565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550806008600c6101000a8154816001600160601b0302191690836001600160601b031602179055505050505050565b604080516080810182526000808252602082018190529181018290526060810182905260085490916001600160601b039091169080611a8c7f0000000000000000000000000000000000000000000000000000000000000000866127b6565b905060005b8651811015611c3e576000878281518110611aae57611aae6126e4565b60209081029190910181015163ffffffff8082166000908152600a845260409081902080546001600160601b03600160601b82048116968d01969096529485168b52600160c01b85048316918b01829052600160e01b90940490911660608a015290925015611b41578363ffffffff16876040015163ffffffff161015611b3c5763ffffffff841660408801525b611b8d565b63ffffffff808516604089015260608801518851911690611b6290886127f7565b611b6c919061281f565b94508487602001818151611b80919061284e565b6001600160601b03169052505b6001600160601b038681168089526020890151835460408b015160608c01517fffffffff00000000000000000000000000000000000000000000000000000000909216600160601b93909516929092027fffffffff00000000ffffffffffffffffffffffff0000000000000000000000001693909317909117600160c01b63ffffffff92831602176001600160e01b0316600160e01b91909216021790555080611c3681612710565b915050611a91565b50505050505050565b611c5081610684565b611c9c5760405162461bcd60e51b815260206004820152601960248201527f4f70657261746f72207374696c6c20696e656c696769626c65000000000000006044820152606401610522565b60085463ffffffff8083166000908152600a60209081526040808320815160808101835290546001600160601b03818116808452600160601b8304821695840195909552600160c01b8204871693830193909352600160e01b90049094166060850181905294169390611d0f90856127f7565b611d19919061281f565b600980549192508291600090611d399084906001600160601b031661284e565b82546001600160601b039182166101009390930a928302928202191691909117909155938416835250506000604080830182815263ffffffff9586168352600a602090815291909220835181549285015193516060909501518716600160e01b026001600160e01b0395909716600160c01b029490941677ffffffffffffffffffffffffffffffffffffffffffffffff938616600160601b027fffffffffffffffff0000000000000000000000000000000000000000000000009093169490951693909317171691909117919091179055565b6001600160a01b03811660009081526003602052604090205480611e815760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f72206973206e6f74207265676973746572656420696e20746860448201526519481c1bdbdb60d21b6064820152608401610522565b60006001600160ff1b0382169050611e9b816000546122a2565b600055610cfe836001600160a01b0316600090815260036020526040812055565b6001600160a01b038216600090815260036020526040902054611f305760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f72206973206e6f74207265676973746572656420696e20746860448201526519481c1bdbdb60d21b6064820152608401610522565b6001600160a01b03821660009081526003602052604081205490546001600160ff1b03821690611f639082908590612317565b60005550505050565b60075460009063ffffffff811115611fc65760405162461bcd60e51b815260206004820152601660248201527f506f6f6c206361706163697479206578636565646564000000000000000000006044820152606401610522565b6001600160a01b03929092166000818152600660205260408120805463ffffffff191663ffffffff86161790556007805460018101825591527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805473ffffffffffffffffffffffffffffffffffffffff191690911790555090565b6004546000908160076120586003600261295d565b612062919061295d565b61206d83600161279e565b109050801561208a5761208182600161279e565b60045550919050565b600554806120da5760405162461bcd60e51b815260206004820152600c60248201527f506f6f6c2069732066756c6c00000000000000000000000000000000000000006044820152606401610522565b600060056120e96001846127b6565b815481106120f9576120f96126e4565b906000526020600020015490506005805480612117576121176129b5565b600190038181906000526020600020016000905590558094505050505090565b600067ffffffffffffffff831115612151576121516129cb565b63ffffffff821115612165576121656129cb565b6bffffffffffffffffffffffff19606085901b16600060016121896003600261295d565b612195906101006127e3565b6121a090600261295d565b6121aa91906127b6565b8416905060006121bc6003600261295d565b6121c8906101006127e3565b60016121d66003600261295d565b6121e2906101006127e3565b6121ed9060606127b6565b6121f890600261295d565b61220291906127b6565b8716901b92909217179150509392505050565b6000848152600260205260408120849055610675858484612341565b600060016118566003600261295d565b6000818363ffffffff81165b80831061226e57600193909301929091039060201c63ffffffff811661224d565b50505b9250929050565b600060016122886003600261295d565b61229291906127b6565b8216600384901b17905092915050565b60008060016004546122b491906127b6565b905083811460006122c786828088612215565b905081156122d9576004839055610675565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00186905595945050505050565b60008261232385611627565b1461233a57612333848484612341565b90506108c8565b50806108c8565b6000808080858760075b600281106123c25761235c82612231565b95506123688260031c90565b60008281526001602090815260408083208484528252909120805463ffffffff928a0283811b198216938816901b9290921790819055909650945091506123ae84611684565b9250806123ba816129e1565b91505061234b565b506123cc81612231565b945063ffffffff6020860281811b198916918416901b179998505050505050505050565b80356001600160a01b038116811461240757600080fd5b919050565b6000806040838503121561241f57600080fd5b612428836123f0565b946020939093013593505050565b803563ffffffff8116811461240757600080fd5b60006020828403121561245c57600080fd5b6108c882612436565b60006020828403121561247757600080fd5b6108c8826123f0565b6000806040838503121561249357600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156124e057835163ffffffff16835292840192918401916001016124be565b50909695505050505050565b60008060008060006080868803121561250457600080fd5b61250d866123f0565b945060208601359350612522604087016123f0565b9250606086013567ffffffffffffffff8082111561253f57600080fd5b818801915088601f83011261255357600080fd5b81358181111561256257600080fd5b89602082850101111561257457600080fd5b9699959850939650602001949392505050565b60008083601f84011261259957600080fd5b50813567ffffffffffffffff8111156125b157600080fd5b6020830191508360208260051b850101111561227157600080fd5b6000806000604084860312156125e157600080fd5b833567ffffffffffffffff8111156125f857600080fd5b61260486828701612587565b909790965060209590950135949350505050565b6000806040838503121561262b57600080fd5b612634836123f0565b9150612642602084016123f0565b90509250929050565b6000806020838503121561265e57600080fd5b823567ffffffffffffffff81111561267557600080fd5b61268185828601612587565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156124e05783516001600160a01b0316835292840192918401916001016126a9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612724576127246126fa565b5060010190565b60006020828403121561273d57600080fd5b815180151581146108c857600080fd5b6040808252810183905260008460608301825b8681101561278b5763ffffffff61277684612436565b16825260209283019290910190600101612760565b5060209390930193909352509392505050565b600082198211156127b1576127b16126fa565b500190565b6000828210156127c8576127c86126fa565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826127f2576127f26127cd565b500490565b60006001600160601b0383811690831681811015612817576128176126fa565b039392505050565b60006001600160601b0380831681851681830481118215151615612845576128456126fa565b02949350505050565b60006001600160601b03808316818516808303821115612870576128706126fa565b01949350505050565b600181815b808511156128b457816000190482111561289a5761289a6126fa565b808516156128a757918102915b93841c939080029061287e565b509250929050565b6000826128cb57506001610633565b816128d857506000610633565b81600181146128ee57600281146128f857612914565b6001915050610633565b60ff841115612909576129096126fa565b50506001821b610633565b5060208310610133831016604e8410600b8410161715612937575081810a610633565b6129418383612879565b8060001904821115612955576129556126fa565b029392505050565b60006108c883836128bc565b60006001600160601b0380841680612983576129836127cd565b92169190910492915050565b60006001600160601b03808416806129a9576129a96127cd565b92169190910692915050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b6000816129f0576129f06126fa565b50600019019056fea264697066735822122022b144574d27b4b784b6a69d6ebf5f19b0c8942c54d116172b6cf4495ac5f1e864736f6c63430008090033";
579
+ const isSuperArgs = (xs) => xs.length > 1;
580
+ class SortitionPool__factory extends ethers_1.ContractFactory {
581
+ constructor(...args) {
582
+ if (isSuperArgs(args)) {
583
+ super(...args);
584
+ }
585
+ else {
586
+ super(_abi, _bytecode, args[0]);
587
+ }
588
+ }
589
+ deploy(_rewardToken, _poolWeightDivisor, overrides) {
590
+ return super.deploy(_rewardToken, _poolWeightDivisor, overrides || {});
591
+ }
592
+ getDeployTransaction(_rewardToken, _poolWeightDivisor, overrides) {
593
+ return super.getDeployTransaction(_rewardToken, _poolWeightDivisor, overrides || {});
594
+ }
595
+ attach(address) {
596
+ return super.attach(address);
597
+ }
598
+ connect(signer) {
599
+ return super.connect(signer);
600
+ }
601
+ static createInterface() {
602
+ return new ethers_1.utils.Interface(_abi);
603
+ }
604
+ static connect(address, signerOrProvider) {
605
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
606
+ }
607
+ }
608
+ exports.SortitionPool__factory = SortitionPool__factory;
609
+ SortitionPool__factory.bytecode = _bytecode;
610
+ SortitionPool__factory.abi = _abi;