@raac/rpc 1.2.0-beta.10 → 1.2.0-beta.12

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 (243) hide show
  1. package/dist/RPCLibrary.js +2 -0
  2. package/dist/artifacts/core/governance/gauges/BaseGauge.sol/BaseGauge.json +113 -20
  3. package/dist/artifacts/core/governance/gauges/GaugeController.sol/GaugeController.json +259 -31
  4. package/dist/artifacts/core/governance/gauges/GaugeRewardsDistributor.sol/GaugeRewardsDistributor.json +159 -31
  5. package/dist/artifacts/core/governance/gauges/RAACGauge.sol/RAACGauge.json +115 -22
  6. package/dist/artifacts/core/governance/gauges/RWAGauge.sol/RWAGauge.json +115 -22
  7. package/dist/configs/chains/1.json +22 -25
  8. package/dist/configs/chains/11155111.json +76 -112
  9. package/dist/configs/chains/17000.json +22 -25
  10. package/dist/configs/chains/18453.json +22 -25
  11. package/dist/configs/chains/8453.json +61 -31
  12. package/dist/contracts/findContract.js +11 -4
  13. package/dist/contracts/getContractAddress.js +0 -1
  14. package/dist/contracts/governance/distributor/claimAll.js +18 -11
  15. package/dist/contracts/governance/distributor/claimForGauge.js +18 -12
  16. package/dist/contracts/governance/distributor/deposit.js +17 -12
  17. package/dist/contracts/governance/distributor/getClaimableForGauge.js +10 -9
  18. package/dist/contracts/governance/distributor/getClaimedAtEpoch.js +11 -10
  19. package/dist/contracts/governance/distributor/getDepositedAtEpoch.js +8 -8
  20. package/dist/contracts/governance/distributor/getDustLastProcessedEpoch.js +28 -0
  21. package/dist/contracts/governance/distributor/getGaugeController.js +7 -7
  22. package/dist/contracts/governance/distributor/getLastClaimedEpoch.js +10 -9
  23. package/dist/contracts/governance/distributor/getMaxClaimBound.js +29 -0
  24. package/dist/contracts/governance/distributor/getPeriodDuration.js +7 -7
  25. package/dist/contracts/governance/distributor/getRewardToken.js +7 -7
  26. package/dist/contracts/governance/distributor/getRewardTokenInfo.js +7 -7
  27. package/dist/contracts/governance/distributor/getRewardTokenStats.js +7 -7
  28. package/dist/contracts/governance/distributor/index.js +5 -2
  29. package/dist/contracts/governance/distributor/setController.js +17 -12
  30. package/dist/contracts/governance/distributor/setLastClaimedEpoch.js +32 -0
  31. package/dist/contracts/governance/distributor/setMaxClaimBound.js +31 -0
  32. package/dist/contracts/governance/distributor/withdrawDust.js +31 -0
  33. package/dist/contracts/governance/distributor/withdrawRemovedGaugeRewards.js +19 -13
  34. package/dist/contracts/governance/gauge/_apy.js +122 -0
  35. package/dist/contracts/governance/gauge/_tokens.js +36 -0
  36. package/dist/contracts/governance/gauge/addRewardToken.js +2 -12
  37. package/dist/contracts/governance/gauge/approveGaugeToken.js +31 -0
  38. package/dist/contracts/governance/gauge/claimExtraReward.js +2 -12
  39. package/dist/contracts/governance/gauge/claimExtraRewards.js +2 -12
  40. package/dist/contracts/governance/gauge/claimOnBehalfOf.js +2 -12
  41. package/dist/contracts/governance/gauge/claimRewardToken.js +3 -13
  42. package/dist/contracts/governance/gauge/claimRewardsFor.js +2 -12
  43. package/dist/contracts/governance/gauge/depositRewardToken.js +2 -12
  44. package/dist/contracts/governance/gauge/getAllPendingExtraRewards.js +2 -9
  45. package/dist/contracts/governance/gauge/getApy.js +44 -0
  46. package/dist/contracts/governance/gauge/getBalanceOf.js +2 -15
  47. package/dist/contracts/governance/gauge/getControllerAddress.js +2 -9
  48. package/dist/contracts/governance/gauge/getDecimalAdjustment.js +2 -9
  49. package/dist/contracts/governance/gauge/getDepositRAACOnClaim.js +2 -9
  50. package/dist/contracts/governance/gauge/getDistributorData.js +2 -9
  51. package/dist/contracts/governance/gauge/getDistributors.js +2 -9
  52. package/dist/contracts/governance/gauge/getEarnedExtraReward.js +30 -0
  53. package/dist/contracts/governance/gauge/getEarnedReward.js +8 -14
  54. package/dist/contracts/governance/gauge/getExtraRewardTokens.js +2 -9
  55. package/dist/contracts/governance/gauge/getGaugeData.js +39 -0
  56. package/dist/contracts/governance/gauge/getGaugeRewardTokenData.js +2 -9
  57. package/dist/contracts/governance/gauge/getPauseStatus.js +31 -0
  58. package/dist/contracts/governance/gauge/getPendingExtraRewards.js +2 -9
  59. package/dist/contracts/governance/gauge/getPendingRewards.js +8 -14
  60. package/dist/contracts/governance/gauge/getPeriodBoundaries.js +2 -15
  61. package/dist/contracts/governance/gauge/getPeriodDuration.js +2 -15
  62. package/dist/contracts/governance/gauge/getRaacAutolockMin.js +2 -9
  63. package/dist/contracts/governance/gauge/getRawBalanceOf.js +2 -15
  64. package/dist/contracts/governance/gauge/getRawTotalSupply.js +2 -15
  65. package/dist/contracts/governance/gauge/getRewardTokens.js +28 -0
  66. package/dist/contracts/governance/gauge/getTotalSupply.js +2 -15
  67. package/dist/contracts/governance/gauge/getUserApy.js +71 -0
  68. package/dist/contracts/governance/gauge/getUserClaimableRewards.js +21 -73
  69. package/dist/contracts/governance/gauge/getUserGaugeState.js +44 -0
  70. package/dist/contracts/governance/gauge/getUserRewardTokenData.js +2 -9
  71. package/dist/contracts/governance/gauge/getUserWeight.js +2 -9
  72. package/dist/contracts/governance/gauge/index.js +11 -1
  73. package/dist/contracts/governance/gauge/isPaused.js +4 -11
  74. package/dist/contracts/governance/gauge/manageDistributor.js +2 -12
  75. package/dist/contracts/governance/gauge/pullRewardsFromDistributor.js +30 -0
  76. package/dist/contracts/governance/gauge/setController.js +2 -12
  77. package/dist/contracts/governance/gauge/setDepositRAACOnClaim.js +2 -12
  78. package/dist/contracts/governance/gauge/setEmergencyPaused.js +2 -12
  79. package/dist/contracts/governance/gauge/setGaugeRewardDistributor.js +2 -12
  80. package/dist/contracts/governance/gauge/setRaacAutolockMin.js +2 -12
  81. package/dist/contracts/governance/gauge/stake.js +2 -18
  82. package/dist/contracts/governance/gauge/unwrapStakingToken.js +28 -0
  83. package/dist/contracts/governance/gauge/updateUserRewards.js +2 -18
  84. package/dist/contracts/governance/gauge/withdraw.js +2 -18
  85. package/dist/contracts/governance/gauge/wrapStakingToken.js +28 -0
  86. package/dist/contracts/governance/gaugeController/addGauge.js +19 -11
  87. package/dist/contracts/governance/gaugeController/batchVote.js +20 -12
  88. package/dist/contracts/governance/gaugeController/calculateBoost.js +20 -23
  89. package/dist/contracts/governance/gaugeController/forceCompleteCheckpoint.js +19 -11
  90. package/dist/contracts/governance/gaugeController/getActiveGaugeCount.js +28 -0
  91. package/dist/contracts/governance/gaugeController/getActiveGauges.js +10 -13
  92. package/dist/contracts/governance/gaugeController/getConstants.js +10 -18
  93. package/dist/contracts/governance/gaugeController/getCurrentEpoch.js +8 -7
  94. package/dist/contracts/governance/gaugeController/getExpiredGaugeVotePower.js +30 -0
  95. package/dist/contracts/governance/gaugeController/getGauge.js +11 -9
  96. package/dist/contracts/governance/gaugeController/getGaugeDistributor.js +28 -0
  97. package/dist/contracts/governance/gaugeController/getGaugeEmissions.js +15 -9
  98. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeight.js +19 -15
  99. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeightView.js +12 -10
  100. package/dist/contracts/governance/gaugeController/getGaugeWeight.js +10 -8
  101. package/dist/contracts/governance/gaugeController/getLastVoteTime.js +11 -9
  102. package/dist/contracts/governance/gaugeController/getMaxVoteBuckets.js +28 -0
  103. package/dist/contracts/governance/gaugeController/getNextEpoch.js +8 -7
  104. package/dist/contracts/governance/gaugeController/getRegisteredGaugeList.js +28 -0
  105. package/dist/contracts/governance/gaugeController/getTotalWeight.js +8 -7
  106. package/dist/contracts/governance/gaugeController/getUserGaugeVotePower.js +11 -9
  107. package/dist/contracts/governance/gaugeController/getUserVotePowerRemaining.js +10 -9
  108. package/dist/contracts/governance/gaugeController/getVeToken.js +8 -7
  109. package/dist/contracts/governance/gaugeController/getVoteUserLocks.js +32 -0
  110. package/dist/contracts/governance/gaugeController/getVoteUserPower.js +8 -7
  111. package/dist/contracts/governance/gaugeController/getVoteUserSlope.js +12 -10
  112. package/dist/contracts/governance/gaugeController/index.js +10 -1
  113. package/dist/contracts/governance/gaugeController/isGaugeActive.js +11 -9
  114. package/dist/contracts/governance/gaugeController/isPaused.js +9 -8
  115. package/dist/contracts/governance/gaugeController/kick.js +17 -10
  116. package/dist/contracts/governance/gaugeController/removeGauge.js +20 -11
  117. package/dist/contracts/governance/gaugeController/removePowerFromGauge.js +19 -11
  118. package/dist/contracts/governance/gaugeController/setBoostAmplificationEnabled.js +20 -12
  119. package/dist/contracts/governance/gaugeController/setDistributor.js +31 -0
  120. package/dist/contracts/governance/gaugeController/setEmergencyGaugePause.js +20 -12
  121. package/dist/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.js +33 -0
  122. package/dist/contracts/governance/gaugeController/setEmergencyPause.js +18 -11
  123. package/dist/contracts/governance/gaugeController/setMaxVoteBuckets.js +31 -0
  124. package/dist/contracts/governance/gaugeController/vote.js +15 -16
  125. package/dist/contracts/governance/gaugeSystems/_helpers.js +123 -0
  126. package/dist/contracts/governance/gaugeSystems/findGauge.js +14 -0
  127. package/dist/contracts/governance/gaugeSystems/getGaugeSystem.js +14 -0
  128. package/dist/contracts/governance/gaugeSystems/getGaugeSystems.js +13 -0
  129. package/dist/contracts/governance/gaugeSystems/getGauges.js +15 -0
  130. package/dist/contracts/governance/gaugeSystems/index.js +21 -0
  131. package/dist/types/RPCLibrary.d.ts +2 -0
  132. package/dist/types/configs/chains/index.d.ts +36 -46
  133. package/dist/types/configs/index.d.ts +18 -23
  134. package/dist/types/contracts/governance/distributor/claimAll.d.ts +7 -5
  135. package/dist/types/contracts/governance/distributor/claimForGauge.d.ts +7 -6
  136. package/dist/types/contracts/governance/distributor/deposit.d.ts +7 -6
  137. package/dist/types/contracts/governance/distributor/getClaimableForGauge.d.ts +6 -4
  138. package/dist/types/contracts/governance/distributor/getClaimedAtEpoch.d.ts +7 -5
  139. package/dist/types/contracts/governance/distributor/getDepositedAtEpoch.d.ts +6 -4
  140. package/dist/types/contracts/governance/distributor/getDustLastProcessedEpoch.d.ts +12 -0
  141. package/dist/types/contracts/governance/distributor/getGaugeController.d.ts +5 -3
  142. package/dist/types/contracts/governance/distributor/getLastClaimedEpoch.d.ts +6 -4
  143. package/dist/types/contracts/governance/distributor/getMaxClaimBound.d.ts +15 -0
  144. package/dist/types/contracts/governance/distributor/getPeriodDuration.d.ts +5 -3
  145. package/dist/types/contracts/governance/distributor/getRewardToken.d.ts +5 -3
  146. package/dist/types/contracts/governance/distributor/getRewardTokenInfo.d.ts +5 -3
  147. package/dist/types/contracts/governance/distributor/getRewardTokenStats.d.ts +5 -3
  148. package/dist/types/contracts/governance/distributor/index.d.ts +5 -2
  149. package/dist/types/contracts/governance/distributor/setController.d.ts +7 -6
  150. package/dist/types/contracts/governance/distributor/setLastClaimedEpoch.d.ts +13 -0
  151. package/dist/types/contracts/governance/distributor/setMaxClaimBound.d.ts +13 -0
  152. package/dist/types/contracts/governance/distributor/withdrawDust.d.ts +13 -0
  153. package/dist/types/contracts/governance/distributor/withdrawRemovedGaugeRewards.d.ts +8 -7
  154. package/dist/types/contracts/governance/gauge/_apy.d.ts +61 -0
  155. package/dist/types/contracts/governance/gauge/_tokens.d.ts +14 -0
  156. package/dist/types/contracts/governance/gauge/approveGaugeToken.d.ts +14 -0
  157. package/dist/types/contracts/governance/gauge/claimRewardToken.d.ts +1 -1
  158. package/dist/types/contracts/governance/gauge/getApy.d.ts +41 -0
  159. package/dist/types/contracts/governance/gauge/getEarnedExtraReward.d.ts +13 -0
  160. package/dist/types/contracts/governance/gauge/getEarnedReward.d.ts +3 -2
  161. package/dist/types/contracts/governance/gauge/getGaugeData.d.ts +23 -0
  162. package/dist/types/contracts/governance/gauge/getPauseStatus.d.ts +19 -0
  163. package/dist/types/contracts/governance/gauge/getPendingRewards.d.ts +3 -2
  164. package/dist/types/contracts/governance/gauge/getRewardTokens.d.ts +11 -0
  165. package/dist/types/contracts/governance/gauge/getUserApy.d.ts +44 -0
  166. package/dist/types/contracts/governance/gauge/getUserClaimableRewards.d.ts +14 -12
  167. package/dist/types/contracts/governance/gauge/getUserGaugeState.d.ts +31 -0
  168. package/dist/types/contracts/governance/gauge/index.d.ts +11 -1
  169. package/dist/types/contracts/governance/gauge/isPaused.d.ts +1 -1
  170. package/dist/types/contracts/governance/gauge/pullRewardsFromDistributor.d.ts +11 -0
  171. package/dist/types/contracts/governance/gauge/unwrapStakingToken.d.ts +12 -0
  172. package/dist/types/contracts/governance/gauge/wrapStakingToken.d.ts +13 -0
  173. package/dist/types/contracts/governance/gaugeController/addGauge.d.ts +8 -5
  174. package/dist/types/contracts/governance/gaugeController/batchVote.d.ts +9 -6
  175. package/dist/types/contracts/governance/gaugeController/calculateBoost.d.ts +10 -8
  176. package/dist/types/contracts/governance/gaugeController/forceCompleteCheckpoint.d.ts +8 -5
  177. package/dist/types/contracts/governance/gaugeController/getActiveGaugeCount.d.ts +12 -0
  178. package/dist/types/contracts/governance/gaugeController/getActiveGauges.d.ts +7 -3
  179. package/dist/types/contracts/governance/gaugeController/getConstants.d.ts +6 -4
  180. package/dist/types/contracts/governance/gaugeController/getCurrentEpoch.d.ts +6 -3
  181. package/dist/types/contracts/governance/gaugeController/getExpiredGaugeVotePower.d.ts +16 -0
  182. package/dist/types/contracts/governance/gaugeController/getGauge.d.ts +7 -4
  183. package/dist/types/contracts/governance/gaugeController/getGaugeDistributor.d.ts +12 -0
  184. package/dist/types/contracts/governance/gaugeController/getGaugeEmissions.d.ts +6 -3
  185. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeight.d.ts +8 -9
  186. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeightView.d.ts +8 -5
  187. package/dist/types/contracts/governance/gaugeController/getGaugeWeight.d.ts +6 -4
  188. package/dist/types/contracts/governance/gaugeController/getLastVoteTime.d.ts +7 -4
  189. package/dist/types/contracts/governance/gaugeController/getMaxVoteBuckets.d.ts +12 -0
  190. package/dist/types/contracts/governance/gaugeController/getNextEpoch.d.ts +6 -3
  191. package/dist/types/contracts/governance/gaugeController/getRegisteredGaugeList.d.ts +12 -0
  192. package/dist/types/contracts/governance/gaugeController/getTotalWeight.d.ts +5 -3
  193. package/dist/types/contracts/governance/gaugeController/getUserGaugeVotePower.d.ts +7 -4
  194. package/dist/types/contracts/governance/gaugeController/getUserVotePowerRemaining.d.ts +6 -4
  195. package/dist/types/contracts/governance/gaugeController/getVeToken.d.ts +6 -3
  196. package/dist/types/contracts/governance/gaugeController/getVoteUserLocks.d.ts +17 -0
  197. package/dist/types/contracts/governance/gaugeController/getVoteUserPower.d.ts +6 -3
  198. package/dist/types/contracts/governance/gaugeController/getVoteUserSlope.d.ts +8 -5
  199. package/dist/types/contracts/governance/gaugeController/index.d.ts +10 -1
  200. package/dist/types/contracts/governance/gaugeController/isGaugeActive.d.ts +6 -4
  201. package/dist/types/contracts/governance/gaugeController/isPaused.d.ts +6 -3
  202. package/dist/types/contracts/governance/gaugeController/kick.d.ts +7 -4
  203. package/dist/types/contracts/governance/gaugeController/removeGauge.d.ts +9 -5
  204. package/dist/types/contracts/governance/gaugeController/removePowerFromGauge.d.ts +8 -5
  205. package/dist/types/contracts/governance/gaugeController/setBoostAmplificationEnabled.d.ts +9 -6
  206. package/dist/types/contracts/governance/gaugeController/setDistributor.d.ts +13 -0
  207. package/dist/types/contracts/governance/gaugeController/setEmergencyGaugePause.d.ts +9 -6
  208. package/dist/types/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.d.ts +14 -0
  209. package/dist/types/contracts/governance/gaugeController/setEmergencyPause.d.ts +8 -5
  210. package/dist/types/contracts/governance/gaugeController/setMaxVoteBuckets.d.ts +13 -0
  211. package/dist/types/contracts/governance/gaugeController/vote.d.ts +9 -7
  212. package/dist/types/contracts/governance/gaugeSystems/_helpers.d.ts +71 -0
  213. package/dist/types/contracts/governance/gaugeSystems/findGauge.d.ts +11 -0
  214. package/dist/types/contracts/governance/gaugeSystems/getGaugeSystem.d.ts +11 -0
  215. package/dist/types/contracts/governance/gaugeSystems/getGaugeSystems.d.ts +10 -0
  216. package/dist/types/contracts/governance/gaugeSystems/getGauges.d.ts +13 -0
  217. package/dist/types/contracts/governance/gaugeSystems/index.d.ts +5 -0
  218. package/dist/types/typechain-types/contracts/core/governance/gauges/BaseGauge.d.ts +176 -105
  219. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeController.d.ts +260 -213
  220. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeRewardsDistributor.d.ts +173 -212
  221. package/dist/types/typechain-types/contracts/core/governance/gauges/RAACGauge.d.ts +176 -105
  222. package/dist/types/typechain-types/contracts/core/governance/gauges/RWAGauge.d.ts +176 -105
  223. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IBaseGauge.d.ts +111 -108
  224. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeController.d.ts +210 -34
  225. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor.d.ts +112 -151
  226. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/BaseGauge__factory.d.ts +174 -95
  227. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +243 -227
  228. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +164 -232
  229. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +185 -98
  230. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +185 -98
  231. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IBaseGauge__factory.d.ts +104 -95
  232. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeController__factory.d.ts +241 -22
  233. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor__factory.d.ts +72 -158
  234. package/dist/types/utils/artifacts.d.ts +40 -0
  235. package/dist/types/utils/contracts.d.ts +34 -44
  236. package/dist/utils/contracts.js +1 -1
  237. package/package.json +1 -1
  238. package/dist/contracts/governance/distributor/getStartEpoch.js +0 -28
  239. package/dist/contracts/governance/distributor/withdrawUnallocatedRewards.js +0 -26
  240. package/dist/contracts/governance/gauge/setDistributorApproval.js +0 -35
  241. package/dist/types/contracts/governance/distributor/getStartEpoch.d.ts +0 -10
  242. package/dist/types/contracts/governance/distributor/withdrawUnallocatedRewards.d.ts +0 -12
  243. package/dist/types/contracts/governance/gauge/setDistributorApproval.d.ts +0 -11
