@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.
- package/dist/esm/abis/lockersMulticall.js +10 -0
- package/dist/esm/abis/lockersMulticall.js.map +1 -1
- package/dist/esm/lockers/fetch/index.js +1 -1
- package/dist/esm/lockers/fetch/index.js.map +1 -1
- package/dist/esm/lockers/fetch/parseBoost.js +4 -11
- package/dist/esm/lockers/fetch/parseBoost.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
- package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/index.js +1 -1
- package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
- package/dist/esm/lockers/utils/callsForLockers/veBoosts.js +9 -1
- package/dist/esm/lockers/utils/callsForLockers/veBoosts.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
- package/dist/types/lockers/fetch/index.d.ts.map +1 -1
- package/dist/types/lockers/fetch/parseBoost.d.ts +1 -1
- package/dist/types/lockers/fetch/parseBoost.d.ts.map +1 -1
- package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
- package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts +1 -1
- package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/abis/lockersMulticall.ts +10 -0
- package/src/lockers/fetch/index.ts +1 -7
- package/src/lockers/fetch/parseBoost.ts +6 -19
- package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
- package/src/lockers/utils/callsForLockers/index.ts +1 -1
- 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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: (
|
|
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;
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"veBoosts.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veBoosts.ts"],"names":[],"mappings":"
|
|
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
|
@@ -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
|
-
?
|
|
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
|
|
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 =
|
|
18
|
-
|
|
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 =
|
|
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' })
|
|
@@ -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 = (
|
|
4
|
-
|
|
5
|
-
|
|
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
|