@defisaver/positions-sdk 0.0.165 → 0.0.166-dev2

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.
Files changed (69) hide show
  1. package/cjs/config/contracts.d.ts +72 -0
  2. package/cjs/config/contracts.js +6 -0
  3. package/cjs/contracts.d.ts +1 -0
  4. package/cjs/contracts.js +2 -1
  5. package/cjs/eulerV2/index.d.ts +40 -0
  6. package/cjs/eulerV2/index.js +207 -0
  7. package/cjs/helpers/eulerHelpers/index.d.ts +27 -0
  8. package/cjs/helpers/eulerHelpers/index.js +232 -0
  9. package/cjs/helpers/index.d.ts +1 -0
  10. package/cjs/helpers/index.js +2 -1
  11. package/cjs/index.d.ts +2 -1
  12. package/cjs/index.js +3 -1
  13. package/cjs/markets/euler/index.d.ts +10 -0
  14. package/cjs/markets/euler/index.js +41 -0
  15. package/cjs/markets/index.d.ts +1 -0
  16. package/cjs/markets/index.js +3 -1
  17. package/cjs/services/utils.d.ts +2 -0
  18. package/cjs/services/utils.js +4 -1
  19. package/cjs/staking/staking.d.ts +1 -0
  20. package/cjs/staking/staking.js +10 -2
  21. package/cjs/types/contracts/generated/EulerV2View.d.ts +333 -0
  22. package/cjs/types/contracts/generated/EulerV2View.js +5 -0
  23. package/cjs/types/contracts/generated/index.d.ts +1 -0
  24. package/cjs/types/euler.d.ts +148 -0
  25. package/cjs/types/euler.js +15 -0
  26. package/cjs/types/index.d.ts +1 -0
  27. package/cjs/types/index.js +1 -0
  28. package/esm/config/contracts.d.ts +72 -0
  29. package/esm/config/contracts.js +6 -0
  30. package/esm/contracts.d.ts +1 -0
  31. package/esm/contracts.js +1 -0
  32. package/esm/eulerV2/index.d.ts +40 -0
  33. package/esm/eulerV2/index.js +199 -0
  34. package/esm/helpers/eulerHelpers/index.d.ts +27 -0
  35. package/esm/helpers/eulerHelpers/index.js +219 -0
  36. package/esm/helpers/index.d.ts +1 -0
  37. package/esm/helpers/index.js +1 -0
  38. package/esm/index.d.ts +2 -1
  39. package/esm/index.js +2 -1
  40. package/esm/markets/euler/index.d.ts +10 -0
  41. package/esm/markets/euler/index.js +34 -0
  42. package/esm/markets/index.d.ts +1 -0
  43. package/esm/markets/index.js +1 -0
  44. package/esm/services/utils.d.ts +2 -0
  45. package/esm/services/utils.js +2 -0
  46. package/esm/staking/staking.d.ts +1 -0
  47. package/esm/staking/staking.js +8 -1
  48. package/esm/types/contracts/generated/EulerV2View.d.ts +333 -0
  49. package/esm/types/contracts/generated/EulerV2View.js +4 -0
  50. package/esm/types/contracts/generated/index.d.ts +1 -0
  51. package/esm/types/euler.d.ts +148 -0
  52. package/esm/types/euler.js +12 -0
  53. package/esm/types/index.d.ts +1 -0
  54. package/esm/types/index.js +1 -0
  55. package/package.json +2 -1
  56. package/src/config/contracts.js +6 -0
  57. package/src/contracts.ts +2 -0
  58. package/src/eulerV2/index.ts +286 -0
  59. package/src/helpers/eulerHelpers/index.ts +231 -0
  60. package/src/helpers/index.ts +2 -1
  61. package/src/index.ts +2 -0
  62. package/src/markets/euler/index.ts +38 -0
  63. package/src/markets/index.ts +3 -1
  64. package/src/services/utils.ts +3 -0
  65. package/src/staking/staking.ts +8 -1
  66. package/src/types/contracts/generated/EulerV2View.ts +434 -0
  67. package/src/types/contracts/generated/index.ts +1 -0
  68. package/src/types/euler.ts +171 -0
  69. package/src/types/index.ts +2 -1
package/src/index.ts CHANGED
@@ -20,6 +20,7 @@ import * as chickenBonds from './chickenBonds';
20
20
  import * as exchange from './exchange';
