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

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 +56 -71
  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
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGaugeTokens = exports.ERC4626_ABI = exports.ERC20_ABI = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const GAUGE_ABI = [
6
+ "function gaugeData() view returns (uint256 gaugeInitialStartTime, uint256 periodDuration, uint256 periodIndex, address stakingToken, uint256 totalSupply, uint256 workingSupply, address rewardDistributor, address rewardToken, uint256 lastUpdateTime)",
7
+ ];
8
+ const VAULT_ABI = ["function asset() view returns (address)", "function totalAssets() view returns (uint256)"];
9
+ exports.ERC20_ABI = [
10
+ "function symbol() view returns (string)",
11
+ "function decimals() view returns (uint8)",
12
+ "function balanceOf(address) view returns (uint256)",
13
+ "function allowance(address owner, address spender) view returns (uint256)",
14
+ "function approve(address spender, uint256 amount) returns (bool)",
15
+ ];
16
+ exports.ERC4626_ABI = [
17
+ "function deposit(uint256 assets, address receiver) returns (uint256 shares)",
18
+ "function redeem(uint256 shares, address receiver, address owner) returns (uint256 assets)",
19
+ ];
20
+ /**
21
+ * Reads a gauge's staking token from the gauge and whether it wraps another token. A staking token counts as a wrapper
22
+ * when it exposes a non-zero `asset()` and a working `totalAssets()`, the same test the subgraph uses for its `wrapped` flag.
23
+ */
24
+ const getGaugeTokens = async (gaugeAddress, runner) => {
25
+ const gauge = new ethers_1.ethers.Contract(gaugeAddress, GAUGE_ABI, runner);
26
+ const stakingToken = (await gauge.gaugeData()).stakingToken;
27
+ const vault = new ethers_1.ethers.Contract(stakingToken, VAULT_ABI, runner);
28
+ try {
29
+ const [asset] = await Promise.all([vault.asset(), vault.totalAssets()]);
30
+ return { stakingToken, underlying: asset === ethers_1.ethers.ZeroAddress ? null : asset };
31
+ }
32
+ catch {
33
+ return { stakingToken, underlying: null };
34
+ }
35
+ };
36
+ exports.getGaugeTokens = getGaugeTokens;
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.addRewardToken = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Registers a new reward token on the gauge (requires GAUGE_ADMIN).
12
9
  * @param chainId - The chain/network to use.
@@ -17,14 +14,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
17
14
  const addRewardToken = async (chainId, gaugeAddressOrId, token, signer) => {
18
15
  if (!signer)
19
16
  throw new Error("Signer is required");
20
- let gaugeAddress;
21
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
22
- gaugeAddress = gaugeAddressOrId;
23
- }
24
- else {
25
- // @ts-ignore
26
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
27
- }
17
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
28
18
  const abi = (0, artifacts_1.getABI)("basegauge");
29
19
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
30
20
  const tx = await contract.addRewardToken(token);
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.approveGaugeToken = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const _helpers_1 = require("../gaugeSystems/_helpers");
6
+ const _tokens_1 = require("./_tokens");
7
+ /**
8
+ * Approves the contract that pulls a gauge token: the staking token to the gauge, or for a wrapped gauge the underlying
9
+ * to the wrapper.
10
+ *
11
+ * @param chainId - The chain/network to use.
12
+ * @param gaugeAddressOrId - Address of the gauge contract or its config ID.
13
+ * @param token - "staking" to stake, "underlying" to wrap.
14
+ * @param amount - Allowance to set, base units.
15
+ * @param signer - An ethers.js Signer instance (required).
16
+ * @returns The mined transaction.
17
+ */
18
+ const approveGaugeToken = async (chainId, gaugeAddressOrId, token, amount, signer) => {
19
+ if (!signer)
20
+ throw new Error("Signer is required");
21
+ const gauge = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
22
+ const { stakingToken, underlying } = await (0, _tokens_1.getGaugeTokens)(gauge, signer);
23
+ if (token === "underlying" && !underlying) {
24
+ throw new Error(`Gauge ${gauge} does not take a wrapped token`);
25
+ }
26
+ const [address, spender] = token === "staking" ? [stakingToken, gauge] : [underlying, stakingToken];
27
+ const tx = await new ethers_1.ethers.Contract(address, _tokens_1.ERC20_ABI, signer).approve(spender, amount);
28
+ await tx.wait();
29
+ return tx;
30
+ };
31
+ exports.approveGaugeToken = approveGaugeToken;
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.claimExtraReward = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Claims a single extra reward token for the caller on the given gauge.
12
9
  * @param chainId - The chain/network to use.
