@stake-dao/reader 0.5.35 → 0.5.37

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 (69) hide show
  1. package/dist/esm/bytecodes/index.js +0 -1
  2. package/dist/esm/bytecodes/index.js.map +1 -1
  3. package/dist/esm/index.js +0 -3
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/index.js +0 -2
  6. package/dist/esm/lockers/fetch/index.js.map +1 -1
  7. package/dist/esm/lockers/fetch/static.js +0 -2
  8. package/dist/esm/lockers/fetch/static.js.map +1 -1
  9. package/dist/esm/strategies/curated/morpho/fetch.js +9 -5
  10. package/dist/esm/strategies/curated/morpho/fetch.js.map +1 -1
  11. package/dist/esm/strategies/curve/fetch/getOnlyboostData.js +9 -7
  12. package/dist/esm/strategies/curve/fetch/getOnlyboostData.js.map +1 -1
  13. package/dist/esm/strategies/utils/boost.js +0 -4
  14. package/dist/esm/strategies/utils/boost.js.map +1 -1
  15. package/dist/esm/strategies/v2/parse.js +1 -1
  16. package/dist/esm/strategies/v2/parse.js.map +1 -1
  17. package/dist/esm/utils.js +0 -1
  18. package/dist/esm/utils.js.map +1 -1
  19. package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js +58 -6
  20. package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js.map +1 -1
  21. package/dist/types/bytecodes/index.d.ts +0 -1
  22. package/dist/types/bytecodes/index.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +0 -2
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/lockers/fetch/index.d.ts +1 -1
  26. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  27. package/dist/types/lockers/fetch/static.d.ts.map +1 -1
  28. package/dist/types/strategies/curated/morpho/fetch.d.ts.map +1 -1
  29. package/dist/types/strategies/curve/fetch/getOnlyboostData.d.ts +1 -1
  30. package/dist/types/strategies/curve/fetch/getOnlyboostData.d.ts.map +1 -1
  31. package/dist/types/strategies/utils/boost.d.ts.map +1 -1
  32. package/dist/types/utils.d.ts.map +1 -1
  33. package/dist/types/votemarket/curve/fetchUserVlCvxClaimable.d.ts.map +1 -1
  34. package/package.json +2 -2
  35. package/src/bytecodes/index.ts +0 -1
  36. package/src/index.ts +0 -4
  37. package/src/lockers/fetch/index.ts +0 -2
  38. package/src/lockers/fetch/static.ts +0 -2
  39. package/src/strategies/curated/morpho/fetch.ts +9 -6
  40. package/src/strategies/curve/fetch/getOnlyboostData.ts +11 -8
  41. package/src/strategies/utils/boost.ts +0 -6
  42. package/src/strategies/v2/parse.ts +1 -1
  43. package/src/utils.ts +0 -1
  44. package/src/votemarket/curve/fetchUserVlCvxClaimable.ts +67 -6
  45. package/dist/esm/abis/angleVaultsMulticall.js +0 -85
  46. package/dist/esm/abis/angleVaultsMulticall.js.map +0 -1
  47. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js +0 -24
  48. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js.map +0 -1
  49. package/dist/esm/lockers/fetch/protocols/angle.js +0 -136
  50. package/dist/esm/lockers/fetch/protocols/angle.js.map +0 -1
  51. package/dist/esm/strategies/angle/endpoints.js +0 -3
  52. package/dist/esm/strategies/angle/endpoints.js.map +0 -1
  53. package/dist/esm/strategies/angle/fetch.js +0 -213
  54. package/dist/esm/strategies/angle/fetch.js.map +0 -1
  55. package/dist/types/abis/angleVaultsMulticall.d.ts +0 -42
  56. package/dist/types/abis/angleVaultsMulticall.d.ts.map +0 -1
  57. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts +0 -4
  58. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts.map +0 -1
  59. package/dist/types/lockers/fetch/protocols/angle.d.ts +0 -9
  60. package/dist/types/lockers/fetch/protocols/angle.d.ts.map +0 -1
  61. package/dist/types/strategies/angle/endpoints.d.ts +0 -3
  62. package/dist/types/strategies/angle/endpoints.d.ts.map +0 -1
  63. package/dist/types/strategies/angle/fetch.d.ts +0 -22
  64. package/dist/types/strategies/angle/fetch.d.ts.map +0 -1
  65. package/src/abis/angleVaultsMulticall.ts +0 -85
  66. package/src/bytecodes/strategies/batches/batchAngleStrats.ts +0 -26
  67. package/src/lockers/fetch/protocols/angle.ts +0 -157
  68. package/src/strategies/angle/endpoints.ts +0 -2
  69. package/src/strategies/angle/fetch.ts +0 -253
