@stake-dao/reader 0.4.51 → 0.4.52

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.
@@ -6,12 +6,13 @@ import { getPrices } from '../../prices.js';
6
6
  import { rpcFetchTokensData } from '../../tokens.js';
7
7
  import { equalTlc, multicall } from '../../utils.js';
8
8
  const getMerkleData = async (epoch) => {
9
- const response = await fetch(`${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data.json`);
10
- if (!response.ok)
11
- throw new Error('Failed to fetch merkle data');
12
- return response.json();
9
+ const [delegators, nonDelegators] = await Promise.all([
10
+ fetch(`${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data_delegators.json`).then((res) => res.json()),
11
+ fetch(`${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data_non_delegators.json`).then((res) => res.json()),
12
+ ]);
13
+ return { delegators, nonDelegators };
13
14
  };
14
- const isRootMatch = (contractRoot, fileRoot) => (contractRoot === ZERO_ROOT && fileRoot === ZERO_ROOT) || contractRoot.toLowerCase() === fileRoot.toLowerCase();
15
+ const isRootMatch = (contractRoot, fileRoot) => (contractRoot === ZERO_ROOT && fileRoot === ZERO_ROOT) || equalTlc(contractRoot, fileRoot);
15
16
  const validateMerkleRoots = (delegatorRoot, nonDelegatorRoot, merkleData) => {
16
17
  const delegatorMatches = isRootMatch(delegatorRoot, merkleData.delegators.merkleRoot);
17
18
  const nonDelegatorMatches = isRootMatch(nonDelegatorRoot, merkleData.nonDelegators.merkleRoot);
@@ -64,8 +65,8 @@ const getParsedData = (merkleAddress, userData, unknownTokensData, claimedData,
64
65
  };
65
66
  const ZERO_ROOT = '0x0000000000000000000000000000000000000000000000000000000000000000';
66
67
  export const fetchUserVlCvxClaimable = async (provider, rpc, user) => {
67
- const nowEpoch = Math.floor(Date.now() / (1000 * 2 * ONE_WEEK)) * 2 * ONE_WEEK;
68
- const prevEpoch = nowEpoch - 2 * ONE_WEEK;
68
+ const nowEpoch = Math.floor(Date.now() / 1000 / ONE_WEEK) * ONE_WEEK;
69
+ const prevEpoch = nowEpoch - ONE_WEEK;
69
70
  const { delegatorRoot, nonDelegatorRoot } = await getMerkleRoots(provider);
70
71
  let vlCvxClaimable;
71
72
  // Try current week, then previous week if needed
@@ -90,8 +91,8 @@ export const fetchUserVlCvxClaimable = async (provider, rpc, user) => {
90
91
  if (!tokens.length)
91
92
  return [];
92
93
  const [delegatedClaimed, notDelegatedClaimed] = await Promise.all([
93
- getClaimedData(provider, tokensDelegated, user, contract('vlCvxDelegatorMerkle', mainnet.id)),
94
- getClaimedData(provider, tokensNotDelegated, user, contract('vlCvxNotDelegatorMerkle', mainnet.id)),
94
+ getClaimedData(provider, tokensDelegated, user, contract('vlCvxDelegatorMerkle')),
95
+ getClaimedData(provider, tokensNotDelegated, user, contract('vlCvxNotDelegatorMerkle')),
95
96
  ]);
96
97
  const unknownTokens = tokens.filter((t) => !tokenWithAddress(t));
97
98
  const rawUnknownTokensData = await rpcFetchTokensData(mainnet.id, rpc[mainnet.id], unknownTokens);
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserVlCvxClaimable.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchUserVlCvxClaimable.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ declare const passiveVaultsMulticall: ({
2
+ constant: boolean;
3
+ inputs: {
4
+ internalType: string;
5
+ name: string;
6
+ type: string;
7
+ }[];
8
+ name: string;
9
+ outputs: {
10
+ internalType: string;
11
+ name: string;
12
+ type: string;
13
+ }[];
14
+ payable: boolean;
15
+ stateMutability: string;
16
+ type: string;
17
+ } | {
18
+ name: string;
19
+ outputs: {
20
+ type: string;
21
+ name: string;
22
+ }[];
23
+ inputs: {
24
+ type: string;
25
+ name: string;
26
+ }[];
27
+ stateMutability: string;
28
+ type: string;
29
+ constant?: undefined;
30
+ payable?: undefined;
31
+ })[];
32
+ export default passiveVaultsMulticall;
33
+ //# sourceMappingURL=passiveVaultsMulticall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passiveVaultsMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/passiveVaultsMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqD3B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -22,6 +22,7 @@ export { buildPancakeSwapStrategies } from './strategies/pancakeswap/build.js';
22
22
  export { buildPancakeSwapErc20Strategies } from './strategies/pancakeswap/buildErc20.js';
23
23
  export { computePositionData } from './strategies/pancakeswap/fetch/pancakePositions.js';
24
24
  export { getPancakeV3Positions } from './strategies/pancakeswap/fetch/getPancakeV3Positions.js';
25
+ export { fetchPassive } from './strategies/passive/fetch.js';
25
26
  export { fetchPendle } from './strategies/pendle/fetch.js';
26
27
  export { buildPendleStrategies } from './strategies/pendle/build.js';
27
28
  export { default as getPendleApiData } from './strategies/pendle/getPendleApiData.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKlD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKjH,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAG/F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AASrF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAGnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAA;AAIrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAI/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAA;AASvF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AASvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKlD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKjH,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAG/F,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AASrF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAGnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAA;AAIrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAI/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAA;AASvF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AASvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,161 @@
1
+ interface TFetchPassive {
2
+ provider: any;
3
+ chainId: number;
4
+ }
5
+ export declare const fetchPassive: ({ provider, chainId }: TFetchPassive) => Promise<{
6
+ deployed: ({
7
+ tradingApy: any;
8
+ minApy: any;
9
+ maxApy: any;
10
+ lpPriceInUsd: number;
11
+ tvl: number;
12
+ apr: {
13
+ boost: number;
14
+ current: {
15
+ total: number;
16
+ details: {
17
+ label: string;
18
+ value: number[];
19
+ }[];
20
+ };
21
+ };
22
+ stratsData: {
23
+ boost: number;
24
+ accumulatedFees: string;
25
+ keeperFee: string;
26
+ veSDTFee: string;
27
+ accumulatorFee: string;
28
+ claimerFee: string;
29
+ perfFee: string;
30
+ withdrawalFee: string;
31
+ };
32
+ key: string;
33
+ name: string;
34
+ type: string;
35
+ protocol: string;
36
+ curveId: string;
37
+ chainId: number;
38
+ gaugeAddress: string;
39
+ sdGaugeAddress: string;
40
+ vault: {
41
+ name: string;
42
+ symbol: string;
43
+ decimals: number;
44
+ address: string;
45
+ strategy: string;
46
+ };
47
+ lpToken: {
48
+ name: string;
49
+ symbol: string;
50
+ address: string;
51
+ decimals: number;
52
+ };
53
+ coins: (import("@stake-dao/constants").Token | undefined)[];
54
+ underlyingCoins: (import("@stake-dao/constants").Token | undefined)[];
55
+ isMetapool?: undefined;
56
+ } | {
57
+ tradingApy: any;
58
+ minApy: any;
59
+ maxApy: any;
60
+ lpPriceInUsd: number;
61
+ tvl: number;
62
+ apr: {
63
+ boost: number;
64
+ current: {
65
+ total: number;
66
+ details: {
67
+ label: string;
68
+ value: number[];
69
+ }[];
70
+ };
71
+ };
72
+ stratsData: {
73
+ boost: number;
74
+ accumulatedFees: string;
75
+ keeperFee: string;
76
+ veSDTFee: string;
77
+ accumulatorFee: string;
78
+ claimerFee: string;
79
+ perfFee: string;
80
+ withdrawalFee: string;
81
+ };
82
+ key: string;
83
+ name: string;
84
+ type: string;
85
+ isMetapool: boolean;
86
+ protocol: string;
87
+ curveId: string;
88
+ chainId: number;
89
+ gaugeAddress: string;
90
+ sdGaugeAddress: string;
91
+ vault: {
92
+ name: string;
93
+ symbol: string;
94
+ decimals: number;
95
+ address: string;
96
+ strategy: string;
97
+ };
98
+ lpToken: {
99
+ name: string;
100
+ symbol: string;
101
+ address: string;
102
+ decimals: number;
103
+ };
104
+ coins: (import("@stake-dao/constants").Token | undefined)[];
105
+ underlyingCoins: (import("@stake-dao/constants").Token | undefined)[];
106
+ } | {
107
+ tradingApy: any;
108
+ minApy: any;
109
+ maxApy: any;
110
+ lpPriceInUsd: number;
111
+ tvl: number;
112
+ apr: {
113
+ boost: number;
114
+ current: {
115
+ total: number;
116
+ details: {
117
+ label: string;
118
+ value: number[];
119
+ }[];
120
+ };
121
+ };
122
+ stratsData: {
123
+ boost: number;
124
+ accumulatedFees: string;
125
+ keeperFee: string;
126
+ veSDTFee: string;
127
+ accumulatorFee: string;
128
+ claimerFee: string;
129
+ perfFee: string;
130
+ withdrawalFee: string;
131
+ };
132
+ key: string;
133
+ name: string;
134
+ type: string;
135
+ isMetapool: boolean;
136
+ protocol: string;
137
+ curveId: string;
138
+ chainId: number;
139
+ gaugeAddress: string;
140
+ vault: {
141
+ name: string;
142
+ symbol: string;
143
+ decimals: number;
144
+ address: string;
145
+ strategy: string;
146
+ };
147
+ lpToken: {
148
+ name: string;
149
+ symbol: string;
150
+ address: string;
151
+ decimals: number;
152
+ };
153
+ coins: (import("@stake-dao/constants").Token | undefined)[];
154
+ underlyingCoins: (import("@stake-dao/constants").Token | undefined)[];
155
+ sdGaugeAddress?: undefined;
156
+ })[];
157
+ notDeployed: never[];
158
+ fetched: boolean;
159
+ }>;
160
+ export {};
161
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/strategies/passive/fetch.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAgBD,eAAO,MAAM,YAAY,0BAAiC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAXvD,sBAAa;iCACJ,sBAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAelC,sBAAQ;iCAC2C,sBAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAc7B,sBAAa;iCAEhD,sBAAU;;;;;EA8Cb,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare const getPassiveHttpCalls: (chainId: number) => Promise<{
2
+ curveSubgraphData: any;
3
+ curveApiData: {
4
+ type: string;
5
+ value: any;
6
+ }[];
7
+ }>;
8
+ //# sourceMappingURL=httpCalls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpCalls.d.ts","sourceRoot":"","sources":["../../../../src/strategies/passive/httpCalls.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,YAAmB,MAAM;;;;;;EAuCxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserVlCvxClaimable.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,MAAM,CAAA;AAO1D,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAkGD,eAAO,MAAM,uBAAuB,aAAoB,GAAG,OAAO,IAAI,QAAQ,MAAM;;;;;;;mBAT1C,OAAO;;iBA6EhD,CAAA"}
1
+ {"version":3,"file":"fetchUserVlCvxClaimable.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,MAAM,CAAA;AAO1D,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAuGD,eAAO,MAAM,uBAAuB,aAAoB,GAAG,OAAO,IAAI,QAAQ,MAAM;;;;;;;mBAT1C,OAAO;;iBA6EhD,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.4.51",
4
+ "version": "0.4.52",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "graphql-request": "^6.0.0",
37
37
  "lodash-es": "^4.17.21",
38
38
  "viem": "^2.9.31",
39
- "@stake-dao/constants": "0.4.22"
39
+ "@stake-dao/constants": "0.4.23"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/lodash-es": "^4.17.12"
@@ -0,0 +1,56 @@
1
+ const passiveVaultsMulticall = [
2
+ {
3
+ constant: true,
4
+ inputs: [],
5
+ name: 'totalSupply',
6
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
7
+ payable: false,
8
+ stateMutability: 'view',
9
+ type: 'function',
10
+ },
11
+ {
12
+ constant: true,
13
+ inputs: [],
14
+ name: 'getPricePerFullShare',
15
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
16
+ payable: false,
17
+ stateMutability: 'view',
18
+ type: 'function',
19
+ },
20
+ {
21
+ constant: true,
22
+ inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
23
+ name: 'balanceOf',
24
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
25
+ payable: false,
26
+ stateMutability: 'view',
27
+ type: 'function',
28
+ },
29
+ {
30
+ constant: true,
31
+ inputs: [],
32
+ name: 'withdrawalFee',
33
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
34
+ payable: false,
35
+ stateMutability: 'view',
36
+ type: 'function',
37
+ },
38
+ {
39
+ constant: true,
40
+ inputs: [],
41
+ name: 'performanceFee',
42
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
43
+ payable: false,
44
+ stateMutability: 'view',
45
+ type: 'function',
46
+ },
47
+ {
48
+ name: 'working_balances',
49
+ outputs: [{ type: 'uint256', name: '' }],
50
+ inputs: [{ type: 'address', name: 'arg0' }],
51
+ stateMutability: 'view',
52
+ type: 'function',
53
+ },
54
+ ]
55
+
56
+ export default passiveVaultsMulticall
package/src/index.ts CHANGED
@@ -48,6 +48,9 @@ export { buildPancakeSwapErc20Strategies } from './strategies/pancakeswap/buildE
48
48
  export { computePositionData } from './strategies/pancakeswap/fetch/pancakePositions.js'
49
49
  export { getPancakeV3Positions } from './strategies/pancakeswap/fetch/getPancakeV3Positions.js'
50
50
 
51
+ // Passive
52
+ export { fetchPassive } from './strategies/passive/fetch.js'
53
+
51
54
  // Pendle
52
55
  export { fetchPendle } from './strategies/pendle/fetch.js'
53
56
  export { buildPendleStrategies } from './strategies/pendle/build.js'
@@ -0,0 +1,97 @@
1
+ import { formatUnits } from 'viem'
2
+
3
+ import multicallPassiveVaultsAbi from '../../abis/passiveVaultsMulticall.js'
4
+ import { contract, passiveStrats } from '@stake-dao/constants'
5
+ import { multicall } from '../../utils.js'
6
+ import { mainnet } from 'viem/chains'
7
+ import { getPassiveHttpCalls } from './httpCalls.js'
8
+ import { getBoost } from '../utils/boost.js'
9
+
10
+ interface TFetchPassive {
11
+ provider: any
12
+ chainId: number
13
+ }
14
+
15
+ const vaultCalls = (vaultAddress: string, strategyAddress: string, gaugeAddress: string, chainId: number) =>
16
+ [
17
+ { address: vaultAddress, name: 'totalSupply' },
18
+ { address: vaultAddress, name: 'getPricePerFullShare' },
19
+ { address: strategyAddress, name: 'performanceFee' },
20
+ { address: strategyAddress, name: 'withdrawalFee' },
21
+ chainId === mainnet.id && { address: gaugeAddress, name: 'balanceOf', params: [contract('convexCrvLocker')] },
22
+ chainId === mainnet.id && {
23
+ address: gaugeAddress,
24
+ name: 'working_balances',
25
+ params: [contract('convexCrvLocker')],
26
+ },
27
+ ].filter((c) => c && typeof c !== 'undefined')
28
+
29
+ export const fetchPassive = async ({ provider, chainId }: TFetchPassive) => {
30
+ const passive = passiveStrats.strats.filter((s) => s.chainId === chainId)
31
+ const apisData = await getPassiveHttpCalls(chainId)
32
+
33
+ const rawData: any = await multicall(
34
+ provider,
35
+ passive.flatMap((s) => vaultCalls(s.vault.address, s.vault.strategy, s.gaugeAddress, chainId)),
36
+ multicallPassiveVaultsAbi,
37
+ )
38
+
39
+ let currentRawIndex = 0
40
+ const parsedStratsData = passive.map((s) => {
41
+ const curveApiRaw = apisData.curveApiData.map((apiResult) =>
42
+ apiResult.value.find((pool) => pool.lpTokenAddress.toLowerCase() === s.lpToken.address.toLowerCase()),
43
+ )
44
+ const indexOfData = curveApiRaw.findIndex((e) => e)
45
+ const curveApiData = curveApiRaw[indexOfData]
46
+
47
+ const subgraphData = apisData.curveSubgraphData.find((el) => el.address === curveApiData.address)
48
+
49
+ const lpPriceInUsd = curveApiData.usdTotal / Number(formatUnits(BigInt(curveApiData.totalSupply), 18))
50
+
51
+ const totalSupply = Number(formatUnits(rawData[currentRawIndex].result, s.lpToken.decimals))
52
+ const conversionRate = Number(formatUnits(rawData[currentRawIndex + 1].result, s.lpToken.decimals))
53
+ const totalSupplyInLpToken = totalSupply * conversionRate
54
+ const tvl = totalSupplyInLpToken * lpPriceInUsd
55
+ const perfFee = rawData[currentRawIndex + 2].result
56
+ const withdrawalFee = rawData[currentRawIndex + 3].result
57
+ const boost =
58
+ chainId === 1 ? getBoost('curve', rawData[currentRawIndex + 4].result, rawData[currentRawIndex + 5].result) : 1
59
+ const aprWithBoost = curveApiData.gaugeCrvApy?.[0] && boost ? curveApiData.gaugeCrvApy[0] * boost : 0
60
+
61
+ currentRawIndex += vaultCalls('', '', '', chainId).length
62
+
63
+ const apy = subgraphData.latestWeeklyApy ? Number(subgraphData.latestWeeklyApy) + aprWithBoost : 0
64
+
65
+ return {
66
+ ...s,
67
+ tradingApy: subgraphData.latestWeeklyApy,
68
+ minApy: curveApiData.gaugeCrvApy ? curveApiData.gaugeCrvApy[0] : 0,
69
+ maxApy: curveApiData.gaugeCrvApy ? curveApiData.gaugeCrvApy[1] : 0,
70
+ lpPriceInUsd,
71
+ tvl,
72
+ apr: {
73
+ boost,
74
+ current: {
75
+ total: apy,
76
+ details: [{ label: 'Trading Fees + Rewards (APY)', value: [apy] }],
77
+ },
78
+ },
79
+ stratsData: {
80
+ boost,
81
+ accumulatedFees: '0',
82
+ keeperFee: '0',
83
+ veSDTFee: '0',
84
+ accumulatorFee: '0',
85
+ claimerFee: '0',
86
+ perfFee: formatUnits(perfFee, 0),
87
+ withdrawalFee: formatUnits(withdrawalFee, 0),
88
+ },
89
+ }
90
+ })
91
+
92
+ return {
93
+ deployed: parsedStratsData,
94
+ notDeployed: [],
95
+ fetched: true,
96
+ }
97
+ }
@@ -0,0 +1,42 @@
1
+ import { CURVE_API_URL } from '../curve/endpoints.js'
2
+
3
+ export const getPassiveHttpCalls = async (chainId: number) => {
4
+ switch (chainId) {
5
+ case 1: {
6
+ const ethHttpCalls = [
7
+ // Curve Apis
8
+ (await fetch(`${CURVE_API_URL}/getPools/ethereum/main`)).json(),
9
+ (await fetch(`${CURVE_API_URL}/getSubgraphData/ethereum`)).json(),
10
+ ]
11
+
12
+ const ethHttpResponses = await Promise.all(ethHttpCalls)
13
+
14
+ const ethCurveMain = ethHttpResponses[0].data.poolData
15
+ const ethCurveSubgraph = ethHttpResponses[1].data.poolList
16
+
17
+ return {
18
+ curveSubgraphData: ethCurveSubgraph,
19
+ curveApiData: [{ type: 'main', value: ethCurveMain }],
20
+ }
21
+ }
22
+ case 137: {
23
+ const polygonHttpCalls = [
24
+ // Curve Apis
25
+ (await fetch(`${CURVE_API_URL}/getPools/polygon/main`)).json(),
26
+ (await fetch(`${CURVE_API_URL}/getSubgraphData/polygon`)).json(),
27
+ ]
28
+
29
+ const polygonHttpResponses = await Promise.all(polygonHttpCalls)
30
+
31
+ const polygonCurveMain = polygonHttpResponses[0].data.poolData
32
+ const polygonCurveSubgraph = polygonHttpResponses[1].data.poolList
33
+
34
+ return {
35
+ curveSubgraphData: polygonCurveSubgraph,
36
+ curveApiData: [{ type: 'main', value: polygonCurveMain }],
37
+ }
38
+ }
39
+ }
40
+
41
+ return { curveSubgraphData: undefined, curveApiData: [] }
42
+ }
@@ -19,15 +19,20 @@ type UnknownToken = {
19
19
  }
20
20
 
21
21
  const getMerkleData = async (epoch: number) => {
22
- const response = await fetch(
23
- `${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data.json`,
24
- )
25
- if (!response.ok) throw new Error('Failed to fetch merkle data')
26
- return response.json()
22
+ const [delegators, nonDelegators] = await Promise.all([
23
+ fetch(
24
+ `${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data_delegators.json`,
25
+ ).then((res) => res.json()),
26
+ fetch(
27
+ `${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/${epoch}/vlCVX/merkle_data_non_delegators.json`,
28
+ ).then((res) => res.json()),
29
+ ])
30
+
31
+ return { delegators, nonDelegators }
27
32
  }
28
33
 
29
34
  const isRootMatch = (contractRoot: string, fileRoot: string) =>
30
- (contractRoot === ZERO_ROOT && fileRoot === ZERO_ROOT) || contractRoot.toLowerCase() === fileRoot.toLowerCase()
35
+ (contractRoot === ZERO_ROOT && fileRoot === ZERO_ROOT) || equalTlc(contractRoot, fileRoot)
31
36
 
32
37
  const validateMerkleRoots = (delegatorRoot: string, nonDelegatorRoot: string, merkleData: any) => {
33
38
  const delegatorMatches = isRootMatch(delegatorRoot, merkleData.delegators.merkleRoot)
@@ -107,8 +112,8 @@ const getParsedData = (
107
112
  const ZERO_ROOT = '0x0000000000000000000000000000000000000000000000000000000000000000'
108
113
 
109
114
  export const fetchUserVlCvxClaimable = async (provider: any, rpc: Rpcs, user: string) => {
110
- const nowEpoch = Math.floor(Date.now() / (1000 * 2 * ONE_WEEK)) * 2 * ONE_WEEK
111
- const prevEpoch = nowEpoch - 2 * ONE_WEEK
115
+ const nowEpoch = Math.floor(Date.now() / 1000 / ONE_WEEK) * ONE_WEEK
116
+ const prevEpoch = nowEpoch - ONE_WEEK
112
117
 
113
118
  const { delegatorRoot, nonDelegatorRoot } = await getMerkleRoots(provider)
114
119
 
@@ -140,8 +145,8 @@ export const fetchUserVlCvxClaimable = async (provider: any, rpc: Rpcs, user: st
140
145
  if (!tokens.length) return []
141
146
 
142
147
  const [delegatedClaimed, notDelegatedClaimed] = await Promise.all([
143
- getClaimedData(provider, tokensDelegated, user, contract('vlCvxDelegatorMerkle', mainnet.id)),
144
- getClaimedData(provider, tokensNotDelegated, user, contract('vlCvxNotDelegatorMerkle', mainnet.id)),
148
+ getClaimedData(provider, tokensDelegated, user, contract('vlCvxDelegatorMerkle')),
149
+ getClaimedData(provider, tokensNotDelegated, user, contract('vlCvxNotDelegatorMerkle')),
145
150
  ])
146
151
 
147
152
  const unknownTokens = tokens.filter((t) => !tokenWithAddress(t))