@1delta/margin-fetcher 0.0.31 → 0.0.33
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/abis/oracle/UniV3.d.ts +50 -0
- package/dist/abis/oracle/UniV3.d.ts.map +1 -0
- package/dist/abis/oracle/UniV3.js +63 -0
- package/dist/assets/index.d.ts +3 -8
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +12 -30
- package/dist/assets/liquidityThresholds.d.ts.map +1 -1
- package/dist/assets/liquidityThresholds.js +3 -3
- package/dist/flash-liquidity/assets.d.ts.map +1 -1
- package/dist/flash-liquidity/assets.js +22 -13
- package/dist/flash-liquidity/fetchLiquidity.d.ts +2 -2
- package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -1
- package/dist/flash-liquidity/fetchLiquidity.js +11 -10
- package/dist/flash-liquidity/utils.d.ts +3 -2
- package/dist/flash-liquidity/utils.d.ts.map +1 -1
- package/dist/flash-liquidity/utils.js +5 -5
- package/dist/lending/aave-v2-type/misc.d.ts +1 -1
- package/dist/lending/aave-v2-type/misc.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/misc.js +7 -3
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts +1 -1
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/publicCallBuild.js +11 -11
- package/dist/lending/aave-v2-type/publicCallParse.d.ts +1 -1
- package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/publicCallParse.js +5 -5
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts +1 -1
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/aave-v3-type/publicCallBuild.js +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.d.ts +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.js +5 -14
- package/dist/lending/addresses/aave.js +1 -1
- package/dist/lending/addresses/aaveV2.js +1 -1
- package/dist/lending/addresses/aurelius.js +1 -1
- package/dist/lending/addresses/compoundV3.d.ts +1 -1
- package/dist/lending/addresses/compoundV3.d.ts.map +1 -1
- package/dist/lending/addresses/compoundV3.js +5 -4
- package/dist/lending/addresses/contracts.d.ts +1 -1
- package/dist/lending/addresses/contracts.d.ts.map +1 -1
- package/dist/lending/addresses/contracts.js +1 -1
- package/dist/lending/addresses/hana.js +1 -1
- package/dist/lending/addresses/init.js +1 -1
- package/dist/lending/addresses/lendle.js +1 -1
- package/dist/lending/addresses/meridian.js +1 -1
- package/dist/lending/addresses/takotako.js +1 -1
- package/dist/lending/compound-v3/publicCallBuild.d.ts +1 -1
- package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.d.ts +1 -1
- package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.js +3 -9
- package/dist/lending/fetchLender.d.ts +1 -1
- package/dist/lending/fetchLender.d.ts.map +1 -1
- package/dist/lending/fetchLender.js +1 -1
- package/dist/lending/fetchLenderAll.d.ts +1 -1
- package/dist/lending/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/fetchLenderAll.js +1 -1
- package/dist/lending/fetchLenderExt.d.ts +1 -1
- package/dist/lending/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/index.d.ts +1 -0
- package/dist/lending/index.d.ts.map +1 -1
- package/dist/lending/index.js +1 -0
- package/dist/lending/init/publicCallBuild.d.ts +1 -1
- package/dist/lending/init/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/init/publicCallParse.d.ts +4 -4
- package/dist/lending/init/publicCallParse.d.ts.map +1 -1
- package/dist/lending/init/publicCallParse.js +7 -7
- package/dist/lending/meta/index.d.ts +19 -0
- package/dist/lending/meta/index.d.ts.map +1 -0
- package/dist/lending/meta/index.js +83 -0
- package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.js +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +2 -2
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallParse.js +44 -38
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.js +5 -5
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +2 -2
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +15 -15
- package/dist/lending/user-data/abis.d.ts +1 -1
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.js +4 -4
- package/dist/lending/user-data/init/userCallBuild.d.ts +2 -2
- package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/init/userCallBuild.js +3 -3
- package/dist/lending/user-data/init/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/init/userCallParse.js +4 -4
- package/dist/lending/user-data/morpho/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.js +6 -4
- package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallParse.js +5 -5
- package/dist/lending/user-data/types.js +1 -1
- package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
- package/dist/lending-pairs/computeLendingPairs.js +6 -6
- package/dist/prices/defillama/index.d.ts.map +1 -1
- package/dist/prices/defillama/index.js +21 -0
- package/dist/prices/main-prices/addresses/api3.js +1 -1
- package/dist/prices/main-prices/addresses/chainlink.js +1 -1
- package/dist/prices/main-prices/fetchOracleData.d.ts +6 -0
- package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
- package/dist/prices/main-prices/fetchOracleData.js +80 -20
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/utils/constants.js +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +29 -26
- package/dist/utils/parsing.d.ts +1 -1
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +9 -8
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +7 -3
- package/package.json +2 -2
- package/src/abis/oracle/UniV3.ts +63 -0
- package/src/assets/index.ts +26 -66
- package/src/assets/liquidityThresholds.ts +55 -43
- package/src/flash-liquidity/assets.ts +68 -44
- package/src/flash-liquidity/fetchLiquidity.ts +13 -14
- package/src/flash-liquidity/utils.ts +22 -16
- package/src/lending/aave-v2-type/misc.ts +7 -3
- package/src/lending/aave-v2-type/publicCallBuild.ts +28 -17
- package/src/lending/aave-v2-type/publicCallParse.ts +5 -5
- package/src/lending/aave-v3-type/publicCallBuild.ts +1 -1
- package/src/lending/aave-v3-type/publicCallParse.ts +4 -14
- package/src/lending/addresses/aave.ts +1 -1
- package/src/lending/addresses/aaveV2.ts +1 -1
- package/src/lending/addresses/aurelius.ts +1 -1
- package/src/lending/addresses/compoundV3.ts +5 -12
- package/src/lending/addresses/contracts.ts +1 -1
- package/src/lending/addresses/hana.ts +1 -1
- package/src/lending/addresses/init.ts +1 -1
- package/src/lending/addresses/lendle.ts +1 -1
- package/src/lending/addresses/meridian.ts +1 -1
- package/src/lending/addresses/takotako.ts +1 -1
- package/src/lending/compound-v3/publicCallBuild.ts +1 -1
- package/src/lending/compound-v3/publicCallParse.ts +3 -10
- package/src/lending/fetchLender.ts +1 -1
- package/src/lending/fetchLenderAll.ts +1 -1
- package/src/lending/fetchLenderExt.ts +1 -1
- package/src/lending/index.ts +1 -0
- package/src/lending/init/publicCallBuild.ts +1 -1
- package/src/lending/init/publicCallParse.ts +64 -48
- package/src/lending/meta/index.ts +124 -0
- package/src/lending/morpho/publicCallBuild.ts +0 -1
- package/src/lending/user-data/aave-v2-type/userCallBuild.ts +1 -1
- package/src/lending/user-data/aave-v2-type/userCallParse.ts +181 -122
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +1 -1
- package/src/lending/user-data/aave-v3-type/userCallParse.ts +7 -8
- package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +37 -34
- package/src/lending/user-data/abis.ts +1 -1
- package/src/lending/user-data/compound-v3/userCallBuild.ts +1 -1
- package/src/lending/user-data/compound-v3/userCallParse.ts +4 -6
- package/src/lending/user-data/fetchUserData.ts +1 -1
- package/src/lending/user-data/init/userCallBuild.ts +11 -7
- package/src/lending/user-data/init/userCallParse.ts +5 -5
- package/src/lending/user-data/morpho/userCallBuild.ts +7 -4
- package/src/lending/user-data/morpho/userCallParse.ts +8 -5
- package/src/lending/user-data/types.ts +1 -1
- package/src/lending-pairs/computeLendingPairs.ts +6 -12
- package/src/prices/defillama/index.ts +24 -0
- package/src/prices/main-prices/addresses/api3.ts +1 -1
- package/src/prices/main-prices/addresses/chainlink.ts +1 -1
- package/src/prices/main-prices/fetchOracleData.ts +118 -20
- package/src/types/index.ts +10 -4
- package/src/utils/constants.ts +1 -1
- package/src/utils/index.ts +48 -39
- package/src/utils/parsing.ts +37 -35
- package/src/yields/index.ts +7 -3
- package/test/flashLiquidity.test.ts +6 -6
- package/test/index.test.ts +1 -1
- package/test/lenderData.test.ts +10 -11
- package/test/lenderDataBasic.test.ts +1 -1
- package/test/mainPriceMB.test.ts +1 -1
- package/test/mainPrices.test.ts +16 -15
- package/test/morpho.test.ts +1 -1
- package/test/morphoPrice.test.ts +1 -1
- package/test/userData.test.ts +2 -1
- package/test/userDataAave.test.ts +1 -1
- package/test/userDataAaveMainnet.test.ts +1 -1
- package/test/userDataAll.test.ts +2 -1
- package/test/userDataCompound.test.ts +2 -1
- package/test/userDataMorpho.test.ts +2 -1
- package/test/userDataMorphoEthereum.test.ts +2 -1
- package/test/userDataMorphoKatana.test.ts +2 -1
- package/test/utils.ts +11 -1
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts +0 -11
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts.map +0 -1
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.js +0 -112
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts +0 -300
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +0 -1
- package/dist/prices/main-prices/addresses/aaveOracles.js +0 -299
- package/dist/prices/main-prices/addresses/morpho.d.ts +0 -11
- package/dist/prices/main-prices/addresses/morpho.d.ts.map +0 -1
- package/dist/prices/main-prices/addresses/morpho.js +0 -2554
- package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +0 -168
- package/src/prices/main-prices/addresses/aaveOracles.ts +0 -299
- package/src/prices/main-prices/addresses/morpho.ts +0 -2563
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Lender } from
|
|
2
|
-
import {
|
|
3
|
-
import { AaveV3UserReserveResponse } from
|
|
4
|
-
import { createBaseTypeUserState } from
|
|
5
|
-
import { YldrTypeGetUserReserveIndexes } from
|
|
6
|
-
import { parseRawAmount } from
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
|
+
import { toGenericPriceKey, toOracleKey } from '../../../assets'
|
|
3
|
+
import { AaveV3UserReserveResponse } from '../types'
|
|
4
|
+
import { createBaseTypeUserState } from '../utils'
|
|
5
|
+
import { YldrTypeGetUserReserveIndexes } from '../../aave-v3-type/types'
|
|
6
|
+
import { parseRawAmount } from '../../../utils/parsing'
|
|
7
|
+
import { GenericCurrency } from '../../types'
|
|
7
8
|
|
|
8
9
|
/** Like Aave V3, not stable debt data and no emode */
|
|
9
10
|
export const getYldrUserDataConverter = (
|
|
@@ -12,10 +13,9 @@ export const getYldrUserDataConverter = (
|
|
|
12
13
|
account: string,
|
|
13
14
|
prices: { [asset: string]: number },
|
|
14
15
|
pricesHist: { [asset: string]: number },
|
|
15
|
-
lenderData: any
|
|
16
|
+
lenderData: any,
|
|
16
17
|
): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {
|
|
17
|
-
|
|
18
|
-
const assetsToQuery = getAaveAssets(chainId, lender)
|
|
18
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
19
19
|
const expectedNumberOfCalls = assetsToQuery.length
|
|
20
20
|
return [
|
|
21
21
|
(data: any[]) => {
|
|
@@ -29,19 +29,15 @@ export const getYldrUserDataConverter = (
|
|
|
29
29
|
|
|
30
30
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
31
31
|
const asset = assetsToQuery[i]
|
|
32
|
-
const {
|
|
33
|
-
dataForAsset,
|
|
34
|
-
addedDebt,
|
|
35
|
-
addedDeposits
|
|
36
|
-
} = createAaveV3Entry(
|
|
32
|
+
const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(
|
|
37
33
|
i,
|
|
38
34
|
data,
|
|
39
35
|
chainId,
|
|
40
|
-
asset
|
|
36
|
+
lenderData[asset].asset``,
|
|
41
37
|
prices,
|
|
42
38
|
pricesHist,
|
|
43
39
|
)
|
|
44
|
-
if (!dataForAsset) continue
|
|
40
|
+
if (!dataForAsset) continue
|
|
45
41
|
totalDebt24h += addedDebt
|
|
46
42
|
totalDeposits24h += addedDeposits
|
|
47
43
|
lendingPositions[asset] = dataForAsset
|
|
@@ -50,15 +46,20 @@ export const getYldrUserDataConverter = (
|
|
|
50
46
|
const payload = {
|
|
51
47
|
chainId,
|
|
52
48
|
account,
|
|
53
|
-
lendingPositions: {
|
|
49
|
+
lendingPositions: { '0': lendingPositions },
|
|
54
50
|
rewards: {},
|
|
55
51
|
userEMode: 0,
|
|
56
52
|
}
|
|
57
53
|
|
|
58
|
-
const userData = createBaseTypeUserState(
|
|
54
|
+
const userData = createBaseTypeUserState(
|
|
55
|
+
payload,
|
|
56
|
+
lenderData,
|
|
57
|
+
totalDeposits24h,
|
|
58
|
+
totalDebt24h,
|
|
59
|
+
)
|
|
59
60
|
return {
|
|
60
61
|
...payload,
|
|
61
|
-
...userData
|
|
62
|
+
...userData,
|
|
62
63
|
}
|
|
63
64
|
},
|
|
64
65
|
expectedNumberOfCalls,
|
|
@@ -69,34 +70,34 @@ function createAaveV3Entry(
|
|
|
69
70
|
i: number,
|
|
70
71
|
data: any[],
|
|
71
72
|
chainId: string,
|
|
72
|
-
asset:
|
|
73
|
+
asset: GenericCurrency,
|
|
73
74
|
prices: any,
|
|
74
75
|
pricesHist: any,
|
|
75
76
|
) {
|
|
76
77
|
const reserveData = data[i]
|
|
77
78
|
|
|
78
|
-
const currentATokenBalanceRaw =
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const currentATokenBalanceRaw =
|
|
80
|
+
reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString()
|
|
81
|
+
const currentVariableDebtRaw =
|
|
82
|
+
reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString()
|
|
81
83
|
|
|
82
|
-
if (
|
|
83
|
-
currentATokenBalanceRaw === "0" &&
|
|
84
|
-
currentVariableDebtRaw === "0") {
|
|
84
|
+
if (currentATokenBalanceRaw === '0' && currentVariableDebtRaw === '0') {
|
|
85
85
|
return {
|
|
86
86
|
dataForAsset: undefined,
|
|
87
87
|
addedDeposits: 0,
|
|
88
|
-
addedDebt: 0
|
|
88
|
+
addedDebt: 0,
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
const assetMeta =
|
|
92
|
+
const assetMeta = asset
|
|
93
93
|
const decimals = assetMeta?.decimals ?? 18
|
|
94
94
|
|
|
95
95
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
|
|
96
96
|
const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
const key =
|
|
99
|
+
toOracleKey(assetMeta?.assetGroup) ??
|
|
100
|
+
toGenericPriceKey(asset.address, chainId)
|
|
100
101
|
// prices
|
|
101
102
|
const price = prices[key] ?? 1
|
|
102
103
|
const priceHist = pricesHist?.[key] ?? price
|
|
@@ -106,19 +107,21 @@ function createAaveV3Entry(
|
|
|
106
107
|
underlying: asset,
|
|
107
108
|
deposits: currentATokenBalance,
|
|
108
109
|
depositsRaw: currentATokenBalanceRaw,
|
|
109
|
-
debtStable:
|
|
110
|
+
debtStable: '0',
|
|
110
111
|
debt: currentVariableDebt,
|
|
111
112
|
depositsUSD: Number(currentATokenBalance) * price,
|
|
112
113
|
debtStableUSD: 0,
|
|
113
114
|
debtUSD: Number(currentVariableDebt) * price,
|
|
114
115
|
stableBorrowRate: 0,
|
|
115
|
-
collateralActive: Boolean(
|
|
116
|
+
collateralActive: Boolean(
|
|
117
|
+
reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled],
|
|
118
|
+
),
|
|
116
119
|
claimableRewards: 0,
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
return {
|
|
120
123
|
dataForAsset,
|
|
121
124
|
addedDeposits: Number(currentATokenBalance) * priceHist,
|
|
122
|
-
addedDebt: Number(currentVariableDebt) * priceHist
|
|
125
|
+
addedDebt: Number(currentVariableDebt) * priceHist,
|
|
123
126
|
}
|
|
124
|
-
}
|
|
127
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Lender } from
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
2
|
import { isAaveV2Type, isAaveV3Type, isCompoundV3, isInit, isAaveV32Type, isYLDR, isMorphoType } from "../../utils"
|
|
3
3
|
import { IncentivesControllerAbi } from "../../abis/lendle/IncentivesController"
|
|
4
4
|
import { RewarderAbi } from "../../abis/aurelius/Rewarder"
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Lender } from '@1delta/
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
2
|
import { CompoundV3UserReserveResponse } from '../types'
|
|
3
3
|
import {
|
|
4
|
-
getAssetMeta,
|
|
5
|
-
getCompoundV3Assets,
|
|
6
4
|
toGenericPriceKey,
|
|
7
5
|
toOracleKey,
|
|
8
6
|
} from '../../../assets'
|
|
@@ -18,7 +16,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
18
16
|
pricesHist: { [asset: string]: number },
|
|
19
17
|
lenderData: any,
|
|
20
18
|
): [(data: any[]) => CompoundV3UserReserveResponse | undefined, number] => {
|
|
21
|
-
const assetAddresses =
|
|
19
|
+
const assetAddresses = Object.keys(lenderData)
|
|
22
20
|
const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset
|
|
23
21
|
const assetsNoBase = assetAddresses.filter((a) => a !== baseAsset)
|
|
24
22
|
const expectedNumberOfCalls = assetsNoBase.length + 2 + 1
|
|
@@ -34,7 +32,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
34
32
|
let result: { [asset: string]: any } = {}
|
|
35
33
|
for (let i = 0; i < assetsNoBase.length; i++) {
|
|
36
34
|
const asset = assetsNoBase[i]
|
|
37
|
-
const assetMeta =
|
|
35
|
+
const assetMeta = lenderData[asset].asset
|
|
38
36
|
const decimals = assetMeta?.decimals ?? 18
|
|
39
37
|
const depositsRaw = data[i][0]?.toString()
|
|
40
38
|
if (depositsRaw === '0') continue
|
|
@@ -67,7 +65,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
67
65
|
|
|
68
66
|
const depositsRaw = data[assetsNoBase.length]?.toString()
|
|
69
67
|
const debtRaw = data[assetsNoBase.length + 1]?.toString()
|
|
70
|
-
const baseMeta =
|
|
68
|
+
const baseMeta = lenderData[baseAsset].asset
|
|
71
69
|
const baseDecimals = baseMeta.decimals ?? 18
|
|
72
70
|
const deposits = parseRawAmount(depositsRaw, baseDecimals)
|
|
73
71
|
const debt = parseRawAmount(debtRaw, baseDecimals)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Chain
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Chain } from '@1delta/chain-registry'
|
|
2
|
+
import { Lender } from '@1delta/lender-registry'
|
|
3
|
+
import { Call } from '../../../utils/multicall'
|
|
4
|
+
import { getInitLensAddress } from '../../addresses/init'
|
|
4
5
|
|
|
5
6
|
export const initBrokerAddresses = {
|
|
6
|
-
[Chain.MANTLE]: '0xc08BFef7E778f3519D79E96780b77066F5d4FCC0'
|
|
7
|
+
[Chain.MANTLE]: '0xc08BFef7E778f3519D79E96780b77066F5d4FCC0',
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
export function getInitFlashAggregatorAddress(chainId?: string) {
|
|
@@ -11,7 +12,11 @@ export function getInitFlashAggregatorAddress(chainId?: string) {
|
|
|
11
12
|
return initBrokerAddresses[chainId as keyof typeof initBrokerAddresses]
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
export const buildInitUserCall = (
|
|
15
|
+
export const buildInitUserCall = (
|
|
16
|
+
chainId: string,
|
|
17
|
+
lender: Lender,
|
|
18
|
+
account: string,
|
|
19
|
+
): Call[] => {
|
|
15
20
|
const lensContract = getInitLensAddress(chainId)
|
|
16
21
|
const brokerAddress = getInitFlashAggregatorAddress(chainId)
|
|
17
22
|
|
|
@@ -22,5 +27,4 @@ export const buildInitUserCall = (chainId: string, lender: Lender, account: stri
|
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
return [call]
|
|
25
|
-
|
|
26
|
-
}
|
|
30
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Lender } from
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
2
|
import { InitUserReserveResponse } from "../types"
|
|
3
3
|
import { getInitFlashAggregatorAddress } from "./userCallBuild"
|
|
4
4
|
import { InitGetUserPositionDataIndexes } from "../../init/types"
|
|
5
5
|
import { getLenderAssets } from "../../../utils"
|
|
6
|
-
import {
|
|
6
|
+
import { toOracleKey } from "../../../assets"
|
|
7
7
|
import { parseRawAmount } from "../../../utils/parsing"
|
|
8
8
|
import { createMultiAccountTypeUserState } from "../utils/createMultiAccountStyleUserState"
|
|
9
9
|
|
|
@@ -41,14 +41,14 @@ export const getInitUserDataConverter = (
|
|
|
41
41
|
const id = entry.posId.toString()
|
|
42
42
|
const collatData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.collaterals][index].map((c: any) => {
|
|
43
43
|
const asset = c.underlying.toLowerCase()
|
|
44
|
-
const decimals =
|
|
44
|
+
const decimals = lenderData[asset].asset?.decimals ?? 18
|
|
45
45
|
const depositsRaw = c.amount.toString()
|
|
46
46
|
return { [asset]: { deposits: parseRawAmount(depositsRaw, decimals), depositsRaw } }
|
|
47
47
|
})
|
|
48
48
|
)
|
|
49
49
|
const debtData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.debts][index].map((c: any) => {
|
|
50
50
|
const asset = c.underlying.toLowerCase()
|
|
51
|
-
const decimals =
|
|
51
|
+
const decimals = lenderData[asset]?.asset?.decimals ?? 18
|
|
52
52
|
return { [asset]: { debt: parseRawAmount(c.amount.toString(), decimals) } }
|
|
53
53
|
})
|
|
54
54
|
)
|
|
@@ -57,7 +57,7 @@ export const getInitUserDataConverter = (
|
|
|
57
57
|
[id]: {
|
|
58
58
|
mode,
|
|
59
59
|
...Object.assign({}, ...assets.map(a => {
|
|
60
|
-
const ams = toOracleKey(
|
|
60
|
+
const ams = toOracleKey(lenderData[a]?.asset?.assetGroup!)
|
|
61
61
|
const price = prices[ams] ?? 1
|
|
62
62
|
const priceHist = pricesHist?.[ams] ?? price
|
|
63
63
|
if (!histData[id]) histData[id] = {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
|
+
import { Chain } from '@1delta/chain-registry'
|
|
2
3
|
import { Call } from '../../../utils/multicall'
|
|
3
4
|
import { chunk } from 'lodash'
|
|
5
|
+
import { morphoPools } from '@1delta/data-sdk'
|
|
4
6
|
|
|
5
7
|
const MORPHO_LENS: { [c: string]: string } = {
|
|
6
8
|
[Chain.BASE]: '0x98542B95B44a4732EffB1F4F01A696F1546236d3',
|
|
@@ -18,16 +20,17 @@ const getBaseMorphoCalls = (
|
|
|
18
20
|
account: string,
|
|
19
21
|
marketsToQuery: string[],
|
|
20
22
|
) => {
|
|
23
|
+
const mbPool = morphoPools()?.[lender]?.[chainId]
|
|
21
24
|
return marketsToQuery.flatMap((id) => [
|
|
22
25
|
{
|
|
23
26
|
// @ts-ignore
|
|
24
|
-
address:
|
|
27
|
+
address: mbPool,
|
|
25
28
|
name: 'position',
|
|
26
29
|
params: ['0x' + id.split('_')[1], account],
|
|
27
30
|
},
|
|
28
31
|
{
|
|
29
32
|
// @ts-ignore
|
|
30
|
-
address:
|
|
33
|
+
address: mbPool,
|
|
31
34
|
name: 'market',
|
|
32
35
|
params: ['0x' + id.split('_')[1]],
|
|
33
36
|
},
|
|
@@ -60,7 +63,7 @@ export const buildMorphoUserCallWithLens = (
|
|
|
60
63
|
marketsInChunk.map((a) => a.replace('MORPHO_BLUE_', '0x')),
|
|
61
64
|
account,
|
|
62
65
|
// @ts-ignore
|
|
63
|
-
|
|
66
|
+
morphoPools()?.[lender]?.[chainId],
|
|
64
67
|
],
|
|
65
68
|
}))
|
|
66
69
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Lender } from '@1delta/
|
|
2
|
-
import {
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
|
+
import { toGenericPriceKey, toOracleKey } from '../../../assets'
|
|
3
3
|
import { MorphoUserReserveResponse } from '../types'
|
|
4
4
|
import { createBaseTypeUserState } from '../utils'
|
|
5
5
|
import { parseRawAmount } from '../../../utils/parsing'
|
|
@@ -100,6 +100,7 @@ export const getMorphoUserDataConverterWithlens = (
|
|
|
100
100
|
balanceData,
|
|
101
101
|
chainId,
|
|
102
102
|
market,
|
|
103
|
+
lenderData[markeId].data,
|
|
103
104
|
prices,
|
|
104
105
|
pricesHist,
|
|
105
106
|
)
|
|
@@ -157,11 +158,12 @@ function createMorphoEntryFromMarketWithLens(
|
|
|
157
158
|
balanceInfo: BalanceInfo,
|
|
158
159
|
chainId: string,
|
|
159
160
|
market: MorphoMarket,
|
|
161
|
+
lenderData: any,
|
|
160
162
|
prices: any,
|
|
161
163
|
pricesHist: any,
|
|
162
164
|
) {
|
|
163
165
|
const loanAddress = market.loanAddress.toLowerCase()
|
|
164
|
-
const loanMeta =
|
|
166
|
+
const loanMeta = lenderData[loanAddress].asset
|
|
165
167
|
|
|
166
168
|
const loanKey =
|
|
167
169
|
toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId)
|
|
@@ -181,8 +183,9 @@ function createMorphoEntryFromMarketWithLens(
|
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
const collateralAddress = market.collateralAddress.toLowerCase()
|
|
184
|
-
|
|
185
|
-
|
|
186
|
+
|
|
187
|
+
const collateralAssetMeta = lenderData[collateralAddress].asset
|
|
188
|
+
|
|
186
189
|
// loan asset deposits
|
|
187
190
|
const loanDepositNumber = parseRawAmount(
|
|
188
191
|
deposits.toString(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toGenericPriceKey, toOracleKey } from '../assets'
|
|
2
2
|
import {
|
|
3
3
|
getLiquidityThresholds,
|
|
4
4
|
meetsLiquidityThresholdsLong,
|
|
@@ -188,14 +188,8 @@ export function generateLendingPairs(
|
|
|
188
188
|
const depositApr = long.depositRate + long.stakingYield
|
|
189
189
|
const borrowApr = short.variableBorrowRate + short.stakingYield
|
|
190
190
|
|
|
191
|
-
const [assetGroupLong, keyLong] = getPriceKey(
|
|
192
|
-
|
|
193
|
-
chainId,
|
|
194
|
-
)
|
|
195
|
-
const [assetGroupShort, keyShort] = getPriceKey(
|
|
196
|
-
short.underlying,
|
|
197
|
-
chainId,
|
|
198
|
-
)
|
|
191
|
+
const [assetGroupLong, keyLong] = getPriceKey(long.asset)
|
|
192
|
+
const [assetGroupShort, keyShort] = getPriceKey(short.asset)
|
|
199
193
|
const priceLong = prices[keyLong] ?? 0
|
|
200
194
|
const priceShort = prices[keyShort] ?? 0
|
|
201
195
|
|
|
@@ -254,11 +248,11 @@ export function generateLendingPairs(
|
|
|
254
248
|
return pairs
|
|
255
249
|
}
|
|
256
250
|
|
|
257
|
-
function getPriceKey(asset:
|
|
258
|
-
const assetGroup =
|
|
251
|
+
function getPriceKey(asset: GenericCurrency): [string, string] {
|
|
252
|
+
const assetGroup = asset?.assetGroup
|
|
259
253
|
return [
|
|
260
254
|
assetGroup,
|
|
261
|
-
toOracleKey(assetGroup) ?? toGenericPriceKey(asset, chainId),
|
|
255
|
+
toOracleKey(assetGroup) ?? toGenericPriceKey(asset.address, asset.chainId),
|
|
262
256
|
]
|
|
263
257
|
}
|
|
264
258
|
|
|
@@ -132,6 +132,15 @@ const prefixSolana = 'solana:'
|
|
|
132
132
|
const JITOSOL = 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn'
|
|
133
133
|
const SOL = 'So11111111111111111111111111111111111111112'
|
|
134
134
|
|
|
135
|
+
const prefixXdc = 'xdc:'
|
|
136
|
+
const WXDC = '0x951857744785e80e2de051c32ee7b25f9c458c42'
|
|
137
|
+
|
|
138
|
+
const prefixBera = 'berachain:'
|
|
139
|
+
const WBERA = '0x6969696969696969696969696969696969696969'
|
|
140
|
+
|
|
141
|
+
const prefixCronos = 'cronos:'
|
|
142
|
+
const WCRO = '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23'
|
|
143
|
+
|
|
135
144
|
// const prefixKaia = 'kaia:'
|
|
136
145
|
// const WKAIA = '0x19aac5f612f524b754ca7e7c41cbfa2e981a4432'
|
|
137
146
|
|
|
@@ -150,6 +159,9 @@ const datasHyperEvm = [WYPE, WSTHYPE, kHYPE]
|
|
|
150
159
|
.map((d) => prefixHyperEVM + d)
|
|
151
160
|
.join(',')
|
|
152
161
|
const datasSolana = [JITOSOL, SOL].map((d) => prefixSolana + d).join(',')
|
|
162
|
+
const datasBera = [WBERA].map((d) => prefixBera + d).join(',')
|
|
163
|
+
const datasXdc = [WXDC].map((d) => prefixXdc + d).join(',')
|
|
164
|
+
const datasCrpnos = [WCRO].map((d) => prefixCronos + d).join(',')
|
|
153
165
|
// const datasKaia = [WKAIA].map((d) => prefixKaia + d).join(',')
|
|
154
166
|
|
|
155
167
|
const URL = `https://coins.llama.fi/prices/current/${[
|
|
@@ -166,6 +178,9 @@ const URL = `https://coins.llama.fi/prices/current/${[
|
|
|
166
178
|
datasSonic,
|
|
167
179
|
datasPolygon,
|
|
168
180
|
datasSolana,
|
|
181
|
+
datasBera,
|
|
182
|
+
datasXdc,
|
|
183
|
+
datasCrpnos,
|
|
169
184
|
].join(',')}?searchWidth=4h`
|
|
170
185
|
const URL_HIST = (ref: number) =>
|
|
171
186
|
`https://coins.llama.fi/prices/historical/${ref}/${[
|
|
@@ -254,6 +269,9 @@ const SYMBOL_MAP = {
|
|
|
254
269
|
woeth: 'Wrapped OETH::WOETH',
|
|
255
270
|
jitosol: 'Jito Staked SOL::JitoSOL',
|
|
256
271
|
sol: 'SOL',
|
|
272
|
+
wcro: 'WCRO',
|
|
273
|
+
wxdc: 'WXDC',
|
|
274
|
+
wbera: 'WBERA',
|
|
257
275
|
}
|
|
258
276
|
|
|
259
277
|
export async function fetchDefillamaData() {
|
|
@@ -276,6 +294,9 @@ export async function fetchDefillamaData() {
|
|
|
276
294
|
prices['WSOL'] = prices['SOL']
|
|
277
295
|
prices['AVAX'] = prices['WAVAX']
|
|
278
296
|
prices['METIS'] = prices['WMETIS']
|
|
297
|
+
prices['CRO'] = prices['WCRO']
|
|
298
|
+
prices['XDC'] = prices['WXDC']
|
|
299
|
+
prices['BERA'] = prices['WBERA']
|
|
279
300
|
// prices['WKAIA'] = prices['KAIA']
|
|
280
301
|
|
|
281
302
|
prices['USDBC'] = prices['USDC']
|
|
@@ -321,6 +342,9 @@ export async function fetchDefillamaHistData() {
|
|
|
321
342
|
histPrices['AVAX'] = histPrices['WAVAX']
|
|
322
343
|
histPrices['METIS'] = histPrices['WMETIS']
|
|
323
344
|
histPrices['HYPE'] = histPrices['WHYPE']
|
|
345
|
+
histPrices['BERA'] = histPrices['WBERA']
|
|
346
|
+
histPrices['CRO'] = histPrices['WCRO']
|
|
347
|
+
histPrices['XDC'] = histPrices['WXDC']
|
|
324
348
|
// histPrices['WKAIA'] = histPrices['KAIA']
|
|
325
349
|
|
|
326
350
|
histPrices['LUSD'] = histPrices['USDT']
|