@stake-dao/reader 0.4.112 → 0.5.0

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 (193) hide show
  1. package/dist/esm/abis/lockersMulticall.js +30 -2
  2. package/dist/esm/abis/lockersMulticall.js.map +1 -1
  3. package/dist/esm/index.js +2 -1
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/index.js +53 -224
  6. package/dist/esm/lockers/fetch/index.js.map +1 -1
  7. package/dist/esm/lockers/fetch/parse.js +174 -0
  8. package/dist/esm/lockers/fetch/parse.js.map +1 -0
  9. package/dist/esm/lockers/fetch/protocols/angle.js +136 -0
  10. package/dist/esm/lockers/fetch/protocols/angle.js.map +1 -0
  11. package/dist/esm/lockers/fetch/protocols/balancer.js +172 -0
  12. package/dist/esm/lockers/fetch/protocols/balancer.js.map +1 -0
  13. package/dist/esm/lockers/fetch/protocols/blackpool.js +130 -0
  14. package/dist/esm/lockers/fetch/protocols/blackpool.js.map +1 -0
  15. package/dist/esm/lockers/fetch/protocols/curve.js +204 -0
  16. package/dist/esm/lockers/fetch/protocols/curve.js.map +1 -0
  17. package/dist/esm/lockers/fetch/protocols/frax-fpis.js +121 -0
  18. package/dist/esm/lockers/fetch/protocols/frax-fpis.js.map +1 -0
  19. package/dist/esm/lockers/fetch/protocols/frax-fxs.js +169 -0
  20. package/dist/esm/lockers/fetch/protocols/frax-fxs.js.map +1 -0
  21. package/dist/esm/lockers/fetch/protocols/fxn.js +131 -0
  22. package/dist/esm/lockers/fetch/protocols/fxn.js.map +1 -0
  23. package/dist/esm/lockers/fetch/protocols/maverick.js +172 -0
  24. package/dist/esm/lockers/fetch/protocols/maverick.js.map +1 -0
  25. package/dist/esm/lockers/fetch/protocols/pancakeswap.js +128 -0
  26. package/dist/esm/lockers/fetch/protocols/pancakeswap.js.map +1 -0
  27. package/dist/esm/lockers/fetch/protocols/pendle.js +144 -0
  28. package/dist/esm/lockers/fetch/protocols/pendle.js.map +1 -0
  29. package/dist/esm/lockers/fetch/protocols/spectra.js +133 -0
  30. package/dist/esm/lockers/fetch/protocols/spectra.js.map +1 -0
  31. package/dist/esm/lockers/fetch/protocols/yearn.js +138 -0
  32. package/dist/esm/lockers/fetch/protocols/yearn.js.map +1 -0
  33. package/dist/esm/lockers/fetch/protocols/yieldbasis.js +131 -0
  34. package/dist/esm/lockers/fetch/protocols/yieldbasis.js.map +1 -0
  35. package/dist/esm/lockers/fetch/protocols/yieldnest.js +135 -0
  36. package/dist/esm/lockers/fetch/protocols/yieldnest.js.map +1 -0
  37. package/dist/esm/lockers/fetch/protocols/zerolend.js +124 -0
  38. package/dist/esm/lockers/fetch/protocols/zerolend.js.map +1 -0
  39. package/dist/esm/lockers/fetch/static.js +33 -0
  40. package/dist/esm/lockers/fetch/static.js.map +1 -0
  41. package/dist/esm/lockers/fetch/types.js +2 -0
  42. package/dist/esm/lockers/fetch/types.js.map +1 -0
  43. package/dist/esm/lockers/utils/callsForLockers/pegCalls.js.map +1 -1
  44. package/dist/esm/lockers/utils/getBribesRewardsData.js +11 -9
  45. package/dist/esm/lockers/utils/getBribesRewardsData.js.map +1 -1
  46. package/dist/esm/lockers/utils/substractFees.js +1 -2
  47. package/dist/esm/lockers/utils/substractFees.js.map +1 -1
  48. package/dist/esm/strategies/curve/fetch/getOnlyboostData.js +8 -3
  49. package/dist/esm/strategies/curve/fetch/getOnlyboostData.js.map +1 -1
  50. package/dist/esm/strategies/curve/fetch/index.js +1 -1
  51. package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
  52. package/dist/esm/strategies/v2/parse.js +5 -3
  53. package/dist/esm/strategies/v2/parse.js.map +1 -1
  54. package/dist/esm/utils.js +5 -0
  55. package/dist/esm/utils.js.map +1 -1
  56. package/dist/types/abis/lockersMulticall.d.ts +1 -1
  57. package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
  58. package/dist/types/index.d.ts +2 -1
  59. package/dist/types/index.d.ts.map +1 -1
  60. package/dist/types/lockers/fetch/index.d.ts +5 -99
  61. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  62. package/dist/types/lockers/fetch/parse.d.ts +52 -0
  63. package/dist/types/lockers/fetch/parse.d.ts.map +1 -0
  64. package/dist/types/lockers/fetch/protocols/angle.d.ts +9 -0
  65. package/dist/types/lockers/fetch/protocols/angle.d.ts.map +1 -0
  66. package/dist/types/lockers/fetch/protocols/balancer.d.ts +9 -0
  67. package/dist/types/lockers/fetch/protocols/balancer.d.ts.map +1 -0
  68. package/dist/types/lockers/fetch/protocols/blackpool.d.ts +9 -0
  69. package/dist/types/lockers/fetch/protocols/blackpool.d.ts.map +1 -0
  70. package/dist/types/lockers/fetch/protocols/curve.d.ts +9 -0
  71. package/dist/types/lockers/fetch/protocols/curve.d.ts.map +1 -0
  72. package/dist/types/lockers/fetch/protocols/frax-fpis.d.ts +9 -0
  73. package/dist/types/lockers/fetch/protocols/frax-fpis.d.ts.map +1 -0
  74. package/dist/types/lockers/fetch/protocols/frax-fxs.d.ts +9 -0
  75. package/dist/types/lockers/fetch/protocols/frax-fxs.d.ts.map +1 -0
  76. package/dist/types/lockers/fetch/protocols/fxn.d.ts +9 -0
  77. package/dist/types/lockers/fetch/protocols/fxn.d.ts.map +1 -0
  78. package/dist/types/lockers/fetch/protocols/maverick.d.ts +9 -0
  79. package/dist/types/lockers/fetch/protocols/maverick.d.ts.map +1 -0
  80. package/dist/types/lockers/fetch/protocols/pancakeswap.d.ts +9 -0
  81. package/dist/types/lockers/fetch/protocols/pancakeswap.d.ts.map +1 -0
  82. package/dist/types/lockers/fetch/protocols/pendle.d.ts +9 -0
  83. package/dist/types/lockers/fetch/protocols/pendle.d.ts.map +1 -0
  84. package/dist/types/lockers/fetch/protocols/spectra.d.ts +9 -0
  85. package/dist/types/lockers/fetch/protocols/spectra.d.ts.map +1 -0
  86. package/dist/types/lockers/fetch/protocols/yearn.d.ts +9 -0
  87. package/dist/types/lockers/fetch/protocols/yearn.d.ts.map +1 -0
  88. package/dist/types/lockers/fetch/protocols/yieldbasis.d.ts +9 -0
  89. package/dist/types/lockers/fetch/protocols/yieldbasis.d.ts.map +1 -0
  90. package/dist/types/lockers/fetch/protocols/yieldnest.d.ts +9 -0
  91. package/dist/types/lockers/fetch/protocols/yieldnest.d.ts.map +1 -0
  92. package/dist/types/lockers/fetch/protocols/zerolend.d.ts +9 -0
  93. package/dist/types/lockers/fetch/protocols/zerolend.d.ts.map +1 -0
  94. package/dist/types/lockers/fetch/static.d.ts +3 -0
  95. package/dist/types/lockers/fetch/static.d.ts.map +1 -0
  96. package/dist/types/lockers/fetch/types.d.ts +105 -0
  97. package/dist/types/lockers/fetch/types.d.ts.map +1 -0
  98. package/dist/types/lockers/utils/callsForLockers/pegCalls.d.ts +1 -1
  99. package/dist/types/lockers/utils/callsForLockers/pegCalls.d.ts.map +1 -1
  100. package/dist/types/lockers/utils/getBribesRewardsData.d.ts +1 -0
  101. package/dist/types/lockers/utils/getBribesRewardsData.d.ts.map +1 -1
  102. package/dist/types/lockers/utils/substractFees.d.ts.map +1 -1
  103. package/dist/types/strategies/curve/fetch/getOnlyboostData.d.ts +1 -1
  104. package/dist/types/strategies/curve/fetch/getOnlyboostData.d.ts.map +1 -1
  105. package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
  106. package/dist/types/strategies/stakeDao/fetch.d.ts +1 -1
  107. package/dist/types/strategies/v2/parse.d.ts.map +1 -1
  108. package/dist/types/utils.d.ts +1 -0
  109. package/dist/types/utils.d.ts.map +1 -1
  110. package/package.json +2 -2
  111. package/src/abis/lockersMulticall.ts +30 -2
  112. package/src/index.ts +2 -1
  113. package/src/lockers/fetch/index.ts +65 -329
  114. package/src/lockers/fetch/parse.ts +258 -0
  115. package/src/lockers/fetch/protocols/angle.ts +157 -0
  116. package/src/lockers/fetch/protocols/balancer.ts +195 -0
  117. package/src/lockers/fetch/protocols/blackpool.ts +151 -0
  118. package/src/lockers/fetch/protocols/curve.ts +229 -0
  119. package/src/lockers/fetch/protocols/frax-fpis.ts +139 -0
  120. package/src/lockers/fetch/protocols/frax-fxs.ts +193 -0
  121. package/src/lockers/fetch/protocols/fxn.ts +152 -0
  122. package/src/lockers/fetch/protocols/maverick.ts +193 -0
  123. package/src/lockers/fetch/protocols/pancakeswap.ts +149 -0
  124. package/src/lockers/fetch/protocols/pendle.ts +165 -0
  125. package/src/lockers/fetch/protocols/spectra.ts +154 -0
  126. package/src/lockers/fetch/protocols/yearn.ts +159 -0
  127. package/src/lockers/fetch/protocols/yieldbasis.ts +152 -0
  128. package/src/lockers/fetch/protocols/yieldnest.ts +157 -0
  129. package/src/lockers/fetch/protocols/zerolend.ts +144 -0
  130. package/src/lockers/fetch/static.ts +35 -0
  131. package/src/lockers/fetch/types.ts +112 -0
  132. package/src/lockers/utils/callsForLockers/pegCalls.ts +2 -1
  133. package/src/lockers/utils/getBribesRewardsData.ts +12 -11
  134. package/src/lockers/utils/substractFees.ts +1 -2
  135. package/src/strategies/curve/fetch/getOnlyboostData.ts +11 -2
  136. package/src/strategies/curve/fetch/index.ts +2 -0
  137. package/src/strategies/v2/parse.ts +10 -4
  138. package/src/utils.ts +5 -0
  139. package/dist/esm/lockers/fetch/parseBoost.js +0 -36
  140. package/dist/esm/lockers/fetch/parseBoost.js.map +0 -1
  141. package/dist/esm/lockers/fetch/parsePeg.js +0 -18
  142. package/dist/esm/lockers/fetch/parsePeg.js.map +0 -1
  143. package/dist/esm/lockers/fetch/parseVoteBoosterData.js +0 -28
  144. package/dist/esm/lockers/fetch/parseVoteBoosterData.js.map +0 -1
  145. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +0 -24
  146. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +0 -1
  147. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js +0 -97
  148. package/dist/esm/lockers/utils/callsForLockers/feeCalls.js.map +0 -1
  149. package/dist/esm/lockers/utils/callsForLockers/gaugeCalls.js +0 -9
  150. package/dist/esm/lockers/utils/callsForLockers/gaugeCalls.js.map +0 -1
  151. package/dist/esm/lockers/utils/callsForLockers/index.js +0 -34
  152. package/dist/esm/lockers/utils/callsForLockers/index.js.map +0 -1
  153. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js +0 -17
  154. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js.map +0 -1
  155. package/dist/esm/lockers/utils/callsForLockers/veCalls.js +0 -33
  156. package/dist/esm/lockers/utils/callsForLockers/veCalls.js.map +0 -1
  157. package/dist/esm/lockers/utils/callsForLockers/veSdtCalls.js +0 -14
  158. package/dist/esm/lockers/utils/callsForLockers/veSdtCalls.js.map +0 -1
  159. package/dist/esm/lockers/utils/getFees.js +0 -27
  160. package/dist/esm/lockers/utils/getFees.js.map +0 -1
  161. package/dist/types/lockers/fetch/parseBoost.d.ts +0 -4
  162. package/dist/types/lockers/fetch/parseBoost.d.ts.map +0 -1
  163. package/dist/types/lockers/fetch/parsePeg.d.ts +0 -3
  164. package/dist/types/lockers/fetch/parsePeg.d.ts.map +0 -1
  165. package/dist/types/lockers/fetch/parseVoteBoosterData.d.ts +0 -13
  166. package/dist/types/lockers/fetch/parseVoteBoosterData.d.ts.map +0 -1
  167. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts +0 -4
  168. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +0 -1
  169. package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts +0 -13
  170. package/dist/types/lockers/utils/callsForLockers/feeCalls.d.ts.map +0 -1
  171. package/dist/types/lockers/utils/callsForLockers/gaugeCalls.d.ts +0 -6
  172. package/dist/types/lockers/utils/callsForLockers/gaugeCalls.d.ts.map +0 -1
  173. package/dist/types/lockers/utils/callsForLockers/index.d.ts +0 -8
  174. package/dist/types/lockers/utils/callsForLockers/index.d.ts.map +0 -1
  175. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts +0 -7
  176. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts.map +0 -1
  177. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts +0 -4
  178. package/dist/types/lockers/utils/callsForLockers/veCalls.d.ts.map +0 -1
  179. package/dist/types/lockers/utils/callsForLockers/veSdtCalls.d.ts +0 -11
  180. package/dist/types/lockers/utils/callsForLockers/veSdtCalls.d.ts.map +0 -1
  181. package/dist/types/lockers/utils/getFees.d.ts +0 -4
  182. package/dist/types/lockers/utils/getFees.d.ts.map +0 -1
  183. package/src/lockers/fetch/parseBoost.ts +0 -46
  184. package/src/lockers/fetch/parsePeg.ts +0 -22
  185. package/src/lockers/fetch/parseVoteBoosterData.ts +0 -34
  186. package/src/lockers/utils/callsForLockers/depositorCalls.ts +0 -30
  187. package/src/lockers/utils/callsForLockers/feeCalls.ts +0 -124
  188. package/src/lockers/utils/callsForLockers/gaugeCalls.ts +0 -10
  189. package/src/lockers/utils/callsForLockers/index.ts +0 -51
  190. package/src/lockers/utils/callsForLockers/veBoosts.ts +0 -28
  191. package/src/lockers/utils/callsForLockers/veCalls.ts +0 -44
  192. package/src/lockers/utils/callsForLockers/veSdtCalls.ts +0 -15
  193. package/src/lockers/utils/getFees.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackpool.js","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/blackpool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import { ONE_WEEK, One, STAKE_DAO_ASSETS_BASE_URL, Zero, contracts, tokenWithId } from '@stake-dao/constants';