@@ -86,6 +86,82 @@
86
86
  "name": "Unauthorized",
87
87
  "type": "error"
88
88
  },
89
+ {
90
+ "anonymous": false,
91
+ "inputs": [
92
+ {
93
+ "indexed": true,
94
+ "internalType": "address",
95
+ "name": "oldController",
96
+ "type": "address"
97
+ },
98
+ {
99
+ "indexed": true,
100
+ "internalType": "address",
101
+ "name": "newController",
102
+ "type": "address"
103
+ }
104
+ ],
105
+ "name": "ControllerUpdated",
106
+ "type": "event"
107
+ },
108
+ {
109
+ "anonymous": false,
110
+ "inputs": [
111
+ {
112
+ "indexed": true,
113
+ "internalType": "address",
114
+ "name": "recipient",
115
+ "type": "address"
116
+ },
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "token",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": false,
125
+ "internalType": "uint256",
126
+ "name": "amount",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "DustWithdrawn",
131
+ "type": "event"
132
+ },
133
+ {
134
+ "anonymous": false,
135
+ "inputs": [
136
+ {
137
+ "indexed": false,
138
+ "internalType": "address",
139
+ "name": "gauge",
140
+ "type": "address"
141
+ },
142
+ {
143
+ "indexed": false,
144
+ "internalType": "uint256",
145
+ "name": "currentEpoch",
146
+ "type": "uint256"
147
+ }
148
+ ],
149
+ "name": "GaugeLastClaimedEpochUpdated",
150
+ "type": "event"
151
+ },
152
+ {
153
+ "anonymous": false,
154
+ "inputs": [
155
+ {
156
+ "indexed": false,
157
+ "internalType": "bool",
158
+ "name": "enabled",
159
+ "type": "bool"
160
+ }
161
+ ],
162
+ "name": "MaxClaimBoundUpdated",
163
+ "type": "event"
164
+ },
89
165
  {
90
166
  "anonymous": false,
91
167
  "inputs": [
@@ -137,6 +213,12 @@
137
213
  "internalType": "uint256",
138
214
  "name": "amount",
139
215
  "type": "uint256"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "uint256",
220
+ "name": "depositedEpoch",
221
+ "type": "uint256"
140
222
  }
141
223
  ],
142
224
  "name": "RewardDeposited",
@@ -243,23 +325,17 @@
243
325
  "type": "event"
244
326
  },
