@raac/rpc 1.2.0-beta.5 → 1.2.0-beta.7

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 (196) hide show
  1. package/dist/RPCLibrary.js +38 -97
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +2 -2
  3. package/dist/artifacts/core/governance/gauges/BaseGauge.sol/BaseGauge.json +155 -144
  4. package/dist/artifacts/core/governance/gauges/GaugeController.sol/GaugeController.json +119 -335
  5. package/dist/artifacts/core/governance/gauges/GaugeRewardsDistributor.sol/GaugeRewardsDistributor.json +104 -325
  6. package/dist/artifacts/core/governance/gauges/RAACGauge.sol/RAACGauge.json +167 -146
  7. package/dist/artifacts/core/governance/gauges/RWAGauge.sol/RWAGauge.json +167 -146
  8. package/dist/artifacts/core/governance/proposals/Governance.sol/Governance.json +2 -2
  9. package/dist/artifacts/core/lockers/RAACLiquidLocker.sol/RAACLiquidLocker.json +2 -2
  10. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +66 -32
  11. package/dist/configs/chains/11155111.json +83 -16
  12. package/dist/configs/chains/8453.json +6 -6
  13. package/dist/contracts/getContractAddress.js +1 -0
  14. package/dist/contracts/governance/distributor/claimAll.js +25 -0
  15. package/dist/contracts/governance/distributor/claimForGauge.js +26 -0
  16. package/dist/contracts/governance/distributor/deposit.js +12 -21
  17. package/dist/contracts/governance/distributor/getClaimableForGauge.js +29 -0
  18. package/dist/contracts/governance/distributor/getClaimedAtEpoch.js +30 -0
  19. package/dist/contracts/governance/distributor/getDepositedAtEpoch.js +30 -0
  20. package/dist/contracts/governance/distributor/getGaugeController.js +28 -0
  21. package/dist/contracts/governance/distributor/getLastClaimedEpoch.js +29 -0
  22. package/dist/contracts/governance/distributor/getPeriodDuration.js +28 -0
  23. package/dist/contracts/governance/distributor/{getRewardTokens.js → getRewardToken.js} +10 -9
  24. package/dist/contracts/governance/distributor/getRewardTokenInfo.js +9 -19
  25. package/dist/contracts/governance/distributor/getRewardTokenStats.js +30 -0
  26. package/dist/contracts/governance/{gaugeController/isGauge.js → distributor/getStartEpoch.js} +10 -10
  27. package/dist/contracts/governance/distributor/index.js +31 -17
  28. package/dist/contracts/governance/distributor/setController.js +26 -0
  29. package/dist/contracts/governance/distributor/withdrawRemovedGaugeRewards.js +27 -0
  30. package/dist/contracts/governance/distributor/withdrawUnallocatedRewards.js +26 -0
  31. package/dist/contracts/governance/gauge/addRewardToken.js +34 -0
  32. package/dist/contracts/governance/gauge/claimExtraReward.js +34 -0
  33. package/dist/contracts/governance/gauge/claimExtraRewards.js +33 -0
  34. package/dist/contracts/governance/gauge/claimOnBehalfOf.js +36 -0
  35. package/dist/contracts/governance/gauge/claimRewardToken.js +3 -4
  36. package/dist/contracts/governance/gauge/claimRewardsFor.js +34 -0
  37. package/dist/contracts/governance/gauge/depositRewardToken.js +35 -0
  38. package/dist/contracts/governance/gauge/getAllPendingExtraRewards.js +36 -0
  39. package/dist/contracts/governance/gauge/getControllerAddress.js +34 -0
  40. package/dist/contracts/governance/gauge/getDecimalAdjustment.js +35 -0
  41. package/dist/contracts/governance/gauge/getDepositRAACOnClaim.js +34 -0
  42. package/dist/contracts/governance/gauge/getDistributorData.js +36 -0
  43. package/dist/contracts/governance/gauge/getDistributors.js +34 -0
  44. package/dist/contracts/governance/gauge/getEarnedReward.js +11 -19
  45. package/dist/contracts/governance/gauge/getExtraRewardTokens.js +34 -0
  46. package/dist/contracts/governance/gauge/getGaugeRewardTokenData.js +44 -0
  47. package/dist/contracts/governance/gauge/getPendingExtraRewards.js +36 -0
  48. package/dist/contracts/governance/gauge/getPendingRewards.js +11 -19
  49. package/dist/contracts/governance/gauge/getRaacAutolockMin.js +34 -0
  50. package/dist/contracts/governance/gauge/getUserRewardTokenData.js +37 -0
  51. package/dist/contracts/governance/gauge/getUserWeight.js +35 -0
  52. package/dist/contracts/governance/gauge/index.js +53 -35
  53. package/dist/contracts/governance/gauge/isPaused.js +34 -0
  54. package/dist/contracts/governance/gauge/manageDistributor.js +35 -0
  55. package/dist/contracts/governance/gauge/setController.js +34 -0
  56. package/dist/contracts/governance/gauge/setDepositRAACOnClaim.js +34 -0
  57. package/dist/contracts/governance/gauge/setDistributorApproval.js +35 -0
  58. package/dist/contracts/governance/gauge/setEmergencyPaused.js +34 -0
  59. package/dist/contracts/governance/gauge/setGaugeRewardDistributor.js +34 -0
  60. package/dist/contracts/governance/gauge/setRaacAutolockMin.js +34 -0
  61. package/dist/contracts/governance/gauge/updateUserRewards.js +3 -2
  62. package/dist/contracts/governance/gaugeController/addGauge.js +24 -0
  63. package/dist/contracts/governance/gaugeController/batchVote.js +25 -0
  64. package/dist/contracts/governance/gaugeController/forceCompleteCheckpoint.js +24 -0
  65. package/dist/contracts/governance/gaugeController/getConstants.js +45 -0
  66. package/dist/contracts/governance/gaugeController/getCurrentEpoch.js +27 -0
  67. package/dist/contracts/governance/gaugeController/getGauge.js +29 -0
  68. package/dist/contracts/governance/gaugeController/getGaugeEmissions.js +136 -0
  69. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeight.js +29 -0
  70. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeightView.js +30 -0
  71. package/dist/contracts/governance/gaugeController/getLastVoteTime.js +29 -0
  72. package/dist/contracts/governance/gaugeController/getNextEpoch.js +27 -0
  73. package/dist/contracts/governance/gaugeController/getUserGaugeVotePower.js +29 -0
  74. package/dist/contracts/governance/gaugeController/getVeToken.js +27 -0
  75. package/dist/contracts/governance/gaugeController/getVoteUserPower.js +28 -0
  76. package/dist/contracts/governance/gaugeController/getVoteUserSlope.js +30 -0
  77. package/dist/contracts/governance/gaugeController/index.js +44 -23
  78. package/dist/contracts/governance/gaugeController/isPaused.js +27 -0
  79. package/dist/contracts/governance/gaugeController/kick.js +24 -0
  80. package/dist/contracts/governance/gaugeController/removeGauge.js +24 -0
  81. package/dist/contracts/governance/gaugeController/removePowerFromGauge.js +24 -0
  82. package/dist/contracts/governance/gaugeController/setBoostAmplificationEnabled.js +25 -0
  83. package/dist/contracts/governance/gaugeController/setEmergencyGaugePause.js +25 -0
  84. package/dist/contracts/governance/gaugeController/setEmergencyPause.js +24 -0
  85. package/dist/contracts/lockers/botLocker/unlock.js +4 -1
  86. package/dist/contracts/lockers/maturityVault/harvest.js +3 -2
  87. package/dist/types/RPCLibrary.d.ts +6 -64
  88. package/dist/types/contracts/governance/distributor/claimAll.d.ts +11 -0
  89. package/dist/types/contracts/governance/distributor/claimForGauge.d.ts +12 -0
  90. package/dist/types/contracts/governance/distributor/deposit.d.ts +6 -7
  91. package/dist/types/contracts/governance/distributor/getClaimableForGauge.d.ts +11 -0
  92. package/dist/types/contracts/governance/distributor/getClaimedAtEpoch.d.ts +12 -0
  93. package/dist/types/contracts/governance/distributor/getDepositedAtEpoch.d.ts +12 -0
  94. package/dist/types/contracts/governance/distributor/getGaugeController.d.ts +10 -0
  95. package/dist/types/contracts/governance/distributor/getLastClaimedEpoch.d.ts +11 -0
  96. package/dist/types/contracts/governance/distributor/getPeriodDuration.d.ts +10 -0
  97. package/dist/types/contracts/governance/distributor/{getRewardTokens.d.ts → getRewardToken.d.ts} +3 -3
  98. package/dist/types/contracts/governance/distributor/getRewardTokenInfo.d.ts +8 -10
  99. package/dist/types/contracts/governance/distributor/getRewardTokenStats.d.ts +15 -0
  100. package/dist/types/contracts/governance/distributor/getStartEpoch.d.ts +10 -0
  101. package/dist/types/contracts/governance/distributor/index.d.ts +16 -8
  102. package/dist/types/contracts/governance/distributor/setController.d.ts +12 -0
  103. package/dist/types/contracts/governance/distributor/withdrawRemovedGaugeRewards.d.ts +13 -0
  104. package/dist/types/contracts/governance/distributor/withdrawUnallocatedRewards.d.ts +12 -0
  105. package/dist/types/contracts/governance/gauge/addRewardToken.d.ts +10 -0
  106. package/dist/types/contracts/governance/gauge/claimExtraReward.d.ts +10 -0
  107. package/dist/types/contracts/governance/gauge/claimExtraRewards.d.ts +9 -0
  108. package/dist/types/contracts/governance/gauge/claimOnBehalfOf.d.ts +12 -0
  109. package/dist/types/contracts/governance/gauge/claimRewardToken.d.ts +1 -2
  110. package/dist/types/contracts/governance/gauge/claimRewardsFor.d.ts +10 -0
  111. package/dist/types/contracts/governance/gauge/depositRewardToken.d.ts +11 -0
  112. package/dist/types/contracts/governance/gauge/getAllPendingExtraRewards.d.ts +13 -0
  113. package/dist/types/contracts/governance/gauge/getControllerAddress.d.ts +9 -0
  114. package/dist/types/contracts/governance/gauge/getDecimalAdjustment.d.ts +10 -0
  115. package/dist/types/contracts/governance/gauge/getDepositRAACOnClaim.d.ts +9 -0
  116. package/dist/types/contracts/governance/gauge/getDistributorData.d.ts +13 -0
  117. package/dist/types/contracts/governance/gauge/{getRewardTokens.d.ts → getDistributors.d.ts} +3 -5
  118. package/dist/types/contracts/governance/gauge/getEarnedReward.d.ts +4 -5
  119. package/dist/types/contracts/governance/gauge/getExtraRewardTokens.d.ts +9 -0
  120. package/dist/types/contracts/governance/gauge/getGaugeRewardTokenData.d.ts +18 -0
  121. package/dist/types/contracts/governance/gauge/getPendingExtraRewards.d.ts +11 -0
  122. package/dist/types/contracts/governance/gauge/getPendingRewards.d.ts +4 -5
  123. package/dist/types/contracts/governance/gauge/getRaacAutolockMin.d.ts +9 -0
  124. package/dist/types/contracts/governance/gauge/getUserRewardTokenData.d.ts +17 -0
  125. package/dist/types/contracts/governance/gauge/getUserWeight.d.ts +10 -0
  126. package/dist/types/contracts/governance/gauge/index.d.ts +38 -17
  127. package/dist/types/contracts/governance/gauge/isPaused.d.ts +9 -0
  128. package/dist/types/contracts/governance/gauge/manageDistributor.d.ts +11 -0
  129. package/dist/types/contracts/governance/gauge/setController.d.ts +10 -0
  130. package/dist/types/contracts/governance/gauge/setDepositRAACOnClaim.d.ts +10 -0
  131. package/dist/types/contracts/governance/gauge/setDistributorApproval.d.ts +11 -0
  132. package/dist/types/contracts/governance/gauge/setEmergencyPaused.d.ts +10 -0
  133. package/dist/types/contracts/governance/gauge/setGaugeRewardDistributor.d.ts +10 -0
  134. package/dist/types/contracts/governance/gauge/setRaacAutolockMin.d.ts +10 -0
  135. package/dist/types/contracts/governance/gauge/updateUserRewards.d.ts +2 -1
  136. package/dist/types/contracts/governance/gaugeController/addGauge.d.ts +10 -0
  137. package/dist/types/contracts/governance/gaugeController/batchVote.d.ts +11 -0
  138. package/dist/types/contracts/governance/gaugeController/forceCompleteCheckpoint.d.ts +10 -0
  139. package/dist/types/contracts/governance/gaugeController/getConstants.d.ts +18 -0
  140. package/dist/types/contracts/governance/gaugeController/getCurrentEpoch.d.ts +9 -0
  141. package/dist/types/contracts/governance/gaugeController/getGauge.d.ts +15 -0
  142. package/dist/types/contracts/governance/gaugeController/getGaugeEmissions.d.ts +51 -0
  143. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeight.d.ts +15 -0
  144. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeightView.d.ts +14 -0
  145. package/dist/types/contracts/governance/gaugeController/getLastVoteTime.d.ts +11 -0
  146. package/dist/types/contracts/governance/gaugeController/getNextEpoch.d.ts +9 -0
  147. package/dist/types/contracts/governance/gaugeController/getUserGaugeVotePower.d.ts +11 -0
  148. package/dist/types/contracts/governance/gaugeController/getVeToken.d.ts +9 -0
  149. package/dist/types/contracts/governance/gaugeController/getVoteUserPower.d.ts +10 -0
  150. package/dist/types/contracts/governance/gaugeController/getVoteUserSlope.d.ts +15 -0
  151. package/dist/types/contracts/governance/gaugeController/index.d.ts +29 -11
  152. package/dist/types/contracts/governance/gaugeController/isPaused.d.ts +9 -0
  153. package/dist/types/contracts/governance/gaugeController/kick.d.ts +10 -0
  154. package/dist/types/contracts/governance/gaugeController/removeGauge.d.ts +10 -0
  155. package/dist/types/contracts/governance/gaugeController/removePowerFromGauge.d.ts +10 -0
  156. package/dist/types/contracts/governance/gaugeController/setBoostAmplificationEnabled.d.ts +11 -0
  157. package/dist/types/contracts/governance/gaugeController/setEmergencyGaugePause.d.ts +11 -0
  158. package/dist/types/contracts/governance/gaugeController/setEmergencyPause.d.ts +10 -0
  159. package/dist/types/contracts/lockers/botLocker/unlock.d.ts +3 -0
  160. package/dist/types/contracts/lockers/maturityVault/harvest.d.ts +1 -1
  161. package/dist/utils/contracts.js +1 -1
  162. package/package.json +1 -1
  163. package/dist/contracts/governance/distributor/getAvailableBalance.js +0 -29
  164. package/dist/contracts/governance/distributor/getGaugeRewardTokens.js +0 -28
  165. package/dist/contracts/governance/distributor/getTransferableBalance.js +0 -30
  166. package/dist/contracts/governance/distributor/isRewardTokenApproved.js +0 -29
  167. package/dist/contracts/governance/distributor/isTokenApproved.js +0 -29
  168. package/dist/contracts/governance/gauge/claimReward.js +0 -44
  169. package/dist/contracts/governance/gauge/getAllEarnedRewards.js +0 -51
  170. package/dist/contracts/governance/gauge/getAllPendingRewards.js +0 -41
  171. package/dist/contracts/governance/gauge/getRewardTokens.js +0 -41
  172. package/dist/contracts/governance/gauge/getUserGaugeVoteWeight.js +0 -42
  173. package/dist/contracts/governance/gauge/getWorkingBalance.js +0 -43
  174. package/dist/contracts/governance/gauge/syncRewardTokens.js +0 -51
  175. package/dist/contracts/governance/gaugeController/checkpoint.js +0 -33
  176. package/dist/contracts/governance/gaugeController/checkpointGauge.js +0 -34
  177. package/dist/contracts/governance/gaugeController/getUserGaugeVoteWeight.js +0 -30
  178. package/dist/tests/liquidLocker.test.js +0 -262
  179. package/dist/tests/test.js +0 -32
  180. package/dist/types/contracts/governance/distributor/getAvailableBalance.d.ts +0 -11
  181. package/dist/types/contracts/governance/distributor/getGaugeRewardTokens.d.ts +0 -11
  182. package/dist/types/contracts/governance/distributor/getTransferableBalance.d.ts +0 -12
  183. package/dist/types/contracts/governance/distributor/isRewardTokenApproved.d.ts +0 -12
  184. package/dist/types/contracts/governance/distributor/isTokenApproved.d.ts +0 -11
  185. package/dist/types/contracts/governance/gauge/claimReward.d.ts +0 -11
  186. package/dist/types/contracts/governance/gauge/getAllEarnedRewards.d.ts +0 -17
  187. package/dist/types/contracts/governance/gauge/getAllPendingRewards.d.ts +0 -19
  188. package/dist/types/contracts/governance/gauge/getUserGaugeVoteWeight.d.ts +0 -14
  189. package/dist/types/contracts/governance/gauge/getWorkingBalance.d.ts +0 -12
  190. package/dist/types/contracts/governance/gauge/syncRewardTokens.d.ts +0 -13
  191. package/dist/types/contracts/governance/gaugeController/checkpoint.d.ts +0 -11
  192. package/dist/types/contracts/governance/gaugeController/checkpointGauge.d.ts +0 -12
  193. package/dist/types/contracts/governance/gaugeController/getUserGaugeVoteWeight.d.ts +0 -12
  194. package/dist/types/contracts/governance/gaugeController/isGauge.d.ts +0 -11
  195. package/dist/types/tests/liquidLocker.test.d.ts +0 -18
  196. package/dist/types/tests/test.d.ts +0 -1
