@1delta/margin-fetcher 0.0.32 → 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 -7
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +12 -25
- 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 -3
- 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/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 +78 -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 +11 -13
- 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 +3 -2
- package/package.json +2 -2
- package/src/abis/oracle/UniV3.ts +63 -0
- package/src/assets/index.ts +26 -56
- 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 -8
- 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/main-prices/addresses/api3.ts +1 -1
- package/src/prices/main-prices/addresses/chainlink.ts +1 -1
- package/src/prices/main-prices/fetchOracleData.ts +117 -20
- package/src/types/index.ts +10 -4
- package/src/utils/constants.ts +1 -1
- package/src/utils/index.ts +18 -21
- package/src/utils/parsing.ts +37 -35
- package/src/yields/index.ts +3 -2
- package/test/flashLiquidity.test.ts +6 -6
- package/test/index.test.ts +1 -1
- package/test/lenderData.test.ts +9 -10
- package/test/lenderDataBasic.test.ts +1 -1
- package/test/mainPriceMB.test.ts +1 -1
- package/test/mainPrices.test.ts +14 -14
- 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 -303
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +0 -1
- package/dist/prices/main-prices/addresses/aaveOracles.js +0 -302
- 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 -302
- 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
|
|