@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
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { initializeChainData, initializeLenderData } from '@1delta/data-sdk'
|
|
2
|
+
|
|
3
|
+
const baseUrl =
|
|
4
|
+
'https://raw.githubusercontent.com/1delta-DAO/lender-metadata/multi-fetch'
|
|
5
|
+
const aavePools = baseUrl + '/config/aave-pools.json'
|
|
6
|
+
const aaveOracles = baseUrl + '/data/aave-oracles.json'
|
|
7
|
+
const morphoOracles = baseUrl + '/data/morpho-oracles.json'
|
|
8
|
+
const compoundV2Pools = baseUrl + '/config/compound-v2-pools.json'
|
|
9
|
+
const compoundV3Pools = baseUrl + '/config/compound-v3-pools.json'
|
|
10
|
+
// const initPools = baseUrl + '/config/init-pools.json'
|
|
11
|
+
const morphoPools = baseUrl + '/config/morpho-pools.json'
|
|
12
|
+
|
|
13
|
+
const aaveReserves = baseUrl + '/data/aave-reserves.json'
|
|
14
|
+
const compoundV2Reserves = baseUrl + '/data/compound-v2-reserves.json'
|
|
15
|
+
const compoundV3Reserves = baseUrl + '/data/compound-v3-reserves.json'
|
|
16
|
+
const initConfig = baseUrl + '/data/init-config.json'
|
|
17
|
+
const aaveTokens = baseUrl + '/data/aave-tokens.json'
|
|
18
|
+
const compoundV2CTokens = baseUrl + '/data/compound-v2-c-tokens.json'
|
|
19
|
+
const compoundV3Base = baseUrl + '/data/compound-v3-base-data.json'
|
|
20
|
+
const baseUrlChains = 'https://raw.githubusercontent.com/1delta-DAO/chains/main'
|
|
21
|
+
|
|
22
|
+
const chains = baseUrlChains + '/data.json'
|
|
23
|
+
|
|
24
|
+
export function inititalizeAllData(params: any) {
|
|
25
|
+
const { chainsOverride, ...lenderOverrides } = params
|
|
26
|
+
|
|
27
|
+
initializeLenderData(lenderOverrides)
|
|
28
|
+
|
|
29
|
+
initializeChainData({ chainsOverride })
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export async function fetchLenderMetaFromDirAndInitialize() {
|
|
33
|
+
const {
|
|
34
|
+
aavePoolsOverride,
|
|
35
|
+
compoundV2PoolsOverride,
|
|
36
|
+
compoundV3PoolsOverride,
|
|
37
|
+
// initPoolsOverride,
|
|
38
|
+
morphoPoolsOverride,
|
|
39
|
+
aaveReservesOverride,
|
|
40
|
+
compoundV2ReservesOverride,
|
|
41
|
+
compoundV3ReservesOverride,
|
|
42
|
+
initConfigOverride,
|
|
43
|
+
aaveTokensOverride,
|
|
44
|
+
compoundV2TokensOverride,
|
|
45
|
+
compoundV3BaseDataOverride,
|
|
46
|
+
aaveOraclesOverride,
|
|
47
|
+
morphoOraclesOverride,
|
|
48
|
+
chainsOverride,
|
|
49
|
+
} = await fetchLenderMetaFromDir()
|
|
50
|
+
|
|
51
|
+
initializeLenderData({
|
|
52
|
+
aaveTokensOverride,
|
|
53
|
+
aavePoolsOverride,
|
|
54
|
+
compoundV3PoolsOverride,
|
|
55
|
+
compoundV3BaseDataOverride,
|
|
56
|
+
morphoPoolsOverride,
|
|
57
|
+
compoundV2TokensOverride,
|
|
58
|
+
compoundV2PoolsOverride,
|
|
59
|
+
initConfigOverride,
|
|
60
|
+
aaveReservesOverride,
|
|
61
|
+
compoundV3ReservesOverride,
|
|
62
|
+
compoundV2ReservesOverride,
|
|
63
|
+
aaveOraclesOverride,
|
|
64
|
+
morphoOraclesOverride,
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
initializeChainData({ chainsOverride })
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export async function fetchLenderMetaFromDir() {
|
|
71
|
+
const promises = [
|
|
72
|
+
aavePools,
|
|
73
|
+
compoundV2Pools,
|
|
74
|
+
compoundV3Pools,
|
|
75
|
+
// initPools,
|
|
76
|
+
morphoPools,
|
|
77
|
+
aaveReserves,
|
|
78
|
+
compoundV2Reserves,
|
|
79
|
+
compoundV3Reserves,
|
|
80
|
+
initConfig,
|
|
81
|
+
aaveTokens,
|
|
82
|
+
compoundV2CTokens,
|
|
83
|
+
compoundV3Base,
|
|
84
|
+
aaveOracles,
|
|
85
|
+
morphoOracles,
|
|
86
|
+
chains,
|
|
87
|
+
].map(async (a) => fetch(a).then(async (b) => await b.json()))
|
|
88
|
+
|
|
89
|
+
const [
|
|
90
|
+
aavePoolsOverride,
|
|
91
|
+
compoundV2PoolsOverride,
|
|
92
|
+
compoundV3PoolsOverride,
|
|
93
|
+
// initPoolsOverride,
|
|
94
|
+
morphoPoolsOverride,
|
|
95
|
+
aaveReservesOverride,
|
|
96
|
+
compoundV2ReservesOverride,
|
|
97
|
+
compoundV3ReservesOverride,
|
|
98
|
+
initConfigOverride,
|
|
99
|
+
aaveTokensOverride,
|
|
100
|
+
compoundV2TokensOverride,
|
|
101
|
+
compoundV3BaseDataOverride,
|
|
102
|
+
aaveOraclesOverride,
|
|
103
|
+
morphoOraclesOverride,
|
|
104
|
+
chainsOverride,
|
|
105
|
+
] = await Promise.all(promises)
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
aavePoolsOverride,
|
|
109
|
+
compoundV2PoolsOverride,
|
|
110
|
+
compoundV3PoolsOverride,
|
|
111
|
+
// initPoolsOverride,
|
|
112
|
+
morphoPoolsOverride,
|
|
113
|
+
aaveReservesOverride,
|
|
114
|
+
compoundV2ReservesOverride,
|
|
115
|
+
compoundV3ReservesOverride,
|
|
116
|
+
initConfigOverride,
|
|
117
|
+
aaveTokensOverride,
|
|
118
|
+
compoundV2TokensOverride,
|
|
119
|
+
compoundV3BaseDataOverride,
|
|
120
|
+
aaveOraclesOverride,
|
|
121
|
+
morphoOraclesOverride,
|
|
122
|
+
chainsOverride,
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Call } from "../../../utils/multicall"
|
|
2
|
-
import { Lender } from
|
|
2
|
+
import { Lender } from '@1delta/lender-registry'
|
|
3
3
|
import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets"
|
|
4
4
|
import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses"
|
|
5
5
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { Lender } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
|
+
import { toGenericPriceKey, toOracleKey } from '../../../assets'
|
|
3
|
+
import {
|
|
4
|
+
AaveV2TypeGetUserReserveData,
|
|
5
|
+
AaveV2UserReserveResponse,
|
|
6
|
+
UserRewardEntry,
|
|
7
|
+
} from '../types'
|
|
8
|
+
import { AURELIUS_REWARD_ASSETS } from '../../aave-v2-type/misc'
|
|
9
|
+
import { createBaseTypeUserState } from '../utils'
|
|
10
|
+
import { parseRawAmount } from '../../../utils/parsing'
|
|
11
|
+
import { GenericCurrency } from '../../types'
|
|
9
12
|
|
|
10
13
|
export const getAaveV2UserDataConverter = (
|
|
11
14
|
lender: Lender,
|
|
@@ -13,11 +16,11 @@ export const getAaveV2UserDataConverter = (
|
|
|
13
16
|
account: string,
|
|
14
17
|
prices: { [asset: string]: number },
|
|
15
18
|
pricesHist: { [asset: string]: number },
|
|
16
|
-
lenderData: any
|
|
19
|
+
lenderData: any,
|
|
17
20
|
): [(data: any[]) => AaveV2UserReserveResponse | undefined, number] => {
|
|
18
21
|
switch (lender) {
|
|
19
22
|
case Lender.AURELIUS: {
|
|
20
|
-
const assetsToQuery =
|
|
23
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
21
24
|
const expectedNumberOfCalls = assetsToQuery.length + 1
|
|
22
25
|
return [
|
|
23
26
|
(data: any[]) => {
|
|
@@ -32,20 +35,17 @@ export const getAaveV2UserDataConverter = (
|
|
|
32
35
|
|
|
33
36
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
34
37
|
const asset = assetsToQuery[i]
|
|
35
|
-
const {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
0,
|
|
47
|
-
)
|
|
48
|
-
if(!dataForAsset) continue;
|
|
38
|
+
const { dataForAsset, addedDebt, addedDeposits } =
|
|
39
|
+
createAaveV2Entry(
|
|
40
|
+
i,
|
|
41
|
+
data,
|
|
42
|
+
chainId,
|
|
43
|
+
lenderData[asset].asset,
|
|
44
|
+
prices,
|
|
45
|
+
pricesHist,
|
|
46
|
+
0,
|
|
47
|
+
)
|
|
48
|
+
if (!dataForAsset) continue
|
|
49
49
|
|
|
50
50
|
totalDebt24h += addedDebt
|
|
51
51
|
totalDeposits24h += addedDeposits
|
|
@@ -53,24 +53,39 @@ export const getAaveV2UserDataConverter = (
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
const startIndex = assetsToQuery.length
|
|
56
|
-
const rewardMapping = Object.fromEntries(
|
|
56
|
+
const rewardMapping = Object.fromEntries(
|
|
57
|
+
data[startIndex][0].map((key: string, index: number) => [
|
|
58
|
+
key.toLowerCase(),
|
|
59
|
+
data[startIndex][1][index],
|
|
60
|
+
]),
|
|
61
|
+
)
|
|
57
62
|
const rewards: UserRewardEntry = {}
|
|
58
63
|
for (let i = 0; i < AURELIUS_REWARD_ASSETS.length; i++) {
|
|
59
64
|
const asset = AURELIUS_REWARD_ASSETS[i]
|
|
60
|
-
const reward = Number(
|
|
65
|
+
const reward = Number(
|
|
66
|
+
parseRawAmount(
|
|
67
|
+
rewardMapping[asset.address.toLowerCase()].toString(),
|
|
68
|
+
asset.decimals,
|
|
69
|
+
),
|
|
70
|
+
)
|
|
61
71
|
rewards[asset.symbol!] = {
|
|
62
72
|
totalRewards: reward,
|
|
63
|
-
claimableRewards: reward
|
|
73
|
+
claimableRewards: reward,
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
76
|
|
|
67
77
|
const payload = {
|
|
68
78
|
chainId,
|
|
69
79
|
account,
|
|
70
|
-
lendingPositions: {
|
|
71
|
-
rewards
|
|
80
|
+
lendingPositions: { '0': lendingPositions },
|
|
81
|
+
rewards,
|
|
72
82
|
}
|
|
73
|
-
const userData = createBaseTypeUserState(
|
|
83
|
+
const userData = createBaseTypeUserState(
|
|
84
|
+
payload,
|
|
85
|
+
lenderData,
|
|
86
|
+
totalDeposits24h,
|
|
87
|
+
totalDebt24h,
|
|
88
|
+
)
|
|
74
89
|
|
|
75
90
|
return {
|
|
76
91
|
...payload,
|
|
@@ -81,7 +96,7 @@ export const getAaveV2UserDataConverter = (
|
|
|
81
96
|
]
|
|
82
97
|
}
|
|
83
98
|
case Lender.LENDLE: {
|
|
84
|
-
const assetsToQuery =
|
|
99
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
85
100
|
const expectedNumberOfCalls = assetsToQuery.length + 2
|
|
86
101
|
|
|
87
102
|
return [
|
|
@@ -93,17 +108,28 @@ export const getAaveV2UserDataConverter = (
|
|
|
93
108
|
const claimableRewards = data[expectedNumberOfCalls - 2]
|
|
94
109
|
// map claimable rewards to tokens
|
|
95
110
|
// foreach asset, we sum the l and v token rewards
|
|
96
|
-
const mappedClaimableRewardsToTokens = assetsToQuery.map(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
const mappedClaimableRewardsToTokens = assetsToQuery.map(
|
|
112
|
+
(name, index) => {
|
|
113
|
+
return {
|
|
114
|
+
[name]:
|
|
115
|
+
Number(
|
|
116
|
+
parseRawAmount(
|
|
117
|
+
claimableRewards?.[index * 2]?.toString(),
|
|
118
|
+
18,
|
|
119
|
+
),
|
|
120
|
+
) +
|
|
121
|
+
Number(
|
|
122
|
+
parseRawAmount(
|
|
123
|
+
claimableRewards?.[index * 2 + 1]?.toString(),
|
|
124
|
+
18,
|
|
125
|
+
),
|
|
126
|
+
),
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
)
|
|
103
130
|
|
|
104
131
|
const lendingPositions: { [asset: string]: any } = {}
|
|
105
132
|
|
|
106
|
-
|
|
107
133
|
let totalClaimableLend = 0
|
|
108
134
|
let totalDebt24h = 0
|
|
109
135
|
let totalDeposits24h = 0
|
|
@@ -111,20 +137,17 @@ export const getAaveV2UserDataConverter = (
|
|
|
111
137
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
112
138
|
const asset = assetsToQuery[i]
|
|
113
139
|
totalClaimableLend += mappedClaimableRewardsToTokens[i][asset]
|
|
114
|
-
const {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
mappedClaimableRewardsToTokens[i][asset],
|
|
126
|
-
)
|
|
127
|
-
if(!dataForAsset) continue;
|
|
140
|
+
const { dataForAsset, addedDebt, addedDeposits } =
|
|
141
|
+
createAaveV2Entry(
|
|
142
|
+
i,
|
|
143
|
+
data,
|
|
144
|
+
chainId,
|
|
145
|
+
lenderData[asset].asset,
|
|
146
|
+
prices,
|
|
147
|
+
pricesHist,
|
|
148
|
+
mappedClaimableRewardsToTokens[i][asset],
|
|
149
|
+
)
|
|
150
|
+
if (!dataForAsset) continue
|
|
128
151
|
totalDebt24h += addedDebt
|
|
129
152
|
totalDeposits24h += addedDeposits
|
|
130
153
|
lendingPositions[asset] = dataForAsset
|
|
@@ -133,17 +156,27 @@ export const getAaveV2UserDataConverter = (
|
|
|
133
156
|
const rewards: UserRewardEntry = {}
|
|
134
157
|
|
|
135
158
|
const earnedBalances = data[expectedNumberOfCalls - 1]
|
|
136
|
-
const lendRewards = Number(
|
|
159
|
+
const lendRewards = Number(
|
|
160
|
+
parseRawAmount(earnedBalances[0].toString(), 18),
|
|
161
|
+
)
|
|
137
162
|
|
|
138
|
-
rewards[
|
|
163
|
+
rewards['LEND'] = {
|
|
164
|
+
totalRewards: lendRewards + totalClaimableLend,
|
|
165
|
+
claimableRewards: totalClaimableLend,
|
|
166
|
+
}
|
|
139
167
|
|
|
140
168
|
const payload = {
|
|
141
169
|
chainId,
|
|
142
170
|
account,
|
|
143
|
-
lendingPositions: {
|
|
144
|
-
rewards
|
|
171
|
+
lendingPositions: { '0': lendingPositions },
|
|
172
|
+
rewards,
|
|
145
173
|
}
|
|
146
|
-
const userData = createBaseTypeUserState(
|
|
174
|
+
const userData = createBaseTypeUserState(
|
|
175
|
+
payload,
|
|
176
|
+
lenderData,
|
|
177
|
+
totalDeposits24h,
|
|
178
|
+
totalDebt24h,
|
|
179
|
+
)
|
|
147
180
|
|
|
148
181
|
return {
|
|
149
182
|
...payload,
|
|
@@ -154,7 +187,7 @@ export const getAaveV2UserDataConverter = (
|
|
|
154
187
|
]
|
|
155
188
|
}
|
|
156
189
|
case Lender.MERIDIAN: {
|
|
157
|
-
const assetsToQuery =
|
|
190
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
158
191
|
const expectedNumberOfCalls = assetsToQuery.length + 2
|
|
159
192
|
|
|
160
193
|
return [
|
|
@@ -163,21 +196,34 @@ export const getAaveV2UserDataConverter = (
|
|
|
163
196
|
return undefined
|
|
164
197
|
}
|
|
165
198
|
|
|
166
|
-
|
|
167
199
|
const rewardsBalanceArray = data[expectedNumberOfCalls - 2]
|
|
168
200
|
const totalUnclaimedRewards = data[expectedNumberOfCalls - 1]
|
|
169
201
|
|
|
170
|
-
const totalRewards = Number(
|
|
202
|
+
const totalRewards = Number(
|
|
203
|
+
parseRawAmount(totalUnclaimedRewards.toString(), 18),
|
|
204
|
+
)
|
|
171
205
|
|
|
172
206
|
// map claimable rewards to tokens
|
|
173
207
|
// foreach asset, we sum the l and v token rewards from the rewards balance array
|
|
174
|
-
const mappedClaimableRewardsToTokens = assetsToQuery.map(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
208
|
+
const mappedClaimableRewardsToTokens = assetsToQuery.map(
|
|
209
|
+
(name, index) => {
|
|
210
|
+
return {
|
|
211
|
+
[name]:
|
|
212
|
+
Number(
|
|
213
|
+
parseRawAmount(
|
|
214
|
+
rewardsBalanceArray[index * 2]?.toString() || '0',
|
|
215
|
+
18,
|
|
216
|
+
),
|
|
217
|
+
) +
|
|
218
|
+
Number(
|
|
219
|
+
parseRawAmount(
|
|
220
|
+
rewardsBalanceArray[index * 2 + 1]?.toString() || '0',
|
|
221
|
+
18,
|
|
222
|
+
),
|
|
223
|
+
),
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
)
|
|
181
227
|
|
|
182
228
|
const lendingPositions: { [asset: string]: any } = {}
|
|
183
229
|
let totalDebt24h = 0
|
|
@@ -186,23 +232,21 @@ export const getAaveV2UserDataConverter = (
|
|
|
186
232
|
|
|
187
233
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
188
234
|
const asset = assetsToQuery[i]
|
|
189
|
-
const assetClaimableRewards =
|
|
235
|
+
const assetClaimableRewards =
|
|
236
|
+
mappedClaimableRewardsToTokens[i][asset]
|
|
190
237
|
totalClaimableRewards += assetClaimableRewards
|
|
191
238
|
|
|
192
|
-
const {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
assetClaimableRewards,
|
|
204
|
-
)
|
|
205
|
-
if(!dataForAsset) continue;
|
|
239
|
+
const { dataForAsset, addedDebt, addedDeposits } =
|
|
240
|
+
createAaveV2Entry(
|
|
241
|
+
i,
|
|
242
|
+
data,
|
|
243
|
+
chainId,
|
|
244
|
+
lenderData[asset].asset,
|
|
245
|
+
prices,
|
|
246
|
+
pricesHist,
|
|
247
|
+
assetClaimableRewards,
|
|
248
|
+
)
|
|
249
|
+
if (!dataForAsset) continue
|
|
206
250
|
totalDebt24h += addedDebt
|
|
207
251
|
totalDeposits24h += addedDeposits
|
|
208
252
|
lendingPositions[asset] = dataForAsset
|
|
@@ -210,18 +254,23 @@ export const getAaveV2UserDataConverter = (
|
|
|
210
254
|
|
|
211
255
|
const rewards: UserRewardEntry = {}
|
|
212
256
|
|
|
213
|
-
rewards[
|
|
257
|
+
rewards['TAIKO'] = {
|
|
214
258
|
totalRewards,
|
|
215
|
-
claimableRewards: totalClaimableRewards
|
|
259
|
+
claimableRewards: totalClaimableRewards,
|
|
216
260
|
}
|
|
217
261
|
|
|
218
262
|
const payload = {
|
|
219
263
|
chainId,
|
|
220
264
|
account,
|
|
221
|
-
lendingPositions: {
|
|
222
|
-
rewards
|
|
265
|
+
lendingPositions: { '0': lendingPositions },
|
|
266
|
+
rewards,
|
|
223
267
|
}
|
|
224
|
-
const userData = createBaseTypeUserState(
|
|
268
|
+
const userData = createBaseTypeUserState(
|
|
269
|
+
payload,
|
|
270
|
+
lenderData,
|
|
271
|
+
totalDeposits24h,
|
|
272
|
+
totalDebt24h,
|
|
273
|
+
)
|
|
225
274
|
return {
|
|
226
275
|
...payload,
|
|
227
276
|
...userData,
|
|
@@ -231,7 +280,7 @@ export const getAaveV2UserDataConverter = (
|
|
|
231
280
|
]
|
|
232
281
|
}
|
|
233
282
|
default: {
|
|
234
|
-
const assetsToQuery =
|
|
283
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
235
284
|
const expectedNumberOfCalls = assetsToQuery.length
|
|
236
285
|
return [
|
|
237
286
|
(data: any[]) => {
|
|
@@ -245,20 +294,17 @@ export const getAaveV2UserDataConverter = (
|
|
|
245
294
|
|
|
246
295
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
247
296
|
const asset = assetsToQuery[i]
|
|
248
|
-
const {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
0,
|
|
260
|
-
)
|
|
261
|
-
if(!dataForAsset) continue;
|
|
297
|
+
const { dataForAsset, addedDebt, addedDeposits } =
|
|
298
|
+
createAaveV2Entry(
|
|
299
|
+
i,
|
|
300
|
+
data,
|
|
301
|
+
chainId,
|
|
302
|
+
lenderData[asset].asset,
|
|
303
|
+
prices,
|
|
304
|
+
pricesHist,
|
|
305
|
+
0,
|
|
306
|
+
)
|
|
307
|
+
if (!dataForAsset) continue
|
|
262
308
|
totalDebt24h += addedDebt
|
|
263
309
|
totalDeposits24h += addedDeposits
|
|
264
310
|
lendingPositions[asset] = dataForAsset
|
|
@@ -267,10 +313,15 @@ export const getAaveV2UserDataConverter = (
|
|
|
267
313
|
const payload = {
|
|
268
314
|
chainId,
|
|
269
315
|
account,
|
|
270
|
-
lendingPositions: {
|
|
271
|
-
rewards: {}
|
|
316
|
+
lendingPositions: { '0': lendingPositions },
|
|
317
|
+
rewards: {},
|
|
272
318
|
}
|
|
273
|
-
const userData = createBaseTypeUserState(
|
|
319
|
+
const userData = createBaseTypeUserState(
|
|
320
|
+
payload,
|
|
321
|
+
lenderData,
|
|
322
|
+
totalDeposits24h,
|
|
323
|
+
totalDebt24h,
|
|
324
|
+
)
|
|
274
325
|
return {
|
|
275
326
|
...payload,
|
|
276
327
|
...userData,
|
|
@@ -282,39 +333,44 @@ export const getAaveV2UserDataConverter = (
|
|
|
282
333
|
}
|
|
283
334
|
}
|
|
284
335
|
|
|
285
|
-
|
|
286
336
|
function createAaveV2Entry(
|
|
287
337
|
i: number,
|
|
288
338
|
data: any[],
|
|
289
339
|
chainId: string,
|
|
290
|
-
asset:
|
|
340
|
+
asset: GenericCurrency,
|
|
291
341
|
prices: any,
|
|
292
342
|
pricesHist: any,
|
|
293
343
|
claimableRewards: any,
|
|
294
344
|
) {
|
|
295
345
|
const reserveData = data[i]
|
|
296
|
-
const currentATokenBalanceRaw =
|
|
297
|
-
|
|
298
|
-
const
|
|
346
|
+
const currentATokenBalanceRaw =
|
|
347
|
+
reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString()
|
|
348
|
+
const currentStableDebtRaw =
|
|
349
|
+
reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString()
|
|
350
|
+
const currentVariableDebtRaw =
|
|
351
|
+
reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString()
|
|
299
352
|
|
|
300
353
|
if (
|
|
301
|
-
currentATokenBalanceRaw ===
|
|
302
|
-
currentStableDebtRaw ===
|
|
303
|
-
currentVariableDebtRaw ===
|
|
354
|
+
currentATokenBalanceRaw === '0' &&
|
|
355
|
+
currentStableDebtRaw === '0' &&
|
|
356
|
+
currentVariableDebtRaw === '0'
|
|
357
|
+
) {
|
|
304
358
|
return {
|
|
305
359
|
dataForAsset: undefined,
|
|
306
360
|
addedDeposits: 0,
|
|
307
|
-
addedDebt: 0
|
|
361
|
+
addedDebt: 0,
|
|
308
362
|
}
|
|
309
363
|
}
|
|
310
364
|
|
|
311
|
-
const assetMeta =
|
|
365
|
+
const assetMeta = asset
|
|
312
366
|
const decimals = assetMeta?.decimals ?? 18
|
|
313
367
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
|
|
314
368
|
const currentStableDebt = parseRawAmount(currentStableDebtRaw, decimals)
|
|
315
369
|
const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
|
|
316
370
|
|
|
317
|
-
const key =
|
|
371
|
+
const key =
|
|
372
|
+
toOracleKey(assetMeta?.assetGroup) ??
|
|
373
|
+
toGenericPriceKey(asset.address, chainId)
|
|
318
374
|
const price = prices[key] ?? 1
|
|
319
375
|
const priceHist = pricesHist?.[key] ?? price
|
|
320
376
|
|
|
@@ -328,15 +384,18 @@ function createAaveV2Entry(
|
|
|
328
384
|
depositsUSD: Number(currentATokenBalance) * price,
|
|
329
385
|
debtStableUSD: Number(currentStableDebt) * price,
|
|
330
386
|
debtUSD: Number(currentVariableDebt) * price,
|
|
331
|
-
stableBorrowRate:
|
|
332
|
-
|
|
387
|
+
stableBorrowRate:
|
|
388
|
+
reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),
|
|
389
|
+
collateralActive: Boolean(
|
|
390
|
+
reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled],
|
|
391
|
+
),
|
|
333
392
|
claimableRewards,
|
|
334
|
-
|
|
335
393
|
}
|
|
336
394
|
|
|
337
395
|
return {
|
|
338
396
|
dataForAsset,
|
|
339
397
|
addedDeposits: Number(currentATokenBalance) * priceHist,
|
|
340
|
-
addedDebt:
|
|
398
|
+
addedDebt:
|
|
399
|
+
(Number(currentVariableDebt) + Number(currentStableDebt)) * priceHist,
|
|
341
400
|
}
|
|
342
|
-
}
|
|
401
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Lender } from
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
2
|
import { Call } from "../../../utils/multicall"
|
|
3
3
|
import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets"
|
|
4
4
|
import { isYLDR } from "../../../utils"
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Lender } from '@1delta/
|
|
1
|
+
import { Lender } from '@1delta/lender-registry'
|
|
2
2
|
import {
|
|
3
|
-
getAaveAssets,
|
|
4
|
-
getAssetMeta,
|
|
5
3
|
toGenericPriceKey,
|
|
6
4
|
toOracleKey,
|
|
7
5
|
} from '../../../assets'
|
|
@@ -9,6 +7,7 @@ import { AaveV3UserReserveResponse } from '../types'
|
|
|
9
7
|
import { createBaseTypeUserState } from '../utils'
|
|
10
8
|
import { AaveTypeGetUserReserveIndexes } from '../../aave-v3-type/types'
|
|
11
9
|
import { parseRawAmount } from '../../../utils/parsing'
|
|
10
|
+
import { GenericCurrency } from '../../types'
|
|
12
11
|
|
|
13
12
|
export const getAaveV3UserDataConverter = (
|
|
14
13
|
lender: Lender,
|
|
@@ -18,7 +17,7 @@ export const getAaveV3UserDataConverter = (
|
|
|
18
17
|
pricesHist: { [asset: string]: number },
|
|
19
18
|
lenderData: any,
|
|
20
19
|
): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {
|
|
21
|
-
const assetsToQuery =
|
|
20
|
+
const assetsToQuery = Object.keys(lenderData)
|
|
22
21
|
const expectedNumberOfCalls = assetsToQuery.length + 1
|
|
23
22
|
|
|
24
23
|
return [
|
|
@@ -39,7 +38,7 @@ export const getAaveV3UserDataConverter = (
|
|
|
39
38
|
i,
|
|
40
39
|
data,
|
|
41
40
|
chainId,
|
|
42
|
-
asset,
|
|
41
|
+
lenderData[asset].asset,
|
|
43
42
|
prices,
|
|
44
43
|
pricesHist,
|
|
45
44
|
)
|
|
@@ -76,7 +75,7 @@ function createAaveV3Entry(
|
|
|
76
75
|
i: number,
|
|
77
76
|
data: any[],
|
|
78
77
|
chainId: string,
|
|
79
|
-
asset:
|
|
78
|
+
asset: GenericCurrency,
|
|
80
79
|
prices: any,
|
|
81
80
|
pricesHist: any,
|
|
82
81
|
) {
|
|
@@ -101,7 +100,7 @@ function createAaveV3Entry(
|
|
|
101
100
|
}
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
const assetMeta =
|
|
103
|
+
const assetMeta = asset
|
|
105
104
|
const decimals = assetMeta?.decimals ?? 18
|
|
106
105
|
|
|
107
106
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
|
|
@@ -109,7 +108,7 @@ function createAaveV3Entry(
|
|
|
109
108
|
const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
|
|
110
109
|
|
|
111
110
|
const key =
|
|
112
|
-
toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
|
|
111
|
+
toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset.address, chainId)
|
|
113
112
|
// prices
|
|
114
113
|
const price = prices[key] ?? 1
|
|
115
114
|
const priceHist = pricesHist?.[key] ?? price
|