@@ -9,6 +9,11 @@
9
9
  "internalType": "address",
10
10
  "name": "_gaugeController",
11
11
  "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_rewardToken",
16
+ "type": "address"
12
17
  }
13
18
  ],
14
19
  "stateMutability": "nonpayable",
@@ -37,22 +42,12 @@
37
42
  },
38
43
  {
39
44
  "inputs": [],
40
- "name": "AlreadyClaimed",
45
+ "name": "GaugeNotActive",
41
46
  "type": "error"
42
47
  },
43
48
  {
44
49
  "inputs": [],
45
- "name": "GaugeNotFound",
46
- "type": "error"
47
- },
48
- {
49
- "inputs": [],
50
- "name": "InsufficientBalance",
51
- "type": "error"
52
- },
53
- {
54
- "inputs": [],
55
- "name": "InsufficientClaimableBalance",
50
+ "name": "GaugeStillActive",
56
51
  "type": "error"
57
52
  },
58
53
  {
@@ -65,11 +60,6 @@
65
60
  "name": "InvalidAmount",
66
61
  "type": "error"
67
62
  },
68
- {
69
- "inputs": [],
70
- "name": "NoGaugesWeight",
71
- "type": "error"
72
- },
73
63
  {
74
64
  "inputs": [],
75
65
  "name": "ReentrancyGuardReentrantCall",
@@ -86,11 +76,6 @@
86
76
  "name": "SafeERC20FailedOperation",
87
77
  "type": "error"
88
78
  },
89
- {
90
- "inputs": [],
91
- "name": "TokenAlreadyApproved",
92
- "type": "error"
93
- },
94
79
  {
95
80
  "inputs": [],
96
81
  "name": "TokenNotApproved",
@@ -113,20 +98,7 @@
113
98
  {
114
99
  "indexed": true,
115
100
  "internalType": "address",
116
- "name": "token",
117
- "type": "address"
118
- }
119
- ],
120
- "name": "GaugeRewardTokenAdded",
121
- "type": "event"
122
- },
123
- {
124
- "anonymous": false,
125
- "inputs": [
126
- {
127
- "indexed": true,
128
- "internalType": "address",
129
- "name": "gauge",
101
+ "name": "recipient",
130
102
  "type": "address"
131
103
  },
132
104
  {
@@ -134,9 +106,15 @@
134
106
  "internalType": "address",
135
107
  "name": "token",
136
108
  "type": "address"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint256",
113
+ "name": "amount",
114
+ "type": "uint256"
137
115
  }
138
116
  ],
139
- "name": "GaugeRewardTokenRemoved",
117
+ "name": "RemovedGaugeRewardsWithdrawn",
140
118
  "type": "event"
141
119
  },
