@stake-dao/reader 0.2.13 → 0.2.15
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/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/getStratsWithApr.js +3 -2
- package/dist/esm/strategies/curve/fetch/getStratsWithApr.js.map +1 -1
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Positions.js +17 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Positions.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js +4 -10
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/getStratsWithApr.d.ts.map +1 -1
- package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Positions.d.ts +2 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Positions.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/strategies/curve/fetch/getStratsWithApr.ts +5 -5
- package/src/strategies/pancakeswap/fetch/getPancakeV3Positions.ts +24 -0
- package/src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts +4 -14
package/dist/types/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { fetchPancakeswap } from './strategies/pancakeswap/fetch/index.js';
|
|
|
17
17
|
export { buildPancakeSwapStrategies } from './strategies/pancakeswap/build.js';
|
|
18
18
|
export { buildPancakeSwapErc20Strategies } from './strategies/pancakeswap/buildErc20.js';
|
|
19
19
|
export { computePositionData } from './strategies/pancakeswap/fetch/pancakePositions.js';
|
|
20
|
+
export { getPancakeV3Positions } from './strategies/pancakeswap/fetch/getPancakeV3Positions.js';
|
|
20
21
|
export { fetchPendle } from './strategies/pendle/fetch.js';
|
|
21
22
|
export { buildPendleStrategies } from './strategies/pendle/build.js';
|
|
22
23
|
export { default as getPendleApiData } from './strategies/pendle/getPendleApiData.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAKvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5E,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAKvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAG/F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStratsWithApr.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/getStratsWithApr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getStratsWithApr.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/getStratsWithApr.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,qBAAqB,aAAoB,GAAG,WAAW,MAAM,eAAe,GAAG,EAAE,YAAY,GAAG;;;EAoD5G,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPancakeV3Positions.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeV3Positions.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,QAAe,MAAM,WAAW,MAAM,iBAevE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPancakeV3Vaults.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAK3D,eAAO,MAAM,kBAAkB,QACxB,MAAM,WACF,MAAM,cACH,KAAK,EAAE,WACV,GAAG,cACA,GAAG;;;
|
|
1
|
+
{"version":3,"file":"getPancakeV3Vaults.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAK3D,eAAO,MAAM,kBAAkB,QACxB,MAAM,WACF,MAAM,cACH,KAAK,EAAE,WACV,GAAG,cACA,GAAG;;;EAiLhB,CAAA"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -42,6 +42,7 @@ export { fetchPancakeswap } from './strategies/pancakeswap/fetch/index.js'
|
|
|
42
42
|
export { buildPancakeSwapStrategies } from './strategies/pancakeswap/build.js'
|
|
43
43
|
export { buildPancakeSwapErc20Strategies } from './strategies/pancakeswap/buildErc20.js'
|
|
44
44
|
export { computePositionData } from './strategies/pancakeswap/fetch/pancakePositions.js'
|
|
45
|
+
export { getPancakeV3Positions } from './strategies/pancakeswap/fetch/getPancakeV3Positions.js'
|
|
45
46
|
|
|
46
47
|
// Pendle
|
|
47
48
|
export { fetchPendle } from './strategies/pendle/fetch.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { STRAT_FEES } from '@stake-dao/constants'
|
|
2
|
+
import { formatUnits, parseAbi } from 'viem'
|
|
2
3
|
import { mainnet } from 'viem/chains'
|
|
3
4
|
import { equalTlc, multicall } from '../../../utils.js'
|
|
4
|
-
import { formatUnits, parseAbi } from 'viem'
|
|
5
5
|
|
|
6
6
|
const getConvexPool = (apisData: any, chainId: number, isLending: boolean, stratLpAddress: string) => {
|
|
7
7
|
if (chainId === mainnet.id) {
|
|
@@ -15,7 +15,8 @@ const getConvexPool = (apisData: any, chainId: number, isLending: boolean, strat
|
|
|
15
15
|
|
|
16
16
|
const getName = (s: any) => {
|
|
17
17
|
if (s.isLending) {
|
|
18
|
-
|
|
18
|
+
const id = s.key.replace('lending-oneway-', '')
|
|
19
|
+
return `${s.coins[0].symbol}${Number(id) > 8 ? ' Leverage' : ''}`
|
|
19
20
|
}
|
|
20
21
|
return (s.isMetapool ? s.underlyingCoins : s.coins)
|
|
21
22
|
.reduce((res: string, current: any) => `${res}/${current.symbol}`, '')
|
|
@@ -55,9 +56,8 @@ export const getCurveStratsWithApr = async (provider: any, chainId: number, curv
|
|
|
55
56
|
let tradingApy: number = 0
|
|
56
57
|
if (s.isLending) {
|
|
57
58
|
const lendingApyCallResult = lendingExtraCalls.shift()
|
|
58
|
-
tradingApy =
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
59
|
+
tradingApy = Number(formatUnits(lendingApyCallResult.result, 16))
|
|
60
|
+
} else {
|
|
61
61
|
tradingApy = subgraphData?.latestWeeklyApy || 0
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { encodeAbiParameters, parseAbiParameters } from 'viem'
|
|
2
|
+
|
|
3
|
+
import { batchPancakeSwapPositions } from '../../../bytecodes/index.js'
|
|
4
|
+
|
|
5
|
+
import { contracts } from '@stake-dao/constants'
|
|
6
|
+
import { concatBytecode } from '../../../index.js'
|
|
7
|
+
import { batchJsonRpc } from '../../../utils.js'
|
|
8
|
+
|
|
9
|
+
export const getPancakeV3Positions = async (rpc: string, chainId: number) => {
|
|
10
|
+
const positionsInputData = encodeAbiParameters(
|
|
11
|
+
parseAbiParameters(batchPancakeSwapPositions.inputType[chainId]!) as any,
|
|
12
|
+
[contracts.pancakeMasterchef![chainId], contracts.cakeStrategy![chainId], contracts.cakeLocker![chainId]],
|
|
13
|
+
)
|
|
14
|
+
const positionsCalls = concatBytecode(batchPancakeSwapPositions.bytecode[chainId]!, positionsInputData)
|
|
15
|
+
|
|
16
|
+
const positionsData = await batchJsonRpc({
|
|
17
|
+
rpc,
|
|
18
|
+
calls: [positionsCalls],
|
|
19
|
+
outputTypeAbi: batchPancakeSwapPositions.outputTypeHr[chainId]!,
|
|
20
|
+
callsKey: `strategies/pancakeswap/fetch/getPancakeV3Positions.ts: positionsData - chainId ${chainId} - rpc ${rpc}`,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
return positionsData
|
|
24
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { chunk } from 'lodash-es'
|
|
2
2
|
import { encodeAbiParameters, formatUnits, parseAbiParameters } from 'viem'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { batchPancakeSwapStrats } from '../../../bytecodes/index.js'
|
|
5
5
|
|
|
6
6
|
import { getFarmApr } from './pancakeswapMath.js'
|
|
7
7
|
|
|
@@ -11,9 +11,9 @@ import { type Price, mergePrices } from '../../../prices.js'
|
|
|
11
11
|
import { batchJsonRpc, equalTlc } from '../../../utils.js'
|
|
12
12
|
import type { PancakeSwapGlobalData } from '../../types.js'
|
|
13
13
|
import { getAprBreakdown } from '../../utils/getAprBreakdown.js'
|
|
14
|
+
import { getPancakeV3Positions } from './getPancakeV3Positions.js'
|
|
14
15
|
import { computePositionData } from './pancakePositions.js'
|
|
15
16
|
|
|
16
|
-
// NOTE: Need to include mainnet SDT price and sdCAKE in prices args
|
|
17
17
|
export const getPancakeV3Vaults = async (
|
|
18
18
|
rpc: string,
|
|
19
19
|
chainId: number,
|
|
@@ -40,18 +40,7 @@ export const getPancakeV3Vaults = async (
|
|
|
40
40
|
callsKey: `strategies/pancakeswap/fetch/getPancakeV3Vaults.ts: getPancakeV3Vaults - chainId ${chainId} - rpc ${rpc}`,
|
|
41
41
|
})
|
|
42
42
|
|
|
43
|
-
const
|
|
44
|
-
parseAbiParameters(batchPancakeSwapPositions.inputType[chainId]!) as any,
|
|
45
|
-
[contracts.pancakeMasterchef![chainId], contracts.cakeStrategy![chainId], contracts.cakeLocker![chainId]],
|
|
46
|
-
)
|
|
47
|
-
const positionsCalls = concatBytecode(batchPancakeSwapPositions.bytecode[chainId]!, positionsInputData)
|
|
48
|
-
|
|
49
|
-
const positionsData = await batchJsonRpc({
|
|
50
|
-
rpc,
|
|
51
|
-
calls: [positionsCalls],
|
|
52
|
-
outputTypeAbi: batchPancakeSwapPositions.outputTypeHr[chainId]!,
|
|
53
|
-
callsKey: `strategies/pancakeswap/fetch/getPancakeV3Vaults.ts: positionsData - chainId ${chainId} - rpc ${rpc}`,
|
|
54
|
-
})
|
|
43
|
+
const positionsData = await getPancakeV3Positions(rpc, chainId)
|
|
55
44
|
|
|
56
45
|
const pricesToFetch = pools
|
|
57
46
|
.flatMap((p) =>
|
|
@@ -172,6 +161,7 @@ export const getPancakeV3Vaults = async (
|
|
|
172
161
|
version: '3',
|
|
173
162
|
chainId: strat.chainId,
|
|
174
163
|
pool: strat.pool,
|
|
164
|
+
pid: strat.poolId,
|
|
175
165
|
fee: strat.fee,
|
|
176
166
|
coins: strat.coins,
|
|
177
167
|
coinsPrice: [token0PriceInUsd, token1PriceInUsd],
|