245
327
  {
246
- "anonymous": false,
247
- "inputs": [
248
- {
249
- "indexed": true,
250
- "internalType": "address",
251
- "name": "recipient",
252
- "type": "address"
253
- },
328
+ "inputs": [],
329
+ "name": "CONTROLLER_ROLE",
330
+ "outputs": [
254
331
  {
255
- "indexed": false,
256
- "internalType": "uint256",
257
- "name": "amount",
258
- "type": "uint256"
332
+ "internalType": "bytes32",
333
+ "name": "",
334
+ "type": "bytes32"
259
335
  }
260
336
  ],
261
- "name": "UnallocatedRewardsWithdrawn",
262
- "type": "event"
337
+ "stateMutability": "view",
338
+ "type": "function"
263
339
  },
264
340
  {
265
341
  "inputs": [],
@@ -287,6 +363,19 @@
287
363
  "stateMutability": "view",
288
364
  "type": "function"
289
365
  },
366
+ {
367
+ "inputs": [],
368
+ "name": "MAX_EPOCHS",
369
+ "outputs": [
370
+ {
371
+ "internalType": "uint256",
372
+ "name": "",
373
+ "type": "uint256"
374
+ }
375
+ ],
376
+ "stateMutability": "view",
377
+ "type": "function"
378
+ },
290
379
  {
291
380
  "inputs": [],
292
381
  "name": "PERIOD_DURATION",
@@ -422,6 +511,32 @@
422
511
  "stateMutability": "view",
423
512
  "type": "function"
424
513
  },
514
+ {
515
+ "inputs": [],
516
+ "name": "dustLastProcessedEpoch",
517
+ "outputs": [
518
+ {
519
+ "internalType": "uint256",
520
+ "name": "",
521
+ "type": "uint256"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [],
529
+ "name": "enableMaxClaimBound",
530
+ "outputs": [
531
+ {
532
+ "internalType": "bool",
533
+ "name": "",
534
+ "type": "bool"
535
+ }
536
+ ],
537
+ "stateMutability": "view",
538
+ "type": "function"
539
+ },
425
540
  {
426
541
  "inputs": [],
427
542
  "name": "gaugeController",
@@ -673,16 +788,29 @@
673
788
  "type": "function"
674
789
  },
675
790
  {
676
- "inputs": [],
677
- "name": "startEpoch",
678
- "outputs": [
791
+ "inputs": [
679
792
  {
680
- "internalType": "uint256",
681
- "name": "",
682
- "type": "uint256"
793
+ "internalType": "address",
794
+ "name": "gauge",
795
+ "type": "address"
683
796
  }
684
797
  ],
685
- "stateMutability": "view",
798
+ "name": "setLastClaimedEpoch",
799
+ "outputs": [],
800
+ "stateMutability": "nonpayable",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ {
806
+ "internalType": "bool",
807
+ "name": "enable",
808
+ "type": "bool"
809
+ }
810
+ ],
811
+ "name": "setMaxClaimBound",
812
+ "outputs": [],
813
+ "stateMutability": "nonpayable",
686
814
  "type": "function"
687
815
  },
688
816
  {
@@ -706,22 +834,17 @@
706
834
  },
707
835
  {
708
836
  "inputs": [
709
- {
710
- "internalType": "address",
711
- "name": "gauge",
712
- "type": "address"
713
- },
714
837
  {
715
838
  "internalType": "address",
716
839
  "name": "recipient",
717
840
  "type": "address"
718
841
  }
719
842
  ],
720
- "name": "withdrawRemovedGaugeRewards",
843
+ "name": "withdrawDust",
721
844
  "outputs": [
722
845
  {
723
846
  "internalType": "uint256",
724
- "name": "totalWithdrawn",
847
+ "name": "totalDustWithdrawn",
725
848
  "type": "uint256"
726
849
  }
727
850
  ],
@@ -730,13 +853,18 @@
730
853
  },
731
854
  {
732
855
  "inputs": [
856
+ {
857
+ "internalType": "address",
858
+ "name": "gauge",
859
+ "type": "address"
860
+ },
733
861
  {
734
862
  "internalType": "address",
735
863
  "name": "recipient",
736
864
  "type": "address"
737
865
  }
738
866
  ],
739
- "name": "withdrawUnallocatedRewards",
867
+ "name": "withdrawRemovedGaugeRewards",
740
868
  "outputs": [
741
869
  {
742
870
  "internalType": "uint256",
@@ -748,8 +876,8 @@
748
876
  "type": "function"
749
877
  }
750
878
  ],
751
- "bytecode": "0x60a03461012157601f61199b38819003918201601f19168301916001600160401b0383118484101761012557808492604094855283398101031261012157610052602061004b83610139565b9201610139565b60018055906001600160a01b03168015610112576001600160a01b038216156101125760018060a01b0319600254161760025560805262093a80420462093a8081029080820462093a8014901517156100fe576009556100b13361014d565b506100bb336101c3565b506040516116e49081610257823960805181818161018201528181610258015281816103b9015281816106a201528181610abe01528181610e280152610f520152f35b634e487b7160e01b5f52601160045260245ffd5b63e6c4247b60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361012157565b6001600160a01b0381165f9081525f51602061197b5f395f51905f52602052604090205460ff166101be576001600160a01b03165f8181525f51602061197b5f395f51905f5260205260408120805460ff191660011790553391905f51602061193b5f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f51602061195b5f395f51905f52602052604090205460ff166101be576001600160a01b03165f8181525f51602061195b5f395f51905f5260205260408120805460ff191660011790553391907f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001905f51602061193b5f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461132e5750806307f8a1d2146112f657806309149322146112bc5780631e2de0d11461119a578063248a9ca3146111745780632f2ff15d1461114357806336568abe146110ff5780633fcf64be146110bb57806347e7ef2414610f1f5780635f96a04e14610edb578063647428b914610e0d5780636558954f14610df057806371f2f57b14610a3b57806391d14854146109f357806392eefe9b146109ad57806399eecb3b14610985578063a217fddf1461096b578063a2c8b1771461094e578063acf6da4d146105dc578063b3846c9f14610598578063cc2ca03c14610346578063d398b425146102f7578063d547741f146102bf578063f41c33e914610287578063f7c618c1146102435763f8530bb21461013a575f80fd5b3461023f57602036600319011261023f57610153611381565b61015b6115fa565b61016361146b565b6001600160a01b038116905f9082156102305760209260018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f526003855260405f2092600a5491826101c6575b868660018055604051908152f35b7f68d9e3f368cfc3ff5f654fea943c1c0708ca58a91e8a243136c5f0fcda76459d9394955082809261021f9260018a96995f600a556002810161020a86825461145e565b90550161021884825461140d565b905561161a565b604051908152a25f808080806101b8565b63e6c4247b60e01b5f5260045ffd5b5f80fd5b3461023f575f36600319011261023f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023f57602036600319011261023f576001600160a01b036102a8611381565b165f526005602052602060405f2054604051908152f35b3461023f57604036600319011261023f576102f56004356102de611397565b906102f06102eb826113fc565b6114ba565b61157a565b005b3461023f57602036600319011261023f576001600160a01b03610318611381565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b3461023f57602036600319011261023f5761035f611381565b600254604051635cbeecf160e11b8152915f916001600160a01b0316602084600481845afa93841561053b575f94610564575b506001600160a01b0382165f8181526005602052604090205494909290851561055a575b947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905b868111156103f657602086604051908152f35b815f52600460205260405f20815f5260205260405f20548061043d575b5062093a80810180911161042957955b956103e3565b634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20825f5260205260405f2054811115610546576040805163283dd2f160e11b81529190828061047b868960048401611430565b0381895afa801561053b575f925f91610507575b50156104f257816104a1575b50610413565b670de0b6b3a7640000916104b49161144b565b04855f52600660205260405f20825f5260205260405f2054908181111561049b576104ea9297916104e49161145e565b9061140d565b94878061049b565b505062093a8081018091116104295795610423565b905061052b91925060403d8111610534575b61052381836113ad565b81019061141a565b9190918a61048f565b503d610519565b6040513d5f823e3d90fd5b5062093a8081018091116104295795610423565b60095495506103b6565b9093506020813d602011610590575b81610580602093836113ad565b8101031261023f57519284610392565b3d9150610573565b3461023f57604036600319011261023f576001600160a01b036105b9611381565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f576105f5611381565b6105fd611397565b906106066115fa565b61060e61146b565b5f906001600160a01b038316801561023057600254604051631ddb007160e21b81526001600160a01b0384811660048301819052921695906020816024818a5afa90811561053b575f9161091f575b5061091057602060049660405197888092635cbeecf160e11b82525afa95861561053b575f966108dc575b50815f52600560205260405f20549586156108d2575b93957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694905b81811115610776575060209650825f526005875260405f205584806106fb575b869060018055604051908152f35b61073a91855f5260038852600260405f206001810161071b85825461140d565b90550180548380821061076d576107319161145e565b905b558561161a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a482808080846106ed565b50505f90610733565b855f52600460205260405f20815f5260205260405f205480151590816107ae575b505062093a80810180911161042957965b966106cd565b6107dd9160408460018060a01b03600254168d5f8451809881958294636ca32ae760e01b845260048401611430565b03925af1801561053b575f935f916108ae575b501590816108a6575b5061086b57811561079757670de0b6b3a7640000916108179161144b565b04845f52600660205260405f20825f5260205260405f205480821115610797579761084661086393998361145e565b91865f52600660205260405f208a5f5260205260405f205561140d565b958880610797565b6108909150875f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911161042957966107a8565b90508b6107f9565b90506108c991935060403d81116105345761052381836113ad565b9290928c6107f0565b600954965061069e565b9095506020813d602011610908575b816108f8602093836113ad565b8101031261023f57519486610688565b3d91506108eb565b63aefde05360e01b5f5260045ffd5b610941915060203d602011610947575b61093981836113ad565b8101906113e4565b8761065d565b503d61092f565b3461023f575f36600319011261023f576020600954604051908152f35b3461023f575f36600319011261023f5760206040515f8152f35b3461023f575f36600319011261023f576002546040516001600160a01b039091168152602090f35b3461023f57602036600319011261023f576109c6611381565b6109ce61146b565b6001600160a01b0316801561023057600280546001600160a01b031916919091179055005b3461023f57604036600319011261023f57610a0c611397565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461023f57602036600319011261023f57610a54611381565b610a5c6115fa565b6001600160a01b038116905f9033839003610de257600254604051631ddb007160e21b8152600481018590526001600160a01b039091169390602081602481885afa90811561053b575f91610dc3575b5015610db45760049360018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f526003602052602060405f209260405197888092635cbeecf160e11b82525afa95861561053b575f96610d80575b50825f52600560205260405f20548015610d77575b86811115610bc257508490602096845f526005885260405f205581610b52575b868260018055604051908152f35b6002836001610b869501610b6785825461140d565b905501805483808210610bb957610b7d9161145e565b905b558461161a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610b44565b50505f90610b7f565b845f52600460205260405f20815f5260205260405f205480151580610c06575b505062093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20835f5260205260405f2054821115610be25760025460408051636ca32ae760e01b8152929183906001600160a01b0316815f81610c538a8c60048401611430565b03925af1801561053b575f925f91610d53575b50159081610d4b575b50610d01578015610be257610c8d670de0b6b3a7640000918361144b565b0490855f52600660205260405f20835f5260205260405f2054808311610cb4575b50610be2565b90610cc4610cf89499928461145e565b92875f52600660205260405f208a5f5260205260405f2055865f52600760205260405f20895f5260205260405f205561140d565b94878080610cae565b50610d2690865f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b90508a610c6f565b9050610d6e91925060403d81116105345761052381836113ad565b9190918b610c66565b50600954610b24565b9095506020813d602011610dac575b81610d9c602093836113ad565b8101031261023f57519486610b0f565b3d9150610d8f565b63d4220bed60e01b5f5260045ffd5b610ddc915060203d6020116109475761093981836113ad565b85610aac565b6282b42960e81b5f5260045ffd5b3461023f575f36600319011261023f57602060405162093a808152f35b3461023f575f36600319011261023f57602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa91821561053b575f92610ea6575b60809450604051938452602084015260408301526060820152f35b91506020843d602011610ed3575b81610ec1602093836113ad565b8101031261023f576080935191610e8b565b3d9150610eb4565b3461023f57604036600319011261023f576001600160a01b03610efc611381565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57610f38611381565b60243590610f446115fa565b6001600160a01b03908116907f00000000000000000000000000000000000000000000000000000000000000001681036110ac57811561109d57610fb86040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610fb26084826113ad565b82611656565b600254604051635cbeecf160e11b815290602090829060049082906001600160a01b03165afa90811561053b575f9161106b575b50815f52600460205260405f20905f5260205260405f2061100e83825461140d565b9055805f526003602052600260405f2061102984825461140d565b81550161103783825461140d565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011611095575b81611086602093836113ad565b8101031261023f575183610fec565b3d9150611079565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b3461023f57604036600319011261023f576001600160a01b036110dc611381565b165f52600760205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57611118611397565b336001600160a01b03821603611134576102f59060043561157a565b63334bd91960e11b5f5260045ffd5b3461023f57604036600319011261023f576102f5600435611162611397565b9061116f6102eb826113fc565b6114f2565b3461023f57602036600319011261023f5760206111926004356113fc565b604051908152f35b3461023f57602036600319011261023f576004356001600160401b03811161023f573660238201121561023f576004810135906001600160401b03821161023f573660248360051b8301011161023f575f5b828110156102f5576024600582901b830101356001600160a01b038116919082900361023f57600254604051631ddb007160e21b81526004810184905290602090829060249082906001600160a01b03165afa90811561053b575f9161129e575b5015610db457813b1561023f575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561053b5760019261128e575b50016111ec565b5f611298916113ad565b84611287565b6112b6915060203d81116109475761093981836113ad565b8561124d565b3461023f575f36600319011261023f5760206040517f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf40018152f35b3461023f57602036600319011261023f576001600160a01b03611317611381565b165f526008602052602060405f2054604051908152f35b3461023f57602036600319011261023f576004359063ffffffff60e01b821680920361023f57602091637965db0b60e01b8114908115611370575b5015158152f35b6301ffc9a760e01b14905083611369565b600435906001600160a01b038216820361023f57565b602435906001600160a01b038216820361023f57565b601f909101601f19168101906001600160401b038211908210176113d057604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261023f5751801515810361023f5790565b5f525f602052600160405f20015490565b9190820180921161042957565b919082604091031261023f576020825192015190565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561042957565b9190820391821161042957565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156114a357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156114dc5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60026001541461160b576002600155565b633ee5aeb560e01b5f5260045ffd5b61164f611654939261164160405194859263a9059cbb60e01b602085015260248401611430565b03601f1981018452836113ad565b611656565b565b905f602091828151910182855af11561053b575f513d6116a557506001600160a01b0381163b155b6116855750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561167e56fea2646970667358221220d0cf44ca8bd64853664406727f333e4870105331f9f9f9afebc8eea2cf50ba3e64736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
752
- "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461132e5750806307f8a1d2146112f657806309149322146112bc5780631e2de0d11461119a578063248a9ca3146111745780632f2ff15d1461114357806336568abe146110ff5780633fcf64be146110bb57806347e7ef2414610f1f5780635f96a04e14610edb578063647428b914610e0d5780636558954f14610df057806371f2f57b14610a3b57806391d14854146109f357806392eefe9b146109ad57806399eecb3b14610985578063a217fddf1461096b578063a2c8b1771461094e578063acf6da4d146105dc578063b3846c9f14610598578063cc2ca03c14610346578063d398b425146102f7578063d547741f146102bf578063f41c33e914610287578063f7c618c1146102435763f8530bb21461013a575f80fd5b3461023f57602036600319011261023f57610153611381565b61015b6115fa565b61016361146b565b6001600160a01b038116905f9082156102305760209260018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f526003855260405f2092600a5491826101c6575b868660018055604051908152f35b7f68d9e3f368cfc3ff5f654fea943c1c0708ca58a91e8a243136c5f0fcda76459d9394955082809261021f9260018a96995f600a556002810161020a86825461145e565b90550161021884825461140d565b905561161a565b604051908152a25f808080806101b8565b63e6c4247b60e01b5f5260045ffd5b5f80fd5b3461023f575f36600319011261023f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023f57602036600319011261023f576001600160a01b036102a8611381565b165f526005602052602060405f2054604051908152f35b3461023f57604036600319011261023f576102f56004356102de611397565b906102f06102eb826113fc565b6114ba565b61157a565b005b3461023f57602036600319011261023f576001600160a01b03610318611381565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b3461023f57602036600319011261023f5761035f611381565b600254604051635cbeecf160e11b8152915f916001600160a01b0316602084600481845afa93841561053b575f94610564575b506001600160a01b0382165f8181526005602052604090205494909290851561055a575b947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905b868111156103f657602086604051908152f35b815f52600460205260405f20815f5260205260405f20548061043d575b5062093a80810180911161042957955b956103e3565b634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20825f5260205260405f2054811115610546576040805163283dd2f160e11b81529190828061047b868960048401611430565b0381895afa801561053b575f925f91610507575b50156104f257816104a1575b50610413565b670de0b6b3a7640000916104b49161144b565b04855f52600660205260405f20825f5260205260405f2054908181111561049b576104ea9297916104e49161145e565b9061140d565b94878061049b565b505062093a8081018091116104295795610423565b905061052b91925060403d8111610534575b61052381836113ad565b81019061141a565b9190918a61048f565b503d610519565b6040513d5f823e3d90fd5b5062093a8081018091116104295795610423565b60095495506103b6565b9093506020813d602011610590575b81610580602093836113ad565b8101031261023f57519284610392565b3d9150610573565b3461023f57604036600319011261023f576001600160a01b036105b9611381565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f576105f5611381565b6105fd611397565b906106066115fa565b61060e61146b565b5f906001600160a01b038316801561023057600254604051631ddb007160e21b81526001600160a01b0384811660048301819052921695906020816024818a5afa90811561053b575f9161091f575b5061091057602060049660405197888092635cbeecf160e11b82525afa95861561053b575f966108dc575b50815f52600560205260405f20549586156108d2575b93957f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694905b81811115610776575060209650825f526005875260405f205584806106fb575b869060018055604051908152f35b61073a91855f5260038852600260405f206001810161071b85825461140d565b90550180548380821061076d576107319161145e565b905b558561161a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a482808080846106ed565b50505f90610733565b855f52600460205260405f20815f5260205260405f205480151590816107ae575b505062093a80810180911161042957965b966106cd565b6107dd9160408460018060a01b03600254168d5f8451809881958294636ca32ae760e01b845260048401611430565b03925af1801561053b575f935f916108ae575b501590816108a6575b5061086b57811561079757670de0b6b3a7640000916108179161144b565b04845f52600660205260405f20825f5260205260405f205480821115610797579761084661086393998361145e565b91865f52600660205260405f208a5f5260205260405f205561140d565b958880610797565b6108909150875f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911161042957966107a8565b90508b6107f9565b90506108c991935060403d81116105345761052381836113ad565b9290928c6107f0565b600954965061069e565b9095506020813d602011610908575b816108f8602093836113ad565b8101031261023f57519486610688565b3d91506108eb565b63aefde05360e01b5f5260045ffd5b610941915060203d602011610947575b61093981836113ad565b8101906113e4565b8761065d565b503d61092f565b3461023f575f36600319011261023f576020600954604051908152f35b3461023f575f36600319011261023f5760206040515f8152f35b3461023f575f36600319011261023f576002546040516001600160a01b039091168152602090f35b3461023f57602036600319011261023f576109c6611381565b6109ce61146b565b6001600160a01b0316801561023057600280546001600160a01b031916919091179055005b3461023f57604036600319011261023f57610a0c611397565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461023f57602036600319011261023f57610a54611381565b610a5c6115fa565b6001600160a01b038116905f9033839003610de257600254604051631ddb007160e21b8152600481018590526001600160a01b039091169390602081602481885afa90811561053b575f91610dc3575b5015610db45760049360018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f526003602052602060405f209260405197888092635cbeecf160e11b82525afa95861561053b575f96610d80575b50825f52600560205260405f20548015610d77575b86811115610bc257508490602096845f526005885260405f205581610b52575b868260018055604051908152f35b6002836001610b869501610b6785825461140d565b905501805483808210610bb957610b7d9161145e565b905b558461161a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610b44565b50505f90610b7f565b845f52600460205260405f20815f5260205260405f205480151580610c06575b505062093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b855f52600760205260405f20835f5260205260405f2054821115610be25760025460408051636ca32ae760e01b8152929183906001600160a01b0316815f81610c538a8c60048401611430565b03925af1801561053b575f925f91610d53575b50159081610d4b575b50610d01578015610be257610c8d670de0b6b3a7640000918361144b565b0490855f52600660205260405f20835f5260205260405f2054808311610cb4575b50610be2565b90610cc4610cf89499928461145e565b92875f52600660205260405f208a5f5260205260405f2055865f52600760205260405f20895f5260205260405f205561140d565b94878080610cae565b50610d2690865f52600460205260405f20835f526020525f6040812055600a5461140d565b600a5562093a80810180911115610b2457634e487b7160e01b5f52601160045260245ffd5b90508a610c6f565b9050610d6e91925060403d81116105345761052381836113ad565b9190918b610c66565b50600954610b24565b9095506020813d602011610dac575b81610d9c602093836113ad565b8101031261023f57519486610b0f565b3d9150610d8f565b63d4220bed60e01b5f5260045ffd5b610ddc915060203d6020116109475761093981836113ad565b85610aac565b6282b42960e81b5f5260045ffd5b3461023f575f36600319011261023f57602060405162093a808152f35b3461023f575f36600319011261023f57602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa91821561053b575f92610ea6575b60809450604051938452602084015260408301526060820152f35b91506020843d602011610ed3575b81610ec1602093836113ad565b8101031261023f576080935191610e8b565b3d9150610eb4565b3461023f57604036600319011261023f576001600160a01b03610efc611381565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57610f38611381565b60243590610f446115fa565b6001600160a01b03908116907f00000000000000000000000000000000000000000000000000000000000000001681036110ac57811561109d57610fb86040516323b872dd60e01b602082015233602482015230604482015283606482015260648152610fb26084826113ad565b82611656565b600254604051635cbeecf160e11b815290602090829060049082906001600160a01b03165afa90811561053b575f9161106b575b50815f52600460205260405f20905f5260205260405f2061100e83825461140d565b9055805f526003602052600260405f2061102984825461140d565b81550161103783825461140d565b90556040519182527fecc7fa2c9c08fa68f2c2942d64a9c92b602004694d2a128c2a034cff48990f5160203393a360018055005b90506020813d602011611095575b81611086602093836113ad565b8101031261023f575183610fec565b3d9150611079565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b3461023f57604036600319011261023f576001600160a01b036110dc611381565b165f52600760205260405f206024355f52602052602060405f2054604051908152f35b3461023f57604036600319011261023f57611118611397565b336001600160a01b03821603611134576102f59060043561157a565b63334bd91960e11b5f5260045ffd5b3461023f57604036600319011261023f576102f5600435611162611397565b9061116f6102eb826113fc565b6114f2565b3461023f57602036600319011261023f5760206111926004356113fc565b604051908152f35b3461023f57602036600319011261023f576004356001600160401b03811161023f573660238201121561023f576004810135906001600160401b03821161023f573660248360051b8301011161023f575f5b828110156102f5576024600582901b830101356001600160a01b038116919082900361023f57600254604051631ddb007160e21b81526004810184905290602090829060249082906001600160a01b03165afa90811561053b575f9161129e575b5015610db457813b1561023f575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561053b5760019261128e575b50016111ec565b5f611298916113ad565b84611287565b6112b6915060203d81116109475761093981836113ad565b8561124d565b3461023f575f36600319011261023f5760206040517f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf40018152f35b3461023f57602036600319011261023f576001600160a01b03611317611381565b165f526008602052602060405f2054604051908152f35b3461023f57602036600319011261023f576004359063ffffffff60e01b821680920361023f57602091637965db0b60e01b8114908115611370575b5015158152f35b6301ffc9a760e01b14905083611369565b600435906001600160a01b038216820361023f57565b602435906001600160a01b038216820361023f57565b601f909101601f19168101906001600160401b038211908210176113d057604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261023f5751801515810361023f5790565b5f525f602052600160405f20015490565b9190820180921161042957565b919082604091031261023f576020825192015190565b6001600160a01b039091168152602081019190915260400190565b8181029291811591840414171561042957565b9190820391821161042957565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156114a357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156114dc5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611574575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60026001541461160b576002600155565b633ee5aeb560e01b5f5260045ffd5b61164f611654939261164160405194859263a9059cbb60e01b602085015260248401611430565b03601f1981018452836113ad565b611656565b565b905f602091828151910182855af11561053b575f513d6116a557506001600160a01b0381163b155b6116855750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561167e56fea2646970667358221220d0cf44ca8bd64853664406727f333e4870105331f9f9f9afebc8eea2cf50ba3e64736f6c634300081e0033",
879
+ "bytecode": "0x60a0806040523461014e576040816122d5803803809161001f8285610174565b83398101031261014e5761003e6020610037836101ab565b92016101ab565b60018055906001600160a01b03811615610165576001600160a01b038216156101655760028054610100600160a81b031916600883811b610100600160a81b03169190911791829055608093909352604051635cbeecf160e11b815292602091849160049183911c6001600160a01b03165afa801561015a575f90610122575b6100df92506008556100cf336101bf565b506100d933610235565b506102c8565b50604051611ef9908161035c82396080518181816101830152818161031a0152818161066501528181610c8e015281816110310152818161115b015261173d0152f35b506020823d602011610152575b8161013c60209383610174565b8101031261014e576100df91516100be565b5f80fd5b3d915061012f565b6040513d5f823e3d90fd5b63e6c4247b60e01b5f5260045ffd5b601f909101601f19168101906001600160401b0382119082101761019757604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361014e57565b6001600160a01b0381165f9081525f5160206122b55f395f51905f52602052604090205460ff16610230576001600160a01b03165f8181525f5160206122b55f395f51905f5260205260408120805460ff191660011790553391905f5160206122555f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f5160206122955f395f51905f52602052604090205460ff16610230576001600160a01b03165f8181525f5160206122955f395f51905f5260205260408120805460ff191660011790553391907f558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf4001905f5160206122555f395f51905f529080a4600190565b6001600160a01b0381165f9081525f5160206122755f395f51905f52602052604090205460ff16610230576001600160a01b03165f8181525f5160206122755f395f51905f5260205260408120805460ff191660011790553391907f7b765e0e932d348852a6f810bfa1ab891e259123f02db8cdcde614c570223357905f5160206122555f395f51905f529080a460019056fe60806040526004361015610011575f80fd5b5f3560e01c806301b99eba1461161b57806301ffc9a7146115c557806307f8a1d21461158d5780630914932214611566578063092c5b3b1461153f5780631e2de0d11461141a578063248a9ca3146113f45780632f2ff15d146113c357806336568abe1461137f5780633fcf64be1461133b57806347e7ef24146111285780635f96a04e146110e4578063647428b9146110165780636558954f14610ff957806367ef64bb14610fdc57806371f2f57b14610c095780637b2aec7214610b0d57806391d1485414610ac557806392eefe9b14610a2857806399eecb3b146109fc5780639a982f2f14610948578063a217fddf1461092e578063a407dee11461090c578063acf6da4d14610576578063b3846c9f14610532578063c8b72f8f14610517578063cc2ca03c14610275578063d398b42514610226578063d547741f146101ee578063f41c33e9146101b65763f7c618c11461016e575f80fd5b346101b2575f3660031901126101b2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346101b25760203660031901126101b2576001600160a01b036101d76119b3565b165f526005602052602060405f2054604051908152f35b346101b25760403660031901126101b25761022460043561020d6119c9565b9061021f61021a82611a58565b611b52565b611d3e565b005b346101b25760203660031901126101b2576001600160a01b036102476119b3565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b346101b25760203660031901126101b25761028e6119b3565b600254604051635cbeecf160e11b8152600882901c6001600160a01b0316925f92909190602082600481885afa918215610494575f926104e2575b5060ff16806104b9575b156104b357506001600160a01b0381165f908152600560205260409020546102fa90611a15565b925b6001600160a01b038281165f818152600560205260409020549093917f000000000000000000000000000000000000000000000000000000000000000016905b8681111561034f57602086604051908152f35b815f52600460205260405f20815f5260205260405f205480610396575b5062093a80810180911161038257955b9561033c565b634e487b7160e01b5f52601160045260245ffd5b855f52600960205260405f20825f5260205260405f205481111561049f576040805163283dd2f160e11b8152919082806103d4868960048401611a7f565b0381895afa8015610494575f925f91610460575b501561044b57816103fa575b5061036c565b670de0b6b3a76400009161040d91611a02565b04855f52600660205260405f20825f5260205260405f205490818111156103f45761044392979161043d91611a33565b90611a26565b9487806103f4565b505062093a808101809111610382579561037c565b905061048491925060403d811161048d575b61047c81836119df565b810190611a69565b9190918a6103e8565b503d610472565b6040513d5f823e3d90fd5b5062093a808101809111610382579561037c565b926102fc565b506001600160a01b0382165f908152600560205260409020546104db90611a15565b81116102d3565b9091506020813d60201161050f575b816104fe602093836119df565b810103126101b257519060ff6102c9565b3d91506104f1565b346101b2575f3660031901126101b257602060405160348152f35b346101b25760403660031901126101b2576001600160a01b036105536119b3565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b25761058f6119b3565b6105976119c9565b906105a0611a9a565b6105a8611b09565b5f906001600160a01b03831680156108ce57600254604051631ddb007160e21b81526001600160a01b038481166004830181905292600881901c90911691602081602481865afa908115610494575f916108dd575b506108ce57602060049260405193848092635cbeecf160e11b82525afa918215610494575f92610899575b5060ff168061087c575b1561087657815f52600560205261064c60405f2054611a15565b905b825f52600560205260405f20549160018060a01b037f00000000000000000000000000000000000000000000000000000000000000001695865f52600360205260405f20935b828111156107425750505062093a808101809111610382576020968691845f526005895260405f2055816106d1575b878260018055604051908152f35b600283600161070595016106e6858254611a26565b905501805483808210610739576106fc91611a33565b905b5585611b8a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a48280808084816106c3565b50505f906106fe565b875f52600460205260405f20815f5260205260405f205480610782575b5062093a8081018091111561069457634e487b7160e01b5f52601160045260245ffd5b6002546040805163283dd2f160e11b81529291839060081c6001600160a01b031681806107b3888a60048401611a7f565b03915afa918215610494575f92610855575b50816107d2575b5061075f565b670de0b6b3a7640000916107e591611a02565b04865f52600660205260405f20825f5260205260405f205490818111156107cc576108136108329282611a33565b9a8b91895f52600660205260405f20855f5260205260405f2055611a26565b98815f526003860160205261084c60405f20918254611a26565b90558a806107cc565b61086e91925060403d811161048d5761047c81836119df565b50908c6107c5565b8061064e565b50815f52600560205261089260405f2054611a15565b8111610632565b9091506020813d6020116108c6575b816108b5602093836119df565b810103126101b257519060ff610628565b3d91506108a8565b63e6c4247b60e01b5f5260045ffd5b6108ff915060203d602011610905575b6108f781836119df565b810190611a40565b886105fd565b503d6108ed565b346101b2575f3660031901126101b257602060ff600254166040519015158152f35b346101b2575f3660031901126101b25760206040515f8152f35b346101b25760203660031901126101b2576004358015158091036101b257335f9081527fcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87602052604090205460ff16156109d85760207f3e1cc01dd8c0719c8d34ff5e45e481434b3116cecb90c595d7539c496d1aac7a9160ff196002541660ff821617600255604051908152a1005b63e2517d3f60e01b5f52336004525f516020611e645f395f51905f5260245260445ffd5b346101b2575f3660031901126101b25760025460405160089190911c6001600160a01b03168152602090f35b346101b25760203660031901126101b257610a416119b3565b610a49611aba565b6001600160a01b0381169081156108ce5760025460081c6001600160a01b031690610a9e90610a7783611cc0565b5060028054610100600160a81b031916600883901b610100600160a81b0316179055611bc6565b507f1c87e2bbc4e5fa5d7f6f8c44d66cb241dff224b8602eb5435ca2076d2a5c6fc25f80a3005b346101b25760403660031901126101b257610ade6119c9565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346101b25760203660031901126101b257610b266119b3565b610b2e611a9a565b610b36611b09565b6001600160a01b0381165f8181526005602052604090205415610b5a575b60018055005b600254604051635cbeecf160e11b815292906020908490600490829060081c6001600160a01b03165afa918215610494575f92610bc8575b5f516020611e845f395f51905f5293505f5260056020528160405f2055610bbe60405192839283611a7f565b0390a18080610b54565b91506020833d602011610c01575b81610be3602093836119df565b810103126101b2575f516020611e845f395f51905f52925191610b92565b3d9150610bd6565b346101b25760203660031901126101b257610c226119b3565b610c2a611a9a565b5f6001600160a01b03821633819003610fce57600254604051631ddb007160e21b815260048101839052909190600883901c6001600160a01b031690602081602481855afa908115610494575f91610faf575b5015610fa057600460018060a01b037f00000000000000000000000000000000000000000000000000000000000000001693845f526003602052602060405f209360405193848092635cbeecf160e11b82525afa918215610494575f92610f6b575b5060ff1680610f4e575b15610f485750815f526005602052610d0460405f2054611a15565b945b825f52600560205260405f20545b86811115610dd957508490602096845f52600588528060405f2054115f14610dd45750835f526005875260405f20545b845f526005885260405f205581610d64575b868260018055604051908152f35b6002836001610d989501610d79858254611a26565b905501805483808210610dcb57610d8f91611a33565b905b5584611b8a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610d56565b50505f90610d91565b610d44565b845f52600460205260405f20815f5260205260405f205480610e19575b5062093a80810180911115610d1457634e487b7160e01b5f52601160045260245ffd5b845f52600960205260405f20825f5260205260405f2054811115610df65760025460408051636ca32ae760e01b815291829060081c6001600160a01b0316815f81610e68898b60048401611a7f565b03925af1908115610494575f91610f29575b5080610e87575b50610df6565b610e9a670de0b6b3a76400009183611a02565b0490855f52600660205260405f20835f5260205260405f2054808311610ec1575b50610e81565b90610ed1610f2094999284611a33565b92875f52600660205260405f208a5f5260205260405f2055865f52600960205260405f20895f5260205260405f2055875f526003850160205260405f20610f19838254611a26565b9055611a26565b94878080610ebb565b610f41915060403d811161048d5761047c81836119df565b5089610e7a565b94610d06565b50825f526005602052610f6460405f2054611a15565b8111610ce9565b9091506020813d602011610f98575b81610f87602093836119df565b810103126101b257519060ff610cdf565b3d9150610f7a565b63d4220bed60e01b5f5260045ffd5b610fc8915060203d602011610905576108f781836119df565b86610c7d565b6282b42960e81b5f5260045ffd5b346101b2575f3660031901126101b2576020600854604051908152f35b346101b2575f3660031901126101b257602060405162093a808152f35b346101b2575f3660031901126101b257602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa918215610494575f926110af575b60809450604051938452602084015260408301526060820152f35b91506020843d6020116110dc575b816110ca602093836119df565b810103126101b2576080935191611094565b3d91506110bd565b346101b25760403660031901126101b2576001600160a01b036111056119b3565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b2576111416119b3565b6024359061114d611a9a565b6001600160a01b03908116907f000000000000000000000000000000000000000000000000000000000000000016810361132c57811561131d576002546040516375bd6ac760e11b8152906020908290600490829060081c6001600160a01b03165afa908115610494575f916112eb575b5015610fce576111fe6040516323b872dd60e01b6020820152336024820152306044820152836064820152606481526111f86084826119df565b82611dab565b600254604051635cbeecf160e11b8152906020908290600490829060081c6001600160a01b03165afa908115610494575f916112b9575b50815f52600460205260405f20815f5260205260405f20611257848254611a26565b9055815f526003602052600260405f20611272858254611a26565b815501611280848254611a26565b905560405192835260208301527f0a2fc4b3cc5d7010a978169a85e8febafcd3980b85de4f8d75c16b79ee3fad6a60403393a360018055005b90506020813d6020116112e3575b816112d4602093836119df565b810103126101b2575183611235565b3d91506112c7565b90506020813d602011611315575b81611306602093836119df565b810103126101b25751836111be565b3d91506112f9565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b346101b25760403660031901126101b2576001600160a01b0361135c6119b3565b165f52600960205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b2576113986119c9565b336001600160a01b038216036113b45761022490600435611d3e565b63334bd91960e11b5f5260045ffd5b346101b25760403660031901126101b2576102246004356113e26119c9565b906113ef61021a82611a58565b611c4b565b346101b25760203660031901126101b2576020611412600435611a58565b604051908152f35b346101b25760203660031901126101b2576004356001600160401b0381116101b257366023820112156101b2576004810135906001600160401b0382116101b2573660248360051b830101116101b2575f5b82811015610224576024600582901b830101356001600160a01b03811691908290036101b257600254604051631ddb007160e21b815260048101849052906020908290602490829060081c6001600160a01b03165afa908115610494575f91611521575b5015610fa057813b156101b2575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561049457600192611511575b500161146c565b5f61151b916119df565b8461150a565b611539915060203d8111610905576108f781836119df565b856114d0565b346101b2575f3660031901126101b25760206040515f516020611e445f395f51905f528152f35b346101b2575f3660031901126101b25760206040515f516020611e645f395f51905f528152f35b346101b25760203660031901126101b2576001600160a01b036115ae6119b3565b165f526007602052602060405f2054604051908152f35b346101b25760203660031901126101b25760043563ffffffff60e01b81168091036101b257602090637965db0b60e01b811490811561160a575b506040519015158152f35b6301ffc9a760e01b149050826115ff565b346101b25760203660031901126101b2576116346119b3565b61163c611a9a565b611644611aba565b600254604051636e890abb60e01b81529091600883901c6001600160a01b031691905f908183600481875afa928315610494575f936118f4575b505f945f195b84518710156116d65760018060a01b0360208860051b870101511690815f5260056020528060405f2054105f146116cd57505f526005602052600160405f20545b960195611684565b600191506116c5565b604051635cbeecf160e11b815290945090602082600481895afa918215610494575f926118bf575b5060ff16806118ac575b156118a65750611719600854611a15565b905b60085493808514801561189c575b8015611894575b610fce5760018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f52600360205260405f209160038301965b828111156118135750602096508082101561180c57505b600855836117a0575b50505060018055604051908152f35b806001600292016117b2868254611a26565b9055016117c0848254611a33565b90556117cd838284611b8a565b6040518381526001600160a01b03909116907f911c129d1619d2f66c102793b2d91c440413b9bfc0cb501959ebf66f869c5b3a908590a3828080611791565b9050611788565b855f52600460205260405f20815f5260205260405f2054815f528860205260405f20548115158061188b575b611868575b505062093a8081018091111561177157634e487b7160e01b5f52601160045260245ffd5b9761043d829961187793611a33565b96815f528860205260405f20558880611844565b5083831061183f565b508015611730565b505f198114611729565b9061171b565b506118b8600854611a15565b8111611708565b9091506020813d6020116118ec575b816118db602093836119df565b810103126101b257519060ff6116fe565b3d91506118ce565b9092503d805f833e61190681836119df565b8101906020818303126101b2578051906001600160401b0382116101b2570181601f820112156101b2578051916001600160401b03831161199f578260051b916040519361195760208501866119df565b84526020808501938201019182116101b257602001915b81831061197f57505050918561167e565b82516001600160a01b03811681036101b25781526020928301920161196e565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b03821682036101b257565b602435906001600160a01b03821682036101b257565b601f909101601f19168101906001600160401b0382119082101761199f57604052565b8181029291811591840414171561038257565b906301dfe200820180921161038257565b9190820180921161038257565b9190820391821161038257565b908160209103126101b2575180151581036101b25790565b5f525f602052600160405f20015490565b91908260409103126101b2576020825192015190565b6001600160a01b039091168152602081019190915260400190565b600260015414611aab576002600155565b633ee5aeb560e01b5f5260045ffd5b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615611af257565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081525f516020611e245f395f51905f52602052604090205460ff1615611b2e57565b63e2517d3f60e01b5f52336004525f516020611e445f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff1615611b745750565b63e2517d3f60e01b5f523360045260245260445ffd5b611bbf611bc49392611bb160405194859263a9059cbb60e01b602085015260248401611a7f565b03601f1981018452836119df565b611dab565b565b6001600160a01b0381165f9081525f516020611e245f395f51905f52602052604090205460ff16611c46576001600160a01b03165f8181525f516020611e245f395f51905f5260205260408120805460ff191660011790553391905f516020611e445f395f51905f52905f516020611e045f395f51905f529080a4600190565b505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611cba575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f516020611e045f395f51905f529080a4600190565b50505f90565b6001600160a01b0381165f9081525f516020611e245f395f51905f52602052604090205460ff1615611c46576001600160a01b03165f8181525f516020611e245f395f51905f5260205260408120805460ff191690553391905f516020611e445f395f51905f52905f516020611ea45f395f51905f529080a4600190565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611cba575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291905f516020611ea45f395f51905f529080a4600190565b905f602091828151910182855af115610494575f513d611dfa57506001600160a01b0381163b155b611dda5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611dd356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dd4b1ef424fcb83dce82b8e6790fbd9bbcd76978bd34427cec18daa7ab21675437b765e0e932d348852a6f810bfa1ab891e259123f02db8cdcde614c570223357558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf400164cdf78d8a4bc701bec848bea5f1b118a920a2277673d2361d663b8cc2357979f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171ba2646970667358221220d3db0313439805f9b74d0b857e510c525fd95a7157951051a97a16714e44060864736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dd4b1ef424fcb83dce82b8e6790fbd9bbcd76978bd34427cec18daa7ab2167543cfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
880
+ "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806301b99eba1461161b57806301ffc9a7146115c557806307f8a1d21461158d5780630914932214611566578063092c5b3b1461153f5780631e2de0d11461141a578063248a9ca3146113f45780632f2ff15d146113c357806336568abe1461137f5780633fcf64be1461133b57806347e7ef24146111285780635f96a04e146110e4578063647428b9146110165780636558954f14610ff957806367ef64bb14610fdc57806371f2f57b14610c095780637b2aec7214610b0d57806391d1485414610ac557806392eefe9b14610a2857806399eecb3b146109fc5780639a982f2f14610948578063a217fddf1461092e578063a407dee11461090c578063acf6da4d14610576578063b3846c9f14610532578063c8b72f8f14610517578063cc2ca03c14610275578063d398b42514610226578063d547741f146101ee578063f41c33e9146101b65763f7c618c11461016e575f80fd5b346101b2575f3660031901126101b2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346101b25760203660031901126101b2576001600160a01b036101d76119b3565b165f526005602052602060405f2054604051908152f35b346101b25760403660031901126101b25761022460043561020d6119c9565b9061021f61021a82611a58565b611b52565b611d3e565b005b346101b25760203660031901126101b2576001600160a01b036102476119b3565b165f526003602052606060405f20805490600260018201549101549060405192835260208301526040820152f35b346101b25760203660031901126101b25761028e6119b3565b600254604051635cbeecf160e11b8152600882901c6001600160a01b0316925f92909190602082600481885afa918215610494575f926104e2575b5060ff16806104b9575b156104b357506001600160a01b0381165f908152600560205260409020546102fa90611a15565b925b6001600160a01b038281165f818152600560205260409020549093917f000000000000000000000000000000000000000000000000000000000000000016905b8681111561034f57602086604051908152f35b815f52600460205260405f20815f5260205260405f205480610396575b5062093a80810180911161038257955b9561033c565b634e487b7160e01b5f52601160045260245ffd5b855f52600960205260405f20825f5260205260405f205481111561049f576040805163283dd2f160e11b8152919082806103d4868960048401611a7f565b0381895afa8015610494575f925f91610460575b501561044b57816103fa575b5061036c565b670de0b6b3a76400009161040d91611a02565b04855f52600660205260405f20825f5260205260405f205490818111156103f45761044392979161043d91611a33565b90611a26565b9487806103f4565b505062093a808101809111610382579561037c565b905061048491925060403d811161048d575b61047c81836119df565b810190611a69565b9190918a6103e8565b503d610472565b6040513d5f823e3d90fd5b5062093a808101809111610382579561037c565b926102fc565b506001600160a01b0382165f908152600560205260409020546104db90611a15565b81116102d3565b9091506020813d60201161050f575b816104fe602093836119df565b810103126101b257519060ff6102c9565b3d91506104f1565b346101b2575f3660031901126101b257602060405160348152f35b346101b25760403660031901126101b2576001600160a01b036105536119b3565b165f52600660205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b25761058f6119b3565b6105976119c9565b906105a0611a9a565b6105a8611b09565b5f906001600160a01b03831680156108ce57600254604051631ddb007160e21b81526001600160a01b038481166004830181905292600881901c90911691602081602481865afa908115610494575f916108dd575b506108ce57602060049260405193848092635cbeecf160e11b82525afa918215610494575f92610899575b5060ff168061087c575b1561087657815f52600560205261064c60405f2054611a15565b905b825f52600560205260405f20549160018060a01b037f00000000000000000000000000000000000000000000000000000000000000001695865f52600360205260405f20935b828111156107425750505062093a808101809111610382576020968691845f526005895260405f2055816106d1575b878260018055604051908152f35b600283600161070595016106e6858254611a26565b905501805483808210610739576106fc91611a33565b905b5585611b8a565b7ffe50c0ef90fef359267d64c190add4fb8ef2ca73fc455d9606ef38e2f943092485604051868152a48280808084816106c3565b50505f906106fe565b875f52600460205260405f20815f5260205260405f205480610782575b5062093a8081018091111561069457634e487b7160e01b5f52601160045260245ffd5b6002546040805163283dd2f160e11b81529291839060081c6001600160a01b031681806107b3888a60048401611a7f565b03915afa918215610494575f92610855575b50816107d2575b5061075f565b670de0b6b3a7640000916107e591611a02565b04865f52600660205260405f20825f5260205260405f205490818111156107cc576108136108329282611a33565b9a8b91895f52600660205260405f20855f5260205260405f2055611a26565b98815f526003860160205261084c60405f20918254611a26565b90558a806107cc565b61086e91925060403d811161048d5761047c81836119df565b50908c6107c5565b8061064e565b50815f52600560205261089260405f2054611a15565b8111610632565b9091506020813d6020116108c6575b816108b5602093836119df565b810103126101b257519060ff610628565b3d91506108a8565b63e6c4247b60e01b5f5260045ffd5b6108ff915060203d602011610905575b6108f781836119df565b810190611a40565b886105fd565b503d6108ed565b346101b2575f3660031901126101b257602060ff600254166040519015158152f35b346101b2575f3660031901126101b25760206040515f8152f35b346101b25760203660031901126101b2576004358015158091036101b257335f9081527fcfbfd7fa01e9333d856bafe1b9e90ac37fcc5c0f421ae6be5a422dfe68ba3e87602052604090205460ff16156109d85760207f3e1cc01dd8c0719c8d34ff5e45e481434b3116cecb90c595d7539c496d1aac7a9160ff196002541660ff821617600255604051908152a1005b63e2517d3f60e01b5f52336004525f516020611e645f395f51905f5260245260445ffd5b346101b2575f3660031901126101b25760025460405160089190911c6001600160a01b03168152602090f35b346101b25760203660031901126101b257610a416119b3565b610a49611aba565b6001600160a01b0381169081156108ce5760025460081c6001600160a01b031690610a9e90610a7783611cc0565b5060028054610100600160a81b031916600883901b610100600160a81b0316179055611bc6565b507f1c87e2bbc4e5fa5d7f6f8c44d66cb241dff224b8602eb5435ca2076d2a5c6fc25f80a3005b346101b25760403660031901126101b257610ade6119c9565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346101b25760203660031901126101b257610b266119b3565b610b2e611a9a565b610b36611b09565b6001600160a01b0381165f8181526005602052604090205415610b5a575b60018055005b600254604051635cbeecf160e11b815292906020908490600490829060081c6001600160a01b03165afa918215610494575f92610bc8575b5f516020611e845f395f51905f5293505f5260056020528160405f2055610bbe60405192839283611a7f565b0390a18080610b54565b91506020833d602011610c01575b81610be3602093836119df565b810103126101b2575f516020611e845f395f51905f52925191610b92565b3d9150610bd6565b346101b25760203660031901126101b257610c226119b3565b610c2a611a9a565b5f6001600160a01b03821633819003610fce57600254604051631ddb007160e21b815260048101839052909190600883901c6001600160a01b031690602081602481855afa908115610494575f91610faf575b5015610fa057600460018060a01b037f00000000000000000000000000000000000000000000000000000000000000001693845f526003602052602060405f209360405193848092635cbeecf160e11b82525afa918215610494575f92610f6b575b5060ff1680610f4e575b15610f485750815f526005602052610d0460405f2054611a15565b945b825f52600560205260405f20545b86811115610dd957508490602096845f52600588528060405f2054115f14610dd45750835f526005875260405f20545b845f526005885260405f205581610d64575b868260018055604051908152f35b6002836001610d989501610d79858254611a26565b905501805483808210610dcb57610d8f91611a33565b905b5584611b8a565b7f4634ecdf654a6f266749291b25bdd00963ec5fe7262fb458f390d94b670558ee84604051858152a38280808381610d56565b50505f90610d91565b610d44565b845f52600460205260405f20815f5260205260405f205480610e19575b5062093a80810180911115610d1457634e487b7160e01b5f52601160045260245ffd5b845f52600960205260405f20825f5260205260405f2054811115610df65760025460408051636ca32ae760e01b815291829060081c6001600160a01b0316815f81610e68898b60048401611a7f565b03925af1908115610494575f91610f29575b5080610e87575b50610df6565b610e9a670de0b6b3a76400009183611a02565b0490855f52600660205260405f20835f5260205260405f2054808311610ec1575b50610e81565b90610ed1610f2094999284611a33565b92875f52600660205260405f208a5f5260205260405f2055865f52600960205260405f20895f5260205260405f2055875f526003850160205260405f20610f19838254611a26565b9055611a26565b94878080610ebb565b610f41915060403d811161048d5761047c81836119df565b5089610e7a565b94610d06565b50825f526005602052610f6460405f2054611a15565b8111610ce9565b9091506020813d602011610f98575b81610f87602093836119df565b810103126101b257519060ff610cdf565b3d9150610f7a565b63d4220bed60e01b5f5260045ffd5b610fc8915060203d602011610905576108f781836119df565b86610c7d565b6282b42960e81b5f5260045ffd5b346101b2575f3660031901126101b2576020600854604051908152f35b346101b2575f3660031901126101b257602060405162093a808152f35b346101b2575f3660031901126101b257602460018060a01b037f000000000000000000000000000000000000000000000000000000000000000016805f52600360205260405f2080549160206002600184015493015491604051958680926370a0823160e01b82523060048301525afa918215610494575f926110af575b60809450604051938452602084015260408301526060820152f35b91506020843d6020116110dc575b816110ca602093836119df565b810103126101b2576080935191611094565b3d91506110bd565b346101b25760403660031901126101b2576001600160a01b036111056119b3565b165f52600460205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b2576111416119b3565b6024359061114d611a9a565b6001600160a01b03908116907f000000000000000000000000000000000000000000000000000000000000000016810361132c57811561131d576002546040516375bd6ac760e11b8152906020908290600490829060081c6001600160a01b03165afa908115610494575f916112eb575b5015610fce576111fe6040516323b872dd60e01b6020820152336024820152306044820152836064820152606481526111f86084826119df565b82611dab565b600254604051635cbeecf160e11b8152906020908290600490829060081c6001600160a01b03165afa908115610494575f916112b9575b50815f52600460205260405f20815f5260205260405f20611257848254611a26565b9055815f526003602052600260405f20611272858254611a26565b815501611280848254611a26565b905560405192835260208301527f0a2fc4b3cc5d7010a978169a85e8febafcd3980b85de4f8d75c16b79ee3fad6a60403393a360018055005b90506020813d6020116112e3575b816112d4602093836119df565b810103126101b2575183611235565b3d91506112c7565b90506020813d602011611315575b81611306602093836119df565b810103126101b25751836111be565b3d91506112f9565b63162908e360e11b5f5260045ffd5b6332da96a360e01b5f5260045ffd5b346101b25760403660031901126101b2576001600160a01b0361135c6119b3565b165f52600960205260405f206024355f52602052602060405f2054604051908152f35b346101b25760403660031901126101b2576113986119c9565b336001600160a01b038216036113b45761022490600435611d3e565b63334bd91960e11b5f5260045ffd5b346101b25760403660031901126101b2576102246004356113e26119c9565b906113ef61021a82611a58565b611c4b565b346101b25760203660031901126101b2576020611412600435611a58565b604051908152f35b346101b25760203660031901126101b2576004356001600160401b0381116101b257366023820112156101b2576004810135906001600160401b0382116101b2573660248360051b830101116101b2575f5b82811015610224576024600582901b830101356001600160a01b03811691908290036101b257600254604051631ddb007160e21b815260048101849052906020908290602490829060081c6001600160a01b03165afa908115610494575f91611521575b5015610fa057813b156101b2575f8092602460405180958193631ac6d19d60e01b83523360048401525af191821561049457600192611511575b500161146c565b5f61151b916119df565b8461150a565b611539915060203d8111610905576108f781836119df565b856114d0565b346101b2575f3660031901126101b25760206040515f516020611e445f395f51905f528152f35b346101b2575f3660031901126101b25760206040515f516020611e645f395f51905f528152f35b346101b25760203660031901126101b2576001600160a01b036115ae6119b3565b165f526007602052602060405f2054604051908152f35b346101b25760203660031901126101b25760043563ffffffff60e01b81168091036101b257602090637965db0b60e01b811490811561160a575b506040519015158152f35b6301ffc9a760e01b149050826115ff565b346101b25760203660031901126101b2576116346119b3565b61163c611a9a565b611644611aba565b600254604051636e890abb60e01b81529091600883901c6001600160a01b031691905f908183600481875afa928315610494575f936118f4575b505f945f195b84518710156116d65760018060a01b0360208860051b870101511690815f5260056020528060405f2054105f146116cd57505f526005602052600160405f20545b960195611684565b600191506116c5565b604051635cbeecf160e11b815290945090602082600481895afa918215610494575f926118bf575b5060ff16806118ac575b156118a65750611719600854611a15565b905b60085493808514801561189c575b8015611894575b610fce5760018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692835f52600360205260405f209160038301965b828111156118135750602096508082101561180c57505b600855836117a0575b50505060018055604051908152f35b806001600292016117b2868254611a26565b9055016117c0848254611a33565b90556117cd838284611b8a565b6040518381526001600160a01b03909116907f911c129d1619d2f66c102793b2d91c440413b9bfc0cb501959ebf66f869c5b3a908590a3828080611791565b9050611788565b855f52600460205260405f20815f5260205260405f2054815f528860205260405f20548115158061188b575b611868575b505062093a8081018091111561177157634e487b7160e01b5f52601160045260245ffd5b9761043d829961187793611a33565b96815f528860205260405f20558880611844565b5083831061183f565b508015611730565b505f198114611729565b9061171b565b506118b8600854611a15565b8111611708565b9091506020813d6020116118ec575b816118db602093836119df565b810103126101b257519060ff6116fe565b3d91506118ce565b9092503d805f833e61190681836119df565b8101906020818303126101b2578051906001600160401b0382116101b2570181601f820112156101b2578051916001600160401b03831161199f578260051b916040519361195760208501866119df565b84526020808501938201019182116101b257602001915b81831061197f57505050918561167e565b82516001600160a01b03811681036101b25781526020928301920161196e565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b03821682036101b257565b602435906001600160a01b03821682036101b257565b601f909101601f19168101906001600160401b0382119082101761199f57604052565b8181029291811591840414171561038257565b906301dfe200820180921161038257565b9190820180921161038257565b9190820391821161038257565b908160209103126101b2575180151581036101b25790565b5f525f602052600160405f20015490565b91908260409103126101b2576020825192015190565b6001600160a01b039091168152602081019190915260400190565b600260015414611aab576002600155565b633ee5aeb560e01b5f5260045ffd5b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615611af257565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081525f516020611e245f395f51905f52602052604090205460ff1615611b2e57565b63e2517d3f60e01b5f52336004525f516020611e445f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff1615611b745750565b63e2517d3f60e01b5f523360045260245260445ffd5b611bbf611bc49392611bb160405194859263a9059cbb60e01b602085015260248401611a7f565b03601f1981018452836119df565b611dab565b565b6001600160a01b0381165f9081525f516020611e245f395f51905f52602052604090205460ff16611c46576001600160a01b03165f8181525f516020611e245f395f51905f5260205260408120805460ff191660011790553391905f516020611e445f395f51905f52905f516020611e045f395f51905f529080a4600190565b505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611cba575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f516020611e045f395f51905f529080a4600190565b50505f90565b6001600160a01b0381165f9081525f516020611e245f395f51905f52602052604090205460ff1615611c46576001600160a01b03165f8181525f516020611e245f395f51905f5260205260408120805460ff191690553391905f516020611e445f395f51905f52905f516020611ea45f395f51905f529080a4600190565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611cba575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291905f516020611ea45f395f51905f529080a4600190565b905f602091828151910182855af115610494575f513d611dfa57506001600160a01b0381163b155b611dda5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611dd356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dd4b1ef424fcb83dce82b8e6790fbd9bbcd76978bd34427cec18daa7ab21675437b765e0e932d348852a6f810bfa1ab891e259123f02db8cdcde614c570223357558b8b52c3853e363deb11e956344c7265b888f237854af58383f805fcdf400164cdf78d8a4bc701bec848bea5f1b118a920a2277673d2361d663b8cc2357979f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171ba2646970667358221220d3db0313439805f9b74d0b857e510c525fd95a7157951051a97a16714e44060864736f6c634300081e0033",
753
881
  "linkReferences": {},
754
882
  "deployedLinkReferences": {}
755
883
  }