@stake-dao/reader 0.4.84 → 0.4.86
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.
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategies/balancer/fetch.js +2 -2
- package/dist/esm/strategies/balancer/fetch.js.map +1 -1
- package/dist/esm/strategies/curve/endpoints.js +2 -2
- package/dist/esm/strategies/curve/endpoints.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/index.js +4 -4
- package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
- package/dist/esm/strategies/curve/httpCalls.js +3 -3
- package/dist/esm/strategies/curve/httpCalls.js.map +1 -1
- package/dist/esm/strategies/curve/points.js +5 -2
- package/dist/esm/strategies/curve/points.js.map +1 -1
- package/dist/esm/strategies/pancakeswap/fetch/index.js +2 -2
- package/dist/esm/strategies/pancakeswap/fetch/index.js.map +1 -1
- package/dist/esm/strategies/pendle/fetch.js +5 -5
- package/dist/esm/strategies/pendle/fetch.js.map +1 -1
- package/dist/esm/strategies/pendle/{pendlePoints.js → points.js} +4 -4
- package/dist/esm/strategies/pendle/points.js.map +1 -0
- package/dist/esm/strategies/yearn/fetch/index.js +2 -2
- package/dist/esm/strategies/yearn/fetch/index.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/votemarket/curve/fetchSnapshotUserData.js +15 -2
- package/dist/esm/votemarket/curve/fetchSnapshotUserData.js.map +1 -1
- package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js +1 -0
- package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/strategies/balancer/fetch.d.ts +2 -3
- package/dist/types/strategies/balancer/fetch.d.ts.map +1 -1
- package/dist/types/strategies/curve/endpoints.d.ts +2 -2
- package/dist/types/strategies/curve/endpoints.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/index.d.ts +2 -3
- package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
- package/dist/types/strategies/curve/httpCalls.d.ts +1 -1
- package/dist/types/strategies/curve/httpCalls.d.ts.map +1 -1
- package/dist/types/strategies/curve/points.d.ts +14 -2
- package/dist/types/strategies/curve/points.d.ts.map +1 -1
- package/dist/types/strategies/pancakeswap/fetch/index.d.ts +2 -3
- package/dist/types/strategies/pancakeswap/fetch/index.d.ts.map +1 -1
- package/dist/types/strategies/pendle/fetch.d.ts +2 -3
- package/dist/types/strategies/pendle/fetch.d.ts.map +1 -1
- package/dist/types/strategies/pendle/{pendlePoints.d.ts → points.d.ts} +3 -3
- package/dist/types/strategies/pendle/points.d.ts.map +1 -0
- package/dist/types/strategies/types.d.ts +0 -1
- package/dist/types/strategies/types.d.ts.map +1 -1
- package/dist/types/strategies/yearn/fetch/index.d.ts +2 -3
- package/dist/types/strategies/yearn/fetch/index.d.ts.map +1 -1
- package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts +1 -0
- package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts.map +1 -1
- package/dist/types/votemarket/fetchCampaigns/processRawCampaigns.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/strategies/balancer/fetch.ts +2 -4
- package/src/strategies/curve/endpoints.ts +4 -4
- package/src/strategies/curve/fetch/index.ts +4 -13
- package/src/strategies/curve/httpCalls.ts +2 -3
- package/src/strategies/curve/points.ts +5 -2
- package/src/strategies/pancakeswap/fetch/index.ts +3 -17
- package/src/strategies/pendle/fetch.ts +6 -7
- package/src/strategies/pendle/{pendlePoints.ts → points.ts} +3 -3
- package/src/strategies/types.ts +0 -1
- package/src/strategies/yearn/fetch/index.ts +2 -4
- package/src/votemarket/curve/fetchSnapshotUserData.ts +17 -2
- package/src/votemarket/fetchCampaigns/processRawCampaigns.ts +1 -0
- package/dist/esm/strategies/pendle/pendlePoints.js.map +0 -1
- package/dist/types/strategies/pendle/pendlePoints.d.ts.map +0 -1
|
@@ -3,7 +3,7 @@ import { NEW_FACTORY_EXPLORER_EVENTS } from '../../curve/endpoints.js'
|
|
|
3
3
|
import { contracts, pancakeswapErc20Strats } from '@stake-dao/constants'
|
|
4
4
|
import { GH_STAKE_DAO_VM_DATA } from '../../../endpoints.js'
|
|
5
5
|
import type { Price } from '../../../prices.js'
|
|
6
|
-
import type { ValidChainId
|
|
6
|
+
import type { ValidChainId } from '../../types.js'
|
|
7
7
|
import { getPancakeSwapFeesAPR, getPancakeSwapManagerFeesAPR } from './getPancakeApisData.js'
|
|
8
8
|
import { getPancakeErc20Vaults } from './getPancakeErc20Vaults.js'
|
|
9
9
|
import { getPancakeV3Vaults } from './getPancakeV3Vaults.js'
|
|
@@ -14,17 +14,9 @@ interface TFetchPancakeswap {
|
|
|
14
14
|
chainId: ValidChainId
|
|
15
15
|
prices: Price[]
|
|
16
16
|
explorerApiKey: string
|
|
17
|
-
explorer: ValidExplorer
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
export const fetchPancakeswap = async ({
|
|
21
|
-
provider,
|
|
22
|
-
rpc,
|
|
23
|
-
chainId,
|
|
24
|
-
prices,
|
|
25
|
-
explorerApiKey,
|
|
26
|
-
explorer,
|
|
27
|
-
}: TFetchPancakeswap) => {
|
|
19
|
+
export const fetchPancakeswap = async ({ provider, rpc, chainId, prices, explorerApiKey }: TFetchPancakeswap) => {
|
|
28
20
|
const fromBlock = pancakeswapErc20Strats.meta.lastSyncBlock[chainId]! + 1
|
|
29
21
|
const toBlock = Number(await provider.getBlockNumber())
|
|
30
22
|
|
|
@@ -34,13 +26,7 @@ export const fetchPancakeswap = async ({
|
|
|
34
26
|
(await fetch(`${GH_STAKE_DAO_VM_DATA}/main/tvls/cake.json`)).json(),
|
|
35
27
|
(
|
|
36
28
|
await fetch(
|
|
37
|
-
NEW_FACTORY_EXPLORER_EVENTS(
|
|
38
|
-
explorerApiKey,
|
|
39
|
-
explorer,
|
|
40
|
-
contracts.cakeVaultFactory![chainId]!,
|
|
41
|
-
fromBlock,
|
|
42
|
-
toBlock,
|
|
43
|
-
),
|
|
29
|
+
NEW_FACTORY_EXPLORER_EVENTS(explorerApiKey, chainId, contracts.cakeVaultFactory![chainId]!, fromBlock, toBlock),
|
|
44
30
|
)
|
|
45
31
|
).json(),
|
|
46
32
|
])
|
|
@@ -18,7 +18,7 @@ import { batchPendleStrats } from '../../bytecodes/index.js'
|
|
|
18
18
|
import type { Price } from '../../prices.js'
|
|
19
19
|
import { type Call, batchJsonRpc, equalTlc, lc, multicall } from '../../utils.js'
|
|
20
20
|
import { FACTORY_EXPLORER_EVENTS } from '../curve/endpoints.js'
|
|
21
|
-
import type { RewardsData, SdtApr, ValidChainId
|
|
21
|
+
import type { RewardsData, SdtApr, ValidChainId } from '../types.js'
|
|
22
22
|
import { getBoost } from '../utils/boost.js'
|
|
23
23
|
import decodeEtherscanFactoryEvent from '../utils/decodeEtherscanFactoryEvent.js'
|
|
24
24
|
import { getAprBreakdown } from '../utils/getAprBreakdown.js'
|
|
@@ -26,7 +26,7 @@ import { concatBytecode } from '../utils/index.js'
|
|
|
26
26
|
import { buildPendleStrategies } from './build.js'
|
|
27
27
|
import getPendleApiData from './getPendleApiData.js'
|
|
28
28
|
import ignoreExtraRewards from './ignoreExtraRewards.js'
|
|
29
|
-
import
|
|
29
|
+
import points from './points.js'
|
|
30
30
|
|
|
31
31
|
const pendleApiForMarket = async (market: string) =>
|
|
32
32
|
(await fetch(`https://api-v2.pendle.finance/core/v1/1/markets/${market}`)).json()
|
|
@@ -45,11 +45,10 @@ interface TFetchPendle {
|
|
|
45
45
|
provider: any
|
|
46
46
|
rpc: string
|
|
47
47
|
explorerApiKey: string
|
|
48
|
-
explorer: ValidExplorer
|
|
49
48
|
chainId: ValidChainId
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
export const fetchPendle = async ({ prices, provider, rpc, explorerApiKey,
|
|
51
|
+
export const fetchPendle = async ({ prices, provider, rpc, explorerApiKey, chainId }: TFetchPendle) => {
|
|
53
52
|
const sdt = tokenWithId('sdt', chainId)!
|
|
54
53
|
const sdtToken = {
|
|
55
54
|
name: sdt.name,
|
|
@@ -65,7 +64,7 @@ export const fetchPendle = async ({ prices, provider, rpc, explorerApiKey, explo
|
|
|
65
64
|
// Etherscan Events
|
|
66
65
|
await (
|
|
67
66
|
await fetch(
|
|
68
|
-
FACTORY_EXPLORER_EVENTS(explorerApiKey,
|
|
67
|
+
FACTORY_EXPLORER_EVENTS(explorerApiKey, chainId, contracts.pendleVaultFactory![chainId]!, fromBlock, toBlock),
|
|
69
68
|
)
|
|
70
69
|
).json(),
|
|
71
70
|
// Pende Api
|
|
@@ -286,7 +285,7 @@ export const fetchPendle = async ({ prices, provider, rpc, explorerApiKey, explo
|
|
|
286
285
|
lpToken: s.lpToken,
|
|
287
286
|
coins: s.coins,
|
|
288
287
|
syToken: s.syToken,
|
|
289
|
-
points:
|
|
288
|
+
points: points[lc(s.lpToken.address)],
|
|
290
289
|
streaming: rewardsData.some((r) => Number(r.periodFinish) > Math.floor(Date.now() / 1000)),
|
|
291
290
|
sdGauge,
|
|
292
291
|
lpPriceInUsd,
|
|
@@ -344,7 +343,7 @@ export const fetchPendle = async ({ prices, provider, rpc, explorerApiKey, explo
|
|
|
344
343
|
],
|
|
345
344
|
maxApy: s.maxBoostedApy * 100,
|
|
346
345
|
accentColor: s.accentColor,
|
|
347
|
-
points:
|
|
346
|
+
points: points[s.address.toLowerCase()],
|
|
348
347
|
}))
|
|
349
348
|
|
|
350
349
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const points = {
|
|
2
2
|
'0x90c98ab215498b72abfec04c651e2e496ba364c0': [
|
|
3
3
|
{ multiplier: 20, label: 'Sats Multiplier' },
|
|
4
4
|
{ multiplier: 2, label: 'Zircuit Multiplier' },
|
|
@@ -19,8 +19,8 @@ const pendlePoints = {
|
|
|
19
19
|
{ multiplier: 1, label: 'EigenLayer Multiplier' },
|
|
20
20
|
],
|
|
21
21
|
'0x353d0b2efb5b3a7987fb06d30ad6160522d08426': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
22
|
-
'0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': [{ multiplier:
|
|
22
|
+
'0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': [{ multiplier: 15, label: 'Resolv Points' }],
|
|
23
23
|
'0x82d810ededb09614144900f914e75dd76700f19d': [{ multiplier: 30, label: 'Resolv Points' }],
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export default
|
|
26
|
+
export default points
|
package/src/strategies/types.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { computeYearnApr } from './computeYearnApr.js'
|
|
|
11
11
|
|
|
12
12
|
import { contracts } from '@stake-dao/constants'
|
|
13
13
|
import type { Price } from '../../../prices.js'
|
|
14
|
-
import type { RewardsData, SdtApr, StrategyData, ValidChainId
|
|
14
|
+
import type { RewardsData, SdtApr, StrategyData, ValidChainId } from '../../types.js'
|
|
15
15
|
import { getAprBreakdown } from '../../utils/getAprBreakdown.js'
|
|
16
16
|
import { decodeNewFactoryEvent } from '../../utils/index.js'
|
|
17
17
|
import { fetchAllYearnGauges } from './fetchAllYearnGauges.js'
|
|
@@ -49,7 +49,6 @@ interface TFetchYearn {
|
|
|
49
49
|
provider: any
|
|
50
50
|
rpc: string
|
|
51
51
|
explorerApiKey: string
|
|
52
|
-
explorer: ValidExplorer
|
|
53
52
|
chainId: ValidChainId
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -58,7 +57,6 @@ export const fetchYearn = async ({
|
|
|
58
57
|
provider,
|
|
59
58
|
rpc,
|
|
60
59
|
explorerApiKey,
|
|
61
|
-
explorer,
|
|
62
60
|
chainId,
|
|
63
61
|
}: TFetchYearn): Promise<StrategyData> => {
|
|
64
62
|
const fromBlock = yearnStrats.meta.lastSyncBlock[chainId]! + 1
|
|
@@ -74,7 +72,7 @@ export const fetchYearn = async ({
|
|
|
74
72
|
await fetch(
|
|
75
73
|
NEW_FACTORY_EXPLORER_EVENTS(
|
|
76
74
|
explorerApiKey,
|
|
77
|
-
|
|
75
|
+
chainId,
|
|
78
76
|
contracts.yearnVaultFactory![chainId]!,
|
|
79
77
|
fromBlock,
|
|
80
78
|
toBlock,
|
|
@@ -39,7 +39,7 @@ query Proposals {
|
|
|
39
39
|
first: 20
|
|
40
40
|
where: {
|
|
41
41
|
space: "${space}"
|
|
42
|
-
title_contains: "${TITLE}"
|
|
42
|
+
${space.startsWith('sd') ? '' : `title_contains: "${TITLE}"`}
|
|
43
43
|
type: "weighted"
|
|
44
44
|
}
|
|
45
45
|
orderBy: "created"
|
|
@@ -86,6 +86,19 @@ query UserVote {
|
|
|
86
86
|
}
|
|
87
87
|
`
|
|
88
88
|
|
|
89
|
+
export const getStakeDaoSnapshotSpace = (protocolId: string): string | undefined => {
|
|
90
|
+
switch (protocolId) {
|
|
91
|
+
case 'curve':
|
|
92
|
+
return 'sdcrv.eth'
|
|
93
|
+
case 'fxn':
|
|
94
|
+
return 'sdfxn.eth'
|
|
95
|
+
case 'balancer':
|
|
96
|
+
return 'sdbal.eth'
|
|
97
|
+
default:
|
|
98
|
+
return undefined
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
89
102
|
export const fetchSnapshotUserData = async (
|
|
90
103
|
userAddress: string,
|
|
91
104
|
spaces: string[],
|
|
@@ -109,7 +122,9 @@ export const fetchSnapshotUserData = async (
|
|
|
109
122
|
const proposals = response.proposals as SnapshotProposal[]
|
|
110
123
|
|
|
111
124
|
const prefix = titlePrefix?.[space] || ''
|
|
112
|
-
const
|
|
125
|
+
const title = `${prefix}${space.startsWith('sd') ? '' : TITLE}`
|
|
126
|
+
|
|
127
|
+
const proposal = proposals.find((proposal) => proposal.title.startsWith(title))
|
|
113
128
|
if (!proposal) {
|
|
114
129
|
return undefined
|
|
115
130
|
}
|
|
@@ -121,6 +121,7 @@ export const processRawCampaigns = async ({
|
|
|
121
121
|
...(fetchedTokens.length > 0 ? await getPrices(fetchedTokens as any, chainId) : []),
|
|
122
122
|
...(nativeFetchedTokens.length > 0 ? await getPrices(nativeFetchedTokens as any, mainnet.id) : []),
|
|
123
123
|
...(underlyingTokens.length > 0 ? await getPrices(underlyingTokens as any, chainId) : []),
|
|
124
|
+
{ address: '0x4DF454443D6e9A888e9B1571B2375e8Ab4118d9d', symbol: 'TAC IOU', usdPrice: 0.0375 }, // tmp rEYWA price
|
|
124
125
|
// { address: '0x9E49A0314AE61e9C9E34e4Af62a73FBFfB6DE95A', symbol: 'ARR', usdPrice: 10 }, // For test purpose
|
|
125
126
|
// { address: '0x0Cc20784f790805537D4eE33B41f1aC4eC55446B', symbol: 'USDC', usdPrice: 1 }, // For test purpose
|
|
126
127
|
// { address: '0x59c9a01163e685719FAbE5De34779F563f49D4a3', symbol: 'CRV', usdPrice: 30 }, // For test purpose
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pendlePoints.js","sourceRoot":"","sources":["../../../../src/strategies/pendle/pendlePoints.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;IACnB,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;KAC/C;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;QAC/C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE;QAC5C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC3C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC9C,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAClD;IACD,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC1F,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,sDAAsD;IAClJ,4CAA4C,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;CAC3F,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pendlePoints.d.ts","sourceRoot":"","sources":["../../../../src/strategies/pendle/pendlePoints.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBjB,CAAA;AAED,eAAe,YAAY,CAAA"}
|