@@ -1,136 +0,0 @@
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 { getRes, multicall } from '../../../utils.js';
5
- import { parse, parsePeg } from '../parse.js';
6
- export const locker = {
7
- id: 'angle',
8
- symbol: 'ANGLE',
9
- protocol: 'Angle',
10
- protocolDescription: 'Angle is a decentralized, capital efficient and over-collateralized stablecoin protocol composed of smart contracts running on open blockchains.',
11
- website: 'https://angle.money/',
12
- logoUrl: `${STAKE_DAO_ASSETS_BASE_URL}/assets/archive/angle.svg`,
13
- chainId: 1,
14
- rgb: '249, 145, 144',
15
- token: tokenWithId('angle'),
16
- sdToken: tokenWithId('sdangle'),
17
- rewards: [
18
- { ...tokenWithId('sdt'), distribution: 'streamed', origin: 'sdtEmission' },
19
- { ...tokenWithId('angle'), distribution: 'streamed', origin: 'stratPerf' },
20
- { ...tokenWithId('eura'), distribution: 'streamed', origin: 'native.common' },
21
- { ...tokenWithId('sdangle'), distribution: 'distributed', origin: 'bounties' },
22
- ],
23
- delegation: ['sdangle.eth'],
24
- modules: {
25
- depositor: '0x0000000000000000000000000000000000000000',
26
- locker: '0xD13F8C25CceD32cdfA79EB5eD654Ce3e484dCAF5',
27
- veToken: '0x0C462Dbb9EC8cD1630f1728B2CFD2769d09f0dd5',
28
- gauge: '0xE55843a90672f7d8218285e51EE8fF8E233F35d5',
29
- accumulator: '0x8cc02F4f383A11b989708437DbA6BB0628d7eE78',
30
- redeem: '0x1D8A9c30E4e25033498347c1A054717bd0c4D356',
31
- },
32
- secondaryMarket: {
33
- label: 'Curve',
34
- poolKey: 'factory-v2-101',
35
- vaultKey: '',
36
- pool: '0x48fF31bBbD8Ab553Ebe7cBD84e1eA3dBa8f54957',
37
- pools: ['0x48fF31bBbD8Ab553Ebe7cBD84e1eA3dBa8f54957'],
38
- pegBase: 300000,
39
- },
40
- fees: [
41
- {
42
- label: { key: 'liquidity', variable: 'sdANGLE/ANGLE' },
43
- value: 10,
44
- key: 'liquidityFee',
45
- static: true,
46
- },
47
- {
48
- label: { key: 'treasury' },
49
- value: 5,
50
- key: 'daoFee',
51
- static: true,
52
- },
53
- {
54
- label: { key: 'harvester' },
55
- value: 0.1,
56
- key: 'claimerFee',
57
- static: true,
58
- },
59
- ],
60
- extensions: {
61
- coingeckoBaseSlug: 'angle',
62
- },
63
- };
64
- const angleLocker = async ({ provider, common, prices }) => {
65
- const token = locker.token.address;
66
- const sdToken = locker.sdToken.address;
67
- const gauge = locker.modules.gauge;
68
- const depositor = locker.modules.depositor;
69
- const votingEscrow = locker.modules.veToken;
70
- const lockerAddress = locker.modules.locker;
71
- const secondaryMarket = locker.secondaryMarket;
72
- const rewards = locker.rewards;
73
- const pegBase = parseUnits(secondaryMarket?.pegBase?.toString() || '1', 18);
74
- const format = (value) => formatUnits(value, locker.token.decimals);
75
- const formatRes = (value) => format(getRes(value));
76
- const calls = [
77
- /*********************************************************************************
78
- *** Voting Escrow
79
- *********************************************************************************/
80
- // Token locked by the Locker
81
- { address: votingEscrow, name: 'locked', params: [lockerAddress] },
82
- // veToken Balance of the Locker
83
- { address: votingEscrow, name: 'balanceOf', params: [lockerAddress] },
84
- // Total token locked
85
- { address: votingEscrow, name: 'supply' },
86
- // Total veToken supply
87
- { address: votingEscrow, name: 'totalSupply' },
88
- /*********************************************************************************
89
- *** Gauge
90
- *********************************************************************************/
91
- // Total sdToken staked
92
- { address: gauge, name: 'totalSupply' },
93
- // Gauge working supply
94
- { address: gauge, name: 'working_supply' },
95
- /*********************************************************************************
96
- *** Token & sdToken
97
- *********************************************************************************/
98
- // Token balance not locked
99
- { address: token, name: 'balanceOf', params: [depositor] },
100
- // sdToken in secondary market pool
101
- { address: sdToken, name: 'balanceOf', params: [secondaryMarket.pool] },
102
- /*********************************************************************************
103
- *** Peg
104
- *********************************************************************************/
105
- // Return amount when swapping {pegBase} sdToken to token -> get_dy(int128,int128,uint256)
106
- { address: secondaryMarket.pool, name: '0x5e0d443f', params: [One, Zero, pegBase] },
107
- /*********************************************************************************
108
- *** Rewards
109
- *********************************************************************************/
110
- // Streaming status for each reward token
111
- ...rewards.map((r) => ({ address: gauge, name: 'reward_data', params: [r.address] })),
112
- ];
113
- const res = await multicall(provider, calls, lockersMulticallAbi(locker.id, locker.chainId));
114
- const raw = {
115
- tokenLocked: getRes(res.shift()),
116
- veBalanceOfLocker: formatRes(res.shift()),
117
- totalTokenLocked: formatRes(res.shift()),
118
- veTotalSupply: formatRes(res.shift()),
119
- totalSupplyStaked: formatRes(res.shift()),
120
- gaugeWorkingSupply: formatRes(res.shift()),
121
- amountTokenNotLock: formatRes(res.shift()),
122
- sdTokenInPool: formatRes(res.shift()),
123
- peg: getRes(res.shift()),
124
- rewards: rewards.map(() => getRes(res.shift())),
125
- veTokenRate: '4',
126
- _workingSupply: '0',
127
- _veBalanceOfLocker: '0',
128
- };
129
- raw.tokenLocked = format(raw.tokenLocked[0]);
130
- raw.peg = parsePeg(locker, raw.peg);
131
- raw._workingSupply = raw.gaugeWorkingSupply;
132
- raw._veBalanceOfLocker = raw.veBalanceOfLocker;
133
- return parse({ locker, common, prices, raw });
134
- };
135
- export default angleLocker;
136
- //# sourceMappingURL=angle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle.js","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/angle.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export const ANGLE_APR_URL = 'https://api.angle.money/v1/apr';
2
- export const ANGLE_PRICE_URL = 'https://api.angle.money/v1/prices';
3
- //# sourceMappingURL=endpoints.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../../src/strategies/angle/endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,gCAAgC,CAAA;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAA"}
@@ -1,213 +0,0 @@
1
- import { STRAT_FEES, Zero, angleStrats, contracts } from '@stake-dao/constants';
2
- import { chunk, uniq } from 'lodash-es';
3
- import { encodeAbiParameters, formatUnits, parseAbiParameters } from 'viem';
4
- import { mainnet } from 'viem/chains';
5
- import multicallAngleVaultsAbi from '../../abis/angleVaultsMulticall.js';
6
- import { batchAngleStrats } from '../../bytecodes/index.js';
7
- import { getPricesFromLlama } from '../../prices.js';
8
- import { batchJsonRpc, equalTlc, multicall } from '../../utils.js';
9
- import { getAprBreakdown } from '../utils/getAprBreakdown.js';
10
- import getTokenTypes from '../utils/getTokenTypes.js';
11
- import { ANGLE_APR_URL, ANGLE_PRICE_URL } from './endpoints.js';
12
- export const fetchAngle = async ({ prices, provider, rpc, chainId }) => {
13
- const stratsDataCalls = [];
14
- const balancesCalls = [];
15
- const dataCalls = [];
16
- const strats = angleStrats.strats[chainId].filter((s) => s.chainId === chainId);
17
- const tokensToFetch = [];
18
- for (const s of strats) {
19
- tokensToFetch.push(...s.underlyingCoins);
20
- if (s.lpToken.symbol !== 'SLP') {
21
- balancesCalls.push(...[
22
- {
23
- address: s.lpToken.address,
24
- name: s.key.includes('gamma') ? 'getTotalAmounts' : 'getUnderlyingBalances',
25
- },
26
- {
27
- address: s.lpToken.address,
28
- name: 'totalSupply',
29
- },
30
- ]);
31
- }
32
- dataCalls.push(...[
33
- { address: s.vault, name: 'totalSupply' },
34
- { address: s.rewards[0].gauge, name: 'totalSupply' },
35
- { address: s.rewards[0].gauge, name: 'working_supply' },
36
- ]);
37
- }
38
- const httpCalls = [
39
- // Angle APR
40
- (await fetch(ANGLE_APR_URL)).json(),
41
- // Angle Prices
42
- (await fetch(ANGLE_PRICE_URL)).json(),
43
- // Defillama prices
44
- await getPricesFromLlama(uniq(tokensToFetch), chainId),
45
- ];
46
- const httpResponses = await Promise.all(httpCalls);
47
- const rawBalances = await multicall(provider, balancesCalls, multicallAngleVaultsAbi);
48
- const rawData = await multicall(provider, dataCalls, multicallAngleVaultsAbi);
49
- const angleAprData = httpResponses[0];
50
- const anglePriceData = httpResponses[1];
51
- const defillamaPrices = httpResponses[2];
52
- let rawPriceIndex = 0;
53
- const stratsWithApy = strats.map((s) => {
54
- const aprData = angleAprData[s.aprApiKey];
55
- let priceData = anglePriceData.find((d) => d.token === s.aprApiKey);
56
- if (!priceData) {
57
- const token0 = s.underlyingCoins[0];
58
- const token1 = s.underlyingCoins[1];
59
- const token0Price = defillamaPrices.find((p) => p.symbol === token0.symbol);
60
- const token1Price = defillamaPrices.find((p) => p.symbol === token1.symbol);
61
- const token0AmountUsd = Number(formatUnits(rawBalances[rawPriceIndex].result[0], token0.decimals)) * token0Price.usdPrice;
62
- const token1AmountUsd = Number(formatUnits(rawBalances[rawPriceIndex].result[1], token1.decimals)) * token1Price.usdPrice;
63
- const totalLp = Number(formatUnits(rawBalances[rawPriceIndex + 1].result, 18));
64
- const lpPriceInUsd = (token0AmountUsd + token1AmountUsd) / totalLp;
65
- priceData = { rate: lpPriceInUsd };
66
- rawPriceIndex += 2;
67
- }
68
- let maxApr = 0;
69
- let tradingApy = 0;
70
- if (aprData?.details && aprData.value && aprData.address) {
71
- tradingApy = aprData.details.fees ? aprData.details.fees : 0;
72
- const aprDetailsKeys = Object.keys(aprData.details);
73
- const indexOfApy = aprDetailsKeys.map((k) => k.includes(s.lpToken.address.toLowerCase())).indexOf(true);
74
- maxApr =
75
- indexOfApy > 0
76
- ? aprData.details[aprDetailsKeys[indexOfApy]]
77
- : aprData.details.max
78
- ? aprData.details.max
79
- : aprData.value - tradingApy;
80
- }
81
- if (s.key === 'angle-sushi-eura-angle') {
82
- stratsDataCalls.push({
83
- vault: s.vault,
84
- token: s.lpToken.address,
85
- sdtLiquidityGauge: s.gaugeAddress,
86
- });
87
- }
88
- return {
89
- ...s,
90
- tradingApy,
91
- minApr: (maxApr * ((100 - STRAT_FEES) / 100)) / 2.5,
92
- maxApr: maxApr * ((100 - STRAT_FEES) / 100),
93
- lpPriceInUsd: priceData ? priceData.rate : 1,
94
- };
95
- });
96
- const inputArgsChunks = chunk(stratsDataCalls, 20);
97
- const angleCalls = inputArgsChunks.map((inputArgs) => {
98
- const inputData = encodeAbiParameters(parseAbiParameters(batchAngleStrats.inputType[chainId]), [
99
- contracts.sdGaugeController[chainId],
100
- inputArgs,
101
- ]);
102
- return batchAngleStrats.bytecode[chainId].concat(inputData.slice(2));
103
- });
104
- const rawAngleData = await batchJsonRpc({
105
- rpc,
106
- calls: angleCalls,
107
- outputTypeAbi: batchAngleStrats.outputTypeHr[chainId],
108
- callsKey: `strategies/angle/fetch.ts: rawAngleData - chainId ${chainId} - rpc ${rpc}`,
109
- });
110
- let offchainDataIndex = 0;
111
- const parsedStrats = stratsWithApy.map((s) => {
112
- let fetchedData;
113
- if (s.offchain) {
114
- fetchedData = {
115
- totalSupply: rawData[offchainDataIndex].result,
116
- sdGaugeTotalSupply: rawData[offchainDataIndex + 1].result,
117
- sdWorkingSupply: chainId === mainnet.id ? rawData[offchainDataIndex + 2].result : Zero,
118
- accumulatedFees: Zero,
119
- keeperFee: Zero,
120
- };
121
- }
122
- else {
123
- fetchedData = rawAngleData.shift();
124
- }
125
- offchainDataIndex += 3;
126
- const rewardsData = s.rewards.map((r) => {
127
- const rewardToken = {
128
- symbol: r.symbol,
129
- name: r.name,
130
- decimals: r.decimals,
131
- address: r.address,
132
- };
133
- const rewardPrice = prices.find((p) => equalTlc(p.address, rewardToken.address));
134
- return {
135
- token: rewardToken,
136
- price: rewardPrice ? rewardPrice.usdPrice : 0,
137
- apr: 0,
138
- streaming: false,
139
- periodFinish: 0,
140
- rate: '0',
141
- lastUpdate: '0',
142
- claimablePendingRewards: '0',
143
- };
144
- });
145
- const boost = 2.5;
146
- const sdtApr = {
147
- sdtUserApr: 0,
148
- sdtFuturUserApr: 0,
149
- sdtMinApr: 0,
150
- sdtFuturMinApr: 0,
151
- sdtMaxApr: 0,
152
- sdtFuturMaxApr: 0,
153
- sdtBoost: 1,
154
- };
155
- const apr = getAprBreakdown(s, rewardsData, boost, sdtApr);
156
- const totalSupply = formatUnits(fetchedData.totalSupply, 0);
157
- const lpPriceInUsd = s.lpPriceInUsd;
158
- const tvl = lpPriceInUsd * Number(formatUnits(BigInt(fetchedData.totalSupply), 18));
159
- const sdGauge = {
160
- address: s.gaugeAddress,
161
- totalSupply: formatUnits(fetchedData.sdGaugeTotalSupply, 0),
162
- relativeWeight: '0',
163
- weight: '0',
164
- futureWeight: '0',
165
- workingSupply: '0',
166
- };
167
- return {
168
- key: s.key,
169
- name: s.name,
170
- tokensFilter: getTokenTypes(s),
171
- protocol: s.protocol,
172
- chainId: s.chainId,
173
- vault: s.vault,
174
- lpToken: s.lpToken,
175
- gaugeAddress: s.gaugeAddress,
176
- coins: s.coins,
177
- sdGauge,
178
- lpPriceInUsd,
179
- streaming: rewardsData.some((r) => Number(r.periodFinish) > Math.floor(Date.now() / 1000)),
180
- tvl,
181
- apr: {
182
- boost,
183
- ...apr,
184
- },
185
- rewards: rewardsData,
186
- // Base APR data
187
- tradingApy: s.tradingApy,
188
- minApr: s.minApr,
189
- maxApr: s.maxApr,
190
- // Raw data
191
- totalSupply,
192
- // Gas optimised
193
- vaultFees: {
194
- keeper: Number(fetchedData.keeperFee) / 100,
195
- accumulated: formatUnits(fetchedData.accumulatedFees, 0),
196
- },
197
- };
198
- });
199
- return {
200
- global: {
201
- fees: {
202
- veSdt: 5,
203
- perf: 2,
204
- accumulator: 8,
205
- claimer: 0.5,
206
- },
207
- },
208
- deployed: parsedStrats,
209
- notDeployed: [],
210
- fetched: true,
211
- };
212
- };
213
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../src/strategies/angle/fetch.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- declare const angleVaultsMulticall: ({
2
- inputs: never[];
3
- name: string;
4
- outputs: {
5
- internalType: string;
6
- name: string;
7
- type: string;
8
- }[];
9
- payable: boolean;
10
- stateMutability: string;
11
- type: string;
12
- } | {
13
- inputs: {
14
- name: string;
15
- type: string;
16
- }[];
17
- name: string;
18
- outputs: {
19
- name: string;
20
- type: string;
21
- }[];
22
- stateMutability: string;
23
- type: string;
24
- payable?: undefined;
25
- } | {
26
- inputs: {
27
- internalType: string;
28
- name: string;
29
- type: string;
30
- }[];
31
- name: string;
32
- outputs: {
33
- internalType: string;
34
- name: string;
35
- type: string;
36
- }[];
37
- stateMutability: string;
38
- type: string;
39
- payable?: undefined;
40
- })[];
41
- export default angleVaultsMulticall;
42
- //# sourceMappingURL=angleVaultsMulticall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angleVaultsMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/angleVaultsMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkFzB,CAAA;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { BatchMetaData } from '../../types.js';
2
- declare const batchAngleStrats: BatchMetaData;
3
- export default batchAngleStrats;
4
- //# sourceMappingURL=batchAngleStrats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchAngleStrats.d.ts","sourceRoot":"","sources":["../../../../../src/bytecodes/strategies/batches/batchAngleStrats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,QAAA,MAAM,gBAAgB,EAAE,aAqBvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,9 +0,0 @@
1
- import type { Locker } from '../types.js';
2
- export declare const locker: Locker;
3
- declare const angleLocker: ({ provider, common, prices }: {
4
- provider: any;
5
- common: any;
6
- prices: any;
7
- }) => Promise<any>;
8
- export default angleLocker;
9
- //# sourceMappingURL=angle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/angle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,MAAM,EAAE,MA0DpB,CAAA;AAED,QAAA,MAAM,WAAW,iCAAwC;IAAE,QAAQ,MAAC;IAAC,MAAM,MAAC;IAAC,MAAM,MAAA;CAAE,iBAuFpF,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,3 +0,0 @@
1
- export declare const ANGLE_APR_URL = "https://api.angle.money/v1/apr";
2
- export declare const ANGLE_PRICE_URL = "https://api.angle.money/v1/prices";
3
- //# sourceMappingURL=endpoints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mCAAmC,CAAA;AAC7D,eAAO,MAAM,eAAe,sCAAsC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { type Price } from '../../prices.js';
2
- interface TFetchAngle {
3
- prices: Price[];
4
- provider: any;
5
- rpc: string;
6
- chainId: number;
7
- }
8
- export declare const fetchAngle: ({ prices, provider, rpc, chainId }: TFetchAngle) => Promise<{
9
- global: {
10
- fees: {
11
- veSdt: number;
12
- perf: number;
13
- accumulator: number;
14
- claimer: number;
15
- };
16
- };
17
- deployed: any;
18
- notDeployed: never[];
19
- fetched: boolean;
20
- }>;
21
- export {};
22
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,iBAAiB,CAAA;AAOhE,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,UAAU,uCAA8C,WAAW;;;;;;;;;;;;EAwO/E,CAAA"}
@@ -1,85 +0,0 @@
1
- const angleVaultsMulticall = [
2
- {
3
- inputs: [],
4
- name: 'totalSupply',
5
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
6
- payable: false,
7
- stateMutability: 'view',
8
- type: 'function',
9
- },
10
- {
11
- inputs: [],
12
- name: 'working_supply',
13
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
14
- payable: false,
15
- stateMutability: 'view',
16
- type: 'function',
17
- },
18
- {
19
- inputs: [],
20
- name: 'getUnderlyingBalances',
21
- outputs: [
22
- { internalType: 'uint256', name: '', type: 'uint256' },
23
- { internalType: 'uint256', name: '', type: 'uint256' },
24
- ],
25
- payable: false,
26
- stateMutability: 'view',
27
- type: 'function',
28
- },
29
- {
30
- inputs: [],
31
- name: 'getTotalAmounts',
32
- outputs: [
33
- { internalType: 'uint256', name: '', type: 'uint256' },
34
- { internalType: 'uint256', name: '', type: 'uint256' },
35
- ],
36
- payable: false,
37
- stateMutability: 'view',
38
- type: 'function',
39
- },
40
- {
41
- inputs: [],
42
- name: 'getTotalAmounts',
43
- outputs: [
44
- { internalType: 'uint256', name: '', type: 'uint256' },
45
- { internalType: 'uint256', name: '', type: 'uint256' },
46
- ],
47
- payable: false,
48
- stateMutability: 'view',
49
- type: 'function',
50
- },
51
- {
52
- inputs: [{ name: 'arg0', type: 'address' }],
53
- name: 'reward_data',
54
- outputs: [
55
- { name: 'token', type: 'address' },
56
- { name: 'distributor', type: 'address' },
57
- { name: 'period_finish', type: 'uint256' },
58
- { name: 'rate', type: 'uint256' },
59
- { name: 'last_update', type: 'uint256' },
60
- { name: 'integral', type: 'uint256' },
61
- ],
62
- stateMutability: 'view',
63
- type: 'function',
64
- },
65
- {
66
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
67
- name: 'rewardData',
68
- outputs: [
69
- { internalType: 'address', name: 'rewardsDistributor', type: 'address' },
70
- { internalType: 'uint256', name: 'rewardsDuration', type: 'uint256' },
71
- { internalType: 'uint256', name: 'periodFinish', type: 'uint256' },
72
- { internalType: 'uint256', name: 'rewardRate', type: 'uint256' },
73
- { internalType: 'uint256', name: 'lastUpdateTime', type: 'uint256' },
74
- {
75
- internalType: 'uint256',
76
- name: 'rewardPerTokenStored',
77
- type: 'uint256',
78
- },
79
- ],
80
- stateMutability: 'view',
81
- type: 'function',
82
- },
83
- ]
84
-
85
- export default angleVaultsMulticall
@@ -1,26 +0,0 @@
1
- import type { BatchMetaData } from '../../types.js'
2
-
3
- const batchAngleStrats: BatchMetaData = {
4
- bytecode: {
5
- 1: '0x608060405234801561001057600080fd5b506040516112ad3803806112ad83398181016040528101906100329190610c31565b60008151905060008167ffffffffffffffff81111561005457610053610a85565b5b60405190808252806020026020018201604052801561008d57816020015b61007a6108f7565b8152602001906001900390816100725790505b509050600084905060005b838110156108c75760008582815181106100b5576100b4610c8d565b5b60200260200101519050600081600001519050600082604001519050826020015173ffffffffffffffffffffffffffffffffffffffff166370a0823184600001516040518263ffffffff1660e01b81526004016101129190610ccb565b602060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101539190610d1c565b86858151811061016657610165610c8d565b5b602002602001015160000181815250508173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e59190610d1c565b8685815181106101f8576101f7610c8d565b5b602002602001015160200181815250508173ffffffffffffffffffffffffffffffffffffffff1663f8ce31646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102779190610d1c565b86858151811061028a57610289610c8d565b5b602002602001015160400181815250508173ffffffffffffffffffffffffffffffffffffffff1663422ede426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103099190610d1c565b86858151811061031c5761031b610c8d565b5b602002602001015160600181815250508473ffffffffffffffffffffffffffffffffffffffff16636207d86684604001516040518263ffffffff1660e01b81526004016103699190610ccb565b602060405180830381865afa158015610386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103aa9190610d1c565b8685815181106103bd576103bc610c8d565b5b60200260200101516101600181815250508473ffffffffffffffffffffffffffffffffffffffff16634e791a3a84604001516040518263ffffffff1660e01b815260040161040b9190610ccb565b602060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044c9190610d1c565b86858151811061045f5761045e610c8d565b5b60200260200101516101800181815250508473ffffffffffffffffffffffffffffffffffffffff16636977ff926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190610d1c565b8685815181106104f2576104f1610c8d565b5b60200260200101516101a00181815250508073ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105729190610d1c565b86858151811061058557610584610c8d565b5b60200260200101516101c00181815250508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190610d1c565b86858151811061061857610617610c8d565b5b60200260200101516101e001818152505060008173ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190610d1c565b90508067ffffffffffffffff8111156106b6576106b5610a85565b5b6040519080825280602002602001820160405280156106ef57816020015b6106dc61097b565b8152602001906001900390816106d45790505b5087868151811061070357610702610c8d565b5b6020026020010151610200018190525060005b818110156108af5760008373ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016107599190610d58565b602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190610d73565b90508373ffffffffffffffffffffffffffffffffffffffff166348e9c65e826040518263ffffffff1660e01b81526004016107d59190610ccb565b60c060405180830381865afa1580156107f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108169190610e40565b89888151811061082957610828610c8d565b5b60200260200101516102000151838151811061084857610847610c8d565b5b602002602001015160000181905250600089888151811061086c5761086b610c8d565b5b60200260200101516102000151838151811061088b5761088a610c8d565b5b602002602001015160200181815250505080806108a790610e9c565b915050610716565b505050505080806108bf90610e9c565b915050610098565b506000826040516020016108db919061128a565b6040516020818303038152906040529050602081018059038082f35b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b604051806040016040528061098e61099b565b8152602001600081525090565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a3c82610a11565b9050919050565b610a4c81610a31565b8114610a5757600080fd5b50565b600081519050610a6981610a43565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610abd82610a74565b810181811067ffffffffffffffff82111715610adc57610adb610a85565b5b80604052505050565b6000610aef6109fd565b9050610afb8282610ab4565b919050565b600067ffffffffffffffff821115610b1b57610b1a610a85565b5b602082029050602081019050919050565b600080fd5b600080fd5b600060608284031215610b4c57610b4b610b31565b5b610b566060610ae5565b90506000610b6684828501610a5a565b6000830152506020610b7a84828501610a5a565b6020830152506040610b8e84828501610a5a565b60408301525092915050565b6000610bad610ba884610b00565b610ae5565b90508083825260208201905060608402830185811115610bd057610bcf610b2c565b5b835b81811015610bf95780610be58882610b36565b845260208401935050606081019050610bd2565b5050509392505050565b600082601f830112610c1857610c17610a6f565b5b8151610c28848260208601610b9a565b91505092915050565b60008060408385031215610c4857610c47610a07565b5b6000610c5685828601610a5a565b925050602083015167ffffffffffffffff811115610c7757610c76610a0c565b5b610c8385828601610c03565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610cc581610a31565b82525050565b6000602082019050610ce06000830184610cbc565b92915050565b6000819050919050565b610cf981610ce6565b8114610d0457600080fd5b50565b600081519050610d1681610cf0565b92915050565b600060208284031215610d3257610d31610a07565b5b6000610d4084828501610d07565b91505092915050565b610d5281610ce6565b82525050565b6000602082019050610d6d6000830184610d49565b92915050565b600060208284031215610d8957610d88610a07565b5b6000610d9784828501610a5a565b91505092915050565b600060c08284031215610db657610db5610b31565b5b610dc060c0610ae5565b90506000610dd084828501610a5a565b6000830152506020610de484828501610a5a565b6020830152506040610df884828501610d07565b6040830152506060610e0c84828501610d07565b6060830152506080610e2084828501610d07565b60808301525060a0610e3484828501610d07565b60a08301525092915050565b600060c08284031215610e5657610e55610a07565b5b6000610e6484828501610da0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ea782610ce6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ed957610ed8610e6d565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f1981610ce6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f5481610a31565b82525050565b60c082016000820151610f706000850182610f4b565b506020820151610f836020850182610f4b565b506040820151610f966040850182610f10565b506060820151610fa96060850182610f10565b506080820151610fbc6080850182610f10565b5060a0820151610fcf60a0850182610f10565b50505050565b60e082016000820151610feb6000850182610f5a565b506020820151610ffe60c0850182610f10565b50505050565b60006110108383610fd5565b60e08301905092915050565b6000602082019050919050565b600061103482610f1f565b61103e8185610f2a565b935061104983610f3b565b8060005b8381101561107a5781516110618882611004565b975061106c8361101c565b92505060018101905061104d565b5085935050505092915050565b6000610220830160008301516110a06000860182610f10565b5060208301516110b36020860182610f10565b5060408301516110c66040860182610f10565b5060608301516110d96060860182610f10565b5060808301516110ec6080860182610f10565b5060a08301516110ff60a0860182610f10565b5060c083015161111260c0860182610f10565b5060e083015161112560e0860182610f10565b5061010083015161113a610100860182610f10565b5061012083015161114f610120860182610f10565b50610140830151611164610140860182610f10565b50610160830151611179610160860182610f10565b5061018083015161118e610180860182610f10565b506101a08301516111a36101a0860182610f10565b506101c08301516111b86101c0860182610f10565b506101e08301516111cd6101e0860182610f10565b506102008301518482036102008601526111e78282611029565b9150508091505092915050565b60006112008383611087565b905092915050565b6000602082019050919050565b600061122082610ee4565b61122a8185610eef565b93508360208202850161123c85610f00565b8060005b85811015611278578484038952815161125985826111f4565b945061126483611208565b925060208a01995050600181019050611240565b50829750879550505050505092915050565b600060208201905081810360008301526112a48184611215565b90509291505056fe',
6
- },
7
- inputType: {
8
- 1: [
9
- 'address gaugeController, AngleStategyInfo[] inputs',
10
- 'struct AngleStategyInfo { address vault; address token; address sdtLiquidityGauge; }',
11
- ],
12
- },
13
- outputTypeHr: {
14
- 1: [
15
- 'AngleStratsData[] stratsData',
16
- 'struct AngleStratsData { uint256 vaultHoldings; uint256 totalSupply; uint256 accumulatedFees; uint256 keeperFee; uint256 veSDTFee; uint256 perfFee; uint256 accumulatorFee; uint256 claimerFee; uint256 strategyHoldings; uint256 workingBalance; uint256 workingSupplyStaked; uint256 gaugeRelativeWeight; uint256 gaugeWeight; uint256 totalGaugeWeights; uint256 sdWorkingSupply; uint256 sdGaugeTotalSupply; RewardsWithClaimable[] rewardsData; }',
17
- 'struct RewardsWithClaimable { RewardData rewardData; uint256 claimablePendingRewards; }',
18
- 'struct RewardData { address token; address distributor; uint256 period_finish; uint256 rate; uint256 last_update; uint256 integral; }',
19
- ],
20
- },
21
- outputType: {
22
- 1: [],
23
- },
24
- }
25
-
26
- export default batchAngleStrats