@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.
@@ -1,7 +1,7 @@
1
- import { Lender } from "@1delta/asset-registry";
2
- import { AdditionalYields } from "../../types";
3
- import { CompoundV3GeneralPublicResponse } from "./types";
4
- import { GenericTokenList } from "../types";
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,EAA4B,+BAA+B,EAAE,MAAM,SAAS,CAAA;AAInF,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,CA8HvE,CAAA"}
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 "./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";
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] ?? { ...getAssetMeta(chainId, asset), address: 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) ?? toGenericPriceKey(asset, chainId);
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 = getAssetMeta(chainId, baseAssetData.baseAsset);
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) ?? toGenericPriceKey(baseAssetData.baseAsset, chainId);
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["COMP"];
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)) * DAYS_IN_YEAR * 100 / price,
108
- variableBorrowRate: (compPrice * compToBorrowersPerDay / Number(resultsBorrow)) * DAYS_IN_YEAR * 100 / price,
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),
@@ -196,7 +196,7 @@ export interface InitUserReserveResponse {
196
196
  debt: number;
197
197
  depositsUSD: number;
198
198
  debtUSD: number;
199
- debtStable: 0;
199
+ debtStable: "0";
200
200
  debtStableUSD: 0;
201
201
  collateralActive: boolean;
202
202
  isAllowed: boolean;
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,10 +1,19 @@
1
- import { Lender } from "@1delta/asset-registry"
2
- import { AdditionalYields } from "../../types"
3
- import { CometInterestRateIndexes, CompoundV3GeneralPublicResponse } from "./types"
4
- import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey } from "../../assets"
5
- import { getCompoundV3BaseAsset } from "../addresses/compoundV3"
6
- import { calculateRateForCompound, parseRawAmount } from "../../utils/parsing"
7
- import { GenericTokenList } from "../types"
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(a => a !== baseAssetData.baseAsset)
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] ?? { ...getAssetMeta(chainId, asset), address: 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 = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
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(resultsAssetInfo.borrowCollateralFactor.toString(), COMET_RISK_DECIMALS),
50
- collateralFactor: parseRawAmount(resultsAssetInfo.liquidateCollateralFactor.toString(), COMET_RISK_DECIMALS),
51
- borrowFactor: 1
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(resultsAssetInfo.supplyCap.toString(), decimals),
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 = getAssetMeta(chainId, baseAssetData.baseAsset)
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(data[baseLength + 3]?.toString(), decimals)
85
- const resultsBorrow = parseRawAmount(data[baseLength + 4]?.toString(), decimals)
86
-
87
- const compToSuppliersPerDay = resultsSupplyRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
88
- const compToBorrowersPerDay = resultsBorrowRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
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 = toOracleKey(baseMeta?.assetGroup) ?? toGenericPriceKey(baseAssetData.baseAsset, chainId)
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["COMP"]
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(resultsInterest[CometInterestRateIndexes.borrowRate].toString(), chainId, lender),
117
- depositRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.supplyRate].toString(), chainId, lender),
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(resultsInterest[CometInterestRateIndexes.utilization].toString(), COMET_RISK_DECIMALS),
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: (compPrice * compToSuppliersPerDay / Number(resultsSupply)) * DAYS_IN_YEAR * 100 / price,
133
- variableBorrowRate: (compPrice * compToBorrowersPerDay / Number(resultsBorrow)) * DAYS_IN_YEAR * 100 / price,
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
@@ -79,7 +79,7 @@ export const getInitUserDataConverter = (
79
79
  deposits: deposits,
80
80
  depositsRaw,
81
81
  debt: debt,
82
- debtStable: 0,
82
+ debtStable: "0",
83
83
  debtStableUSD: 0,
84
84
  depositsUSD: price * Number(deposits),
85
85
  debtUSD: price * Number(debt),
@@ -255,7 +255,7 @@ export interface InitUserReserveResponse {
255
255
  debt: number,
256
256
  depositsUSD: number
257
257
  debtUSD: number,
258
- debtStable: 0,
258
+ debtStable: "0",
259
259
  debtStableUSD: 0,
260
260
  collateralActive: boolean
261
261
  isAllowed: boolean