@1delta/margin-fetcher 0.0.10 → 0.0.11
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/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/user-data/compound-v3/userCallParse.js +2 -2
- package/dist/lending/user-data/init/userCallParse.js +1 -1
- package/dist/lending/user-data/types.d.ts +1 -1
- package/dist/lending/user-data/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lending/compound-v3/publicCallParse.ts +93 -37
- package/src/lending/user-data/compound-v3/userCallParse.ts +2 -2
- package/src/lending/user-data/init/userCallParse.ts +1 -1
- package/src/lending/user-data/types.ts +1 -1
|
@@ -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
|
};
|
|
@@ -36,7 +36,7 @@ export const getCompoundV3UserDataConverter = (lender, chainId, account, prices,
|
|
|
36
36
|
deposits,
|
|
37
37
|
depositsUSD: Number(deposits) * price,
|
|
38
38
|
debtStableUSD: 0,
|
|
39
|
-
debt: 0,
|
|
39
|
+
debt: "0",
|
|
40
40
|
debtUSD: 0,
|
|
41
41
|
collateralActive: true,
|
|
42
42
|
// user depos raw
|
|
@@ -66,7 +66,7 @@ export const getCompoundV3UserDataConverter = (lender, chainId, account, prices,
|
|
|
66
66
|
depositsUSD: Number(deposits) * priceBase,
|
|
67
67
|
debtUSD: Number(debt) * priceBase,
|
|
68
68
|
// populate values for totals
|
|
69
|
-
debtStable: 0,
|
|
69
|
+
debtStable: "0",
|
|
70
70
|
debtStableUSD: 0,
|
|
71
71
|
collateralActive: true,
|
|
72
72
|
// user depos raw
|
|
@@ -60,7 +60,7 @@ export const getInitUserDataConverter = (lender, chainId, account, prices, price
|
|
|
60
60
|
deposits: deposits,
|
|
61
61
|
depositsRaw,
|
|
62
62
|
debt: debt,
|
|
63
|
-
debtStable: 0,
|
|
63
|
+
debtStable: "0",
|
|
64
64
|
debtStableUSD: 0,
|
|
65
65
|
depositsUSD: price * Number(deposits),
|
|
66
66
|
debtUSD: price * Number(debt),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import { Lender } from
|
|
2
|
-
import { AdditionalYields } from
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import {
|
|
1
|
+
import { Lender } from '@1delta/asset-registry'
|
|
2
|
+
import { AdditionalYields } from '../../types'
|
|
3
|
+
import {
|
|
4
|
+
CometInterestRateIndexes,
|
|
5
|
+
CompoundV3GeneralPublicResponse,
|
|
6
|
+
} from './types'
|
|
7
|
+
import {
|
|
8
|
+
getAssetMeta,
|
|
9
|
+
getCompoundV3Assets,
|
|
10
|
+
LENDER_MODE_NO_MODE,
|
|
11
|
+
toGenericPriceKey,
|
|
12
|
+
toOracleKey,
|
|
13
|
+
} from '../../assets'
|
|
14
|
+
import { getCompoundV3BaseAsset } from '../addresses/compoundV3'
|
|
15
|
+
import { calculateRateForCompound, parseRawAmount } from '../../utils/parsing'
|
|
16
|
+
import { GenericTokenList } from '../types'
|
|
8
17
|
|
|
9
18
|
const COMET_RISK_DECIMALS = 18
|
|
10
19
|
const SECONDS_PER_DAY = 3600 * 24
|
|
@@ -15,12 +24,13 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
15
24
|
chainId: string,
|
|
16
25
|
prices: { [asset: string]: number },
|
|
17
26
|
additionalYields: AdditionalYields,
|
|
18
|
-
tokenList: GenericTokenList = {}
|
|
27
|
+
tokenList: GenericTokenList = {},
|
|
19
28
|
): [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number] => {
|
|
20
|
-
|
|
21
29
|
const assetsToQuery = getCompoundV3Assets(chainId, lender)
|
|
22
30
|
const baseAssetData = getCompoundV3BaseAsset(lender, chainId)
|
|
23
|
-
const tokensNoBase = assetsToQuery.filter(
|
|
31
|
+
const tokensNoBase = assetsToQuery.filter(
|
|
32
|
+
(a) => a !== baseAssetData.baseAsset,
|
|
33
|
+
)
|
|
24
34
|
|
|
25
35
|
const baseLength = tokensNoBase.length * 2
|
|
26
36
|
const expectedNumberOfCalls = baseLength + 6
|
|
@@ -34,10 +44,15 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
34
44
|
const asset = tokensNoBase[i]
|
|
35
45
|
const resultsAssetInfo = data[i * 2]
|
|
36
46
|
const resultsTotals = data[i * 2 + 1]
|
|
37
|
-
const assetMeta = tokenList[asset] ?? {
|
|
47
|
+
const assetMeta = tokenList[asset] ?? {
|
|
48
|
+
...getAssetMeta(chainId, asset),
|
|
49
|
+
address: asset,
|
|
50
|
+
}
|
|
38
51
|
const decimals = assetMeta?.decimals ?? 18
|
|
39
52
|
const totals = parseRawAmount(resultsTotals[0], decimals)
|
|
40
|
-
const oracleKey =
|
|
53
|
+
const oracleKey =
|
|
54
|
+
toOracleKey(assetMeta?.assetGroup) ??
|
|
55
|
+
toGenericPriceKey(asset, chainId)
|
|
41
56
|
result[asset] = {
|
|
42
57
|
poolId: asset,
|
|
43
58
|
underlying: asset,
|
|
@@ -46,12 +61,21 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
46
61
|
[LENDER_MODE_NO_MODE]: {
|
|
47
62
|
category: LENDER_MODE_NO_MODE,
|
|
48
63
|
// collateral factors
|
|
49
|
-
borrowCollateralFactor: parseRawAmount(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
borrowCollateralFactor: parseRawAmount(
|
|
65
|
+
resultsAssetInfo.borrowCollateralFactor.toString(),
|
|
66
|
+
COMET_RISK_DECIMALS,
|
|
67
|
+
),
|
|
68
|
+
collateralFactor: parseRawAmount(
|
|
69
|
+
resultsAssetInfo.liquidateCollateralFactor.toString(),
|
|
70
|
+
COMET_RISK_DECIMALS,
|
|
71
|
+
),
|
|
72
|
+
borrowFactor: 1,
|
|
73
|
+
},
|
|
53
74
|
},
|
|
54
|
-
supplyCap: parseRawAmount(
|
|
75
|
+
supplyCap: parseRawAmount(
|
|
76
|
+
resultsAssetInfo.supplyCap.toString(),
|
|
77
|
+
decimals,
|
|
78
|
+
),
|
|
55
79
|
|
|
56
80
|
// interest rates
|
|
57
81
|
variableBorrowRate: 0,
|
|
@@ -70,34 +94,48 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
70
94
|
totalDepositsUSD: Number(totals) * (prices[oracleKey] ?? 1),
|
|
71
95
|
// rewards
|
|
72
96
|
rewards: {},
|
|
73
|
-
borrowingEnabled: false
|
|
97
|
+
borrowingEnabled: false,
|
|
74
98
|
}
|
|
75
99
|
}
|
|
76
100
|
|
|
77
|
-
const baseMeta =
|
|
101
|
+
const baseMeta = tokenList[baseAssetData.baseAsset] ?? {
|
|
102
|
+
...getAssetMeta(chainId, baseAssetData.baseAsset),
|
|
103
|
+
address: baseAssetData.baseAsset,
|
|
104
|
+
}
|
|
78
105
|
|
|
79
106
|
// parse data for rewards calculation
|
|
80
107
|
const decimals = baseMeta?.decimals ?? 18
|
|
81
108
|
const resultsSupplyRewards = Number(data[baseLength]?.toString())
|
|
82
109
|
const resultsBorrowRewards = Number(data[baseLength + 1]?.toString())
|
|
83
110
|
const resultsIndexScale = data[baseLength + 2]?.toString()
|
|
84
|
-
const resultsSupply = parseRawAmount(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
111
|
+
const resultsSupply = parseRawAmount(
|
|
112
|
+
data[baseLength + 3]?.toString(),
|
|
113
|
+
decimals,
|
|
114
|
+
)
|
|
115
|
+
const resultsBorrow = parseRawAmount(
|
|
116
|
+
data[baseLength + 4]?.toString(),
|
|
117
|
+
decimals,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
const compToSuppliersPerDay =
|
|
121
|
+
(resultsSupplyRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY
|
|
122
|
+
const compToBorrowersPerDay =
|
|
123
|
+
(resultsBorrowRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY
|
|
89
124
|
|
|
90
125
|
const resultsInterest = data[baseLength + 5]
|
|
91
126
|
|
|
92
|
-
const oracleKeyBase =
|
|
127
|
+
const oracleKeyBase =
|
|
128
|
+
toOracleKey(baseMeta?.assetGroup) ??
|
|
129
|
+
toGenericPriceKey(baseAssetData.baseAsset, chainId)
|
|
93
130
|
const price = prices[oracleKeyBase] ?? 1
|
|
94
131
|
const liquidity = Number(resultsSupply) - Number(resultsBorrow)
|
|
95
|
-
const compPrice = prices[
|
|
132
|
+
const compPrice = prices['COMP']
|
|
96
133
|
|
|
97
134
|
const baseData = {
|
|
98
135
|
[baseAssetData.baseAsset]: {
|
|
99
136
|
poolId: baseAssetData.baseAsset,
|
|
100
137
|
underlying: baseAssetData.baseAsset,
|
|
138
|
+
asset: baseMeta,
|
|
101
139
|
// collateral factots
|
|
102
140
|
borrowCollateralFactor: 0,
|
|
103
141
|
collateralFactor: 0,
|
|
@@ -109,14 +147,25 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
109
147
|
// collateral factors
|
|
110
148
|
borrowCollateralFactor: 0,
|
|
111
149
|
collateralFactor: 0,
|
|
112
|
-
borrowFactor: 1
|
|
113
|
-
}
|
|
150
|
+
borrowFactor: 1,
|
|
151
|
+
},
|
|
114
152
|
},
|
|
115
153
|
// interest rates
|
|
116
|
-
variableBorrowRate: calculateRateForCompound(
|
|
117
|
-
|
|
154
|
+
variableBorrowRate: calculateRateForCompound(
|
|
155
|
+
resultsInterest[CometInterestRateIndexes.borrowRate].toString(),
|
|
156
|
+
chainId,
|
|
157
|
+
lender,
|
|
158
|
+
),
|
|
159
|
+
depositRate: calculateRateForCompound(
|
|
160
|
+
resultsInterest[CometInterestRateIndexes.supplyRate].toString(),
|
|
161
|
+
chainId,
|
|
162
|
+
lender,
|
|
163
|
+
),
|
|
118
164
|
stableBorrowRate: 0,
|
|
119
|
-
utilization: parseRawAmount(
|
|
165
|
+
utilization: parseRawAmount(
|
|
166
|
+
resultsInterest[CometInterestRateIndexes.utilization].toString(),
|
|
167
|
+
COMET_RISK_DECIMALS,
|
|
168
|
+
),
|
|
120
169
|
|
|
121
170
|
totalLiquidity: liquidity,
|
|
122
171
|
totalLiquidityUSD: liquidity * price,
|
|
@@ -129,18 +178,25 @@ export const getCompoundV3ReservesDataConverter = (
|
|
|
129
178
|
// rewards
|
|
130
179
|
rewards: {
|
|
131
180
|
COMP: {
|
|
132
|
-
depositRate:
|
|
133
|
-
|
|
181
|
+
depositRate:
|
|
182
|
+
(((compPrice * compToSuppliersPerDay) / Number(resultsSupply)) *
|
|
183
|
+
DAYS_IN_YEAR *
|
|
184
|
+
100) /
|
|
185
|
+
price,
|
|
186
|
+
variableBorrowRate:
|
|
187
|
+
(((compPrice * compToBorrowersPerDay) / Number(resultsBorrow)) *
|
|
188
|
+
DAYS_IN_YEAR *
|
|
189
|
+
100) /
|
|
190
|
+
price,
|
|
134
191
|
stableBorrowRate: 0,
|
|
135
|
-
}
|
|
192
|
+
},
|
|
136
193
|
},
|
|
137
194
|
borrowingEnabled: true,
|
|
138
195
|
stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,
|
|
139
|
-
}
|
|
196
|
+
},
|
|
140
197
|
}
|
|
141
198
|
return { data: { ...result, ...baseData }, chainId }
|
|
142
199
|
},
|
|
143
|
-
expectedNumberOfCalls
|
|
200
|
+
expectedNumberOfCalls,
|
|
144
201
|
]
|
|
145
202
|
}
|
|
146
|
-
|
|
@@ -52,7 +52,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
52
52
|
deposits,
|
|
53
53
|
depositsUSD: Number(deposits) * price,
|
|
54
54
|
debtStableUSD: 0,
|
|
55
|
-
debt: 0,
|
|
55
|
+
debt: "0",
|
|
56
56
|
debtUSD: 0,
|
|
57
57
|
collateralActive: true,
|
|
58
58
|
// user depos raw
|
|
@@ -85,7 +85,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
85
85
|
depositsUSD: Number(deposits) * priceBase,
|
|
86
86
|
debtUSD: Number(debt) * priceBase,
|
|
87
87
|
// populate values for totals
|
|
88
|
-
debtStable: 0,
|
|
88
|
+
debtStable: "0",
|
|
89
89
|
debtStableUSD: 0,
|
|
90
90
|
collateralActive: true,
|
|
91
91
|
// user depos raw
|