@stake-dao/reader 0.4.35 → 0.4.36

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.
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiThG,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsRhG,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBribesRewardsData.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/getBribesRewardsData.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,oBAAoB,WAChB,GAAG,cACC,GAAG,oBACG,GAAG,qBACF,GAAG,qBACH,GAAG,sBACF,GAAG,KACtB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,cAAc,GAAG,SAAS,CAAA;CA8CtF,CAAA;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"getBribesRewardsData.d.ts","sourceRoot":"","sources":["../../../../src/lockers/utils/getBribesRewardsData.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,oBAAoB,WAChB,GAAG,cACC,GAAG,oBACG,GAAG,qBACF,GAAG,qBACH,GAAG,sBACF,GAAG,KACtB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,cAAc,GAAG,SAAS,CAAA;CA+CtF,CAAA;AAED,eAAe,oBAAoB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.4.35",
4
+ "version": "0.4.36",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1,11 +1,11 @@
1
- import { type Locker, ONE_YEAR, Zero, delegationWithId, lockers } from '@stake-dao/constants'
1
+ import { type Locker, ONE_YEAR, RPC, Zero, contract, lockers } from '@stake-dao/constants'
2
2
  import { formatUnits, parseAbi, zeroAddress } from 'viem'
3
- import { fraxtal, mainnet } from 'viem/chains'
3
+ import { mainnet } from 'viem/chains'
4
4
  import lockersMulticallAbi from '../../abis/lockersMulticall.js'
5
5
  import { getSdtInflationData } from '../../index.js'
6
6
  import type { Price } from '../../prices.js'
7
7
  import { handlePromise } from '../../strategies/utils/promise.js'
8
- import { type Call, type MultiChainCall, equalTlc, multicall, multichainMulticall } from '../../utils.js'
8
+ import { type Call, type MultiChainCall, equalTlc, multicall, multichainMulticall, rpcCall } from '../../utils.js'
9
9
  import { extractFees, feeCalls } from '../utils/callsForLockers/feeCalls.js'
10
10
  import callsForLockers from '../utils/callsForLockers/index.js'
11
11
  import getBribesRewardsData, { type TBribesRewards } from '../utils/getBribesRewardsData.js'
@@ -73,7 +73,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
73
73
  lockersFeeCalls.push(...feeCalls(locker.id, locker.modules.accumulator))
74
74
  }
75
75
 
76
- const [rawLockersData, rawLockersSideChainData, rawLockersRewardsData] = await handlePromise(
76
+ const [rawLockersData, rawLockersSideChainData, rawLockersRewardsData, rawVeSdtTotalSupply] = await handlePromise(
77
77
  [
78
78
  multicall(provider, lockersCalls.concat(lockersFeeCalls), lockersMulticallAbi),
79
79
  multichainMulticall(lockersSideChainsCalls, lockersMulticallAbi),
@@ -84,6 +84,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
84
84
  'function reward_data(address) external view returns (address,address,uint256,uint256,uint256,uint256)',
85
85
  ]),
86
86
  ),
87
+ rpcCall(RPC[mainnet.id], [{ to: contract('veSdt', mainnet.id), data: '0x18160ddd' }]),
87
88
  ],
88
89
  'lockerMulticalls',
89
90
  )
@@ -91,6 +92,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
91
92
  const lockersFees = extractFees(chainLockers, rawLockersData)
92
93
 
93
94
  const sdtInflationData = chainId === mainnet.id ? await getSdtInflationData(provider) : undefined
95
+ const veSdtTotalSupply = BigInt(rawVeSdtTotalSupply[0].result)
94
96
 
95
97
  const lockerData = chainLockers.map(async (locker) => {
96
98
  const lockerCallsLength = callsForLockers(
@@ -135,7 +137,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
135
137
  ? formatUnits(chunkedRawLockersData[7].result, locker.token.decimals)
136
138
  : '0'
137
139
  const amountTokenNotLock = formatUnits(chunkedRawLockersData[8].result, locker.token.decimals)
138
- const veSdtTotalSupply = chainId === mainnet.id ? chunkedRawLockersData[9].result : '0'
140
+ // const veSdtTotalSupply = chainId === mainnet.id ? chunkedRawLockersData[9].result : '0'
139
141
 
140
142
  const voteBooster = parseVoteBoosterData(locker, chunkedRawLockersData)
141
143
  const peg = parsePeg(locker, chunkedRawLockersData)
@@ -209,57 +211,28 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
209
211
  }
210
212
  })
