@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.
- package/dist/esm/lockers/fetch/index.js +18 -41
- package/dist/esm/lockers/fetch/index.js.map +1 -1
- package/dist/esm/lockers/utils/getBribesRewardsData.js +1 -0
- package/dist/esm/lockers/utils/getBribesRewardsData.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/lockers/fetch/index.d.ts.map +1 -1
- package/dist/types/lockers/utils/getBribesRewardsData.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lockers/fetch/index.ts +26 -53
- package/src/lockers/utils/getBribesRewardsData.ts +1 -0
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;
|
|
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,11 +1,11 @@
|
|
|
1
|
-
import { type Locker, ONE_YEAR, Zero,
|
|
1
|
+
import { type Locker, ONE_YEAR, RPC, Zero, contract, lockers } from '@stake-dao/constants'
|
|
2
2
|
import { formatUnits, parseAbi, zeroAddress } from 'viem'
|
|
3
|
-
import {
|
|
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
|
|
213
|
-
let
|
|
214
|
-
let
|
|
214
|
+
let _workingSupply = chainId === mainnet.id ? gaugeWorkingSupply : totalSupplyStaked
|
|
215
|
+
let _veSdtTotalSupply = veSdtTotalSupply
|
|
216
|
+
let _veBalanceOfLocker = veBalanceOfLocker
|
|
215
217
|
|
|
216
|
-
if (
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
249
|
-
|
|
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
|
]
|