@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.
@@ -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;AAGxF,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
+ {"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":"AAwBA,eAAO,MAAM,qBAAqB,aAAoB,GAAG,WAAW,MAAM,eAAe,GAAG,EAAE,YAAY,GAAG;;;EAqD5G,CAAA"}
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,2 @@
1
+ export declare const getPancakeV3Positions: (rpc: string, chainId: number) => Promise<any>;
2
+ //# sourceMappingURL=getPancakeV3Positions.d.ts.map
@@ -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;;;EA2LhB,CAAA"}
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.2.13",
4
+ "version": "0.2.15",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
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
- return s.coins[0].symbol
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 = Number(formatUnits(lendingApyCallResult.result, 16))
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 { batchPancakeSwapPositions, batchPancakeSwapStrats } from '../../../bytecodes/index.js'
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 positionsInputData = encodeAbiParameters(
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],