211
213
 
212
- let bribeMinApr = 0
213
- let bribeMaxApr = 0
214
- let bribeRewards: TBribesRewards | undefined = undefined
214
+ let _workingSupply = chainId === mainnet.id ? gaugeWorkingSupply : totalSupplyStaked
215
+ let _veSdtTotalSupply = veSdtTotalSupply
216
+ let _veBalanceOfLocker = veBalanceOfLocker
215
217
 
216
- if (chainId === mainnet.id || chainId === fraxtal.id) {
217
- let _workingSupply = gaugeWorkingSupply
218
- let _veSdtTotalSupply = veSdtTotalSupply
219
- let _veBalanceOfLocker = veBalanceOfLocker
220
-
221
- if (locker.id === 'fxs') {
222
- _workingSupply = httpCalls.sdfxsWorkingData.working_supply.toString()
223
- _veSdtTotalSupply = BigInt(httpCalls.sdfxsWorkingData.veSDT_total_supply)
224
- _veBalanceOfLocker = (httpCalls.sdfxsWorkingData.veBalance * 4).toString()
225
- }
218
+ if (locker.id === 'fxs') {
219
+ _workingSupply = httpCalls.sdfxsWorkingData.working_supply.toString()
220
+ _veSdtTotalSupply = BigInt(httpCalls.sdfxsWorkingData.veSDT_total_supply)
221
+ _veBalanceOfLocker = (httpCalls.sdfxsWorkingData.veBalance * 4).toString()
222
+ }
226
223
 
227
- const data = getBribesRewardsData(
228
- locker,
229
- httpCalls.bribesData,
230
- _veSdtTotalSupply,
231
- totalSupplyStaked,
232
- _veBalanceOfLocker,
233
- _workingSupply,
234
- )
235
-
236
- bribeMinApr = data.bribeMinApr
237
- bribeMaxApr = data.bribeMaxApr
238
- bribeRewards = data.bribeRewards
239
- } else if (locker.id === 'cake') {
240
- let _veBalanceOfLocker = Number(veBalanceOfLocker)
241
-
242
- // Add sidechain veBalance
243
- if (sideChains && sideChains.length > 0) {
244
- _veBalanceOfLocker +=
245
- sideChains?.reduce((acc: number, sideChain) => acc + Number(sideChain.veBalanceOfLocker), 0) || 0
246
- }
224
+ const data = getBribesRewardsData(
225
+ locker,
226
+ httpCalls.bribesData,
227
+ _veSdtTotalSupply,
228
+ totalSupplyStaked,
229
+ _veBalanceOfLocker,
230
+ _workingSupply,
231
+ )
247
232
 
248
- const apr =
249
- (httpCalls.bribesData?.[delegationWithId(locker.id)!] || 0) * (_veBalanceOfLocker / Number(totalSupplyStaked))
250
-
251
- bribeMinApr = apr
252
- bribeMaxApr = apr
253
- bribeRewards = {
254
- bribeMinApr: apr,
255
- bribeMaxApr: apr,
256
- bribeAverageApr: apr,
257
- minBoost: '0',
258
- maxBoost: '0',
259
- hideBoostTab: true,
260
- token: `sd${locker.id}`,
261
- }
262
- }
233
+ const bribeMinApr: number = data.bribeMinApr
234
+ const bribeMaxApr: number = data.bribeMaxApr
235
+ const bribeRewards: TBribesRewards | undefined = data.bribeRewards
263
236
 
264
237
  // Total APR
265
238
  const minRewardsAprs = rewardsData.reduce((x, y) => x + y.apr, 0) + bribeMinApr
@@ -27,6 +27,7 @@ const getBribesRewardsData = (
27
27
  { id: 'bal', value: bribesData?.[delegationWithId('bal')!] / 100 || 0 },
28
28
  { id: 'fxs', value: bribesData?.[delegationWithId('fxs')!] / 100 || 0 }, // 1 FXS = 4 veFXS
29
29
  { id: 'angle', value: bribesData?.[delegationWithId('angle')!] / 100 || 0 },
30
+ { id: 'cake', value: bribesData?.[delegationWithId('cake')!] / 100 || 0 },
30
31
  { id: 'pendle', value: bribesData?.[delegationWithId('pendle')!] / 100 || 0 },
31
32
  { id: 'fxn', value: bribesData?.[delegationWithId('fxn')!] / 100 || 0 },
32
33
  ]