@1delta/margin-fetcher 0.0.10 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lending/aave-v2-type/types.d.ts +2 -0
- package/dist/lending/aave-v2-type/types.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.d.ts +4 -4
- package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.js +37 -22
- package/dist/lending/fetchLender.d.ts.map +1 -1
- package/dist/lending/fetchLender.js +25 -29
- package/dist/lending/fetchLenderAll.d.ts +2 -1
- package/dist/lending/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/fetchLenderAll.js +3 -3
- package/dist/lending/fetchLenderExt.d.ts +2 -1
- package/dist/lending/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/fetchLenderExt.js +28 -14
- package/dist/lending/index.d.ts +2 -0
- package/dist/lending/index.d.ts.map +1 -1
- package/dist/lending/index.js +2 -0
- package/dist/lending/morpho/convertPublic.d.ts +3 -5
- package/dist/lending/morpho/convertPublic.d.ts.map +1 -1
- package/dist/lending/morpho/convertPublic.js +16 -12
- package/dist/lending/morpho/fetchPublic.js +1 -1
- package/dist/lending/morpho/publicCallBuild.d.ts +1 -4
- package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/morpho/types.d.ts +2 -0
- package/dist/lending/morpho/types.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.js +4 -7
- package/dist/lending/user-data/abis.d.ts +88 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/abis.js +5 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.js +3 -2
- package/dist/lending/user-data/fetchUserData.d.ts +4 -4
- package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
- package/dist/lending/user-data/fetchUserData.js +46 -25
- package/dist/lending/user-data/init/userCallParse.js +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.d.ts +4 -5
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.js +15 -9
- package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -2
- package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallParse.js +15 -12
- package/dist/lending/user-data/types.d.ts +30 -19
- package/dist/lending/user-data/types.d.ts.map +1 -1
- package/dist/lending/user-data/types.js +12 -0
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts +4 -4
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -1
- package/dist/lending/user-data/utils/createGeneralUserState.js +24 -17
- package/dist/utils/index.d.ts +5 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +20 -11
- package/dist/utils/parsing.d.ts +1 -0
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +3 -0
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +12 -5
- package/package.json +1 -1
- package/src/abis/morpho/blue.ts +99 -0
- package/src/abis/morpho/lens.ts +31 -0
- package/src/lending/aave-v2-type/types.ts +2 -0
- package/src/lending/compound-v3/publicCallParse.ts +93 -37
- package/src/lending/fetchLender.ts +86 -49
- package/src/lending/fetchLenderAll.ts +30 -0
- package/src/lending/fetchLenderExt.ts +82 -0
- package/src/lending/index.ts +3 -1
- package/src/lending/morpho/convertPublic.ts +153 -0
- package/src/lending/morpho/fetchPublic.ts +80 -0
- package/src/lending/morpho/publicCallBuild.ts +11 -0
- package/src/lending/morpho/types.ts +129 -0
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +2 -8
- package/src/lending/user-data/abis.ts +4 -1
- package/src/lending/user-data/compound-v3/userCallParse.ts +3 -2
- package/src/lending/user-data/fetchUserData.ts +114 -33
- package/src/lending/user-data/init/userCallParse.ts +1 -1
- package/src/lending/user-data/morpho/decoder.ts +71 -0
- package/src/lending/user-data/morpho/morphoLib.ts +61 -0
- package/src/lending/user-data/morpho/types.ts +12 -0
- package/src/lending/user-data/morpho/userCallBuild.ts +63 -0
- package/src/lending/user-data/morpho/userCallParse.ts +150 -0
- package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +168 -0
- package/src/lending/user-data/types.ts +64 -42
- package/src/lending/user-data/utils/createGeneralUserState.ts +56 -32
- package/src/utils/index.ts +32 -14
- package/src/utils/parsing.ts +5 -0
- package/src/yields/index.ts +13 -4
- package/test/lenderData.test.ts +13251 -13649
- package/test/mainPrices.test.ts +1 -13
- package/test/morpho.test.ts +20 -0
- package/test/userDataMorpho.test.ts +79 -0
- package/test/utils.ts +13 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RewardsMap } from "../aave-v3-type/types";
|
|
2
|
+
import { GenericCurrency } from "../types";
|
|
2
3
|
export declare enum AaveV2TypeGetReserveDataIndexes {
|
|
3
4
|
availableLiquidity = 0,
|
|
4
5
|
totalStableDebt = 1,
|
|
@@ -44,6 +45,7 @@ export declare enum AaveV2TypeIncentivesControllerPoolInfoIndexes {
|
|
|
44
45
|
export interface AaveV2GeneralPublicResponse {
|
|
45
46
|
data: {
|
|
46
47
|
[tokenSymbol: string]: {
|
|
48
|
+
asset: GenericCurrency;
|
|
47
49
|
totalDeposits: number;
|
|
48
50
|
totalDebtStable: number;
|
|
49
51
|
totalDebt: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/aave-v2-type/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,oBAAY,+BAA+B;IACzC,kBAAkB,IAAI;IACtB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,aAAa,IAAA;IACb,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;CACpB;AAED,oBAAY,qCAAqC;IAC/C,QAAQ,IAAI;IACZ,GAAG,IAAA;IACH,oBAAoB,IAAA;IACpB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,uBAAuB,IAAA;IACvB,QAAQ,IAAA;IACR,QAAQ,IAAA;CACT;AAED,oBAAY,4BAA4B;IACtC,oBAAoB,IAAI;IACxB,iBAAiB,IAAA;IACjB,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,aAAa,IAAA;IACb,qBAAqB,IAAA;IACrB,wBAAwB,IAAA;CACzB;AAGD,oBAAY,6CAA6C;IACvD,WAAW,IAAI;IACf,UAAU,IAAA;IACV,cAAc,IAAA;IACd,iBAAiB,IAAA;IACjB,gBAAgB,IAAA;CACjB;AAID,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE;QACJ,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,KAAK,EAAE,eAAe,CAAA;YAEtB,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAElB,gBAAgB,EAAE,MAAM,CAAC;YACzB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,YAAY,EAAE,MAAM,CAAC;YAGrB,WAAW,EAAE,MAAM,CAAA;YACnB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,gBAAgB,EAAE,MAAM,CAAA;YACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;YAC5B,YAAY,EAAE,MAAM,CAAA;YAGpB,OAAO,CAAC,EAAE,UAAU,CAAA;YAGpB,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,wBAAwB,CAAC,EAAE,OAAO,CAAA;YAElC,MAAM,EAAE;gBACN,CAAC,CAAC,CAAC,EAAE;oBACH,QAAQ,EAAE,CAAC,CAAC;oBAEZ,sBAAsB,EAAE,MAAM,CAAC;oBAC/B,gBAAgB,EAAE,MAAM,CAAC;oBACzB,YAAY,EAAE,MAAM,CAAA;iBACrB,CAAA;aACF,CAAA;YAGD,gBAAgB,EAAE,OAAO,CAAC;YAC1B,gBAAgB,EAAE,OAAO,CAAC;YAC1B,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAA;KACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;CAChB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Lender } from
|
|
2
|
-
import { AdditionalYields } from
|
|
3
|
-
import { CompoundV3GeneralPublicResponse } from
|
|
4
|
-
import { GenericTokenList } from
|
|
1
|
+
import { Lender } from '@1delta/asset-registry';
|
|
2
|
+
import { AdditionalYields } from '../../types';
|
|
3
|
+
import { CompoundV3GeneralPublicResponse } from './types';
|
|
4
|
+
import { GenericTokenList } from '../types';
|
|
5
5
|
export declare const getCompoundV3ReservesDataConverter: (lender: Lender, chainId: string, prices: {
|
|
6
6
|
[asset: string]: number;
|
|
7
7
|
}, additionalYields: AdditionalYields, tokenList?: GenericTokenList) => [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAEL,+BAA+B,EAChC,MAAM,SAAS,CAAA;AAUhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAM3C,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,+BAA+B,GAAG,SAAS,EAAE,MAAM,CA8KvE,CAAA"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { CometInterestRateIndexes } from
|
|
2
|
-
import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey } from
|
|
3
|
-
import { getCompoundV3BaseAsset } from
|
|
4
|
-
import { calculateRateForCompound, parseRawAmount } from
|
|
1
|
+
import { CometInterestRateIndexes, } from './types';
|
|
2
|
+
import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey, } from '../../assets';
|
|
3
|
+
import { getCompoundV3BaseAsset } from '../addresses/compoundV3';
|
|
4
|
+
import { calculateRateForCompound, parseRawAmount } from '../../utils/parsing';
|
|
5
5
|
const COMET_RISK_DECIMALS = 18;
|
|
6
6
|
const SECONDS_PER_DAY = 3600 * 24;
|
|
7
7
|
const DAYS_IN_YEAR = 365;
|
|
8
8
|
export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, additionalYields, tokenList = {}) => {
|
|
9
9
|
const assetsToQuery = getCompoundV3Assets(chainId, lender);
|
|
10
10
|
const baseAssetData = getCompoundV3BaseAsset(lender, chainId);
|
|
11
|
-
const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset);
|
|
11
|
+
const tokensNoBase = assetsToQuery.filter((a) => a !== baseAssetData.baseAsset);
|
|
12
12
|
const baseLength = tokensNoBase.length * 2;
|
|
13
13
|
const expectedNumberOfCalls = baseLength + 6;
|
|
14
14
|
return [
|
|
@@ -21,10 +21,14 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
21
21
|
const asset = tokensNoBase[i];
|
|
22
22
|
const resultsAssetInfo = data[i * 2];
|
|
23
23
|
const resultsTotals = data[i * 2 + 1];
|
|
24
|
-
const assetMeta = tokenList[asset] ?? {
|
|
24
|
+
const assetMeta = tokenList[asset] ?? {
|
|
25
|
+
...getAssetMeta(chainId, asset),
|
|
26
|
+
address: asset,
|
|
27
|
+
};
|
|
25
28
|
const decimals = assetMeta?.decimals ?? 18;
|
|
26
29
|
const totals = parseRawAmount(resultsTotals[0], decimals);
|
|
27
|
-
const oracleKey = toOracleKey(assetMeta?.assetGroup) ??
|
|
30
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ??
|
|
31
|
+
toGenericPriceKey(asset, chainId);
|
|
28
32
|
result[asset] = {
|
|
29
33
|
poolId: asset,
|
|
30
34
|
underlying: asset,
|
|
@@ -35,8 +39,8 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
35
39
|
// collateral factors
|
|
36
40
|
borrowCollateralFactor: parseRawAmount(resultsAssetInfo.borrowCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
37
41
|
collateralFactor: parseRawAmount(resultsAssetInfo.liquidateCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
38
|
-
borrowFactor: 1
|
|
39
|
-
}
|
|
42
|
+
borrowFactor: 1,
|
|
43
|
+
},
|
|
40
44
|
},
|
|
41
45
|
supplyCap: parseRawAmount(resultsAssetInfo.supplyCap.toString(), decimals),
|
|
42
46
|
// interest rates
|
|
@@ -55,10 +59,13 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
55
59
|
totalDepositsUSD: Number(totals) * (prices[oracleKey] ?? 1),
|
|
56
60
|
// rewards
|
|
57
61
|
rewards: {},
|
|
58
|
-
borrowingEnabled: false
|
|
62
|
+
borrowingEnabled: false,
|
|
59
63
|
};
|
|
60
64
|
}
|
|
61
|
-
const baseMeta =
|
|
65
|
+
const baseMeta = tokenList[baseAssetData.baseAsset] ?? {
|
|
66
|
+
...getAssetMeta(chainId, baseAssetData.baseAsset),
|
|
67
|
+
address: baseAssetData.baseAsset,
|
|
68
|
+
};
|
|
62
69
|
// parse data for rewards calculation
|
|
63
70
|
const decimals = baseMeta?.decimals ?? 18;
|
|
64
71
|
const resultsSupplyRewards = Number(data[baseLength]?.toString());
|
|
@@ -66,17 +73,19 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
66
73
|
const resultsIndexScale = data[baseLength + 2]?.toString();
|
|
67
74
|
const resultsSupply = parseRawAmount(data[baseLength + 3]?.toString(), decimals);
|
|
68
75
|
const resultsBorrow = parseRawAmount(data[baseLength + 4]?.toString(), decimals);
|
|
69
|
-
const compToSuppliersPerDay = resultsSupplyRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
70
|
-
const compToBorrowersPerDay = resultsBorrowRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
76
|
+
const compToSuppliersPerDay = (resultsSupplyRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY;
|
|
77
|
+
const compToBorrowersPerDay = (resultsBorrowRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY;
|
|
71
78
|
const resultsInterest = data[baseLength + 5];
|
|
72
|
-
const oracleKeyBase = toOracleKey(baseMeta?.assetGroup) ??
|
|
79
|
+
const oracleKeyBase = toOracleKey(baseMeta?.assetGroup) ??
|
|
80
|
+
toGenericPriceKey(baseAssetData.baseAsset, chainId);
|
|
73
81
|
const price = prices[oracleKeyBase] ?? 1;
|
|
74
82
|
const liquidity = Number(resultsSupply) - Number(resultsBorrow);
|
|
75
|
-
const compPrice = prices[
|
|
83
|
+
const compPrice = prices['COMP'];
|
|
76
84
|
const baseData = {
|
|
77
85
|
[baseAssetData.baseAsset]: {
|
|
78
86
|
poolId: baseAssetData.baseAsset,
|
|
79
87
|
underlying: baseAssetData.baseAsset,
|
|
88
|
+
asset: baseMeta,
|
|
80
89
|
// collateral factots
|
|
81
90
|
borrowCollateralFactor: 0,
|
|
82
91
|
collateralFactor: 0,
|
|
@@ -87,8 +96,8 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
87
96
|
// collateral factors
|
|
88
97
|
borrowCollateralFactor: 0,
|
|
89
98
|
collateralFactor: 0,
|
|
90
|
-
borrowFactor: 1
|
|
91
|
-
}
|
|
99
|
+
borrowFactor: 1,
|
|
100
|
+
},
|
|
92
101
|
},
|
|
93
102
|
// interest rates
|
|
94
103
|
variableBorrowRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.borrowRate].toString(), chainId, lender),
|
|
@@ -104,17 +113,23 @@ export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, addi
|
|
|
104
113
|
// rewards
|
|
105
114
|
rewards: {
|
|
106
115
|
COMP: {
|
|
107
|
-
depositRate: (compPrice * compToSuppliersPerDay / Number(resultsSupply)) *
|
|
108
|
-
|
|
116
|
+
depositRate: (((compPrice * compToSuppliersPerDay) / Number(resultsSupply)) *
|
|
117
|
+
DAYS_IN_YEAR *
|
|
118
|
+
100) /
|
|
119
|
+
price,
|
|
120
|
+
variableBorrowRate: (((compPrice * compToBorrowersPerDay) / Number(resultsBorrow)) *
|
|
121
|
+
DAYS_IN_YEAR *
|
|
122
|
+
100) /
|
|
123
|
+
price,
|
|
109
124
|
stableBorrowRate: 0,
|
|
110
|
-
}
|
|
125
|
+
},
|
|
111
126
|
},
|
|
112
127
|
borrowingEnabled: true,
|
|
113
128
|
stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,
|
|
114
|
-
}
|
|
129
|
+
},
|
|
115
130
|
};
|
|
116
131
|
return { data: { ...result, ...baseData }, chainId };
|
|
117
132
|
},
|
|
118
|
-
expectedNumberOfCalls
|
|
133
|
+
expectedNumberOfCalls,
|
|
119
134
|
];
|
|
120
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA+E1C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAqDnC,CAAA"}
|
|
@@ -12,7 +12,7 @@ import { InitLensAbi } from '../abis/init/InitLens';
|
|
|
12
12
|
import { CometAbi } from '../abis/compound-v3/Comet';
|
|
13
13
|
import { CometExtAbi } from '../abis/compound-v3/CometExt';
|
|
14
14
|
import { IrgetterAbi } from '../abis/compound-v3/IrGetter';
|
|
15
|
-
import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit } from '../utils';
|
|
15
|
+
import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit, } from '../utils';
|
|
16
16
|
import { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild';
|
|
17
17
|
import { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild';
|
|
18
18
|
import { buildInitStyleLenderReserveCall } from './init/publicCallBuild';
|
|
@@ -30,18 +30,22 @@ function buildLenderCall(chainId, lender) {
|
|
|
30
30
|
return buildAaveV2StyleLenderReserveCall(chainId, lender);
|
|
31
31
|
if (isAaveV3Type(lender))
|
|
32
32
|
return buildAaveV3StyleLenderReserveCall(chainId, lender);
|
|
33
|
+
if (isCompoundV3(lender))
|
|
34
|
+
return buildCompoundV3StyleLenderReserveCall(chainId, lender);
|
|
33
35
|
if (isInit(lender))
|
|
34
36
|
return buildInitStyleLenderReserveCall(chainId, lender);
|
|
35
|
-
return
|
|
37
|
+
return [];
|
|
36
38
|
}
|
|
37
39
|
function getLenderDataConverter(lender, chainId, prices, additionalYields, tokenList = {}) {
|
|
38
40
|
if (isAaveV2Type(lender))
|
|
39
41
|
return getAaveV2ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
|
|
40
42
|
if (isAaveV3Type(lender))
|
|
41
43
|
return getAaveV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
|
|
44
|
+
if (isCompoundV3(lender))
|
|
45
|
+
return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
|
|
42
46
|
if (isInit(lender))
|
|
43
47
|
return getInitReservesDataConverter(lender, chainId, prices, additionalYields, tokenList);
|
|
44
|
-
return
|
|
48
|
+
return [() => null, 0];
|
|
45
49
|
}
|
|
46
50
|
const getAbi = (lender) => {
|
|
47
51
|
if (isAaveV2Type(lender))
|
|
@@ -49,33 +53,23 @@ const getAbi = (lender) => {
|
|
|
49
53
|
...ProtocolDataProviderAbi,
|
|
50
54
|
...UniswapV2PairAbi,
|
|
51
55
|
...RewarderAbi,
|
|
52
|
-
...IncentivesControllerAbi
|
|
56
|
+
...IncentivesControllerAbi,
|
|
53
57
|
];
|
|
54
58
|
if (isAaveV3Original(lender))
|
|
55
|
-
return [
|
|
56
|
-
...AavePoolV3UpgradedAbi,
|
|
57
|
-
...AaveV3ProtocolDataProviderAbi
|
|
58
|
-
];
|
|
59
|
+
return [...AavePoolV3UpgradedAbi, ...AaveV3ProtocolDataProviderAbi];
|
|
59
60
|
if (lender === Lender.YLDR)
|
|
60
|
-
return [
|
|
61
|
-
...YLDRProtocolDataProviderAbi,
|
|
62
|
-
];
|
|
61
|
+
return [...YLDRProtocolDataProviderAbi];
|
|
63
62
|
if (isAaveV3Type(lender))
|
|
64
|
-
return [
|
|
65
|
-
...AavePoolLegacyAbi,
|
|
66
|
-
...AavePoolDataProviderLegacyAbi
|
|
67
|
-
];
|
|
63
|
+
return [...AavePoolLegacyAbi, ...AavePoolDataProviderLegacyAbi];
|
|
68
64
|
if (isCompoundV3(lender))
|
|
69
|
-
return [
|
|
70
|
-
...IrgetterAbi,
|
|
71
|
-
...CometAbi,
|
|
72
|
-
...CometExtAbi
|
|
73
|
-
];
|
|
65
|
+
return [...IrgetterAbi, ...CometAbi, ...CometExtAbi];
|
|
74
66
|
if (isInit(lender))
|
|
75
67
|
return InitLensAbi;
|
|
76
68
|
return [];
|
|
77
69
|
};
|
|
78
|
-
export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList = async () => {
|
|
70
|
+
export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList = async () => {
|
|
71
|
+
return {};
|
|
72
|
+
}) => {
|
|
79
73
|
let calls = [];
|
|
80
74
|
for (const lender of lenders) {
|
|
81
75
|
const abi = getAbi(lender);
|
|
@@ -94,15 +88,17 @@ export const getLenderPublicData = async (chainId, lenders, prices, additionalYi
|
|
|
94
88
|
let currentSlice = 0;
|
|
95
89
|
for (const lender of lenders) {
|
|
96
90
|
const [converter, sliceLength] = getLenderDataConverter(lender, chainId, prices, additionalYields, list);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
91
|
+
if (sliceLength > 0) {
|
|
92
|
+
const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
|
|
93
|
+
const convertedData = converter(data);
|
|
94
|
+
if (!convertedData) {
|
|
95
|
+
invalidLenders.push(lender);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
lenderData[lender] = convertedData;
|
|
99
|
+
}
|
|
100
|
+
currentSlice += sliceLength;
|
|
104
101
|
}
|
|
105
|
-
currentSlice += sliceLength;
|
|
106
102
|
}
|
|
107
103
|
return lenderData;
|
|
108
104
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AdditionalYields, MulticallRetryFunction } from '../types';
|
|
2
2
|
import { Lender } from '@1delta/asset-registry';
|
|
3
|
+
import { GenericTokenList } from './types';
|
|
3
4
|
export declare const getLenderPublicDataAll: (chainId: string, lenders: Lender[], prices: {
|
|
4
5
|
[asset: string]: number;
|
|
5
|
-
}, additionalYields: AdditionalYields, multicallRetry: MulticallRetryFunction) => Promise<{
|
|
6
|
+
}, additionalYields: AdditionalYields, multicallRetry: MulticallRetryFunction, tokenList?: () => Promise<GenericTokenList>) => Promise<{
|
|
6
7
|
[lender: string]: any;
|
|
7
8
|
}>;
|
|
8
9
|
//# sourceMappingURL=fetchLenderAll.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI1C,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAY,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAC1C,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAcnC,CAAA"}
|
|
@@ -2,11 +2,11 @@ import { Lender } from '@1delta/asset-registry';
|
|
|
2
2
|
import { getLenderPublicData } from './fetchLender';
|
|
3
3
|
import { getLenderPublicDataViaApi } from './fetchLenderExt';
|
|
4
4
|
const LENDERS_VIA_API = [Lender.MORPHO_BLUE];
|
|
5
|
-
export const getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields, multicallRetry) => {
|
|
5
|
+
export const getLenderPublicDataAll = async (chainId, lenders, prices, additionalYields, multicallRetry, tokenList) => {
|
|
6
6
|
const lendersApi = lenders.filter(l => LENDERS_VIA_API.includes(l));
|
|
7
7
|
const lendersOnChain = lenders.filter(l => !LENDERS_VIA_API.includes(l));
|
|
8
|
-
const onChain = getLenderPublicData(chainId, lendersOnChain, prices, additionalYields, multicallRetry);
|
|
9
|
-
const api = getLenderPublicDataViaApi(chainId, lendersApi, prices, additionalYields);
|
|
8
|
+
const onChain = getLenderPublicData(chainId, lendersOnChain, prices, additionalYields, multicallRetry, tokenList);
|
|
9
|
+
const api = getLenderPublicDataViaApi(chainId, lendersApi, prices, additionalYields, tokenList);
|
|
10
10
|
const [onChainRes, apiRes] = await Promise.all([onChain, api]);
|
|
11
11
|
return { ...onChainRes, ...apiRes };
|
|
12
12
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AdditionalYields } from '../types';
|
|
2
2
|
import { Lender } from '@1delta/asset-registry';
|
|
3
|
+
import { GenericTokenList } from './types';
|
|
3
4
|
export declare const getLenderPublicDataViaApi: (chainId: string, lenders: Lender[], prices: {
|
|
4
5
|
[asset: string]: number;
|
|
5
|
-
}, additionalYields: AdditionalYields) => Promise<{
|
|
6
|
+
}, additionalYields: AdditionalYields, tokenList?: () => Promise<GenericTokenList>) => Promise<{
|
|
6
7
|
[lender: string]: any;
|
|
7
8
|
}>;
|
|
8
9
|
//# sourceMappingURL=fetchLenderExt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderExt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLenderExt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA2B1C,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA2CnC,CAAA"}
|
|
@@ -1,27 +1,41 @@
|
|
|
1
1
|
import { isMorphoType, isMultiMarket } from '../utils';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { fetchMorphoMarkets } from './morpho/fetchPublic';
|
|
3
|
+
import { convertMarketsToMorphoResponse } from './morpho/convertPublic';
|
|
4
|
+
async function getLenderDataFromApi(lender, chainId, prices, additionalYields) {
|
|
4
5
|
if (isMorphoType(lender))
|
|
5
|
-
return await
|
|
6
|
+
return await fetchMorphoMarkets(chainId);
|
|
6
7
|
return {};
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
function convertLenderDataFromApi(lender, chainId, data, prices, additionalYields, list = {}) {
|
|
10
|
+
if (isMorphoType(lender))
|
|
11
|
+
return convertMarketsToMorphoResponse(data, chainId, additionalYields, list);
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
export const getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYields, tokenList = async () => {
|
|
15
|
+
return {};
|
|
16
|
+
}) => {
|
|
9
17
|
let promises = [];
|
|
10
18
|
for (const lender of lenders) {
|
|
11
|
-
promises.push(
|
|
19
|
+
promises.push(getLenderDataFromApi(lender, chainId, prices, additionalYields));
|
|
12
20
|
}
|
|
13
|
-
const results = await Promise.all(promises);
|
|
21
|
+
const [list, ...results] = await Promise.all([tokenList(), ...promises]);
|
|
14
22
|
const lenderData = {};
|
|
15
23
|
for (let i = 0; i < lenders.length; i++) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
try {
|
|
25
|
+
const lender = lenders[i];
|
|
26
|
+
if (isMultiMarket(lender)) {
|
|
27
|
+
const dataObtained = results[i];
|
|
28
|
+
const converted = convertLenderDataFromApi(lender, chainId, dataObtained, prices, additionalYields, list);
|
|
29
|
+
Object.keys(converted).forEach((marketId) => {
|
|
30
|
+
lenderData[marketId] = converted[marketId];
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
lenderData[lender] = convertLenderDataFromApi(lender, chainId, results[i], prices, additionalYields, list);
|
|
35
|
+
}
|
|
22
36
|
}
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.log('error fetching from API on', chainId, ':', e);
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
41
|
return lenderData;
|
package/dist/lending/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
package/dist/lending/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { MorphoGeneralPublicResponse, GetMarketsResponse } from './types';
|
|
2
2
|
import { AdditionalYields } from '../../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[m: string]: MorphoGeneralPublicResponse;
|
|
7
|
-
};
|
|
3
|
+
import { GenericTokenList } from '../types';
|
|
4
|
+
export declare function convertMarketsToMorphoResponse(response: GetMarketsResponse, chainId: string, additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
|
|
5
|
+
[m: string]: MorphoGeneralPublicResponse;
|
|
8
6
|
};
|
|
9
7
|
//# sourceMappingURL=convertPublic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAE3B,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAc3C,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,EACf,gBAAgB,GAAE,gBAIjB,EACD,MAAM,GAAE,gBAAqB,GAC3B;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,2BAA2B,CAAA;CAAE,CAyH/C"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import { formatUnits } from 'viem';
|
|
2
2
|
import { apyToApr } from '../user-data/utils';
|
|
3
|
-
import { getAssetMeta } from '../../assets';
|
|
4
3
|
function parseLtv(ltv) {
|
|
5
4
|
let str = 0;
|
|
6
5
|
try {
|
|
7
6
|
str = Number(formatUnits(BigInt(ltv), 18));
|
|
8
7
|
}
|
|
9
|
-
catch (e) {
|
|
10
|
-
}
|
|
8
|
+
catch (e) { }
|
|
11
9
|
return str;
|
|
12
10
|
}
|
|
13
11
|
function formatNr(n, d) {
|
|
14
12
|
return Number(formatUnits(BigInt(n ?? 0), d));
|
|
15
13
|
}
|
|
16
|
-
export function convertMarketsToMorphoResponse(response, chainId, additionalYields = {
|
|
14
|
+
export function convertMarketsToMorphoResponse(response, chainId, additionalYields = {
|
|
15
|
+
intrinsicYields: {},
|
|
16
|
+
lenderRewards: {},
|
|
17
|
+
loaded: true,
|
|
18
|
+
}, tokens = {}) {
|
|
17
19
|
const data = {};
|
|
18
20
|
response.markets.items.forEach((market) => {
|
|
19
21
|
const { uniqueKey, lltv, irmAddress, oracleAddress, loanAsset, collateralAsset, state, } = market;
|
|
20
22
|
if (collateralAsset && loanAsset && oracleAddress) {
|
|
21
|
-
const m =
|
|
23
|
+
const m = 'MORPHO_BLUE_' + uniqueKey.slice(2).toUpperCase();
|
|
22
24
|
// @ts-ignore
|
|
23
25
|
if (!data[m])
|
|
24
26
|
data[m] = { data: {} };
|
|
@@ -32,9 +34,11 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
|
|
|
32
34
|
// }
|
|
33
35
|
// })
|
|
34
36
|
const loanAssetAddress = loanAsset.address.toLowerCase();
|
|
37
|
+
const meta = tokens[loanAssetAddress] ?? loanAsset;
|
|
35
38
|
data[m].data[loanAssetAddress] = {
|
|
36
39
|
poolId: loanAssetAddress,
|
|
37
40
|
underlying: loanAssetAddress,
|
|
41
|
+
asset: meta,
|
|
38
42
|
totalDeposits: formatNr(state.supplyAssets, loanAsset.decimals),
|
|
39
43
|
totalDebtStable: 0,
|
|
40
44
|
totalDebt: formatNr(state.borrowAssets, loanAsset.decimals),
|
|
@@ -44,7 +48,7 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
|
|
|
44
48
|
depositRate: apyToApr(Number(state.supplyApy)) * 100,
|
|
45
49
|
variableBorrowRate: apyToApr(Number(state.borrowApy)) * 100,
|
|
46
50
|
stableBorrowRate: 0,
|
|
47
|
-
stakingYield: additionalYields.intrinsicYields[
|
|
51
|
+
stakingYield: additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,
|
|
48
52
|
rewards: Object.keys(loanRewards).length > 0 ? loanRewards : undefined,
|
|
49
53
|
decimals: loanAsset.decimals,
|
|
50
54
|
config: {
|
|
@@ -63,10 +67,12 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
|
|
|
63
67
|
};
|
|
64
68
|
const ltv = parseLtv(lltv);
|
|
65
69
|
const collateralAssetAddress = collateralAsset.address.toLowerCase();
|
|
70
|
+
const metaCollateral = tokens[collateralAssetAddress] ?? collateralAsset;
|
|
66
71
|
// 2. COLLATERAL asset entry
|
|
67
72
|
data[m].data[collateralAssetAddress] = {
|
|
68
73
|
poolId: collateralAssetAddress,
|
|
69
74
|
underlying: collateralAssetAddress,
|
|
75
|
+
asset: metaCollateral,
|
|
70
76
|
totalDeposits: formatNr(state.collateralAssets, collateralAsset.decimals),
|
|
71
77
|
totalDebtStable: 0,
|
|
72
78
|
totalDebt: 0,
|
|
@@ -76,7 +82,7 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
|
|
|
76
82
|
depositRate: 0,
|
|
77
83
|
variableBorrowRate: 0,
|
|
78
84
|
stableBorrowRate: 0,
|
|
79
|
-
stakingYield: additionalYields.intrinsicYields[
|
|
85
|
+
stakingYield: additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,
|
|
80
86
|
rewards: undefined,
|
|
81
87
|
decimals: collateralAsset.decimals,
|
|
82
88
|
config: {
|
|
@@ -104,12 +110,10 @@ export function convertMarketsToMorphoResponse(response, chainId, additionalYiel
|
|
|
104
110
|
irm: irmAddress,
|
|
105
111
|
collateralAddress: collateralAsset.address,
|
|
106
112
|
loanAddress: loanAsset.address,
|
|
107
|
-
}
|
|
113
|
+
},
|
|
108
114
|
};
|
|
115
|
+
data[m].chainId = chainId;
|
|
109
116
|
}
|
|
110
117
|
});
|
|
111
|
-
return
|
|
112
|
-
data,
|
|
113
|
-
chainId
|
|
114
|
-
};
|
|
118
|
+
return data;
|
|
115
119
|
}
|
|
@@ -54,7 +54,7 @@ query GetMarkets {
|
|
|
54
54
|
const BASE_URL = "https://blue-api.morpho.org/graphql";
|
|
55
55
|
export async function fetchMorphoMarkets(chainId) {
|
|
56
56
|
const requestBody = {
|
|
57
|
-
query: query(
|
|
57
|
+
query: query(200, 0, chainId),
|
|
58
58
|
variables: {},
|
|
59
59
|
};
|
|
60
60
|
const response = await fetch(BASE_URL, {
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { AdditionalYields } from "../../types";
|
|
2
2
|
export declare function fetchMorphoPublicData(chainId: string, yields?: AdditionalYields): Promise<{
|
|
3
|
-
|
|
4
|
-
data: {
|
|
5
|
-
[m: string]: import("./types").MorphoGeneralPublicResponse;
|
|
6
|
-
};
|
|
3
|
+
[m: string]: import("./types").MorphoGeneralPublicResponse;
|
|
7
4
|
}>;
|
|
8
5
|
//# sourceMappingURL=publicCallBuild.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/publicCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,gBAA2E
|
|
1
|
+
{"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/publicCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,gBAA2E;;GAItF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GenericCurrency } from "../types";
|
|
1
2
|
export type GetMarketsResponse = {
|
|
2
3
|
markets: {
|
|
3
4
|
items: {
|
|
@@ -70,6 +71,7 @@ export interface MorphoGeneralPublicResponse {
|
|
|
70
71
|
[tokenSymbol: string]: {
|
|
71
72
|
poolId: string;
|
|
72
73
|
underlying: string;
|
|
74
|
+
asset: GenericCurrency;
|
|
73
75
|
totalDeposits: number;
|
|
74
76
|
totalDebtStable: 0;
|
|
75
77
|
totalDebt: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/morpho/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAmB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAqB1F,CAAA"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { getAaveAssets,
|
|
2
|
-
import {
|
|
3
|
-
const
|
|
4
|
-
const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMap) => {
|
|
5
|
-
const broker = getComposerAddress(chainId);
|
|
1
|
+
import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets";
|
|
2
|
+
import { isYLDR } from "../../../utils";
|
|
3
|
+
const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery) => {
|
|
6
4
|
return assetsToQuery.flatMap((tk) => [
|
|
7
5
|
{
|
|
8
6
|
address: getAaveTypePoolDataProviderAddress(chainId, lender),
|
|
@@ -13,9 +11,8 @@ const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMa
|
|
|
13
11
|
};
|
|
14
12
|
export const buildAaveV3UserCall = (chainId, lender, account) => {
|
|
15
13
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
16
|
-
const aaveTokenMap = getAaveStyleProtocolTokenMap(chainId, lender);
|
|
17
14
|
const calls = [
|
|
18
|
-
...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery
|
|
15
|
+
...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery),
|
|
19
16
|
];
|
|
20
17
|
if (!isYLDR(lender)) {
|
|
21
18
|
const callDataEmode = {
|