@stake-dao/reader 0.4.39 → 0.4.40

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 (27) hide show
  1. package/dist/esm/abis/lockersMulticall.js +10 -0
  2. package/dist/esm/abis/lockersMulticall.js.map +1 -1
  3. package/dist/esm/lockers/fetch/index.js +1 -1
  4. package/dist/esm/lockers/fetch/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/parseBoost.js +4 -11
  6. package/dist/esm/lockers/fetch/parseBoost.js.map +1 -1
  7. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
  8. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
  9. package/dist/esm/lockers/utils/callsForLockers/index.js +1 -1
  10. package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
  11. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js +9 -1
  12. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js.map +1 -1
  13. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  14. package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
  15. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  16. package/dist/types/lockers/fetch/parseBoost.d.ts +1 -1
  17. package/dist/types/lockers/fetch/parseBoost.d.ts.map +1 -1
  18. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
  19. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts +1 -1
  20. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/abis/lockersMulticall.ts +10 -0
  23. package/src/lockers/fetch/index.ts +1 -7
  24. package/src/lockers/fetch/parseBoost.ts +6 -19
  25. package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
  26. package/src/lockers/utils/callsForLockers/index.ts +1 -1
  27. package/src/lockers/utils/callsForLockers/veBoosts.ts +17 -4