@@ -17,14 +14,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
17
14
  const claimExtraReward = async (chainId, gaugeAddressOrId, token, signer) => {
18
15
  if (!signer)
19
16
  throw new Error("Signer is required");
20
- let gaugeAddress;
21
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
22
- gaugeAddress = gaugeAddressOrId;
23
- }
24
- else {
25
- // @ts-ignore
26
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
27
- }
17
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
28
18
  const abi = (0, artifacts_1.getABI)("basegauge");
29
19
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
30
20
  const tx = await contract.claimExtraReward(token);
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.claimExtraRewards = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Claims all extra reward tokens for the caller on the given gauge.
12
9
  * @param chainId - The chain/network to use.
@@ -16,14 +13,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
16
13
  const claimExtraRewards = async (chainId, gaugeAddressOrId, signer) => {
17
14
  if (!signer)
18
15
  throw new Error("Signer is required");
19
- let gaugeAddress;
20
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
21
- gaugeAddress = gaugeAddressOrId;
22
- }
23
- else {
24
- // @ts-ignore
25
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
26
- }
16
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
27
17
  const abi = (0, artifacts_1.getABI)("basegauge");
28
18
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
29
19
  const tx = await contract.claimExtraRewards();
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.claimOnBehalfOf = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Claims a specific token amount on behalf of a user (requires CLAIM_FOR_ROLE).
12
9
  * @param chainId - The chain/network to use.
@@ -19,14 +16,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
19
16
  const claimOnBehalfOf = async (chainId, gaugeAddressOrId, token, amount, user, signer) => {
20
17
  if (!signer)
21
18
  throw new Error("Signer is required");
22
- let gaugeAddress;
23
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
24
- gaugeAddress = gaugeAddressOrId;
25
- }
26
- else {
27
- // @ts-ignore
28
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
29
- }
19
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
30
20
  const abi = (0, artifacts_1.getABI)("basegauge");
31
21
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
32
22
  const tx = await contract.claimOnBehalfOf(token, amount, user);
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.claimRewardToken = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
- * Claims a specific reward token from a gauge.
8
+ * Claims the caller's main reward token from a gauge, pulling the gauge's share from its distributor first. Reverts while the gauge or its controller is paused.
12
9
  *
13
10
  * @param chainId - The chain/network to use.
14
11
  * @param gaugeAddressOrId - Address of the gauge contract or ID of the gauge.