2
+ import { range } from 'lodash-es';
3
+ import { formatUnits, parseUnits } from 'viem';
4
+ import lockersMulticallAbi from '../../../abis/lockersMulticall.js';
5
+ import { getRes, multicall } from '../../../utils.js';
6
+ import { parse, parsePeg, parseVoteBoosterData } from '../parse.js';
7
+ export const locker = {
8
+ id: 'crv',
9
+ symbol: 'CRV',
10
+ protocol: 'Curve',
11
+ protocolDescription: 'Curve is a decentralized exchange (DEX) focused on efficient stablecoin trading by using liquidity pools.',
12
+ website: 'https://curve.finance/',
13
+ logoUrl: `${STAKE_DAO_ASSETS_BASE_URL}/assets/archive/crv.svg`,
14
+ chainId: 1,
15
+ rgb: '234, 151, 53',
16
+ token: tokenWithId('crv'),
17
+ sdToken: tokenWithId('sdcrv'),
18
+ rewards: [
19
+ { ...tokenWithId('sdt'), distribution: 'streamed', origin: 'sdtEmission' },
20
+ { ...tokenWithId('3crv'), distribution: 'streamed', origin: 'native.curve' },
21
+ { ...tokenWithId('crv'), distribution: 'streamed', origin: 'stratPerf' },
22
+ { ...tokenWithId('crvusd'), distribution: 'streamed', origin: 'native.curve' },
23
+ { ...tokenWithId('sdcrv'), distribution: 'distributed', origin: 'bounties' },
24
+ ],
25
+ delegation: ['sdcrv.eth', 'sdcrv-gov.eth'],
26
+ modules: {
27
+ depositor: '0xa50CB9dFFcc740EE6b6f2D4B3CBc3a876b28c335',
28
+ locker: '0x52f541764E6e90eeBc5c21Ff570De0e2D63766B6',
29
+ veToken: '0x5f3b5DfEb7B28CDbD7FAba78963EE202a494e2A2',
30
+ gauge: '0x7f50786A0b15723D741727882ee99a0BF34e3466',
31
+ accumulator: '0x11F78501e6b0cbc5DE4c7e6BBabaACdb973eb4Cd',
32
+ },
33
+ secondaryMarket: {
34
+ label: 'Curve',
35
+ poolKey: 'factory-v2-300',
36
+ vaultKey: '1-0x32c1Cd7c991A1F40f5aF5701CDc7a6A95F900CD4',
37
+ pool: '0xCA0253A98D16e9C1e3614caFDA19318EE69772D0',
38
+ pools: ['0xf7b55c3732ad8b2c2da7c24f30a69f55c54fb717', '0xca0253a98d16e9c1e3614cafda19318ee69772d0'],
39
+ pegBase: 10000,
40
+ },
41
+ veBoost: {
42
+ address: '0xD37A6aa3d8460Bd2b6536d608103D880695A23CD',
43
+ delegator: '0xe1F9C8ebBC80A013cAf0940fdD1A8554d763b9cf',
44
+ },
45
+ voteBooster: {
46
+ vSdToken: '0xE079ac07463ff375Ce48E8A9D76211C10696F3B8',
47
+ booster: '0x38d10708Ce535361F178f55E68DF7E85aCc66270',
48
+ },
49
+ autoCompounder: {
50
+ aSdToken: '0x43E54C2E7b3e294De3A155785F52AB49d87B9922',
51
+ },
52
+ alternativeYields: {
53
+ aSdCrvConcentrator: {
54
+ label: 'asdCRV',
55
+ platform: 'Concentrator',
56
+ href: 'https://concentrator.aladdin.club/',
57
+ },
58
+ sdCrvCrvConcentrator: {
59
+ label: 'sdCRV/CRV',
60
+ platform: 'Concentrator',
61
+ href: 'https://concentrator.aladdin.club/',
62
+ },
63
+ sdCrvCrvStakeDao: {
64
+ label: 'sdCRV/CRV',
65
+ platform: 'Stake DAO',
66
+ href: '/yield?search=0x32c1Cd7c991A1F40f5aF5701CDc7a6A95F900CD4',
67
+ },
68
+ spectraAsdToken: {
69
+ label: 'asdCRV',
70
+ platform: 'Spectra',
71
+ href: 'https://app.spectra.finance/pools#mainnet/0xc63dff67fe1b63004ab6c773022ba06847c11335',
72
+ },
73
+ },
74
+ fees: [
75
+ {
76
+ label: { key: 'liquidity', variable: 'sdCRV/CRV' },
77
+ value: 10,
78
+ key: 'liquidityFee',
79
+ },
80
+ {
81
+ label: { key: 'treasury' },
82
+ value: 5,
83
+ key: 'daoFee',
84
+ },
85
+ {
86
+ label: { key: 'harvesterOn', variable: '3CRV, CRV, crvUSD' },
87
+ value: 0.1,
88
+ token: 'crv',
89
+ key: 'claimerFee',
90
+ },
91
+ ],
92
+ extensions: {
93
+ coingeckoBaseSlug: 'curve-dao-token',
94
+ },
95
+ };
96
+ const curveLocker = async ({ provider, common, prices }) => {
97
+ const token = locker.token.address;
98
+ const sdToken = locker.sdToken.address;
99
+ const gauge = locker.modules.gauge;
100
+ const depositor = locker.modules.depositor;
101
+ const votingEscrow = locker.modules.veToken;
102
+ const lockerAddress = locker.modules.locker;
103
+ const veBoost = locker.veBoost;
104
+ const secondaryMarket = locker.secondaryMarket;
105
+ const rewards = locker.rewards;
106
+ const now = Math.floor(Date.now() / 1000);
107
+ const lastWeek = Math.floor(now / ONE_WEEK) * ONE_WEEK;
108
+ const pegBase = parseUnits(secondaryMarket?.pegBase?.toString() || '1', 18);
109
+ const format = (value) => formatUnits(value, locker.token.decimals);
110
+ const formatRes = (value) => format(getRes(value));
111
+ const calls = [
112
+ /*********************************************************************************
113
+ *** Voting Escrow
114
+ *********************************************************************************/
115
+ // Token locked by the Locker
116
+ { address: votingEscrow, name: 'locked', params: [lockerAddress] },
117
+ // veToken Balance of the Locker
118
+ { address: votingEscrow, name: 'balanceOf', params: [lockerAddress] },
119
+ // Total token locked
120
+ { address: votingEscrow, name: 'supply' },
121
+ // Total veToken supply
122
+ { address: votingEscrow, name: 'totalSupply' },
123
+ /*********************************************************************************
124
+ *** Gauge
125
+ *********************************************************************************/
126
+ // Total sdToken staked
127
+ { address: gauge, name: 'totalSupply' },
128
+ // Gauge working supply
129
+ { address: gauge, name: 'working_supply' },
130
+ /*********************************************************************************
131
+ *** Token & sdToken
132
+ *********************************************************************************/
133
+ // Token balance not locked
134
+ { address: token, name: 'balanceOf', params: [depositor] },
135
+ // sdToken in secondary market pool
136
+ { address: sdToken, name: 'balanceOf', params: [secondaryMarket.pool] },
137
+ /*********************************************************************************
138
+ *** Peg
139
+ *********************************************************************************/
140
+ // Return amount when swapping {pegBase} sdToken to token -> get_dy(int128,int128,uint256)
141
+ { address: secondaryMarket.pool, name: '0x5e0d443f', params: [One, Zero, pegBase] },
142
+ /*********************************************************************************
143
+ *** Rewards
144
+ *********************************************************************************/
145
+ // Streaming status for each reward token
146
+ ...rewards.map((r) => ({ address: gauge, name: 'reward_data', params: [r.address] })),
147
+ /*********************************************************************************
148
+ *** veBoost
149
+ *********************************************************************************/
150
+ // Total veBoost delegated through delegator
151
+ { address: veBoost.delegator, name: 'totalSupply' },
152
+ // veBoost 5 last weeks rewards
153
+ ...range(0, 5).map((i) => ({
154
+ address: veBoost.delegator,
155
+ name: 'weeklyRewards',
156
+ params: [token, lastWeek - i * ONE_WEEK],
157
+ })),
158
+ /*********************************************************************************
159
+ *** Vote Booster (vsdToken)
160
+ *********************************************************************************/
161
+ // Token balance in Vote Booster contract
162
+ { address: token, name: 'balanceOf', params: [contracts.voteBoosterStrategy[1]] },
163
+ // sdToken balance in Vote Booster contract
164
+ { address: sdToken, name: 'balanceOf', params: [contracts.voteBoosterStrategy[1]] },
165
+ // Staked sdToken balance in Vote Booster contract
166
+ { address: gauge, name: 'balanceOf', params: [contracts.voteBoosterStrategy[1]] },
167
+ // Working balances of the Vote Booster contract
168
+ { address: gauge, name: 'working_balances', params: [contracts.voteBoosterStrategy[1]] },
169
+ ];
170
+ const res = await multicall(provider, calls, lockersMulticallAbi(locker.id, locker.chainId));
171
+ const raw = {
172
+ tokenLocked: getRes(res.shift()),
173
+ veBalanceOfLocker: formatRes(res.shift()),
174
+ totalTokenLocked: formatRes(res.shift()),
175
+ veTotalSupply: formatRes(res.shift()),
176
+ totalSupplyStaked: formatRes(res.shift()),
177
+ gaugeWorkingSupply: formatRes(res.shift()),
178
+ amountTokenNotLock: formatRes(res.shift()),
179
+ sdTokenInPool: formatRes(res.shift()),
180
+ peg: getRes(res.shift()),
181
+ rewards: rewards.map(() => getRes(res.shift())),
182
+ veBoost: {
183
+ delegated: formatRes(res.shift()),
184
+ weeklyRewards: range(0, 5).map(() => getRes(res.shift())),
185
+ },
186
+ voteBooster: {
187
+ token: formatRes(res.shift()),
188
+ sdToken: formatRes(res.shift()),
189
+ staked: formatRes(res.shift()),
190
+ working: formatRes(res.shift()),
191
+ },
192
+ veTokenRate: '4',
193
+ _workingSupply: '0',
194
+ _veBalanceOfLocker: '0',
195
+ };
196
+ raw.tokenLocked = format(raw.tokenLocked[0]);
197
+ raw.voteBooster = parseVoteBoosterData(locker, raw.voteBooster);
198
+ raw.peg = parsePeg(locker, raw.peg);
199
+ raw._workingSupply = raw.gaugeWorkingSupply;
200
+ raw._veBalanceOfLocker = raw.veBalanceOfLocker;
201
+ return parse({ locker, common, prices, raw });
202
+ };
203
+ export default curveLocker;
204
+ //# sourceMappingURL=curve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve.js","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/curve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import { STAKE_DAO_ASSETS_BASE_URL, tokenWithId } from '@stake-dao/constants';
2
+ import { formatUnits } from 'viem';
3
+ import lockersMulticallAbi from '../../../abis/lockersMulticall.js';
4
+ import { getRes, multicall } from '../../../utils.js';
5
+ import { parse, parsePeg } from '../parse.js';
6
+ export const locker = {
7
+ id: 'fpis',
8
+ symbol: 'FPIS',
9
+ protocol: 'Frax',
10
+ protocolDescription: 'FPI is the first stablecoin pegged to a basket of real-world consumer items as defined by the US CPI-U average.',
11
+ website: 'https://frax.finance/',
12
+ logoUrl: `${STAKE_DAO_ASSETS_BASE_URL}/assets/archive/fpis.svg`,
13
+ chainId: 1,
14
+ rgb: '0, 0, 0',
15
+ token: tokenWithId('fpis'),
16
+ sdToken: tokenWithId('sdfpis'),
17
+ rewards: [{ ...tokenWithId('fpis'), distribution: 'streamed', origin: 'native.common' }],
18
+ modules: {
19
+ depositor: '0x0000000000000000000000000000000000000000',
20
+ locker: '0x1ce5181124c33Abc281BF0F07eF4fB8573556aA5',
21
+ veToken: '0x574C154C83432B0A45BA3ad2429C3fA242eD7359',
22
+ gauge: '0xE58101D3848E12dAD6d7B5981dC11411bb267D2f',
23
+ accumulator: '0x644a15E85Aa4A56Afe1461e7ff4F75D733B26322',
24
+ redeem: '0x3e88f78D4e961366117EBC015e1EE8944EfbC574',
25
+ },
26
+ secondaryMarket: {
27
+ label: 'Curve',
28
+ poolKey: 'factory-v2-288',
29
+ vaultKey: '',
30
+ pool: '0x06c21b5d004604250a7f9639c4a3c28e73742261',
31
+ pools: ['0x06c21b5d004604250a7f9639c4a3c28e73742261'],
32
+ pegBase: 500,
33
+ },
34
+ fees: [
35
+ {
36
+ label: { key: 'liquidity', variable: 'sdFPIS/FPIS' },
37
+ value: 10,
38
+ key: 'liquidityFee',
39
+ },
40
+ {
41
+ label: { key: 'treasury' },
42
+ value: 5,
43
+ key: 'daoFee',
44
+ },
45
+ {
46
+ label: { key: 'harvester' },
47
+ value: 0.1,
48
+ key: 'claimerFee',
49
+ },
50
+ ],
51
+ extensions: {
52
+ coingeckoBaseSlug: 'frax-price-index-share',
53
+ },
54
+ };
55
+ const fraxFpisLocker = async ({ provider, common, prices }) => {
56
+ const token = locker.token.address;
57
+ const sdToken = locker.sdToken.address;
58
+ const gauge = locker.modules.gauge;
59
+ const depositor = locker.modules.depositor;
60
+ const votingEscrow = locker.modules.veToken;
61
+ const lockerAddress = locker.modules.locker;
62
+ const secondaryMarket = locker.secondaryMarket;
63
+ const rewards = locker.rewards;
64
+ const format = (value) => formatUnits(value, locker.token.decimals);
65
+ const formatRes = (value) => format(getRes(value));
66
+ const calls = [
67
+ /*********************************************************************************
68
+ *** Voting Escrow
69
+ *********************************************************************************/
70
+ // Token locked by the Locker
71
+ { address: votingEscrow, name: 'locked', params: [lockerAddress] },
72
+ // veToken Balance of the Locker
73
+ { address: votingEscrow, name: 'balanceOf', params: [lockerAddress] },
74
+ // Total token locked
75
+ { address: votingEscrow, name: 'supply' },
76
+ // Total veToken supply
77
+ { address: votingEscrow, name: 'totalSupply' },
78
+ /*********************************************************************************
79
+ *** Gauge
80
+ *********************************************************************************/
81
+ // Total sdToken staked
82
+ { address: gauge, name: 'totalSupply' },
83
+ // Gauge working supply
84
+ { address: gauge, name: 'working_supply' },
85
+ /*********************************************************************************
86
+ *** Token & sdToken
87
+ *********************************************************************************/
88
+ // Token balance not locked
89
+ { address: token, name: 'balanceOf', params: [depositor] },
90
+ // sdToken in secondary market pool
91
+ { address: sdToken, name: 'balanceOf', params: [secondaryMarket.pool] },
92
+ /*********************************************************************************
93
+ *** Rewards
94
+ *********************************************************************************/
95
+ // Streaming status for each reward token
96
+ ...rewards.map((r) => ({ address: gauge, name: 'reward_data', params: [r.address] })),
97
+ ];
98
+ const res = await multicall(provider, calls, lockersMulticallAbi(locker.id, locker.chainId));
99
+ const raw = {
100
+ tokenLocked: getRes(res.shift()),
101
+ veBalanceOfLocker: formatRes(res.shift()),
102
+ totalTokenLocked: formatRes(res.shift()),
103
+ veTotalSupply: formatRes(res.shift()),
104
+ totalSupplyStaked: formatRes(res.shift()),
105
+ gaugeWorkingSupply: formatRes(res.shift()),
106
+ amountTokenNotLock: formatRes(res.shift()),
107
+ sdTokenInPool: formatRes(res.shift()),
108
+ peg: '-',
109
+ rewards: rewards.map(() => getRes(res.shift())),
110
+ veTokenRate: '4',
111
+ _workingSupply: '0',
112
+ _veBalanceOfLocker: '0',
113
+ };
114
+ raw.tokenLocked = format(raw.tokenLocked[0]);
115
+ raw.peg = parsePeg(locker, raw.peg);
116
+ raw._workingSupply = raw.gaugeWorkingSupply;
117
+ raw._veBalanceOfLocker = raw.veBalanceOfLocker;
118
+ return parse({ locker, common, prices, raw });
119
+ };
120
+ export default fraxFpisLocker;
121
+ //# sourceMappingURL=frax-fpis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frax-fpis.js","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/frax-fpis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { One, STAKE_DAO_ASSETS_BASE_URL, Zero, tokenWithId } from '@stake-dao/constants';
2
+ import { formatUnits, parseUnits } from 'viem';
3
+ import lockersMulticallAbi from '../../../abis/lockersMulticall.js';
4
+ import { STAKE_DAO_API } from '../../../endpoints.js';
5
+ import { getRes, multicall, multichainMulticall } from '../../../utils.js';
6
+ import { parse, parsePeg } from '../parse.js';
7
+ export const locker = {
8
+ id: 'fxs',
9
+ symbol: 'FXS',
10
+ protocol: 'Frax',
11
+ protocolDescription: 'The Frax Protocol issues innovative, decentralized stablecoins and contains subprotocols to support them.',
12
+ website: 'https://frax.finance/',
13
+ logoUrl: `${STAKE_DAO_ASSETS_BASE_URL}/assets/archive/fxs.svg`,
14
+ chainId: 252,
15
+ rgb: '0, 0, 0',
16
+ token: tokenWithId('wfrax', 252),
17
+ sdToken: tokenWithId('sdfxs', 252),
18
+ rewards: [
19
+ { ...tokenWithId('wfrax', 252), distribution: 'streamed', origin: 'native.fxs' },
20
+ { ...tokenWithId('sdfxs', 252), distribution: 'distributed', origin: 'bounties' },
21
+ ],
22
+ delegation: ['sdfxs.eth'],
23
+ modules: {
24
+ depositor: '0x453369Ba22CEb6c3Eccd3029b911F590C3AD92d2',
25
+ locker: '0x26aCff2adc9104FE1c26c958dC4C9a5180840c35',
26
+ veToken: '0x007FD070a7E1B0fA1364044a373Ac1339bAD89CF',
27
+ gauge: '0x12992595328E52267c95e45B1a97014D6Ddf8683',
28
+ accumulator: '0xe3dE095C1A48D2dcBefBA8f4109d9CD4d124A0D4',
29
+ },
30
+ secondaryMarket: {
31
+ label: 'Curve',
32
+ poolKey: 'factory-stable-ng-27',
33
+ vaultKey: '252-0xD90725436f2D8fE152132394b2985dd5cd4dC197',
34
+ pool: '0x3df1658e3e76d14ef3c4d410829ea7575bb83b9b',
35
+ pools: ['0x3df1658e3e76d14ef3c4d410829ea7575bb83b9b'],
36
+ pegBase: 1000,
37
+ },
38
+ alternativeYields: {
39
+ sdFxsFxsStakeDao: {
40
+ label: 'sdFXS/FXS',
41
+ platform: 'Stake DAO',
42
+ href: '/yield?search=0xD90725436f2D8fE152132394b2985dd5cd4dC197',
43
+ },
44
+ },
45
+ fees: [
46
+ {
47
+ label: { key: 'liquidity', variable: 'sdFXS/FXS' },
48
+ value: 10,
49
+ key: 'liquidityFee',
50
+ },
51
+ {
52
+ label: { key: 'treasury' },
53
+ value: 5,
54
+ key: 'daoFee',
55
+ },
56
+ {
57
+ label: { key: 'harvesterOn', variable: 'FXS' },
58
+ value: 0.1,
59
+ key: 'claimerFee',
60
+ },
61
+ ],
62
+ extensions: {
63
+ coingeckoBaseSlug: 'frax-share',
64
+ sideChains: [
65
+ {
66
+ chainId: 1,
67
+ locker: '0xCd3a267DE09196C48bbB1d9e842D7D7645cE448f',
68
+ gauge: '0xF3C6e8fbB946260e8c2a55d48a5e01C82fD63106',
69
+ veToken: '0xc8418aF6358FFddA74e09Ca9CC3Fe03Ca6aDC5b0',
70
+ depositor: '0x0000000000000000000000000000000000000000',
71
+ sdToken: '0x402F878BDd1f5C66FdAF0fabaBcF74741B68ac36',
72
+ token: '0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0',
73
+ accumulator: '0xAB8a21516465D9Fc57c621f57eCAB838c1910BD6',
74
+ rewards: [{ ...tokenWithId('fxs', 1), distribution: 'streamed', origin: 'native.common' }],
75
+ },
76
+ ],
77
+ },
78
+ };
79
+ const fraxFxsLocker = async ({ provider, common, prices }) => {
80
+ const token = locker.token.address;
81
+ const sdToken = locker.sdToken.address;
82
+ const gauge = locker.modules.gauge;
83
+ const depositor = locker.modules.depositor;
84
+ const votingEscrow = locker.modules.veToken;
85
+ const lockerAddress = locker.modules.locker;
86
+ const secondaryMarket = locker.secondaryMarket;
87
+ const rewards = locker.rewards;
88
+ const sidechains = locker.extensions.sideChains;
89
+ const pegBase = parseUnits(secondaryMarket?.pegBase?.toString() || '1', 18);
90
+ const format = (value) => formatUnits(value, locker.token.decimals);
91
+ const formatRes = (value) => format(getRes(value));
92
+ const calls = [
93
+ /*********************************************************************************
94
+ *** Voting Escrow
95
+ *********************************************************************************/
96
+ // Token locked by the Locker
97
+ { address: votingEscrow, name: 'balanceOfLockedFxs', params: [lockerAddress] },
98
+ // veToken Balance of the Locker
99
+ { address: votingEscrow, name: 'balanceOf', params: [lockerAddress] },
100
+ // Total token locked
101
+ { address: votingEscrow, name: 'supply' },
102
+ // Total veToken supply
103
+ { address: votingEscrow, name: 'totalSupply' },
104
+ /*********************************************************************************
105
+ *** Gauge
106
+ *********************************************************************************/
107
+ // Total sdToken staked
108
+ { address: gauge, name: 'totalSupply' },
109
+ /*********************************************************************************
110
+ *** Token & sdToken
111
+ *********************************************************************************/
112
+ // Token balance not locked
113
+ { address: token, name: 'balanceOf', params: [depositor] },
114
+ // sdToken in secondary market pool
115
+ { address: sdToken, name: 'balanceOf', params: [secondaryMarket.pool] },
116
+ /*********************************************************************************
117
+ *** Peg
118
+ *********************************************************************************/
119
+ // Return amount when swapping {pegBase} sdToken to token -> get_dy(int128,int128,uint256)
120
+ { address: secondaryMarket.pool, name: '0x5e0d443f', params: [One, Zero, pegBase] },
121
+ /*********************************************************************************
122
+ *** Rewards
123
+ *********************************************************************************/
124
+ // Streaming status for each reward token
125
+ ...rewards.map((r) => ({ address: gauge, name: 'reward_data', params: [r.address] })),
126
+ ];
127
+ /*********************************************************************************
128
+ *** Sidechains
129
+ *********************************************************************************/
130
+ const sidechainsCalls = sidechains.reduce((acc, value) => {
131
+ return acc.concat([
132
+ { address: value.veToken, name: 'locked', params: [value.locker], chainId: value.chainId },
133
+ { address: value.veToken, name: 'balanceOf', params: [value.locker], chainId: value.chainId },
134
+ { address: value.veToken, name: 'totalSupply', chainId: value.chainId },
135
+ ]);
136
+ }, []);
137
+ const [res, sidechainsRes, sdfxsData] = await Promise.all([
138
+ multicall(provider, calls, lockersMulticallAbi(locker.id, locker.chainId)),
139
+ multichainMulticall(sidechainsCalls, lockersMulticallAbi()),
140
+ fetch(`${STAKE_DAO_API}/main/api/lockers/sdfxs-working-supply.json`).then((res) => res.json()),
141
+ ]);
142
+ const raw = {
143
+ tokenLocked: formatRes(res.shift()),
144
+ veBalanceOfLocker: formatRes(res.shift()),
145
+ totalTokenLocked: formatRes(res.shift()),
146
+ veTotalSupply: formatRes(res.shift()),
147
+ totalSupplyStaked: formatRes(res.shift()),
148
+ gaugeWorkingSupply: '0',
149
+ amountTokenNotLock: formatRes(res.shift()),
150
+ sdTokenInPool: formatRes(res.shift()),
151
+ peg: getRes(res.shift()),
152
+ rewards: rewards.map(() => getRes(res.shift())),
153
+ veTokenRate: '4',
154
+ _workingSupply: '0',
155
+ _veBalanceOfLocker: '0',
156
+ sidechains: sidechains.map((s) => ({
157
+ tokenLocked: format(getRes(sidechainsRes[s.chainId].shift())[0]),
158
+ veBalanceOfLocker: formatRes(sidechainsRes[s.chainId].shift()),
159
+ veTotalSupply: formatRes(sidechainsRes[s.chainId].shift()),
160
+ })),
161
+ };
162
+ raw.gaugeWorkingSupply = raw.totalSupplyStaked;
163
+ raw.peg = parsePeg(locker, raw.peg);
164
+ raw._workingSupply = sdfxsData.working_supply.toString();
165
+ raw._veBalanceOfLocker = (sdfxsData.veBalance * 4).toString();
166
+ return parse({ locker, common, prices, raw });
167
+ };
168
+ export default fraxFxsLocker;
169
+ //# sourceMappingURL=frax-fxs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frax-fxs.js","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/frax-fxs.ts"],"names":[],"mappings":"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"}