@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.
Files changed (66) hide show
  1. package/dist/esm/index.js +1 -1
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/strategies/balancer/fetch.js +2 -2
  4. package/dist/esm/strategies/balancer/fetch.js.map +1 -1
  5. package/dist/esm/strategies/curve/endpoints.js +2 -2
  6. package/dist/esm/strategies/curve/endpoints.js.map +1 -1
  7. package/dist/esm/strategies/curve/fetch/index.js +4 -4
  8. package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
  9. package/dist/esm/strategies/curve/httpCalls.js +3 -3
  10. package/dist/esm/strategies/curve/httpCalls.js.map +1 -1
  11. package/dist/esm/strategies/curve/points.js +5 -2
  12. package/dist/esm/strategies/curve/points.js.map +1 -1
  13. package/dist/esm/strategies/pancakeswap/fetch/index.js +2 -2
  14. package/dist/esm/strategies/pancakeswap/fetch/index.js.map +1 -1
  15. package/dist/esm/strategies/pendle/fetch.js +5 -5
  16. package/dist/esm/strategies/pendle/fetch.js.map +1 -1
  17. package/dist/esm/strategies/pendle/{pendlePoints.js → points.js} +4 -4
  18. package/dist/esm/strategies/pendle/points.js.map +1 -0
  19. package/dist/esm/strategies/yearn/fetch/index.js +2 -2
  20. package/dist/esm/strategies/yearn/fetch/index.js.map +1 -1
  21. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  22. package/dist/esm/votemarket/curve/fetchSnapshotUserData.js +15 -2
  23. package/dist/esm/votemarket/curve/fetchSnapshotUserData.js.map +1 -1
  24. package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js +1 -0
  25. package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js.map +1 -1
  26. package/dist/types/index.d.ts +1 -1
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/types/strategies/balancer/fetch.d.ts +2 -3
  29. package/dist/types/strategies/balancer/fetch.d.ts.map +1 -1
  30. package/dist/types/strategies/curve/endpoints.d.ts +2 -2
  31. package/dist/types/strategies/curve/endpoints.d.ts.map +1 -1
  32. package/dist/types/strategies/curve/fetch/index.d.ts +2 -3
  33. package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
  34. package/dist/types/strategies/curve/httpCalls.d.ts +1 -1
  35. package/dist/types/strategies/curve/httpCalls.d.ts.map +1 -1
  36. package/dist/types/strategies/curve/points.d.ts +14 -2
  37. package/dist/types/strategies/curve/points.d.ts.map +1 -1
  38. package/dist/types/strategies/pancakeswap/fetch/index.d.ts +2 -3
  39. package/dist/types/strategies/pancakeswap/fetch/index.d.ts.map +1 -1
  40. package/dist/types/strategies/pendle/fetch.d.ts +2 -3
  41. package/dist/types/strategies/pendle/fetch.d.ts.map +1 -1
  42. package/dist/types/strategies/pendle/{pendlePoints.d.ts → points.d.ts} +3 -3
  43. package/dist/types/strategies/pendle/points.d.ts.map +1 -0
  44. package/dist/types/strategies/types.d.ts +0 -1
  45. package/dist/types/strategies/types.d.ts.map +1 -1
  46. package/dist/types/strategies/yearn/fetch/index.d.ts +2 -3
  47. package/dist/types/strategies/yearn/fetch/index.d.ts.map +1 -1
  48. package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts +1 -0
  49. package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts.map +1 -1
  50. package/dist/types/votemarket/fetchCampaigns/processRawCampaigns.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/index.ts +1 -1
  53. package/src/strategies/balancer/fetch.ts +2 -4
  54. package/src/strategies/curve/endpoints.ts +4 -4
  55. package/src/strategies/curve/fetch/index.ts +4 -13
  56. package/src/strategies/curve/httpCalls.ts +2 -3
  57. package/src/strategies/curve/points.ts +5 -2
  58. package/src/strategies/pancakeswap/fetch/index.ts +3 -17
  59. package/src/strategies/pendle/fetch.ts +6 -7
  60. package/src/strategies/pendle/{pendlePoints.ts → points.ts} +3 -3
  61. package/src/strategies/types.ts +0 -1
  62. package/src/strategies/yearn/fetch/index.ts +2 -4
  63. package/src/votemarket/curve/fetchSnapshotUserData.ts +17 -2
  64. package/src/votemarket/fetchCampaigns/processRawCampaigns.ts +1 -0
  65. package/dist/esm/strategies/pendle/pendlePoints.js.map +0 -1
  66. 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, ValidExplorer } from '../../types.js'
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, ValidExplorer } from '../types.js'
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 pendlePoints from './pendlePoints.js'
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, explorer, chainId }: TFetchPendle) => {
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, explorer, contracts.pendleVaultFactory![chainId]!, fromBlock, toBlock),
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: pendlePoints[lc(s.lpToken.address)],
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: pendlePoints[s.address.toLowerCase()],
346
+ points: points[s.address.toLowerCase()],
348
347
  }))
349
348
 
350
349
  return {
@@ -1,4 +1,4 @@
1
- const pendlePoints = {
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: 25, label: 'Resolv Points' }], // 25x Resolv points till 17 April, and 15x thereafter
22
+ '0x09fa04aac9c6d1c6131352ee950cd67ecc6d4fb9': [{ multiplier: 15, label: 'Resolv Points' }],
23
23
  '0x82d810ededb09614144900f914e75dd76700f19d': [{ multiplier: 30, label: 'Resolv Points' }],
24
24
  }
25
25
 
26
- export default pendlePoints
26
+ export default points
@@ -1,4 +1,3 @@
1
- export type ValidExplorer = 'etherscan.io' | 'bscscan.com' | 'arbiscan.io'
2
1
  export type ValidChainId = 1 | 56 | 42161
3
2
 
4
3
  export type Coin = {
@@ -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, ValidExplorer } from '../../types.js'
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
- explorer,
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 proposal = proposals.find((proposal) => proposal.title.startsWith(`${prefix}${TITLE}`))
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"}