@stake-dao/reader 0.2.12 → 0.2.13
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/bytecodes/tokenData.js +1 -1
- package/dist/esm/bytecodes/tokenData.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/getStratsWithApr.js +14 -6
- package/dist/esm/strategies/curve/fetch/getStratsWithApr.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/index.js +2 -1
- package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/strategies/curve/fetch/getStratsWithApr.d.ts +2 -2
- package/dist/types/strategies/curve/fetch/getStratsWithApr.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bytecodes/tokenData.ts +1 -1
- package/src/strategies/curve/fetch/getStratsWithApr.ts +20 -6
- package/src/strategies/curve/fetch/index.ts +3 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const getCurveStratsWithApr: (chainId: number, curveStrats: any[], apisData: any) => {
|
|
1
|
+
export declare const getCurveStratsWithApr: (provider: any, chainId: number, curveStrats: any[], apisData: any) => Promise<{
|
|
2
2
|
curveStratsWithApr: any[];
|
|
3
3
|
curveStratsDataCalls: any[];
|
|
4
|
-
}
|
|
4
|
+
}>;
|
|
5
5
|
//# sourceMappingURL=getStratsWithApr.d.ts.map
|
|
@@ -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":"AAwBA,eAAO,MAAM,qBAAqB,aAAoB,GAAG,WAAW,MAAM,eAAe,GAAG,EAAE,YAAY,GAAG;;;EAqD5G,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,iBAAiB,CAAA;AAEjE,OAAO,KAAK,EAIV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAA;AASvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAK3E,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,kGASpB,WAAW,KAAG,OAAO,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curve/fetch/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,iBAAiB,CAAA;AAEjE,OAAO,KAAK,EAIV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAA;AASvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAK3E,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,eAAO,MAAM,UAAU,kGASpB,WAAW,KAAG,OAAO,CAAC,YAAY,CAuPpC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BatchMetaData } from './types.js'
|
|
2
2
|
|
|
3
3
|
const commonBytecode =
|
|
4
|
-
'
|
|
4
|
+
'0x608060405234801561000f575f80fd5b5060405161086f38038061086f833981810160405281019061003191906104f3565b5f815190505f8167ffffffffffffffff8111156100515761005061035d565b5b60405190808252806020026020018201604052801561008a57816020015b6100776102fc565b81526020019060019003908161006f5790505b5090505f5b828110156102cd575f8482815181106100ab576100aa61053a565b5b602002602001015190505f8190508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610101573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906101299190610617565b84848151811061013c5761013b61053a565b5b60200260200101515f01819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610192573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906101ba9190610617565b8484815181106101cd576101cc61053a565b5b602002602001015160200181905250818484815181106101f0576101ef61053a565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029b9190610691565b8484815181106102ae576102ad61053a565b5b602002602001015160600181815250505050808060010191505061008f565b505f816040516020016102e0919061084e565b6040516020818303038152906040529050602081018059038082f35b604051806080016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103938261034d565b810181811067ffffffffffffffff821117156103b2576103b161035d565b5b80604052505050565b5f6103c4610338565b90506103d0828261038a565b919050565b5f67ffffffffffffffff8211156103ef576103ee61035d565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61042d82610404565b9050919050565b61043d81610423565b8114610447575f80fd5b50565b5f8151905061045881610434565b92915050565b5f61047061046b846103d5565b6103bb565b9050808382526020820190506020840283018581111561049357610492610400565b5b835b818110156104bc57806104a8888261044a565b845260208401935050602081019050610495565b5050509392505050565b5f82601f8301126104da576104d9610349565b5b81516104ea84826020860161045e565b91505092915050565b5f6020828403121561050857610507610341565b5b5f82015167ffffffffffffffff81111561052557610524610345565b5b610531848285016104c6565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f80fd5b5f67ffffffffffffffff8211156105855761058461035d565b5b61058e8261034d565b9050602081019050919050565b8281835e5f83830152505050565b5f6105bb6105b68461056b565b6103bb565b9050828152602081018484840111156105d7576105d6610567565b5b6105e284828561059b565b509392505050565b5f82601f8301126105fe576105fd610349565b5b815161060e8482602086016105a9565b91505092915050565b5f6020828403121561062c5761062b610341565b5b5f82015167ffffffffffffffff81111561064957610648610345565b5b610655848285016105ea565b91505092915050565b5f819050919050565b6106708161065e565b811461067a575f80fd5b50565b5f8151905061068b81610667565b92915050565b5f602082840312156106a6576106a5610341565b5b5f6106b38482850161067d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610709826106e5565b61071381856106ef565b935061072381856020860161059b565b61072c8161034d565b840191505092915050565b61074081610423565b82525050565b61074f8161065e565b82525050565b5f608083015f8301518482035f86015261076f82826106ff565b9150506020830151848203602086015261078982826106ff565b915050604083015161079e6040860182610737565b5060608301516107b16060860182610746565b508091505092915050565b5f6107c78383610755565b905092915050565b5f602082019050919050565b5f6107e5826106bc565b6107ef81856106c6565b935083602082028501610801856106d6565b805f5b8581101561083c578484038952815161081d85826107bc565b9450610828836107cf565b925060208a01995050600181019050610804565b50829750879550505050505092915050565b5f6020820190508181035f83015261086681846107db565b90509291505056fe'
|
|
5
5
|
const commonInputType = ['address[] inputs']
|
|
6
6
|
const commonOutputType = [
|
|
7
7
|
'Erc20Data[] erc20data',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { STRAT_FEES } from '@stake-dao/constants'
|
|
2
2
|
import { mainnet } from 'viem/chains'
|
|
3
|
-
import { equalTlc } from '../../../utils.js'
|
|
3
|
+
import { equalTlc, multicall } from '../../../utils.js'
|
|
4
|
+
import { formatUnits, parseAbi } from 'viem'
|
|
4
5
|
|
|
5
6
|
const getConvexPool = (apisData: any, chainId: number, isLending: boolean, stratLpAddress: string) => {
|
|
6
7
|
if (chainId === mainnet.id) {
|
|
@@ -21,11 +22,17 @@ const getName = (s: any) => {
|
|
|
21
22
|
.slice(1)
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export const getCurveStratsWithApr = (chainId: number, curveStrats: any[], apisData: any) => {
|
|
25
|
+
export const getCurveStratsWithApr = async (provider: any, chainId: number, curveStrats: any[], apisData: any) => {
|
|
25
26
|
const curveStratsDataCalls: any[] = []
|
|
26
27
|
|
|
27
28
|
const strats = curveStrats.filter((s) => s.key && s.chainId === chainId)
|
|
28
29
|
|
|
30
|
+
const lendingExtraCalls = await multicall(
|
|
31
|
+
provider,
|
|
32
|
+
strats.filter((s) => s.isLending).flatMap((s) => [{ address: s.lpToken.address, name: 'lend_apr' }]),
|
|
33
|
+
parseAbi(['function lend_apr() external view returns (uint256)']),
|
|
34
|
+
)
|
|
35
|
+
|
|
29
36
|
const curveStratsWithApr = strats.map((s) => {
|
|
30
37
|
const curveApiData = apisData.curveApiData.find((el) => equalTlc(el.lp, s.lpToken.address))
|
|
31
38
|
|
|
@@ -45,13 +52,20 @@ export const getCurveStratsWithApr = (chainId: number, curveStrats: any[], apisD
|
|
|
45
52
|
sdtLiquidityGauge: s.sdGauge,
|
|
46
53
|
})
|
|
47
54
|
|
|
55
|
+
let tradingApy: number = 0
|
|
56
|
+
if (s.isLending) {
|
|
57
|
+
const lendingApyCallResult = lendingExtraCalls.shift()
|
|
58
|
+
tradingApy = Number(formatUnits(lendingApyCallResult.result, 16))
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
tradingApy = subgraphData?.latestWeeklyApy || 0
|
|
62
|
+
}
|
|
63
|
+
|
|
48
64
|
return {
|
|
49
65
|
...s,
|
|
50
66
|
name: getName(s),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// tradingApy: curveApiData?.rates ? curveApiData.rates.lendApyPcent : 0,
|
|
54
|
-
tradingApy: subgraphData?.latestWeeklyApy || 0,
|
|
67
|
+
...(s.isLending ? { subname: `${s.underlyingCoins[0].symbol} collat.` } : {}),
|
|
68
|
+
tradingApy,
|
|
55
69
|
gaugesProjectedApr,
|
|
56
70
|
minApr: curveApiData?.crvApr ? curveApiData.crvApr[0] * ((100 - STRAT_FEES) / 100) : 0,
|
|
57
71
|
maxApr: curveApiData?.crvApr ? curveApiData.crvApr[1] * ((100 - STRAT_FEES) / 100) : 0,
|
|
@@ -61,7 +61,8 @@ export const fetchCurve = async ({
|
|
|
61
61
|
|
|
62
62
|
const strats: any[] = await buildCurveStrategies(provider, allVaultAndLp, chainId, apisData.curveApiData)
|
|
63
63
|
|
|
64
|
-
const { curveStratsWithApr: stratsWithApr, curveStratsDataCalls: stratsDataCalls } = getCurveStratsWithApr(
|
|
64
|
+
const { curveStratsWithApr: stratsWithApr, curveStratsDataCalls: stratsDataCalls } = await getCurveStratsWithApr(
|
|
65
|
+
provider,
|
|
65
66
|
chainId,
|
|
66
67
|
strats,
|
|
67
68
|
apisData,
|
|
@@ -204,6 +205,7 @@ export const fetchCurve = async ({
|
|
|
204
205
|
return {
|
|
205
206
|
key: strat.key,
|
|
206
207
|
name: strat.name,
|
|
208
|
+
subname: strat.subname,
|
|
207
209
|
type: strat.type,
|
|
208
210
|
protocol: strat.protocol,
|
|
209
211
|
chainId: strat.chainId,
|