@@ -19,15 +16,8 @@ const claimRewardToken = async (chainId, gaugeAddressOrId, signer) => {
19
16
  if (!signer) {
20
17
  throw new Error("Signer is required");
21
18
  }
22
- let gaugeAddress;
19
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
23
20
  try {
24
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
25
- gaugeAddress = gaugeAddressOrId;
26
- }
27
- else {
28
- // @ts-ignore
29
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
30
- }
31
21
  const gaugeABI = (0, artifacts_1.getABI)("basegauge");
32
22
  const contract = new ethers_1.ethers.Contract(gaugeAddress, gaugeABI, signer);
33
23
  const tx = await contract.claimRewardToken();
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.claimRewardsFor = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Claims rewards on behalf of a user (requires DISTRIBUTOR_ROLE).
12
9
  * @param chainId - The chain/network to use.
@@ -17,14 +14,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
17
14
  const claimRewardsFor = async (chainId, gaugeAddressOrId, user, signer) => {
18
15
  if (!signer)
19
16
  throw new Error("Signer is required");
20
- let gaugeAddress;
21
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
22
- gaugeAddress = gaugeAddressOrId;
23
- }
24
- else {
25
- // @ts-ignore
26
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
27
- }
17
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
28
18
  const abi = (0, artifacts_1.getABI)("basegauge");
29
19
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
30
20
  const tx = await contract.claimRewardsFor(user);
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.depositRewardToken = void 0;
7
4
  const ethers_1 = require("ethers");
8
5
  const artifacts_1 = require("../../../utils/artifacts");
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
6
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
7
  /**
11
8
  * Deposits an amount of a reward token into the gauge for distribution.
12
9
  * @param chainId - The chain/network to use.
@@ -18,14 +15,7 @@ const getContractAddress_1 = __importDefault(require("../../getContractAddress")
18
15
  const depositRewardToken = async (chainId, gaugeAddressOrId, token, amount, signer) => {
19
16
  if (!signer)
20
17
  throw new Error("Signer is required");
21
- let gaugeAddress;
22
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
23
- gaugeAddress = gaugeAddressOrId;
24
- }
25
- else {
26
- // @ts-ignore
27
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
28
- }
18
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
29
19
  const abi = (0, artifacts_1.getABI)("basegauge");
30
20
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, signer);
31
21
  const tx = await contract.depositRewardToken(token, amount);
@@ -7,7 +7,7 @@ exports.getAllPendingExtraRewards = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets all pending extra rewards for a user across all extra reward tokens.
13
13
  * @param chainId - The chain/network to use.
@@ -20,14 +20,7 @@ const getAllPendingExtraRewards = async (chainId, gaugeAddressOrId, user, provid
20
20
  const rpc = chains_1.default[chainId].rpcs[0];
21
21
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
22
22
  }
23
- let gaugeAddress;
24
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
25
- gaugeAddress = gaugeAddressOrId;
26
- }
27
- else {
28
- // @ts-ignore
29
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
30
- }
23
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
31
24
  const abi = (0, artifacts_1.getABI)("basegauge");
32
25
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
33
26
  const [tokens, amounts] = await contract.allPendingExtraRewards(user);
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getApy = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const _apy_1 = require("./_apy");
6
+ const add = (a, b) => (a === null && b === null ? null : (a ?? 0) + (b ?? 0));
7
+ /**
8
+ * Calculates a gauge's minimum (no boost) and maximum (full boost) APY. Figures are simple annualized rates in percent, not compounded.
9
+ *
10
+ * Main rewards are shared by working balance, where a staker counts for `balance × boost / MAX_BOOST` (capped at balance). A fully boosted staker's working balance equals their stake, so maxApy = yearly main rewards USD / (workingSupply × staking price), and minApy = maxApy × MIN_BOOST / MAX_BOOST. Extra rewards are shared by raw balance over totalSupply. The figures hold workingSupply fixed, so a large new deposit, or other stakers boosting, lowers them. The "stream" source jumps whenever a pull compresses rewards into the rest of a period, e.g. after a pause.
11
+ *
12
+ * @param chainId - The chain/network to use.
13
+ * @param gaugeAddressOrId - Address of the gauge contract or its config ID.
14
+ * @param prices - USD price of the staking token and of each reward token (see `getRewardTokens`).
15
+ * @param options - Optional reward source: "epoch" (default) or "stream".
16
+ * @param provider - Optional ethers.js Provider instance.
17
+ * @returns Min, max and extra APY with the supplies and per-token yearly rewards behind them. An APY is null when nothing is staked.
18
+ */
19
+ const getApy = async (chainId, gaugeAddressOrId, prices, options = {}, provider) => {
20
+ const state = await (0, _apy_1.loadGaugeApyState)(chainId, gaugeAddressOrId, prices, options, provider);
21
+ const totalStaked = ethers_1.ethers.formatUnits(state.totalSupply, state.stakingDecimals);
22
+ const workingSupply = ethers_1.ethers.formatUnits(state.workingSupply, state.stakingDecimals);
23
+ const price = prices.stakingTokenPriceUSD;
24
+ const maxApy = (0, _apy_1.toApyPct)(state.mainYearlyUSD, Number(workingSupply), price);
25
+ const minApy = maxApy === null ? null : (maxApy * Number(state.minBoost)) / Number(state.maxBoost);
26
+ const extraApy = (0, _apy_1.toApyPct)(state.extraYearlyUSD, Number(totalStaked), price);
27
+ return {
28
+ gauge: state.gauge,
29
+ stakingToken: state.stakingToken,
30
+ rewardSource: state.rewardSource,
31
+ totalStaked,
32
+ workingSupply,
33
+ tvlUSD: Number(totalStaked) * price,
34
+ minBoost: Number(state.minBoost) / 10000,
35
+ maxBoost: Number(state.maxBoost) / 10000,
36
+ minApy,
37
+ maxApy,
38
+ extraApy,
39
+ totalMinApy: add(minApy, extraApy),
40
+ totalMaxApy: add(maxApy, extraApy),
41
+ rewards: state.rewards,
42
+ };
43
+ };
44
+ exports.getApy = getApy;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getBalanceOf = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
9
+ const _helpers_1 = require("../gaugeSystems/_helpers");
10
10
  const BALANCE_OF_ABI = "function balanceOf(address account) view returns (uint256)";
11
11
  /**
12
12
  * Gets the working balance of an account (includes boost).
@@ -22,20 +22,7 @@ const getBalanceOf = async (chainId, gaugeAddressOrId, accountAddress, provider)
22
22
  const rpc = chains_1.default[chainId].rpcs[0];
23
23
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
24
24
  }
25
- let gaugeAddress;
26
- try {
27
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
28
- gaugeAddress = gaugeAddressOrId;
29
- }
30
- else {
31
- // @ts-ignore
32
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
33
- }
34
- }
35
- catch (error) {
36
- console.error("Error getting balance of:", error);
37
- throw new Error(`Failed to get balance of from gauge ${gaugeAddress}: ${error.message}`);
38
- }
25
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
39
26
  const contract = new ethers_1.ethers.Contract(gaugeAddress, [BALANCE_OF_ABI], provider);
40
27
  const balance = await contract.balanceOf(accountAddress);
41
28
  return ethers_1.ethers.formatEther(balance);
@@ -7,7 +7,7 @@ exports.getControllerAddress = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets the gauge controller address registered on the gauge.
13
13
  * @param chainId - The chain/network to use.
@@ -19,14 +19,7 @@ const getControllerAddress = async (chainId, gaugeAddressOrId, provider) => {
19
19
  const rpc = chains_1.default[chainId].rpcs[0];
20
20
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
21
21
  }
22
- let gaugeAddress;
23
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
24
- gaugeAddress = gaugeAddressOrId;
25
- }
26
- else {
27
- // @ts-ignore
28
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
29
- }
22
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
30
23
  const abi = (0, artifacts_1.getABI)("basegauge");
31
24
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
32
25
  return contract.getControllerAddress();
@@ -7,7 +7,7 @@ exports.getDecimalAdjustment = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets the decimal adjustment factor used for a given reward token.
13
13
  * @param chainId - The chain/network to use.
@@ -20,14 +20,7 @@ const getDecimalAdjustment = async (chainId, gaugeAddressOrId, token, provider)
20
20
  const rpc = chains_1.default[chainId].rpcs[0];
21
21
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
22
22
  }
23
- let gaugeAddress;
24
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
25
- gaugeAddress = gaugeAddressOrId;
26
- }
27
- else {
28
- // @ts-ignore
29
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
30
- }
23
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
31
24
  const abi = (0, artifacts_1.getABI)("basegauge");
32
25
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
33
26
  return contract.getDecimalAdjustment(token);
@@ -7,7 +7,7 @@ exports.getDepositRAACOnClaim = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Returns whether claimed RAAC is auto-deposited (locked) on claim.
13
13
  * @param chainId - The chain/network to use.
@@ -19,14 +19,7 @@ const getDepositRAACOnClaim = async (chainId, gaugeAddressOrId, provider) => {
19
19
  const rpc = chains_1.default[chainId].rpcs[0];
20
20
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
21
21
  }
22
- let gaugeAddress;
23
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
24
- gaugeAddress = gaugeAddressOrId;
25
- }
26
- else {
27
- // @ts-ignore
28
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
29
- }
22
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
30
23
  const abi = (0, artifacts_1.getABI)("basegauge");
31
24
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
32
25
  return contract.depositRAACOnClaim();
@@ -7,7 +7,7 @@ exports.getDistributorData = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets the registration data for a given distributor on the gauge.
13
13
  * @param chainId - The chain/network to use.
@@ -20,14 +20,7 @@ const getDistributorData = async (chainId, gaugeAddressOrId, distributor, provid
20
20
  const rpc = chains_1.default[chainId].rpcs[0];
21
21
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
22
22
  }
23
- let gaugeAddress;
24
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
25
- gaugeAddress = gaugeAddressOrId;
26
- }
27
- else {
28
- // @ts-ignore
29
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
30
- }
23
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
31
24
  const abi = (0, artifacts_1.getABI)("basegauge");
32
25
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
33
26
  const [distro, approved] = await contract.getDistributorData(distributor);
@@ -7,7 +7,7 @@ exports.getDistributors = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets the list of distributor addresses registered on the gauge.
13
13
  * @param chainId - The chain/network to use.
@@ -19,14 +19,7 @@ const getDistributors = async (chainId, gaugeAddressOrId, provider) => {
19
19
  const rpc = chains_1.default[chainId].rpcs[0];
20
20
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
21
21
  }
22
- let gaugeAddress;
23
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
24
- gaugeAddress = gaugeAddressOrId;
25
- }
26
- else {
27
- // @ts-ignore
28
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
29
- }
22
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
30
23
  const abi = (0, artifacts_1.getABI)("basegauge");
31
24
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
32
25
  return contract.getDistributors();
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getEarnedExtraReward = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const chains_1 = __importDefault(require("../../../configs/chains"));
9
+ const artifacts_1 = require("../../../utils/artifacts");
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
+ /**
12
+ * Gets the total amount of an extra reward token a user has already claimed from a gauge.
13
+ *
14
+ * @param chainId - The chain/network to use.
15
+ * @param gaugeAddressOrId - Address of the gauge contract or its config ID.
16
+ * @param token - Address of a registered extra reward token (see `getExtraRewardTokens`).
17
+ * @param userAddress - Address of the user.
18
+ * @param provider - Optional ethers.js Provider instance.
19
+ * @returns The claimed extra reward amount (raw, base units).
20
+ */
21
+ const getEarnedExtraReward = async (chainId, gaugeAddressOrId, token, userAddress, provider) => {
22
+ if (!provider) {
23
+ const rpc = chains_1.default[chainId].rpcs[0];
24
+ provider = new ethers_1.ethers.JsonRpcProvider(rpc);
25
+ }
26
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
27
+ const contract = new ethers_1.ethers.Contract(gaugeAddress, (0, artifacts_1.getABI)("basegauge"), provider);
28
+ return contract.earnedExtraReward(token, userAddress);
29
+ };
30
+ exports.getEarnedExtraReward = getEarnedExtraReward;
@@ -6,31 +6,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getEarnedReward = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
- const EARNED_REWARD_ABI = "function earnedReward(address user) view returns (uint256)";
9
+ const artifacts_1 = require("../../../utils/artifacts");
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
- * Gets the total amount of main-reward-token a user has already claimed from a gauge.
12
+ * Gets the total amount of a reward token a user has already claimed from a gauge.
13
13
  *
14
14
  * @param chainId - The chain/network to use.
15
15
  * @param gaugeAddressOrId - Address of the gauge contract or its config ID.
16
+ * @param token - Reward token address (see `getRewardTokens`).
16
17
  * @param userAddress - Address of the user.
17
18
  * @param provider - Optional ethers.js Provider instance.
18
19
  * @returns The claimed reward amount (raw, base units).
19
20
  */
20
- const getEarnedReward = async (chainId, gaugeAddressOrId, userAddress, provider) => {
21
+ const getEarnedReward = async (chainId, gaugeAddressOrId, token, userAddress, provider) => {
21
22
  if (!provider) {
22
23
  const rpc = chains_1.default[chainId].rpcs[0];
23
24
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
24
25
  }
25
- let gaugeAddress;
26
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
27
- gaugeAddress = gaugeAddressOrId;
28
- }
29
- else {
30
- // @ts-ignore
31
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
32
- }
33
- const contract = new ethers_1.ethers.Contract(gaugeAddress, [EARNED_REWARD_ABI], provider);
34
- return contract.earnedReward(userAddress);
26
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
27
+ const contract = new ethers_1.ethers.Contract(gaugeAddress, (0, artifacts_1.getABI)("basegauge"), provider);
28
+ return contract.earnedReward(token, userAddress);
35
29
  };
36
30
  exports.getEarnedReward = getEarnedReward;
@@ -7,7 +7,7 @@ exports.getExtraRewardTokens = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const chains_1 = __importDefault(require("../../../configs/chains"));
9
9
  const artifacts_1 = require("../../../utils/artifacts");
10
- const getContractAddress_1 = __importDefault(require("../../getContractAddress"));
10
+ const _helpers_1 = require("../gaugeSystems/_helpers");
11
11
  /**
12
12
  * Gets the list of extra reward token addresses registered on the gauge.
13
13
  * @param chainId - The chain/network to use.
@@ -19,14 +19,7 @@ const getExtraRewardTokens = async (chainId, gaugeAddressOrId, provider) => {
19
19
  const rpc = chains_1.default[chainId].rpcs[0];
20
20
  provider = new ethers_1.ethers.JsonRpcProvider(rpc);
21
21
  }
22
- let gaugeAddress;
23
- if ((0, ethers_1.isAddress)(gaugeAddressOrId)) {
24
- gaugeAddress = gaugeAddressOrId;
25
- }
26
- else {
27
- // @ts-ignore
28
- gaugeAddress = (0, getContractAddress_1.default)(chainId, gaugeAddressOrId.toLowerCase());
29
- }
22
+ const gaugeAddress = (0, _helpers_1.resolveGauge)(chainId, gaugeAddressOrId);
30
23
  const abi = (0, artifacts_1.getABI)("basegauge");
31
24
  const contract = new ethers_1.ethers.Contract(gaugeAddress, abi, provider);
32
25
  return contract.getExtraRewardTokens();