21
21
  import * as morphoBlue from './morphoBlue';
22
22
  import * as llamaLend from './llamaLend';
23
+ import * as eulerV2 from './eulerV2';
23
24
 
24
25
  export * from './types';
25
26
 
@@ -43,4 +44,5 @@ export {
43
44
  helpers,
44
45
  morphoBlue,
45
46
  llamaLend,
47
+ eulerV2,
46
48
  };
@@ -0,0 +1,38 @@
1
+ import { NetworkNumber } from '../../types/common';
2
+ import { EulerV2Market, EulerV2Versions } from '../../types';
3
+
4
+ export const eUSDC2 = (networkId: NetworkNumber): EulerV2Market => ({
5
+ chainIds: [NetworkNumber.Eth],
6
+ label: 'Euler Prime USDC',
7
+ shortLabel: 'eUSDC-2',
8
+ value: EulerV2Versions.eUSDC2,
9
+ asset: 'USDC',
10
+ secondLabel: 'Market',
11
+ marketAddress: '0x797DD80692c3b2dAdabCe8e30C07fDE5307D48a9',
12
+ });
13
+
14
+ export const eUSDC8 = (networkId: NetworkNumber): EulerV2Market => ({
15
+ chainIds: [NetworkNumber.Eth],
16
+ label: 'Stablecoin Maxi USDC',
17
+ shortLabel: 'eUSDC-8',
18
+ value: EulerV2Versions.eUSDC8,
19
+ asset: 'USDC',
20
+ secondLabel: 'Market',
21
+ marketAddress: '0xce45EF0414dE3516cAF1BCf937bF7F2Cf67873De',
22
+ });
23
+
24
+ export const eWETH2 = (networkId: NetworkNumber): EulerV2Market => ({
25
+ chainIds: [NetworkNumber.Eth],
26
+ label: 'Euler Prime WETH',
27
+ shortLabel: 'eWETH-2',
28
+ value: EulerV2Versions.eWETH2,
29
+ asset: 'WETH',
30
+ secondLabel: 'Market',
31
+ marketAddress: '0xD8b27CF359b7D15710a5BE299AF6e7Bf904984C2',
32
+ });
33
+
34
+ export const EulerV2Markets = (networkId: NetworkNumber) => ({
35
+ [EulerV2Versions.eUSDC2]: eUSDC2(networkId),
36
+ [EulerV2Versions.eUSDC8]: eUSDC8(networkId),
37
+ [EulerV2Versions.eWETH2]: eWETH2(networkId),
38
+ }) as const;
@@ -19,4 +19,6 @@ export {
19
19
  export { SparkMarkets } from './spark';
20
20
  export { CrvUsdMarkets } from './curveUsd';
21
21
  export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
22
- export { LlamaLendMarkets } from './llamaLend';
22
+ export { LlamaLendMarkets } from './llamaLend';
23
+
24
+ export { EulerV2Markets } from './euler';
@@ -52,3 +52,6 @@ export const mapRange = (input: number | string, minInput: number | string, maxI
52
52
  // eslint-disable-next-line no-bitwise
53
53
  export const isEnabledOnBitmap = (bitmap: number, assetId: number) => (BigInt(bitmap) >> BigInt(assetId)) & BigInt(1);
54
54
 
55
+ export const MAXUINT:string = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
56
+
57
+ export const isMaxuint = (amount: string) => compareAddresses(MAXUINT, amount);
@@ -77,6 +77,12 @@ export const getDsrApy = async (web3: Web3, blockNumber: 'latest' | number = 'la
77
77
  .toString();
78
78
  };
79
79
 
80
+ export const getSsrApy = async () => {
81
+ const res = await fetch('https://app.defisaver.com/api/sky/data');
82
+ const data = await res.json();
83
+ return new Dec(data.data.skyData[0].sky_savings_rate_apy).mul(100).toString();
84
+ };
85
+
80
86
  const getSuperOETHApy = async () => {
81
87
  console.log('getSuperOETHApy');
82
88
  const res = await fetch('https://origin.squids.live/origin-squid/graphql', {
@@ -103,7 +109,7 @@ const getApyFromDfsApi = async (asset: string) => {
103
109
  return data.apy;
104
110
  };
105
111
 
106
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
112
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS'];
107
113
 
108
114
  export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' | number = 'latest', fromBlock: number | undefined = undefined) => {
109
115
  console.log('getStakingApy', asset, blockNumber, fromBlock);
@@ -120,6 +126,7 @@ export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' |
120
126
  if (asset === 'rsETH' || asset === 'wrsETH') return getApyFromDfsApi('rsETH');
121
127
  if (asset === 'pufETH') return getApyFromDfsApi('pufETH');
122
128
  if (asset === 'wsuperOETHb') return getSuperOETHApy();
129
+ if (asset === 'sUSDS') return getSsrApy();
123
130
  } catch (e) {
124
131
  console.error(`Failed to fetch APY for ${asset}`);
125
132
  return '0';
@@ -0,0 +1,434 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import type BN from "bn.js";
6
+ import type { ContractOptions } from "web3-eth-contract";
7
+ import type { EventLog } from "web3-core";
8
+ import type { EventEmitter } from "events";
9
+ import type {
10
+ Callback,
11
+ PayableTransactionObject,
12
+ NonPayableTransactionObject,
13
+ BlockType,
14
+ ContractEventLog,
15
+ BaseContract,
16
+ } from "./types";
17
+
18
+ export interface EventOptions {
19
+ filter?: object;
20
+ fromBlock?: BlockType;
21
+ topics?: string[];
22
+ }
23
+
24
+ export declare namespace EulerV2View {
25
+ export type LiquidityChangeParamsStruct =
26
+ | [string, boolean, number | string | BN, number | string | BN]
27
+ | {
28
+ vault: string;
29
+ isBorrowOperation: boolean;
30
+ liquidityAdded: number | string | BN;
31
+ liquidityRemoved: number | string | BN;
32
+ };
33
+
34
+ export type LiquidityChangeParamsStructOutputArray = [
35
+ string,
36
+ boolean,
37
+ string,
38
+ string
39
+ ];
40
+ export type LiquidityChangeParamsStructOutputStruct = {
41
+ vault: string;
42
+ isBorrowOperation: boolean;
43
+ liquidityAdded: string;
44
+ liquidityRemoved: string;
45
+ };
46
+ export type LiquidityChangeParamsStructOutput =
47
+ LiquidityChangeParamsStructOutputArray &
48
+ LiquidityChangeParamsStructOutputStruct;
49
+
50
+ export type UserCollateralInfoStruct =
51
+ | [
52
+ string,
53
+ boolean,
54
+ number | string | BN,
55
+ number | string | BN,
56
+ number | string | BN
57
+ ]
58
+ | {
59
+ collateralVault: string;
60
+ usedInBorrow: boolean;
61
+ collateralAmountInUnit: number | string | BN;
62
+ collateralAmountInAsset: number | string | BN;
63
+ collateralAmountInUSD: number | string | BN;
64
+ };
65
+
66
+ export type UserCollateralInfoStructOutputArray = [
67
+ string,
68
+ boolean,
69
+ string,
70
+ string,
71
+ string
72
+ ];
73
+ export type UserCollateralInfoStructOutputStruct = {
74
+ collateralVault: string;
75
+ usedInBorrow: boolean;
76
+ collateralAmountInUnit: string;
77
+ collateralAmountInAsset: string;
78
+ collateralAmountInUSD: string;
79
+ };
80
+ export type UserCollateralInfoStructOutput =
81
+ UserCollateralInfoStructOutputArray & UserCollateralInfoStructOutputStruct;
82
+
83
+ export type UserDataStruct =
84
+ | [
85
+ string,
86
+ string,
87
+ boolean,
88
+ boolean,
89
+ string,
90
+ number | string | BN,
91
+ number | string | BN,
92
+ EulerV2View.UserCollateralInfoStruct[]
93
+ ]
94
+ | {
95
+ user: string;
96
+ owner: string;
97
+ inLockDownMode: boolean;
98
+ inPermitDisabledMode: boolean;
99
+ borrowVault: string;
100
+ borrowAmountInUnit: number | string | BN;
101
+ borrowAmountInAsset: number | string | BN;
102
+ collaterals: EulerV2View.UserCollateralInfoStruct[];
103
+ };
104
+
105
+ export type UserDataStructOutputArray = [
106
+ string,
107
+ string,
108
+ boolean,
109
+ boolean,
110
+ string,
111
+ string,
112
+ string,
113
+ EulerV2View.UserCollateralInfoStructOutput[]
114
+ ];
115
+ export type UserDataStructOutputStruct = {
116
+ user: string;
117
+ owner: string;
118
+ inLockDownMode: boolean;
119
+ inPermitDisabledMode: boolean;
120
+ borrowVault: string;
121
+ borrowAmountInUnit: string;
122
+ borrowAmountInAsset: string;
123
+ collaterals: EulerV2View.UserCollateralInfoStructOutput[];
124
+ };
125
+ export type UserDataStructOutput = UserDataStructOutputArray &
126
+ UserDataStructOutputStruct;
127
+
128
+ export type CollateralInfoStruct =
129
+ | [
130
+ string,
131
+ string,
132
+ string,
133
+ number | string | BN,
134
+ number | string | BN,
135
+ number | string | BN,
136
+ number | string | BN,
137
+ number | string | BN,
138
+ number | string | BN,
139
+ number | string | BN,
140
+ number | string | BN,
141
+ number | string | BN,
142
+ number | string | BN,
143
+ number | string | BN,
144
+ number | string | BN,
145
+ number | string | BN
146
+ ]
147
+ | {
148
+ vaultAddr: string;
149
+ assetAddr: string;
150
+ vaultSymbol: string;
151
+ decimals: number | string | BN;
152
+ sharePriceInUnit: number | string | BN;
153
+ assetPriceInUnit: number | string | BN;
154
+ cash: number | string | BN;
155
+ totalBorrows: number | string | BN;
156
+ supplyCap: number | string | BN;
157
+ borrowLTV: number | string | BN;
158
+ liquidationLTV: number | string | BN;
159
+ initialLiquidationLTV: number | string | BN;
160
+ targetTimestamp: number | string | BN;
161
+ rampDuration: number | string | BN;
162
+ interestFee: number | string | BN;
163
+ interestRate: number | string | BN;
164
+ };
165
+
166
+ export type CollateralInfoStructOutputArray = [
167
+ string,
168
+ string,
169
+ string,
170
+ string,
171
+ string,
172
+ string,
173
+ string,
174
+ string,
175
+ string,
176
+ string,
177
+ string,
178
+ string,
179
+ string,
180
+ string,
181
+ string,
182
+ string
183
+ ];
184
+ export type CollateralInfoStructOutputStruct = {
185
+ vaultAddr: string;
186
+ assetAddr: string;
187
+ vaultSymbol: string;
188
+ decimals: string;
189
+ sharePriceInUnit: string;
190
+ assetPriceInUnit: string;
191
+ cash: string;
192
+ totalBorrows: string;
193
+ supplyCap: string;
194
+ borrowLTV: string;
195
+ liquidationLTV: string;
196
+ initialLiquidationLTV: string;
197
+ targetTimestamp: string;
198
+ rampDuration: string;
199
+ interestFee: string;
200
+ interestRate: string;
201
+ };
202
+ export type CollateralInfoStructOutput = CollateralInfoStructOutputArray &
203
+ CollateralInfoStructOutputStruct;
204
+
205
+ export type VaultInfoFullStruct =
206
+ | [
207
+ string,
208
+ string,
209
+ string,
210
+ string,
211
+ number | string | BN,
212
+ number | string | BN,
213
+ number | string | BN,
214
+ number | string | BN,
215
+ number | string | BN,
216
+ number | string | BN,
217
+ number | string | BN,
218
+ EulerV2View.CollateralInfoStruct[],
219
+ number | string | BN,
220
+ number | string | BN,
221
+ boolean,
222
+ string,
223
+ number | string | BN,
224
+ string,
225
+ number | string | BN,
226
+ number | string | BN,
227
+ number | string | BN,
228
+ string,
229
+ string,
230
+ string,
231
+ string,
232
+ number | string | BN
233
+ ]
234
+ | {
235
+ vaultAddr: string;
236
+ assetAddr: string;
237
+ name: string;
238
+ symbol: string;
239
+ decimals: number | string | BN;
240
+ totalSupplyShares: number | string | BN;
241
+ cash: number | string | BN;
242
+ totalBorrows: number | string | BN;
243
+ totalAssets: number | string | BN;
244
+ supplyCap: number | string | BN;
245
+ borrowCap: number | string | BN;
246
+ collaterals: EulerV2View.CollateralInfoStruct[];
247
+ maxLiquidationDiscount: number | string | BN;
248
+ liquidationCoolOffTime: number | string | BN;
249
+ badDebtSocializationEnabled: boolean;
250
+ unitOfAccount: string;
251
+ unitOfAccountInUsd: number | string | BN;
252
+ oracle: string;
253
+ assetPriceInUnit: number | string | BN;
254
+ sharePriceInUnit: number | string | BN;
255
+ interestRate: number | string | BN;
256
+ irm: string;
257
+ balanceTrackerAddress: string;
258
+ creator: string;
259
+ governorAdmin: string;
260
+ interestFee: number | string | BN;
261
+ };
262
+
263
+ export type VaultInfoFullStructOutputArray = [
264
+ string,
265
+ string,
266
+ string,
267
+ string,
268
+ string,
269
+ string,
270
+ string,
271
+ string,
272
+ string,
273
+ string,
274
+ string,
275
+ EulerV2View.CollateralInfoStructOutput[],
276
+ string,
277
+ string,
278
+ boolean,
279
+ string,
280
+ string,
281
+ string,
282
+ string,
283
+ string,
284
+ string,
285
+ string,
286
+ string,
287
+ string,
288
+ string,
289
+ string
290
+ ];
291
+ export type VaultInfoFullStructOutputStruct = {
292
+ vaultAddr: string;
293
+ assetAddr: string;
294
+ name: string;
295
+ symbol: string;
296
+ decimals: string;
297
+ totalSupplyShares: string;
298
+ cash: string;
299
+ totalBorrows: string;
300
+ totalAssets: string;
301
+ supplyCap: string;
302
+ borrowCap: string;
303
+ collaterals: EulerV2View.CollateralInfoStructOutput[];
304
+ maxLiquidationDiscount: string;
305
+ liquidationCoolOffTime: string;
306
+ badDebtSocializationEnabled: boolean;
307
+ unitOfAccount: string;
308
+ unitOfAccountInUsd: string;
309
+ oracle: string;
310
+ assetPriceInUnit: string;
311
+ sharePriceInUnit: string;
312
+ interestRate: string;
313
+ irm: string;
314
+ balanceTrackerAddress: string;
315
+ creator: string;
316
+ governorAdmin: string;
317
+ interestFee: string;
318
+ };
319
+ export type VaultInfoFullStructOutput = VaultInfoFullStructOutputArray &
320
+ VaultInfoFullStructOutputStruct;
321
+ }
322
+
323
+ export interface EulerV2View extends BaseContract {
324
+ constructor(
325
+ jsonInterface: any[],
326
+ address?: string,
327
+ options?: ContractOptions
328
+ ): EulerV2View;
329
+ clone(): EulerV2View;
330
+ methods: {
331
+ USD(): NonPayableTransactionObject<string>;
332
+
333
+ feedRegistry(): NonPayableTransactionObject<string>;
334
+
335
+ fetchUsedAccounts(
336
+ _account: string,
337
+ _page: number | string | BN,
338
+ _perPage: number | string | BN
339
+ ): NonPayableTransactionObject<
340
+ [string, string[]] & { owner: string; accounts: string[] }
341
+ >;
342
+
343
+ getAaveTokenPriceInETH(
344
+ _tokenAddr: string
345
+ ): NonPayableTransactionObject<string>;
346
+
347
+ getAaveTokenPriceInUSD(
348
+ _tokenAddr: string
349
+ ): NonPayableTransactionObject<string>;
350
+
351
+ getAaveV3TokenPriceInETH(
352
+ _tokenAddr: string
353
+ ): NonPayableTransactionObject<string>;
354
+
355
+ getAaveV3TokenPriceInUSD(
356
+ _tokenAddr: string
357
+ ): NonPayableTransactionObject<string>;
358
+
359
+ getAddrForChainlinkOracle(
360
+ _inputTokenAddr: string
361
+ ): NonPayableTransactionObject<string>;
362
+
363
+ getApyAfterValuesEstimation(
364
+ params: EulerV2View.LiquidityChangeParamsStruct[]
365
+ ): NonPayableTransactionObject<string[]>;
366
+
367
+ getChainlinkPriceInETH(
368
+ _inputTokenAddr: string
369
+ ): NonPayableTransactionObject<string>;
370
+
371
+ getChainlinkPriceInUSD(
372
+ _inputTokenAddr: string,
373
+ _useFallback: boolean
374
+ ): NonPayableTransactionObject<string>;
375
+
376
+ getPriceInETH(_inputTokenAddr: string): NonPayableTransactionObject<string>;
377
+
378
+ getPriceInUSD(_inputTokenAddr: string): NonPayableTransactionObject<string>;
379
+
380
+ "getRoundInfo(address,uint80,address)"(
381
+ _inputTokenAddr: string,
382
+ _roundId: number | string | BN,
383
+ aggregator: string
384
+ ): NonPayableTransactionObject<
385
+ [string, string] & { updateTimestamp: string }
386
+ >;
387
+
388
+ "getRoundInfo(address,uint80)"(
389
+ _inputTokenAddr: string,
390
+ _roundId: number | string | BN
391
+ ): NonPayableTransactionObject<
392
+ [string, string] & { updateTimestamp: string }
393
+ >;
394
+
395
+ getSparkTokenPriceInETH(
396
+ _tokenAddr: string
397
+ ): NonPayableTransactionObject<string>;
398
+
399
+ getSparkTokenPriceInUSD(
400
+ _tokenAddr: string
401
+ ): NonPayableTransactionObject<string>;
402
+
403
+ getUserData(
404
+ _user: string
405
+ ): NonPayableTransactionObject<EulerV2View.UserDataStructOutput>;
406
+
407
+ getUsersData(
408
+ _users: string[]
409
+ ): NonPayableTransactionObject<EulerV2View.UserDataStructOutput[]>;
410
+
411
+ getVaultCollaterals(
412
+ _vault: string
413
+ ): NonPayableTransactionObject<EulerV2View.CollateralInfoStructOutput[]>;
414
+
415
+ getVaultInfoFull(
416
+ _vault: string
417
+ ): NonPayableTransactionObject<EulerV2View.VaultInfoFullStructOutput>;
418
+
419
+ getVaultsInfosFull(
420
+ _vaults: string[]
421
+ ): NonPayableTransactionObject<EulerV2View.VaultInfoFullStructOutput[]>;
422
+
423
+ getWBtcPrice(
424
+ _btcPrice: number | string | BN
425
+ ): NonPayableTransactionObject<string>;
426
+
427
+ getWStEthPrice(
428
+ _stEthPrice: number | string | BN
429
+ ): NonPayableTransactionObject<string>;
430
+ };
431
+ events: {
432
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
433
+ };
434
+ }
@@ -29,6 +29,7 @@ export type { CompoundLoanInfo } from "./CompoundLoanInfo";
29
29
  export type { Comptroller } from "./Comptroller";
30
30
  export type { ETHPriceFeed } from "./ETHPriceFeed";
31
31
  export type { Erc20 } from "./Erc20";
32
+ export type { EulerV2View } from "./EulerV2View";
32
33
  export type { FeedRegistry } from "./FeedRegistry";
33
34
  export type { GHO } from "./GHO";
34
35
  export type { GhoDiscountRateStrategy } from "./GhoDiscountRateStrategy";
@@ -0,0 +1,171 @@
1
+ import {
2
+ MMPositionData, NetworkNumber,
3
+ } from './common';
4
+
5
+ export enum EulerV2Versions {
6
+ eUSDC2 = 'eUSDC-2',
7
+ eUSDC8 = 'eUSDC-8',
8
+ eWETH2 = 'eWETH-2',
9
+ }
10
+
11
+ export enum EulerV2VaultType {
12
+ Escrow = 'Escrow',
13
+ Governed = 'Governed',
14
+ Ungoverned = 'Ungoverned',
15
+ }
16
+
17
+ export interface EulerV2Market {
18
+ chainIds: NetworkNumber[],
19
+ label: string,
20
+ shortLabel: string,
21
+ asset: string,
22
+ value: EulerV2Versions,
23
+ secondLabel: string,
24
+ marketAddress: string,
25
+ // icon: Function,
26
+ }
27
+
28
+ export interface EulerV2PositionData extends MMPositionData {
29
+ ratio: string,
30
+ minRatio: string,
31
+ borrowedUsd: string,
32
+ borrowLimitUsd: string,
33
+ incentiveUsd: string,
34
+ totalInterestUsd: string,
35
+ isSubscribedToAutomation?: boolean,
36
+ automationResubscribeRequired?: boolean,
37
+ }
38
+
39
+ export interface EulerV2AssetData {
40
+ vaultAddress: string,
41
+ vaultSymbol: string
42
+ sortIndex?: number
43
+ liquidationRatio: string
44
+ cash: string
45
+ supplyCap: string
46
+ assetAddress: string
47
+ decimals: string
48
+ symbol: string
49
+ price: string
50
+ borrowCap: string
51
+ canBeBorrowed: boolean
52
+ canBeSupplied: boolean
53
+ incentiveSupplyApy?: string
54
+ incentiveSupplyToken?: string
55
+ totalBorrow: string
56
+ collateralFactor: string
57
+ borrowRate: string
58
+ supplyRate: string
59
+ utilization: string
60
+ }
61
+
62
+ export interface EulerV2UsedAsset {
63
+ isSupplied: boolean
64
+ isBorrowed: boolean
65
+ supplied: string
66
+ suppliedUsd: string
67
+ borrowed: string
68
+ borrowedUsd: string
69
+ symbol: string
70
+ collateral: boolean
71
+ vaultAddress: string
72
+ }
73
+
74
+ export interface EulerV2MarketInfoData {
75
+ name: string,
76
+ symbol: string,
77
+ decimals: string,
78
+ vaultAddress: string,
79
+ irm: string,
80
+ creator: string,
81
+ governorAdmin: string,
82
+ unitOfAccount: string,
83
+ unitOfAccountUsdPrice: string,
84
+ isInUSD: boolean,
85
+ oracle: string,
86
+ collaterals: string[],
87
+ isEscrow: boolean,
88
+ isGoverned: boolean,
89
+ vaultType: EulerV2VaultType,
90
+ }
91
+
92
+ export type EulerV2AssetsData = { [key: string]: EulerV2AssetData };
93
+ export type EulerV2UsedAssets = { [key: string]: EulerV2UsedAsset };
94
+
95
+
96
+ export interface EulerV2CollateralInfo {
97
+ lltv: string
98
+ borrowLtv: string
99
+ totalBorrows: string
100
+ cash: string
101
+ supplyCap: string
102
+ }
103
+
104
+ export interface EulerV2MarketData {
105
+ name: string
106
+ symbol: string
107
+ decimals: number
108
+
109
+ totalSupplyShares: string
110
+ cash: string
111
+ totalBorrows: string
112
+ totalAssets: string
113
+ supplyCap: string
114
+ borrowCap: string
115
+
116
+ collaterals: string[]
117
+
118
+ badDebtSocializationEnabled: boolean
119
+
120
+ unitOfAccount: string
121
+ oracle: string
122
+ assetPrice: string
123
+
124
+ interestRate: string
125
+ irm: string
126
+
127
+ creator: string
128
+
129
+ governorAdmin: string
130
+
131
+ interestFee: string
132
+ }
133
+
134
+ export interface EulerV2FullMarketData {
135
+ marketData: EulerV2MarketInfoData
136
+ assetsData: EulerV2AssetsData
137
+ }
138
+
139
+ export interface EulerV2AccountData {
140
+ owner: string
141
+ inLockDownMode: boolean
142
+ inPermitDisabledMode: boolean
143
+
144
+ borrowVault: string
145
+ borrowAmountInUnit: string
146
+
147
+ collaterals: string[] // all collaterals user has enabled on main evc contract (globally - not only collaterals for his borrow market)
148
+ collateralAmountsInUnit: string[] // only amounts used as collateral for his debt (empty array if no debt)
149
+ }
150
+
151
+ export interface EulerV2AggregatedPositionData {
152
+ suppliedUsd: string,
153
+ suppliedCollateralUsd: string,
154
+ borrowedUsd: string,
155
+ borrowLimitUsd: string,
156
+ liquidationLimitUsd: string,
157
+ leftToBorrowUsd: string,
158
+ ratio: string,
159
+ collRatio: string,
160
+ netApy: string,
161
+ incentiveUsd: string,
162
+ totalInterestUsd: string,
163
+ liqRatio: string,
164
+ liqPercent: string,
165
+ leveragedType: string,
166
+ leveragedAsset?: string,
167
+ leveragedLsdAssetRatio?: string,
168
+ liquidationPrice?: string,
169
+ minRatio: string,
170
+ minDebt: string,
171
+ }