142
120
  {
@@ -164,32 +142,6 @@
164
142
  "name": "RewardDeposited",
165
143
  "type": "event"
166
144
  },
167
- {
168
- "anonymous": false,
169
- "inputs": [
170
- {
171
- "indexed": true,
172
- "internalType": "address",
173
- "name": "token",
174
- "type": "address"
175
- }
176
- ],
177
- "name": "RewardTokenAdded",
178
- "type": "event"
179
- },
180
- {
181
- "anonymous": false,
182
- "inputs": [
183
- {
184
- "indexed": true,
185
- "internalType": "address",
186
- "name": "token",
187
- "type": "address"
188
- }
189
- ],
190
- "name": "RewardTokenRemoved",
191
- "type": "event"
192
- },
193
145
  {
194
146
  "anonymous": false,
195
147
  "inputs": [
@@ -290,6 +242,25 @@
290
242
  "name": "RoleRevoked",
291
243
  "type": "event"
292
244
  },
245
+ {
246
+ "anonymous": false,
247
+ "inputs": [
248
+ {
249
+ "indexed": true,
250
+ "internalType": "address",
251
+ "name": "recipient",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "indexed": false,
256
+ "internalType": "uint256",
257
+ "name": "amount",
258
+ "type": "uint256"
259
+ }
260
+ ],
261
+ "name": "UnallocatedRewardsWithdrawn",
262
+ "type": "event"
263
+ },
293
264
  {
294
265
  "inputs": [],
295
266
  "name": "DEFAULT_ADMIN_ROLE",
@@ -329,37 +300,6 @@
329
300
  "stateMutability": "view",
330
301
  "type": "function"
331
302
  },
332
- {
333
- "inputs": [
334
- {
335
- "internalType": "address",
336
- "name": "gauge",
337
- "type": "address"
338
- },
339
- {
340
- "internalType": "address",
341
- "name": "token",
342
- "type": "address"
343
- }
344
- ],
345
- "name": "addGaugeRewardToken",
346
- "outputs": [],
347
- "stateMutability": "nonpayable",
348
- "type": "function"
349
- },
350
- {
351
- "inputs": [
352
- {
353
- "internalType": "address",
354
- "name": "token",
355
- "type": "address"
356
- }
357
- ],
358
- "name": "addRewardToken",
359
- "outputs": [],
360
- "stateMutability": "nonpayable",
361
- "type": "function"
362
- },
363
303
  {
364
304
  "inputs": [
365
305
  {
@@ -379,11 +319,6 @@
379
319
  "internalType": "address",
380
320
  "name": "gauge",
381
321
  "type": "address"
382
- },
383
- {
384
- "internalType": "address",
385
- "name": "token",
386
- "type": "address"
387
322
  }
388
323
  ],
389
324
  "name": "claimForGauge",
@@ -399,11 +334,6 @@
399
334
  },
400
335
  {
401
336
  "inputs": [
402
- {
403
- "internalType": "address",
404
- "name": "",
405
- "type": "address"
406
- },
407
337
  {
408
338
  "internalType": "address",
409
339
  "name": "",
@@ -444,25 +374,6 @@
444
374
  "stateMutability": "nonpayable",
445
375
  "type": "function"
446
376
  },
447
- {
448
- "inputs": [
449
- {
450
- "internalType": "address",
451
- "name": "",
452
- "type": "address"
453
- }
454
- ],
455
- "name": "depositableRewardTokens",
456
- "outputs": [
457
- {
458
- "internalType": "bool",
459
- "name": "",
460
- "type": "bool"
461
- }
462
- ],
463
- "stateMutability": "view",
464
- "type": "function"
465
- },
466
377
  {
467
378
  "inputs": [
468
379
  {
@@ -491,47 +402,16 @@
491
402
  "inputs": [
492
403
  {
493
404
  "internalType": "address",
494
- "name": "token",
405
+ "name": "",
495
406
  "type": "address"
496
407
  },
497
408
  {
498
409
  "internalType": "uint256",
499
- "name": "amount",
500
- "type": "uint256"
501
- },
502
- {
503
- "internalType": "address",
504
- "name": "recipient",
505
- "type": "address"
506
- }
507
- ],
508
- "name": "emergencyWithdraw",
509
- "outputs": [],
510
- "stateMutability": "nonpayable",
511
- "type": "function"
512
- },
513
- {
514
- "inputs": [],
515
- "name": "gaugeController",
516
- "outputs": [
517
- {
518
- "internalType": "contract IGaugeController",
519
- "name": "",
520
- "type": "address"
521
- }
522
- ],
523
- "stateMutability": "view",
524
- "type": "function"
525
- },
526
- {
527
- "inputs": [
528
- {
529
- "internalType": "address",
530
410
  "name": "",
531
- "type": "address"
411
+ "type": "uint256"
532
412
  }
533
413
  ],
534
- "name": "gaugeLastClaimedEpoch",
414
+ "name": "depositedSnapshotAtLastClaim",
535
415
  "outputs": [
536
416
  {
537
417
  "internalType": "uint256",
@@ -543,24 +423,13 @@
543
423
  "type": "function"
544
424
  },
545
425
  {
546
- "inputs": [
547
- {
548
- "internalType": "address",
549
- "name": "",
550
- "type": "address"
551
- },
552
- {
553
- "internalType": "address",
554
- "name": "",
555
- "type": "address"
556
- }
557
- ],
558
- "name": "gaugeRewardTokens",
426
+ "inputs": [],
427
+ "name": "gaugeController",
559
428
  "outputs": [
560
429
  {
561
- "internalType": "bool",
430
+ "internalType": "contract IGaugeController",
562
431
  "name": "",
563
- "type": "bool"
432
+ "type": "address"
564
433
  }
565
434
  ],
566
435
  "stateMutability": "view",
@@ -570,11 +439,11 @@
570
439
  "inputs": [
571
440
  {
572
441
  "internalType": "address",
573
- "name": "token",
442
+ "name": "",
574
443
  "type": "address"
575
444
  }
576
445
  ],
577
- "name": "getAvailableBalance",
446
+ "name": "gaugeLastClaimedEpoch",
578
447
  "outputs": [
579
448
  {
580
449
  "internalType": "uint256",
@@ -591,11 +460,6 @@
591
460
  "internalType": "address",
592
461
  "name": "gauge",
593
462
  "type": "address"
594
- },
595
- {
596
- "internalType": "address",
597
- "name": "token",
598
- "type": "address"
599
463
  }
600
464
  ],
601
465
  "name": "getClaimableForGauge",
@@ -609,46 +473,8 @@
609
473
  "stateMutability": "view",
610
474
  "type": "function"
611
475
  },
612
- {
613
- "inputs": [
614
- {
615
- "internalType": "address",
616
- "name": "gauge",
617
- "type": "address"
618
- }
619
- ],
620
- "name": "getGaugeRewardTokens",
621
- "outputs": [
622
- {
623
- "internalType": "address[]",
624
- "name": "",
625
- "type": "address[]"
626
- }
627
- ],
628
- "stateMutability": "view",
629
- "type": "function"
630
- },
631
476
  {
632
477
  "inputs": [],
633
- "name": "getRewardTokenCount",
634
- "outputs": [
635
- {
636
- "internalType": "uint256",
637
- "name": "",
638
- "type": "uint256"
639
- }
640
- ],
641
- "stateMutability": "view",
642
- "type": "function"
643
- },
644
- {
645
- "inputs": [
646
- {
647
- "internalType": "address",
648
- "name": "token",
649
- "type": "address"
650
- }
651
- ],
652
478
  "name": "getRewardTokenInfo",
653
479
  "outputs": [
654
480
  {
@@ -675,19 +501,6 @@
675
501
  "stateMutability": "view",
676
502
  "type": "function"
677
503
  },
678
- {
679
- "inputs": [],
680
- "name": "getRewardTokens",
681
- "outputs": [
682
- {
683
- "internalType": "address[]",
684
- "name": "",
685
- "type": "address[]"
686
- }
687
- ],
688
- "stateMutability": "view",
689
- "type": "function"
690
- },
691
504
  {
692
505
  "inputs": [
693
506
  {
@@ -751,54 +564,6 @@
751
564
  },
752
565
  {
753
566
  "inputs": [
754
- {
755
- "internalType": "address",
756
- "name": "gauge",
757
- "type": "address"
758
- },
759
- {
760
- "internalType": "address",
761
- "name": "token",
762
- "type": "address"
763
- }
764
- ],
765
- "name": "isRewardTokenApproved",
766
- "outputs": [
767
- {
768
- "internalType": "bool",
769
- "name": "",
770
- "type": "bool"
771
- }
772
- ],
773
- "stateMutability": "view",
774
- "type": "function"
775
- },
776
- {
777
- "inputs": [
778
- {
779
- "internalType": "address",
780
- "name": "token",
781
- "type": "address"
782
- }
783
- ],
784
- "name": "isTokenApproved",
785
- "outputs": [
786
- {
787
- "internalType": "bool",
788
- "name": "",
789
- "type": "bool"
790
- }
791
- ],
792
- "stateMutability": "view",
793
- "type": "function"
794
- },
795
- {
796
- "inputs": [
797
- {
798
- "internalType": "address",
799
- "name": "",
800
- "type": "address"
801
- },
802
567
  {
803
568
  "internalType": "address",
804
569
  "name": "",
@@ -819,30 +584,17 @@
819
584
  {
820
585
  "inputs": [
821
586
  {
822
- "internalType": "address",
823
- "name": "gauge",
824
- "type": "address"
587
+ "internalType": "bytes32",
588
+ "name": "role",
589
+ "type": "bytes32"
825
590
  },
826
591
  {
827
592
  "internalType": "address",
828
- "name": "token",
829
- "type": "address"
830
- }
831
- ],
832
- "name": "removeGaugeRewardToken",
833
- "outputs": [],
834
- "stateMutability": "nonpayable",
835
- "type": "function"
836
- },
837
- {
838
- "inputs": [
839
- {
840
- "internalType": "address",
841
- "name": "token",
593
+ "name": "callerConfirmation",
842
594
  "type": "address"
843
595
  }
844
596
  ],
845
- "name": "removeRewardToken",
597
+ "name": "renounceRole",
846
598
  "outputs": [],
847
599
  "stateMutability": "nonpayable",
848
600
  "type": "function"
@@ -856,31 +608,26 @@
856
608
  },
857
609
  {
858
610
  "internalType": "address",
859
- "name": "callerConfirmation",
611
+ "name": "account",
860
612
  "type": "address"
861
613
  }
862
614
  ],
863
- "name": "renounceRole",
615
+ "name": "revokeRole",
864
616
  "outputs": [],
865
617
  "stateMutability": "nonpayable",
866
618
  "type": "function"
867
619
  },
868
620
  {
869
- "inputs": [
870
- {
871
- "internalType": "bytes32",
872
- "name": "role",
873
- "type": "bytes32"
874
- },
621
+ "inputs": [],
622
+ "name": "rewardToken",
623
+ "outputs": [
875
624
  {
876
625
  "internalType": "address",
877
- "name": "account",
626
+ "name": "",
878
627
  "type": "address"
879
628
  }
880
629
  ],
881
- "name": "revokeRole",
882
- "outputs": [],
883
- "stateMutability": "nonpayable",
630
+ "stateMutability": "view",
884
631
  "type": "function"
885
632
  },
886
633
  {
@@ -907,11 +654,6 @@
907
654
  "internalType": "uint256",
908
655
  "name": "totalClaimable",
909
656
  "type": "uint256"
910
- },
911
- {
912
- "internalType": "bool",
913
- "name": "isActive",
914
- "type": "bool"
915
657
  }
916
658
  ],
917
659
  "stateMutability": "view",
@@ -919,21 +661,15 @@
919
661
  },
920
662
  {
921
663
  "inputs": [
922
- {
923
- "internalType": "uint256",
924
- "name": "",
925
- "type": "uint256"
926
- }
927
- ],
928
- "name": "rewardTokens",
929
- "outputs": [
930
664
  {
931
665
  "internalType": "address",
932
- "name": "",
666
+ "name": "_controller",
933
667
  "type": "address"
934
668
  }
935
669
  ],
936
- "stateMutability": "view",
670
+ "name": "setController",
671
+ "outputs": [],
672
+ "stateMutability": "nonpayable",
937
673
  "type": "function"
938
674
  },
939
675
  {
@@ -967,10 +703,53 @@
967
703
  ],
968
704
  "stateMutability": "view",
969
705
  "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "address",
711
+ "name": "gauge",
712
+ "type": "address"
713
+ },
714
+ {
715
+ "internalType": "address",
716
+ "name": "recipient",
717
+ "type": "address"
718
+ }
719
+ ],
720
+ "name": "withdrawRemovedGaugeRewards",
721
+ "outputs": [
722
+ {
723
+ "internalType": "uint256",
724
+ "name": "totalWithdrawn",
725
+ "type": "uint256"
726
+ }
727
+ ],
728
+ "stateMutability": "nonpayable",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [
733
+ {
734
+ "internalType": "address",
735
+ "name": "recipient",
736
+ "type": "address"
737
+ }
738
+ ],
739
+ "name": "withdrawUnallocatedRewards",
740
+ "outputs": [
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "totalWithdrawn",
744
+ "type": "uint256"
745
+ }
746
+ ],
747
+ "stateMutability": "nonpayable",
748
+ "type": "function"
970
749
  }
971
750
  ],
972
- "bytecode": "0x60a0346100f057601f611d7138819003918201601f19168301916001600160401b038311848410176100f4578084926020946040528339810103126100f057516001600160a01b038116908190036100f0576001805580156100e15760805262093a80420462093a8081029080820462093a8014901517156100cd57600a5561008733610108565b506100913361017e565b50604051611aff908161021282396080518181816101ea0152818161064301528181610a4601528181610db2015281816110ab01526113f30152f35b634e487b7160e01b5f52601160045260245ffd5b63e6c4247b60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381165f9081525f516020611d515f395f51905f52602052604090205460ff16610179576001600160a01b03165f8181525f516020611d515f395f51905f5260205260408120805460ff191660011790553391905f516020611d115f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f516020611d315f395f51905f52602052604090205460ff16610179576001600160a01b03165f8181525f516020611d315f395f51905f5260205260408120805460ff191660011790553391907f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001905f516020611d115f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146116c75750806307f8a1d21461168f57806309149322146116685780630d93eda9146109f45780631c03e6cc146115945780631c674025146114e45780631e2de0d114611398578063248a9ca314611372578063267b5852146112005780632f2ff15d146111cf57806333101abd146108af5780633556d8481461104657806336568abe146110025780633d509c9714610e9b57806347e7ef2414610d19578063551512de14610c615780635f96a04e14610c1d5780636558954f14610c005780636c24a76f14610b765780637bb7bed114610b3457806382e5d07314610b1757806391d1485414610acf5780639379c14e14610a7557806399eecb3b14610a315780639d93d352146109f4578063a217fddf146109da578063a2c8b177146109bd578063b2989f5d14610906578063b54e2b14146108af578063c4f59f9b14610822578063d08832d31461060f578063d398b425146105b0578063d547741f14610578578063d9c12e7b146105285763fd1a0e9f1461019d575f80fd5b34610488576040366003190112610488576101b661171a565b6101be611730565b906101c76118ed565b60405163aa79979b60e01b81526001600160a01b03808316600483018190525f937f000000000000000000000000000000000000000000000000000000000000000090921692909190602081602481875afa908115610494575f916104f9575b50156104ea57815f52600560205260405f2060018060a01b0386165f5260205260ff60405f205416156104db57604051635cbeecf160e11b8152602081600481875afa908115610494575f916104a9575b50825f52600760205260405f2060018060a01b0387165f5260205260405f205495861561049f575b93956001600160a01b03909416935b81811115610360575060209550825f526007865260405f20845f52865260405f205583806102e6575b859060018055604051908152f35b61032591845f5260038752600260405f206001810161030685825461181e565b9055018054838082106103575761031c91611811565b905b5584611a15565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a35f8080836102d8565b50505f9061031e565b845f52600660205260405f20815f5260205260405f2054806103a1575b5062093a808101809111156102af575b634e487b7160e01b5f52601160045260245ffd5b604051636ca32ae760e01b815290602082806103c186896004840161182b565b03815f8d5af1918215610494575f9261045d575b50816103e2575b5061037d565b670de0b6b3a7640000916103f591611846565b04845f52600860205260405f20865f5260205260405f20825f5260205260405f2054808211156103dc579661042e610455939883611811565b91865f52600860205260405f20885f5260205260405f20895f5260205260405f205561181e565b945f806103dc565b9091506020813d821161048c575b81610478602093836117a0565b810103126104885751905f6103d5565b5f80fd5b3d915061046b565b6040513d5f823e3d90fd5b600a5496506102a0565b90506020813d6020116104d3575b816104c4602093836117a0565b8101031261048857515f610278565b3d91506104b7565b6332da96a360e01b5f5260045ffd5b6325d939f560e01b5f5260045ffd5b61051b915060203d602011610521575b61051381836117a0565b8101906117c3565b5f610227565b503d610509565b346104885760403660031901126104885761054161171a565b610549611730565b6001600160a01b039182165f908152600760209081526040808320949093168252928352819020549051908152f35b34610488576040366003190112610488576105ae600435610597611730565b906105a96105a4826117db565b6118b5565b611995565b005b34610488576020366003190112610488576001600160a01b036105d161171a565b165f526003602052608060405f2080549060018101549060ff6003600283015492015416916040519384526020840152604083015215156060820152f35b346104885760403660031901126104885761062861171a565b610630611730565b604051635cbeecf160e11b815290915f917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa918215610494575f926107ee575b5060018060a01b03831692835f52600760205260405f2060018060a01b0387165f5260205260405f20549586156107e4575b92956001600160a01b03909316925b868111156106d657602086604051908152f35b835f52600660205260405f20815f5260205260405f205480610716575b5062093a808101809111156106c357634e487b7160e01b5f52601160045260245ffd5b60405163283dd2f160e11b8152906020828061073686886004840161182b565b0381885afa918215610494575f926107b1575b5081610756575b506106f3565b670de0b6b3a76400009161076991611846565b04855f52600860205260405f20855f5260205260405f20825f5260205260405f20549081811115610750576107a99297916107a391611811565b9061181e565b948780610750565b9091506020813d82116107dc575b816107cc602093836117a0565b8101031261048857519089610749565b3d91506107bf565b600a5496506106b4565b9091506020813d60201161081a575b8161080a602093836117a0565b8101031261048857519085610682565b3d91506107fd565b34610488575f36600319011261048857604051600280548083525f91825260208301917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace91905b8181106108905761088c85610880818703826117a0565b60405191829182611746565b0390f35b82546001600160a01b0316845260209093019260019283019201610869565b34610488576040366003190112610488576108c861171a565b6108d0611730565b9060018060a01b03165f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346104885760203660031901126104885760246001600160a01b0361092961171a565b16805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa918215610494575f92610988575b60809450604051938452602084015260408301526060820152f35b91506020843d6020116109b5575b816109a3602093836117a0565b8101031261048857608093519161096d565b3d9150610996565b34610488575f366003190112610488576020600a54604051908152f35b34610488575f3660031901126104885760206040515f8152f35b34610488576020366003190112610488576001600160a01b03610a1561171a565b165f526004602052602060ff60405f2054166040519015158152f35b34610488575f366003190112610488576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048857606036600319011261048857610a8e61171a565b610a96611730565b6001600160a01b039182165f90815260086020908152604080832094909316825292835281812060443582528352819020549051908152f35b3461048857604036600319011261048857610ae8611730565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610488575f366003190112610488576020600254604051908152f35b346104885760203660031901126104885760043560025481101561048857610b5d602091611788565b905460405160039290921b1c6001600160a01b03168152f35b3461048857602036600319011261048857602460206001600160a01b03610b9b61171a565b16604051928380926370a0823160e01b82523060048301525afa8015610494575f90610bcd575b602090604051908152f35b506020813d602011610bf8575b81610be7602093836117a0565b810103126104885760209051610bc2565b3d9150610bda565b34610488575f36600319011261048857602060405162093a808152f35b34610488576040366003190112610488576001600160a01b03610c3e61171a565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461048857606036600319011261048857610c7a61171a565b6024356044356001600160a01b03811680820361048857335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610d025715610cf3578115610ce4576105ae926001600160a01b0316611a15565b63162908e360e11b5f5260045ffd5b63e6c4247b60e01b5f5260045ffd5b63e2517d3f60e01b5f52336004525f60245260445ffd5b3461048857604036600319011261048857610d3261171a565b60243590610d3e6118ed565b6001600160a01b03165f8181526004602052604090205460ff16156104db578115610ce457610d9d6040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610d976084826117a0565b82611a51565b604051635cbeecf160e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610494575f91610e69575b50815f52600660205260405f20905f5260205260405f20610e0c83825461181e565b9055805f526003602052600260405f20610e2784825461181e565b815501610e3583825461181e565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011610e93575b81610e84602093836117a0565b81010312610488575183610dea565b3d9150610e77565b3461048857602036600319011261048857610eb461171a565b610ebc611859565b6001600160a01b03165f8181526004602052604090205460ff16156104db575f5b6002549081811015610ffb5782610ef382611788565b905460039190911b1c6001600160a01b031614610f14576001915001610edd565b5f19820191821161038d57610f46610f2e610f6a93611788565b905460039190911b1c6001600160a01b031691611788565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b6002548015610fe7575f1901610f7f81611788565b81549060018060a01b039060031b1b191690556002555b805f52600460205260405f2060ff198154169055805f526003602052600360405f200160ff1981541690557f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf50095f80a2005b634e487b7160e01b5f52603160045260245ffd5b5050610f96565b346104885760403660031901126104885761101b611730565b336001600160a01b03821603611037576105ae90600435611995565b63334bd91960e11b5f5260045ffd5b346104885760403660031901126104885761105f61171a565b611067611730565b61106f611859565b6001600160a01b0316908115610cf35760405163aa79979b60e01b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610494575f916111b0575b50156104ea57815f52600460205260ff60405f205416156104db57805f52600560205260405f20825f5260205260ff60405f2054166111a157805f52600560205260405f20825f5260205260405f20600160ff19825416179055803b156104885760405163ecc68a2960e01b8152600481018390523060248201525f8160448183865af1801561049457611191575b507fcffa3d5cf4b061f61869933356c62e4ef383d412f4f370937ce056d465b8efc85f80a3005b5f61119b916117a0565b8261116a565b6389f2a03b60e01b5f5260045ffd5b6111c9915060203d6020116105215761051381836117a0565b836110db565b34610488576040366003190112610488576105ae6004356111ee611730565b906111fb6105a4826117db565b61190d565b346104885760203660031901126104885761121961171a565b6002546001600160a01b03909116905f90815b818110611318575061123d826117fa565b9161124b60405193846117a0565b80835261125a601f19916117fa565b013660208401375f925f5b82811061127a576040518061088c8682611746565b815f52600560205260405f2061128f82611788565b905460039190911b1c6001600160a01b03165f908152602091909152604090205460ff166112c0575b600101611265565b936112ca85611788565b9054855160039290921b1c6001600160a01b03169082101561130457816112fc91602060019460051b880101526117ec565b9490506112b8565b634e487b7160e01b5f52603260045260245ffd5b835f52600560205260405f2061132d82611788565b905460039190911b1c6001600160a01b03165f908152602091909152604090205460ff1661135e575b60010161122c565b9161136a6001916117ec565b929050611356565b346104885760203660031901126104885760206113906004356117db565b604051908152f35b34610488576020366003190112610488576004356001600160401b0381116104885736602382011215610488576004810135906001600160401b038211610488573660248360051b8301011161048857906113f16118ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915f5b828110156114de576024600582901b830101356001600160a01b03811691908290036104885760405163aa79979b60e01b815260048101839052602081602481895afa908115610494575f916114c0575b50156104ea57813b15610488575f8092602460405180958193631ac6d19d60e01b83523360048401525af1918215610494576001926114b0575b500161141e565b5f6114ba916117a0565b856114a9565b6114d8915060203d81116105215761051381836117a0565b8661146f565b60018055005b34610488576040366003190112610488576114fd61171a565b611505611730565b9061150e611859565b60018060a01b031690815f52600560205260405f2060018060a01b0382165f5260205260ff60405f205416156104db575f8281526005602090815260408083206001600160a01b0394909416808452939091528120805460ff191690559091907f3059906eaa8b08fdd2e4730ae3e1a124d7abaa15e07f84a533aa12749d6525549080a3005b34610488576020366003190112610488576115ad61171a565b6115b5611859565b6001600160a01b038116908115610cf357815f52600460205260ff60405f2054166111a157815f52600460205260405f20600160ff19825416179055815f526003602052600360405f2001600160ff1982541617905560025490600160401b82101561165457610f4682600161162e9401600255611788565b7ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf8265f80a2005b634e487b7160e01b5f52604160045260245ffd5b34610488575f3660031901126104885760206040515f516020611aaa5f395f51905f528152f35b34610488576020366003190112610488576001600160a01b036116b061171a565b165f526009602052602060405f2054604051908152f35b34610488576020366003190112610488576004359063ffffffff60e01b821680920361048857602091637965db0b60e01b8114908115611709575b5015158152f35b6301ffc9a760e01b14905083611702565b600435906001600160a01b038216820361048857565b602435906001600160a01b038216820361048857565b60206040818301928281528451809452019201905f5b8181106117695750505090565b82516001600160a01b031684526020938401939092019160010161175c565b6002548110156113045760025f5260205f2001905f90565b601f909101601f19168101906001600160401b0382119082101761165457604052565b90816020910312610488575180151581036104885790565b5f525f602052600160405f20015490565b5f19811461038d5760010190565b6001600160401b0381116116545760051b60200190565b9190820391821161038d57565b9190820180921161038d57565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561038d57565b335f9081527fcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87602052604090205460ff161561189157565b63e2517d3f60e01b5f52336004525f516020611aaa5f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156118d75750565b63e2517d3f60e01b5f523360045260245260445ffd5b6002600154146118fe576002600155565b633ee5aeb560e01b5f5260045ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661198f575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561198f575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b611a4a611a4f9392611a3c60405194859263a9059cbb60e01b60208501526024840161182b565b03601f1981018452836117a0565b611a51565b565b905f602091828151910182855af115610494575f513d611aa057506001600160a01b0381163b155b611a805750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611a7956fe558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001a26469706673582212209522a7f12b04320dc3dcbe271485a40ec610f2c7123c7ef886e4150e7490979364736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
973
- "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146116c75750806307f8a1d21461168f57806309149322146116685780630d93eda9146109f45780631c03e6cc146115945780631c674025146114e45780631e2de0d114611398578063248a9ca314611372578063267b5852146112005780632f2ff15d146111cf57806333101abd146108af5780633556d8481461104657806336568abe146110025780633d509c9714610e9b57806347e7ef2414610d19578063551512de14610c615780635f96a04e14610c1d5780636558954f14610c005780636c24a76f14610b765780637bb7bed114610b3457806382e5d07314610b1757806391d1485414610acf5780639379c14e14610a7557806399eecb3b14610a315780639d93d352146109f4578063a217fddf146109da578063a2c8b177146109bd578063b2989f5d14610906578063b54e2b14146108af578063c4f59f9b14610822578063d08832d31461060f578063d398b425146105b0578063d547741f14610578578063d9c12e7b146105285763fd1a0e9f1461019d575f80fd5b34610488576040366003190112610488576101b661171a565b6101be611730565b906101c76118ed565b60405163aa79979b60e01b81526001600160a01b03808316600483018190525f937f000000000000000000000000000000000000000000000000000000000000000090921692909190602081602481875afa908115610494575f916104f9575b50156104ea57815f52600560205260405f2060018060a01b0386165f5260205260ff60405f205416156104db57604051635cbeecf160e11b8152602081600481875afa908115610494575f916104a9575b50825f52600760205260405f2060018060a01b0387165f5260205260405f205495861561049f575b93956001600160a01b03909416935b81811115610360575060209550825f526007865260405f20845f52865260405f205583806102e6575b859060018055604051908152f35b61032591845f5260038752600260405f206001810161030685825461181e565b9055018054838082106103575761031c91611811565b905b5584611a15565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a35f8080836102d8565b50505f9061031e565b845f52600660205260405f20815f5260205260405f2054806103a1575b5062093a808101809111156102af575b634e487b7160e01b5f52601160045260245ffd5b604051636ca32ae760e01b815290602082806103c186896004840161182b565b03815f8d5af1918215610494575f9261045d575b50816103e2575b5061037d565b670de0b6b3a7640000916103f591611846565b04845f52600860205260405f20865f5260205260405f20825f5260205260405f2054808211156103dc579661042e610455939883611811565b91865f52600860205260405f20885f5260205260405f20895f5260205260405f205561181e565b945f806103dc565b9091506020813d821161048c575b81610478602093836117a0565b810103126104885751905f6103d5565b5f80fd5b3d915061046b565b6040513d5f823e3d90fd5b600a5496506102a0565b90506020813d6020116104d3575b816104c4602093836117a0565b8101031261048857515f610278565b3d91506104b7565b6332da96a360e01b5f5260045ffd5b6325d939f560e01b5f5260045ffd5b61051b915060203d602011610521575b61051381836117a0565b8101906117c3565b5f610227565b503d610509565b346104885760403660031901126104885761054161171a565b610549611730565b6001600160a01b039182165f908152600760209081526040808320949093168252928352819020549051908152f35b34610488576040366003190112610488576105ae600435610597611730565b906105a96105a4826117db565b6118b5565b611995565b005b34610488576020366003190112610488576001600160a01b036105d161171a565b165f526003602052608060405f2080549060018101549060ff6003600283015492015416916040519384526020840152604083015215156060820152f35b346104885760403660031901126104885761062861171a565b610630611730565b604051635cbeecf160e11b815290915f917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa918215610494575f926107ee575b5060018060a01b03831692835f52600760205260405f2060018060a01b0387165f5260205260405f20549586156107e4575b92956001600160a01b03909316925b868111156106d657602086604051908152f35b835f52600660205260405f20815f5260205260405f205480610716575b5062093a808101809111156106c357634e487b7160e01b5f52601160045260245ffd5b60405163283dd2f160e11b8152906020828061073686886004840161182b565b0381885afa918215610494575f926107b1575b5081610756575b506106f3565b670de0b6b3a76400009161076991611846565b04855f52600860205260405f20855f5260205260405f20825f5260205260405f20549081811115610750576107a99297916107a391611811565b9061181e565b948780610750565b9091506020813d82116107dc575b816107cc602093836117a0565b8101031261048857519089610749565b3d91506107bf565b600a5496506106b4565b9091506020813d60201161081a575b8161080a602093836117a0565b8101031261048857519085610682565b3d91506107fd565b34610488575f36600319011261048857604051600280548083525f91825260208301917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace91905b8181106108905761088c85610880818703826117a0565b60405191829182611746565b0390f35b82546001600160a01b0316845260209093019260019283019201610869565b34610488576040366003190112610488576108c861171a565b6108d0611730565b9060018060a01b03165f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346104885760203660031901126104885760246001600160a01b0361092961171a565b16805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa918215610494575f92610988575b60809450604051938452602084015260408301526060820152f35b91506020843d6020116109b5575b816109a3602093836117a0565b8101031261048857608093519161096d565b3d9150610996565b34610488575f366003190112610488576020600a54604051908152f35b34610488575f3660031901126104885760206040515f8152f35b34610488576020366003190112610488576001600160a01b03610a1561171a565b165f526004602052602060ff60405f2054166040519015158152f35b34610488575f366003190112610488576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048857606036600319011261048857610a8e61171a565b610a96611730565b6001600160a01b039182165f90815260086020908152604080832094909316825292835281812060443582528352819020549051908152f35b3461048857604036600319011261048857610ae8611730565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610488575f366003190112610488576020600254604051908152f35b346104885760203660031901126104885760043560025481101561048857610b5d602091611788565b905460405160039290921b1c6001600160a01b03168152f35b3461048857602036600319011261048857602460206001600160a01b03610b9b61171a565b16604051928380926370a0823160e01b82523060048301525afa8015610494575f90610bcd575b602090604051908152f35b506020813d602011610bf8575b81610be7602093836117a0565b810103126104885760209051610bc2565b3d9150610bda565b34610488575f36600319011261048857602060405162093a808152f35b34610488576040366003190112610488576001600160a01b03610c3e61171a565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461048857606036600319011261048857610c7a61171a565b6024356044356001600160a01b03811680820361048857335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610d025715610cf3578115610ce4576105ae926001600160a01b0316611a15565b63162908e360e11b5f5260045ffd5b63e6c4247b60e01b5f5260045ffd5b63e2517d3f60e01b5f52336004525f60245260445ffd5b3461048857604036600319011261048857610d3261171a565b60243590610d3e6118ed565b6001600160a01b03165f8181526004602052604090205460ff16156104db578115610ce457610d9d6040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610d976084826117a0565b82611a51565b604051635cbeecf160e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610494575f91610e69575b50815f52600660205260405f20905f5260205260405f20610e0c83825461181e565b9055805f526003602052600260405f20610e2784825461181e565b815501610e3583825461181e565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011610e93575b81610e84602093836117a0565b81010312610488575183610dea565b3d9150610e77565b3461048857602036600319011261048857610eb461171a565b610ebc611859565b6001600160a01b03165f8181526004602052604090205460ff16156104db575f5b6002549081811015610ffb5782610ef382611788565b905460039190911b1c6001600160a01b031614610f14576001915001610edd565b5f19820191821161038d57610f46610f2e610f6a93611788565b905460039190911b1c6001600160a01b031691611788565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b6002548015610fe7575f1901610f7f81611788565b81549060018060a01b039060031b1b191690556002555b805f52600460205260405f2060ff198154169055805f526003602052600360405f200160ff1981541690557f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf50095f80a2005b634e487b7160e01b5f52603160045260245ffd5b5050610f96565b346104885760403660031901126104885761101b611730565b336001600160a01b03821603611037576105ae90600435611995565b63334bd91960e11b5f5260045ffd5b346104885760403660031901126104885761105f61171a565b611067611730565b61106f611859565b6001600160a01b0316908115610cf35760405163aa79979b60e01b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610494575f916111b0575b50156104ea57815f52600460205260ff60405f205416156104db57805f52600560205260405f20825f5260205260ff60405f2054166111a157805f52600560205260405f20825f5260205260405f20600160ff19825416179055803b156104885760405163ecc68a2960e01b8152600481018390523060248201525f8160448183865af1801561049457611191575b507fcffa3d5cf4b061f61869933356c62e4ef383d412f4f370937ce056d465b8efc85f80a3005b5f61119b916117a0565b8261116a565b6389f2a03b60e01b5f5260045ffd5b6111c9915060203d6020116105215761051381836117a0565b836110db565b34610488576040366003190112610488576105ae6004356111ee611730565b906111fb6105a4826117db565b61190d565b346104885760203660031901126104885761121961171a565b6002546001600160a01b03909116905f90815b818110611318575061123d826117fa565b9161124b60405193846117a0565b80835261125a601f19916117fa565b013660208401375f925f5b82811061127a576040518061088c8682611746565b815f52600560205260405f2061128f82611788565b905460039190911b1c6001600160a01b03165f908152602091909152604090205460ff166112c0575b600101611265565b936112ca85611788565b9054855160039290921b1c6001600160a01b03169082101561130457816112fc91602060019460051b880101526117ec565b9490506112b8565b634e487b7160e01b5f52603260045260245ffd5b835f52600560205260405f2061132d82611788565b905460039190911b1c6001600160a01b03165f908152602091909152604090205460ff1661135e575b60010161122c565b9161136a6001916117ec565b929050611356565b346104885760203660031901126104885760206113906004356117db565b604051908152f35b34610488576020366003190112610488576004356001600160401b0381116104885736602382011215610488576004810135906001600160401b038211610488573660248360051b8301011161048857906113f16118ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915f5b828110156114de576024600582901b830101356001600160a01b03811691908290036104885760405163aa79979b60e01b815260048101839052602081602481895afa908115610494575f916114c0575b50156104ea57813b15610488575f8092602460405180958193631ac6d19d60e01b83523360048401525af1918215610494576001926114b0575b500161141e565b5f6114ba916117a0565b856114a9565b6114d8915060203d81116105215761051381836117a0565b8661146f565b60018055005b34610488576040366003190112610488576114fd61171a565b611505611730565b9061150e611859565b60018060a01b031690815f52600560205260405f2060018060a01b0382165f5260205260ff60405f205416156104db575f8281526005602090815260408083206001600160a01b0394909416808452939091528120805460ff191690559091907f3059906eaa8b08fdd2e4730ae3e1a124d7abaa15e07f84a533aa12749d6525549080a3005b34610488576020366003190112610488576115ad61171a565b6115b5611859565b6001600160a01b038116908115610cf357815f52600460205260ff60405f2054166111a157815f52600460205260405f20600160ff19825416179055815f526003602052600360405f2001600160ff1982541617905560025490600160401b82101561165457610f4682600161162e9401600255611788565b7ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf8265f80a2005b634e487b7160e01b5f52604160045260245ffd5b34610488575f3660031901126104885760206040515f516020611aaa5f395f51905f528152f35b34610488576020366003190112610488576001600160a01b036116b061171a565b165f526009602052602060405f2054604051908152f35b34610488576020366003190112610488576004359063ffffffff60e01b821680920361048857602091637965db0b60e01b8114908115611709575b5015158152f35b6301ffc9a760e01b14905083611702565b600435906001600160a01b038216820361048857565b602435906001600160a01b038216820361048857565b60206040818301928281528451809452019201905f5b8181106117695750505090565b82516001600160a01b031684526020938401939092019160010161175c565b6002548110156113045760025f5260205f2001905f90565b601f909101601f19168101906001600160401b0382119082101761165457604052565b90816020910312610488575180151581036104885790565b5f525f602052600160405f20015490565b5f19811461038d5760010190565b6001600160401b0381116116545760051b60200190565b9190820391821161038d57565b9190820180921161038d57565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561038d57565b335f9081527fcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87602052604090205460ff161561189157565b63e2517d3f60e01b5f52336004525f516020611aaa5f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156118d75750565b63e2517d3f60e01b5f523360045260245260445ffd5b6002600154146118fe576002600155565b633ee5aeb560e01b5f5260045ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661198f575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561198f575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b611a4a611a4f9392611a3c60405194859263a9059cbb60e01b60208501526024840161182b565b03601f1981018452836117a0565b611a51565b565b905f602091828151910182855af115610494575f513d611aa057506001600160a01b0381163b155b611a805750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611a7956fe558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001a26469706673582212209522a7f12b04320dc3dcbe271485a40ec610f2c7123c7ef886e4150e7490979364736f6c634300081e0033",
751
+ "bytecode": "0x60a03461012157601f61199b38819003918201601f19168301916001600160401b0383118484101761012557808492604094855283398101031261012157610052602061004b83610139565b9201610139565b60018055906001600160a01b03168015610112576001600160a01b038216156101125760018060a01b0319600254161760025560805262093a80420462093a8081029080820462093a8014901517156100fe576009556100b13361014d565b506100bb336101c3565b506040516116e49081610257823960805181818161018201528181610258015281816103b9015281816106a201528181610abe01528181610e280152610f520152f35b634e487b7160e01b5f52601160045260245ffd5b63e6c4247b60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361012157565b6001600160a01b0381165f9081525f51602061197b5f395f51905f52602052604090205460ff166101be576001600160a01b03165f8181525f51602061197b5f395f51905f5260205260408120805460ff191660011790553391905f51602061193b5f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f51602061195b5f395f51905f52602052604090205460ff166101be576001600160a01b03165f8181525f51602061195b5f395f51905f5260205260408120805460ff191660011790553391907f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001905f51602061193b5f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461132e5750806307f8a1d2146112f657806309149322146112bc5780631e2de0d11461119a578063248a9ca3146111745780632f2ff15d1461114357806336568abe146110ff5780633fcf64be146110bb57806347e7ef2414610f1f5780635f96a04e14610edb578063647428b914610e0d5780636558954f14610df057806371f2f57b14610a3b57806391d14854146109f357806392eefe9b146109ad57806399eecb3b14610985578063a217fddf1461096b578063a2c8b1771461094e578063acf6da4d146105dc578063b3846c9f14610598578063cc2ca03c14610346578063d398b425146102f7578063d547741f146102bf578063f41c33e914610287578063f7c618c1146102435763f8530bb21461013a575f80fd5b3461023f57602036600319011261023f57610153611381565b61015b6115fa565b61016361146b565b6001600160a01b038116905f9082156102305760209260018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f526003855260405f2092600a5491826101c6575b868660018055604051908152f35b7f68d9e3f368cfc3ff5f654fea943c1c0708ca58a91e8a243136c5f0fcda76459d9394955082809261021f9260018a96995f600a556002810161020a86825461145e565b90550161021884825461140d565b905561161a565b604051908152a25f808080806101b8565b63e6c4247b60e01b5f5260045ffd5b5f80fd5b3461023f575f36600319011261023f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023f57602036600319011261023f576001600160a01b036102a8611381565b165f526005602052602060405f2054604051908152f35b3461023f57604036600319011261023f576102f56004356102de611397565b906102f06102eb826113fc565b6114ba565b61157a565b005b3461023f57602036600319011261023f576001600160a01b03610318611381565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b3461023f57602036600319011261023f5761035f611381565b600254604051635cbeecf160e11b8152915f916001600160a01b0316602084600481845afa93841561053b575f94610564575b506001600160a01b0382165f8181526005602052604090205494909290851561055a575b947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905b868111156103f657602086604051908152f35b815f52600460205260405f20815f5260205260405f20548061043d575b5062093a80810180911161042957955b956103e3565b634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20825f5260205260405f2054811115610546576040805163283dd2f160e11b81529190828061047b868960048401611430565b0381895afa801561053b575f925f91610507575b50156104f257816104a1575b50610413565b670de0b6b3a7640000916104b49161144b565b04855f52600660205260405f20825f5260205260405f2054908181111561049b576104ea9297916104e49161145e565b9061140d565b94878061049b565b505062093a8081018091116104295795610423565b905061052b91925060403d8111610534575b61052381836113ad565b81019061141a565b9190918a61048f565b503d610519565b6040513d5f823e3d90fd5b5062093a8081018091116104295795610423565b60095495506103b6565b9093506020813d602011610590575b81610580602093836113ad565b8101031261023f57519284610392565b3d9150610573565b3461023f57604036600319011261023f576001600160a01b036105b9611381565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f576105f5611381565b6105fd611397565b906106066115fa565b61060e61146b565b5f906001600160a01b038316801561023057600254604051631ddb007160e21b81526001600160a01b0384811660048301819052921695906020816024818a5afa90811561053b575f9161091f575b5061091057602060049660405197888092635cbeecf160e11b82525afa95861561053b575f966108dc575b50815f52600560205260405f20549586156108d2575b93957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694905b81811115610776575060209650825f526005875260405f205584806106fb575b869060018055604051908152f35b61073a91855f5260038852600260405f206001810161071b85825461140d565b90550180548380821061076d576107319161145e565b905b558561161a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a482808080846106ed565b50505f90610733565b855f52600460205260405f20815f5260205260405f205480151590816107ae575b505062093a80810180911161042957965b966106cd565b6107dd9160408460018060a01b03600254168d5f8451809881958294636ca32ae760e01b845260048401611430565b03925af1801561053b575f935f916108ae575b501590816108a6575b5061086b57811561079757670de0b6b3a7640000916108179161144b565b04845f52600660205260405f20825f5260205260405f205480821115610797579761084661086393998361145e565b91865f52600660205260405f208a5f5260205260405f205561140d565b958880610797565b6108909150875f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911161042957966107a8565b90508b6107f9565b90506108c991935060403d81116105345761052381836113ad565b9290928c6107f0565b600954965061069e565b9095506020813d602011610908575b816108f8602093836113ad565b8101031261023f57519486610688565b3d91506108eb565b63aefde05360e01b5f5260045ffd5b610941915060203d602011610947575b61093981836113ad565b8101906113e4565b8761065d565b503d61092f565b3461023f575f36600319011261023f576020600954604051908152f35b3461023f575f36600319011261023f5760206040515f8152f35b3461023f575f36600319011261023f576002546040516001600160a01b039091168152602090f35b3461023f57602036600319011261023f576109c6611381565b6109ce61146b565b6001600160a01b0316801561023057600280546001600160a01b031916919091179055005b3461023f57604036600319011261023f57610a0c611397565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461023f57602036600319011261023f57610a54611381565b610a5c6115fa565b6001600160a01b038116905f9033839003610de257600254604051631ddb007160e21b8152600481018590526001600160a01b039091169390602081602481885afa90811561053b575f91610dc3575b5015610db45760049360018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f526003602052602060405f209260405197888092635cbeecf160e11b82525afa95861561053b575f96610d80575b50825f52600560205260405f20548015610d77575b86811115610bc257508490602096845f526005885260405f205581610b52575b868260018055604051908152f35b6002836001610b869501610b6785825461140d565b905501805483808210610bb957610b7d9161145e565b905b558461161a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610b44565b50505f90610b7f565b845f52600460205260405f20815f5260205260405f205480151580610c06575b505062093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20835f5260205260405f2054821115610be25760025460408051636ca32ae760e01b8152929183906001600160a01b0316815f81610c538a8c60048401611430565b03925af1801561053b575f925f91610d53575b50159081610d4b575b50610d01578015610be257610c8d670de0b6b3a7640000918361144b565b0490855f52600660205260405f20835f5260205260405f2054808311610cb4575b50610be2565b90610cc4610cf89499928461145e565b92875f52600660205260405f208a5f5260205260405f2055865f52600760205260405f20895f5260205260405f205561140d565b94878080610cae565b50610d2690865f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b90508a610c6f565b9050610d6e91925060403d81116105345761052381836113ad565b9190918b610c66565b50600954610b24565b9095506020813d602011610dac575b81610d9c602093836113ad565b8101031261023f57519486610b0f565b3d9150610d8f565b63d4220bed60e01b5f5260045ffd5b610ddc915060203d6020116109475761093981836113ad565b85610aac565b6282b42960e81b5f5260045ffd5b3461023f575f36600319011261023f57602060405162093a808152f35b3461023f575f36600319011261023f57602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa91821561053b575f92610ea6575b60809450604051938452602084015260408301526060820152f35b91506020843d602011610ed3575b81610ec1602093836113ad565b8101031261023f576080935191610e8b565b3d9150610eb4565b3461023f57604036600319011261023f576001600160a01b03610efc611381565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57610f38611381565b60243590610f446115fa565b6001600160a01b03908116907f00000000000000000000000000000000000000000000000000000000000000001681036110ac57811561109d57610fb86040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610fb26084826113ad565b82611656565b600254604051635cbeecf160e11b815290602090829060049082906001600160a01b03165afa90811561053b575f9161106b575b50815f52600460205260405f20905f5260205260405f2061100e83825461140d565b9055805f526003602052600260405f2061102984825461140d565b81550161103783825461140d565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011611095575b81611086602093836113ad565b8101031261023f575183610fec565b3d9150611079565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b3461023f57604036600319011261023f576001600160a01b036110dc611381565b165f52600760205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57611118611397565b336001600160a01b03821603611134576102f59060043561157a565b63334bd91960e11b5f5260045ffd5b3461023f57604036600319011261023f576102f5600435611162611397565b9061116f6102eb826113fc565b6114f2565b3461023f57602036600319011261023f5760206111926004356113fc565b604051908152f35b3461023f57602036600319011261023f576004356001600160401b03811161023f573660238201121561023f576004810135906001600160401b03821161023f573660248360051b8301011161023f575f5b828110156102f5576024600582901b830101356001600160a01b038116919082900361023f57600254604051631ddb007160e21b81526004810184905290602090829060249082906001600160a01b03165afa90811561053b575f9161129e575b5015610db457813b1561023f575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561053b5760019261128e575b50016111ec565b5f611298916113ad565b84611287565b6112b6915060203d81116109475761093981836113ad565b8561124d565b3461023f575f36600319011261023f5760206040517f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf40018152f35b3461023f57602036600319011261023f576001600160a01b03611317611381565b165f526008602052602060405f2054604051908152f35b3461023f57602036600319011261023f576004359063ffffffff60e01b821680920361023f57602091637965db0b60e01b8114908115611370575b5015158152f35b6301ffc9a760e01b14905083611369565b600435906001600160a01b038216820361023f57565b602435906001600160a01b038216820361023f57565b601f909101601f19168101906001600160401b038211908210176113d057604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261023f5751801515810361023f5790565b5f525f602052600160405f20015490565b9190820180921161042957565b919082604091031261023f576020825192015190565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561042957565b9190820391821161042957565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156114a357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156114dc5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60026001541461160b576002600155565b633ee5aeb560e01b5f5260045ffd5b61164f611654939261164160405194859263a9059cbb60e01b602085015260248401611430565b03601f1981018452836113ad565b611656565b565b905f602091828151910182855af11561053b575f513d6116a557506001600160a01b0381163b155b6116855750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561167e56fea2646970667358221220d0cf44ca8bd64853664406727f333e4870105331f9f9f9afebc8eea2cf50ba3e64736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
752
+ "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461132e5750806307f8a1d2146112f657806309149322146112bc5780631e2de0d11461119a578063248a9ca3146111745780632f2ff15d1461114357806336568abe146110ff5780633fcf64be146110bb57806347e7ef2414610f1f5780635f96a04e14610edb578063647428b914610e0d5780636558954f14610df057806371f2f57b14610a3b57806391d14854146109f357806392eefe9b146109ad57806399eecb3b14610985578063a217fddf1461096b578063a2c8b1771461094e578063acf6da4d146105dc578063b3846c9f14610598578063cc2ca03c14610346578063d398b425146102f7578063d547741f146102bf578063f41c33e914610287578063f7c618c1146102435763f8530bb21461013a575f80fd5b3461023f57602036600319011261023f57610153611381565b61015b6115fa565b61016361146b565b6001600160a01b038116905f9082156102305760209260018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f526003855260405f2092600a5491826101c6575b868660018055604051908152f35b7f68d9e3f368cfc3ff5f654fea943c1c0708ca58a91e8a243136c5f0fcda76459d9394955082809261021f9260018a96995f600a556002810161020a86825461145e565b90550161021884825461140d565b905561161a565b604051908152a25f808080806101b8565b63e6c4247b60e01b5f5260045ffd5b5f80fd5b3461023f575f36600319011261023f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023f57602036600319011261023f576001600160a01b036102a8611381565b165f526005602052602060405f2054604051908152f35b3461023f57604036600319011261023f576102f56004356102de611397565b906102f06102eb826113fc565b6114ba565b61157a565b005b3461023f57602036600319011261023f576001600160a01b03610318611381565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b3461023f57602036600319011261023f5761035f611381565b600254604051635cbeecf160e11b8152915f916001600160a01b0316602084600481845afa93841561053b575f94610564575b506001600160a01b0382165f8181526005602052604090205494909290851561055a575b947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905b868111156103f657602086604051908152f35b815f52600460205260405f20815f5260205260405f20548061043d575b5062093a80810180911161042957955b956103e3565b634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20825f5260205260405f2054811115610546576040805163283dd2f160e11b81529190828061047b868960048401611430565b0381895afa801561053b575f925f91610507575b50156104f257816104a1575b50610413565b670de0b6b3a7640000916104b49161144b565b04855f52600660205260405f20825f5260205260405f2054908181111561049b576104ea9297916104e49161145e565b9061140d565b94878061049b565b505062093a8081018091116104295795610423565b905061052b91925060403d8111610534575b61052381836113ad565b81019061141a565b9190918a61048f565b503d610519565b6040513d5f823e3d90fd5b5062093a8081018091116104295795610423565b60095495506103b6565b9093506020813d602011610590575b81610580602093836113ad565b8101031261023f57519284610392565b3d9150610573565b3461023f57604036600319011261023f576001600160a01b036105b9611381565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f576105f5611381565b6105fd611397565b906106066115fa565b61060e61146b565b5f906001600160a01b038316801561023057600254604051631ddb007160e21b81526001600160a01b0384811660048301819052921695906020816024818a5afa90811561053b575f9161091f575b5061091057602060049660405197888092635cbeecf160e11b82525afa95861561053b575f966108dc575b50815f52600560205260405f20549586156108d2575b93957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694905b81811115610776575060209650825f526005875260405f205584806106fb575b869060018055604051908152f35b61073a91855f5260038852600260405f206001810161071b85825461140d565b90550180548380821061076d576107319161145e565b905b558561161a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a482808080846106ed565b50505f90610733565b855f52600460205260405f20815f5260205260405f205480151590816107ae575b505062093a80810180911161042957965b966106cd565b6107dd9160408460018060a01b03600254168d5f8451809881958294636ca32ae760e01b845260048401611430565b03925af1801561053b575f935f916108ae575b501590816108a6575b5061086b57811561079757670de0b6b3a7640000916108179161144b565b04845f52600660205260405f20825f5260205260405f205480821115610797579761084661086393998361145e565b91865f52600660205260405f208a5f5260205260405f205561140d565b958880610797565b6108909150875f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911161042957966107a8565b90508b6107f9565b90506108c991935060403d81116105345761052381836113ad565b9290928c6107f0565b600954965061069e565b9095506020813d602011610908575b816108f8602093836113ad565b8101031261023f57519486610688565b3d91506108eb565b63aefde05360e01b5f5260045ffd5b610941915060203d602011610947575b61093981836113ad565b8101906113e4565b8761065d565b503d61092f565b3461023f575f36600319011261023f576020600954604051908152f35b3461023f575f36600319011261023f5760206040515f8152f35b3461023f575f36600319011261023f576002546040516001600160a01b039091168152602090f35b3461023f57602036600319011261023f576109c6611381565b6109ce61146b565b6001600160a01b0316801561023057600280546001600160a01b031916919091179055005b3461023f57604036600319011261023f57610a0c611397565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461023f57602036600319011261023f57610a54611381565b610a5c6115fa565b6001600160a01b038116905f9033839003610de257600254604051631ddb007160e21b8152600481018590526001600160a01b039091169390602081602481885afa90811561053b575f91610dc3575b5015610db45760049360018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f526003602052602060405f209260405197888092635cbeecf160e11b82525afa95861561053b575f96610d80575b50825f52600560205260405f20548015610d77575b86811115610bc257508490602096845f526005885260405f205581610b52575b868260018055604051908152f35b6002836001610b869501610b6785825461140d565b905501805483808210610bb957610b7d9161145e565b905b558461161a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610b44565b50505f90610b7f565b845f52600460205260405f20815f5260205260405f205480151580610c06575b505062093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20835f5260205260405f2054821115610be25760025460408051636ca32ae760e01b8152929183906001600160a01b0316815f81610c538a8c60048401611430565b03925af1801561053b575f925f91610d53575b50159081610d4b575b50610d01578015610be257610c8d670de0b6b3a7640000918361144b565b0490855f52600660205260405f20835f5260205260405f2054808311610cb4575b50610be2565b90610cc4610cf89499928461145e565b92875f52600660205260405f208a5f5260205260405f2055865f52600760205260405f20895f5260205260405f205561140d565b94878080610cae565b50610d2690865f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b90508a610c6f565b9050610d6e91925060403d81116105345761052381836113ad565b9190918b610c66565b50600954610b24565b9095506020813d602011610dac575b81610d9c602093836113ad565b8101031261023f57519486610b0f565b3d9150610d8f565b63d4220bed60e01b5f5260045ffd5b610ddc915060203d6020116109475761093981836113ad565b85610aac565b6282b42960e81b5f5260045ffd5b3461023f575f36600319011261023f57602060405162093a808152f35b3461023f575f36600319011261023f57602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa91821561053b575f92610ea6575b60809450604051938452602084015260408301526060820152f35b91506020843d602011610ed3575b81610ec1602093836113ad565b8101031261023f576080935191610e8b565b3d9150610eb4565b3461023f57604036600319011261023f576001600160a01b03610efc611381565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57610f38611381565b60243590610f446115fa565b6001600160a01b03908116907f00000000000000000000000000000000000000000000000000000000000000001681036110ac57811561109d57610fb86040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610fb26084826113ad565b82611656565b600254604051635cbeecf160e11b815290602090829060049082906001600160a01b03165afa90811561053b575f9161106b575b50815f52600460205260405f20905f5260205260405f2061100e83825461140d565b9055805f526003602052600260405f2061102984825461140d565b81550161103783825461140d565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011611095575b81611086602093836113ad565b8101031261023f575183610fec565b3d9150611079565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b3461023f57604036600319011261023f576001600160a01b036110dc611381565b165f52600760205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57611118611397565b336001600160a01b03821603611134576102f59060043561157a565b63334bd91960e11b5f5260045ffd5b3461023f57604036600319011261023f576102f5600435611162611397565b9061116f6102eb826113fc565b6114f2565b3461023f57602036600319011261023f5760206111926004356113fc565b604051908152f35b3461023f57602036600319011261023f576004356001600160401b03811161023f573660238201121561023f576004810135906001600160401b03821161023f573660248360051b8301011161023f575f5b828110156102f5576024600582901b830101356001600160a01b038116919082900361023f57600254604051631ddb007160e21b81526004810184905290602090829060249082906001600160a01b03165afa90811561053b575f9161129e575b5015610db457813b1561023f575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561053b5760019261128e575b50016111ec565b5f611298916113ad565b84611287565b6112b6915060203d81116109475761093981836113ad565b8561124d565b3461023f575f36600319011261023f5760206040517f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf40018152f35b3461023f57602036600319011261023f576001600160a01b03611317611381565b165f526008602052602060405f2054604051908152f35b3461023f57602036600319011261023f576004359063ffffffff60e01b821680920361023f57602091637965db0b60e01b8114908115611370575b5015158152f35b6301ffc9a760e01b14905083611369565b600435906001600160a01b038216820361023f57565b602435906001600160a01b038216820361023f57565b601f909101601f19168101906001600160401b038211908210176113d057604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261023f5751801515810361023f5790565b5f525f602052600160405f20015490565b9190820180921161042957565b919082604091031261023f576020825192015190565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561042957565b9190820391821161042957565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156114a357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156114dc5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60026001541461160b576002600155565b633ee5aeb560e01b5f5260045ffd5b61164f611654939261164160405194859263a9059cbb60e01b602085015260248401611430565b03601f1981018452836113ad565b611656565b565b905f602091828151910182855af11561053b575f513d6116a557506001600160a01b0381163b155b6116855750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561167e56fea2646970667358221220d0cf44ca8bd64853664406727f333e4870105331f9f9f9afebc8eea2cf50ba3e64736f6c634300081e0033",
974
753
  "linkReferences": {},
975
754
  "deployedLinkReferences": {}
976
755
  }