@@ -1 +1 @@
1
- {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiUxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2UxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgShG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0RhG,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { type Locker } from '@stake-dao/constants';
2
2
  export declare const parseBoost: (locker: Locker, chunkedRawLockersData: any) => string;
3
- export declare const parseVeBoostApr: (provider: any, tokenAddress: string, veBoostDelegator: string, tokenPriceInUsd: number, totalDelegatedVeBoost: number) => Promise<number>;
3
+ export declare const parseVeBoostApr: (lockerId: string, tokenPriceInUsd: number, totalDelegatedVeBoost: number, chunkedRawLockersData: any) => number;
4
4
  //# sourceMappingURL=parseBoost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseBoost.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parseBoost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,sBAAsB,CAAA;AAK5E,eAAO,MAAM,UAAU,WAAY,MAAM,yBAAyB,GAAG,WASpE,CAAA;AAED,eAAO,MAAM,eAAe,aAChB,GAAG,gBACC,MAAM,oBACF,MAAM,mBACP,MAAM,yBACA,MAAM,oBAqC9B,CAAA"}
1
+ {"version":3,"file":"parseBoost.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parseBoost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,sBAAsB,CAAA;AAI5E,eAAO,MAAM,UAAU,WAAY,MAAM,yBAAyB,GAAG,WASpE,CAAA;AAED,eAAO,MAAM,eAAe,aAChB,MAAM,mBACC,MAAM,yBACA,MAAM,yBACN,GAAG,WA0B3B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAqBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAsBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Address } from 'viem';
2
- declare const veBoosts: (veBoost?: {
2
+ declare const veBoosts: (token: string, veBoost?: {
3
3
  address: Address;
4
4
  delegator: Address;
5
5
  }) => any[];
@@ -1 +1 @@
1
- {"version":3,"file":"veBoosts.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veBoosts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,QAAQ,aAAc;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UAOA,CAAA;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"veBoosts.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veBoosts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,QAAQ,UACL,MAAM,YACH;IACR,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UAgBF,CAAA;AAED,eAAe,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.4.39",
4
+ "version": "0.4.40",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
@@ -319,6 +319,16 @@ const lockersMulticallAbi = [
319
319
  stateMutability: 'view',
320
320
  type: 'function',
321
321
  },
322
+ {
323
+ inputs: [
324
+ { internalType: 'address', name: '', type: 'address' },
325
+ { internalType: 'uint256', name: '', type: 'uint256' },
326
+ ],
327
+ name: 'weeklyRewards',
328
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
329
+ stateMutability: 'view',
330
+ type: 'function',
331
+ },
322
332
  ]
323
333
 
324
334
  export default lockersMulticallAbi
@@ -179,13 +179,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
179
179
 
180
180
  const veBoostTotalSupply = parseBoost(locker, chunkedRawLockersData)
181
181
  const veBoostApr = locker.veBoost
182
- ? await parseVeBoostApr(
183
- provider,
184
- locker.token.address,
185
- locker.veBoost.delegator,
186
- tokenPriceInUsd,
187
- Number(veBoostTotalSupply),
188
- )
182
+ ? parseVeBoostApr(locker.id, tokenPriceInUsd, Number(veBoostTotalSupply), chunkedRawLockersData)
189
183
  : 0
190
184
 
191
185
  // Rewards APR
@@ -1,7 +1,6 @@
1
1
  import { type Locker, ONE_WEEK, ONE_YEAR, Zero } from '@stake-dao/constants'
2
2
  import { range } from 'lodash-es'
3
- import { formatUnits, parseAbi } from 'viem'
4
- import { multicall } from '../../utils.js'
3
+ import { formatUnits } from 'viem'
5
4
 
6
5
  export const parseBoost = (locker: Locker, chunkedRawLockersData: any) => {
7
6
  let boost = '0'
@@ -14,29 +13,17 @@ export const parseBoost = (locker: Locker, chunkedRawLockersData: any) => {
14
13
  return boost
15
14
  }
16
15
 
17
- export const parseVeBoostApr = async (
18
- provider: any,
19
- tokenAddress: string,
20
- veBoostDelegator: string,
16
+ export const parseVeBoostApr = (
17
+ lockerId: string,
21
18
  tokenPriceInUsd: number,
22
19
  totalDelegatedVeBoost: number,
20
+ chunkedRawLockersData: any,
23
21
  ) => {
22
+ const startIndex = lockerId === 'crv' ? 16 : 12
24
23
  let amountPerYear = 0
25
24
 
26
- const now = Math.floor(Date.now() / 1000)
27
- const lastWeek = Math.floor(now / ONE_WEEK) * ONE_WEEK
28
- const lastFiveWeeks = range(0, 5).map((i) => lastWeek - i * ONE_WEEK)
29
-
30
25
  try {
31
- const rawWeeklyRewards = await multicall(
32
- provider,
33
- lastFiveWeeks.map((weekTimestamp) => ({
34
- address: veBoostDelegator,
35
- name: 'weeklyRewards',
36
- params: [tokenAddress, weekTimestamp],
37
- })),
38
- parseAbi(['function weeklyRewards(address token, uint256 weekTimestamp) external view returns (uint256)']),
39
- )
26
+ const rawWeeklyRewards = range(startIndex, startIndex + 5).map((i) => chunkedRawLockersData[i])
40
27
 
41
28
  const weeklyRewardsWithoutNull = rawWeeklyRewards
42
29
  .filter((el) => el.status === 'success' && el.result && typeof el.result === 'bigint' && el.result > Zero)
@@ -12,6 +12,7 @@ const depositorCalls = (depositor: string, locker: Address) => {
12
12
  lockerWithId('fxs', 252)!.modules.locker,
13
13
  lockerWithId('fxn')!.modules.locker,
14
14
  lockerWithId('yfi')!.modules.locker,
15
+ lockerWithId('pendle')!.modules.locker,
15
16
  ].includes(locker)
16
17
  ) {
17
18
  calls.push({ address: depositor, name: 'lockIncentivePercent' })
@@ -39,7 +39,7 @@ const callsForLockers = (
39
39
  },
40
40
  ]
41
41
  : []),
42
- ...veBoosts(veBoost),
42
+ ...veBoosts(token, veBoost),
43
43
  ]
44
44
 
45
45
  export default callsForLockers
@@ -1,12 +1,25 @@
1
+ import { ONE_WEEK } from '@stake-dao/constants'
2
+ import { range } from 'lodash-es'
1
3
  import type { Address } from 'viem'
2
4
 
3
- const veBoosts = (veBoost?: {
4
- address: Address
5
- delegator: Address
6
- }) => {
5
+ const veBoosts = (
6
+ token: string,
7
+ veBoost?: {
8
+ address: Address
9
+ delegator: Address
10
+ },
11
+ ) => {
7
12
  const calls: any[] = []
8
13
  if (veBoost) {
9
14
  calls.push({ address: veBoost.delegator, name: 'totalSupply', params: [] })
15
+
16
+ const now = Math.floor(Date.now() / 1000)
17
+ const lastWeek = Math.floor(now / ONE_WEEK) * ONE_WEEK
18
+ const lastFiveWeeks = range(0, 5).map((i) => lastWeek - i * ONE_WEEK)
19
+
20
+ for (const weekTimestamp of lastFiveWeeks) {
21
+ calls.push({ address: veBoost.delegator, name: 'weeklyRewards', params: [token, weekTimestamp] })
22
+ }
10
23
  }
11
24
 
12
25
  return calls