@defisaver/positions-sdk 2.1.2 → 2.1.4

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 (100) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/helpers/aaveHelpers/index.js +8 -7
  5. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  6. package/cjs/staking/eligibility.d.ts +4 -2
  7. package/cjs/staking/eligibility.js +3 -4
  8. package/cjs/staking/staking.d.ts +2 -1
  9. package/cjs/staking/staking.js +5 -4
  10. package/cjs/types/common.d.ts +1 -1
  11. package/cjs/types/common.js +1 -1
  12. package/esm/helpers/aaveHelpers/index.js +8 -7
  13. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  14. package/esm/staking/eligibility.d.ts +4 -2
  15. package/esm/staking/eligibility.js +3 -4
  16. package/esm/staking/staking.d.ts +2 -1
  17. package/esm/staking/staking.js +5 -4
  18. package/esm/types/common.d.ts +1 -1
  19. package/esm/types/common.js +1 -1
  20. package/package.json +47 -47
  21. package/src/aaveV2/index.ts +240 -240
  22. package/src/aaveV3/index.ts +614 -614
  23. package/src/aaveV3/merit.ts +94 -94
  24. package/src/aaveV3/merkl.ts +74 -74
  25. package/src/claiming/aaveV3.ts +154 -154
  26. package/src/claiming/compV3.ts +22 -22
  27. package/src/claiming/index.ts +12 -12
  28. package/src/claiming/king.ts +66 -66
  29. package/src/claiming/morphoBlue.ts +118 -118
  30. package/src/claiming/spark.ts +225 -225
  31. package/src/compoundV2/index.ts +244 -244
  32. package/src/compoundV3/index.ts +274 -274
  33. package/src/config/contracts.ts +1228 -1228
  34. package/src/constants/index.ts +10 -10
  35. package/src/contracts.ts +120 -120
  36. package/src/curveUsd/index.ts +250 -250
  37. package/src/eulerV2/index.ts +324 -324
  38. package/src/exchange/index.ts +25 -25
  39. package/src/fluid/index.ts +1638 -1638
  40. package/src/helpers/aaveHelpers/index.ts +185 -183
  41. package/src/helpers/compoundHelpers/index.ts +283 -283
  42. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  43. package/src/helpers/eulerHelpers/index.ts +222 -222
  44. package/src/helpers/fluidHelpers/index.ts +326 -326
  45. package/src/helpers/index.ts +10 -10
  46. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  47. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  48. package/src/helpers/makerHelpers/index.ts +52 -52
  49. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  50. package/src/helpers/sparkHelpers/index.ts +155 -155
  51. package/src/index.ts +47 -47
  52. package/src/liquity/index.ts +159 -159
  53. package/src/liquityV2/index.ts +657 -657
  54. package/src/llamaLend/index.ts +305 -305
  55. package/src/maker/index.ts +223 -223
  56. package/src/markets/aave/index.ts +116 -116
  57. package/src/markets/aave/marketAssets.ts +49 -49
  58. package/src/markets/compound/index.ts +227 -227
  59. package/src/markets/compound/marketsAssets.ts +90 -90
  60. package/src/markets/curveUsd/index.ts +69 -69
  61. package/src/markets/euler/index.ts +26 -26
  62. package/src/markets/fluid/index.ts +2456 -2456
  63. package/src/markets/index.ts +25 -25
  64. package/src/markets/liquityV2/index.ts +102 -102
  65. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  66. package/src/markets/llamaLend/index.ts +235 -235
  67. package/src/markets/morphoBlue/index.ts +895 -895
  68. package/src/markets/spark/index.ts +29 -29
  69. package/src/markets/spark/marketAssets.ts +11 -11
  70. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  71. package/src/morphoBlue/index.ts +274 -274
  72. package/src/portfolio/index.ts +570 -570
  73. package/src/services/priceService.ts +159 -159
  74. package/src/services/utils.ts +99 -99
  75. package/src/services/viem.ts +32 -32
  76. package/src/setup.ts +8 -8
  77. package/src/spark/index.ts +445 -445
  78. package/src/staking/eligibility.ts +59 -60
  79. package/src/staking/index.ts +1 -1
  80. package/src/staking/staking.ts +170 -170
  81. package/src/types/aave.ts +189 -189
  82. package/src/types/claiming.ts +109 -109
  83. package/src/types/common.ts +105 -105
  84. package/src/types/compound.ts +136 -136
  85. package/src/types/curveUsd.ts +121 -121
  86. package/src/types/euler.ts +175 -175
  87. package/src/types/fluid.ts +448 -448
  88. package/src/types/index.ts +13 -13
  89. package/src/types/liquity.ts +30 -30
  90. package/src/types/liquityV2.ts +126 -126
  91. package/src/types/llamaLend.ts +159 -159
  92. package/src/types/maker.ts +63 -63
  93. package/src/types/merit.ts +1 -1
  94. package/src/types/merkl.ts +70 -70
  95. package/src/types/morphoBlue.ts +194 -194
  96. package/src/types/portfolio.ts +60 -60
  97. package/src/types/spark.ts +135 -135
  98. package/src/umbrella/index.ts +69 -69
  99. package/src/umbrella/umbrellaUtils.ts +29 -29
  100. package/CLAUDE.md +0 -32
@@ -1,14 +1,14 @@
1
- export * from './aave';
2
- export * from './compound';
3
- export * from './spark';
4
- export * from './curveUsd';
5
- export * from './liquity';
6
- export * from './liquityV2';
7
- export * from './maker';
8
- export * from './morphoBlue';
9
- export * from './llamaLend';
10
- export * from './euler';
11
- export * from './fluid';
12
- export * from './portfolio';
13
- export * from './merit';
1
+ export * from './aave';
2
+ export * from './compound';
3
+ export * from './spark';
4
+ export * from './curveUsd';
5
+ export * from './liquity';
6
+ export * from './liquityV2';
7
+ export * from './maker';
8
+ export * from './morphoBlue';
9
+ export * from './llamaLend';
10
+ export * from './euler';
11
+ export * from './fluid';
12
+ export * from './portfolio';
13
+ export * from './merit';
14
14
  export * from './merkl';
@@ -1,31 +1,31 @@
1
- export enum LIQUITY_TROVE_STATUS_ENUM {
2
- nonExistent,
3
- active,
4
- closedByOwner,
5
- closedByLiquidation,
6
- closedByRedemption,
7
- }
8
-
9
- export const LIQUITY_STATUS_MAPPING = {
10
- nonExistent: 'Non existent',
11
- active: 'Active',
12
- closedByOwner: 'Closed',
13
- closedByLiquidation: 'Liquidated',
14
- closedByRedemption: 'Redeemed',
15
- };
16
-
17
- export interface LiquityTroveInfo {
18
- troveStatus: string,
19
- collateral: string,
20
- debtInAsset: string,
21
- TCRatio: string,
22
- recoveryMode: boolean,
23
- claimableCollateral: string,
24
- borrowingRateWithDecay: string,
25
- assetPrice: string,
26
- totalETH: string,
27
- totalLUSD: string,
28
- minCollateralRatio: number,
29
- priceForRecovery: string,
30
- debtInFront: string,
1
+ export enum LIQUITY_TROVE_STATUS_ENUM {
2
+ nonExistent,
3
+ active,
4
+ closedByOwner,
5
+ closedByLiquidation,
6
+ closedByRedemption,
7
+ }
8
+
9
+ export const LIQUITY_STATUS_MAPPING = {
10
+ nonExistent: 'Non existent',
11
+ active: 'Active',
12
+ closedByOwner: 'Closed',
13
+ closedByLiquidation: 'Liquidated',
14
+ closedByRedemption: 'Redeemed',
15
+ };
16
+
17
+ export interface LiquityTroveInfo {
18
+ troveStatus: string,
19
+ collateral: string,
20
+ debtInAsset: string,
21
+ TCRatio: string,
22
+ recoveryMode: boolean,
23
+ claimableCollateral: string,
24
+ borrowingRateWithDecay: string,
25
+ assetPrice: string,
26
+ totalETH: string,
27
+ totalLUSD: string,
28
+ minCollateralRatio: number,
29
+ priceForRecovery: string,
30
+ debtInFront: string,
31
31
  }
@@ -1,127 +1,127 @@
1
- import { EthAddress, IncentiveData, NetworkNumber } from './common';
2
-
3
- export enum LiquityV2Versions {
4
- LiquityV2Eth = 'liquityv2eth',
5
- LiquityV2WstEth = 'liquityv2wsteth',
6
- LiquityV2REth = 'liquityv2reth',
7
- // Legacy
8
- LiquityV2EthLegacy = 'liquityv2ethlegacy',
9
- LiquityV2WstEthLegacy = 'liquityv2wstethlegacy',
10
- LiquityV2REthLegacy = 'liquityv2rethlegacy',
11
- }
12
-
13
- export enum LIQUITY_V2_TROVE_STATUS_ENUM {
14
- nonExistent,
15
- active,
16
- closedByOwner,
17
- closedByLiquidation,
18
- zombie,
19
- }
20
-
21
- export const LIQUITY_V2_STATUS_MAPPING = {
22
- nonExistent: 'Non existent',
23
- active: 'Active',
24
- closedByOwner: 'Closed',
25
- closedByLiquidation: 'Liquidated',
26
- zombie: 'Zombie',
27
- };
28
-
29
- export interface LiquityV2MarketInfo {
30
- chainIds: NetworkNumber[],
31
- label: string,
32
- shortLabel: string,
33
- url: string,
34
- value: LiquityV2Versions,
35
- debtToken: string,
36
- collateralToken: string,
37
- marketAddress: EthAddress,
38
- protocolName: string,
39
- isLegacy: boolean,
40
- }
41
-
42
- export interface LiquityV2AssetData {
43
- symbol: string,
44
- address: string,
45
- price: string,
46
- totalSupply: string,
47
- totalBorrow: string,
48
- canBeSupplied: boolean,
49
- canBeBorrowed: boolean,
50
- leftToBorrowGlobal: string,
51
- leftToWithdrawGlobal: string,
52
- supplyIncentives: IncentiveData[],
53
- borrowIncentives: IncentiveData[],
54
- }
55
-
56
- export type LiquityV2AssetsData = { [key: string]: LiquityV2AssetData };
57
-
58
- export interface InnerLiquityV2MarketData {
59
- minCollRatio: string,
60
- totalCollRatio: string,
61
- criticalCollRatio: string,
62
- batchCollRatio: string,
63
- isUnderCollateralized: boolean,
64
- hintHelperAddress: EthAddress,
65
- troveNFTAddress: EthAddress,
66
- borrowerOperationsAddress: EthAddress,
67
- troveManagerAddress: EthAddress,
68
- stabilityPoolAddress: EthAddress,
69
- collSurplusPoolAddress: EthAddress,
70
- activePoolAddress: EthAddress,
71
- }
72
-
73
- export interface LiquityV2MarketData {
74
- assetsData: LiquityV2AssetsData,
75
- marketData: InnerLiquityV2MarketData,
76
- }
77
-
78
- export interface LiquityV2UsedAsset {
79
- symbol: string,
80
- collateral?: boolean,
81
- supplied: string,
82
- suppliedUsd: string,
83
- borrowed: string,
84
- borrowedUsd: string,
85
- isSupplied: boolean,
86
- isBorrowed: boolean,
87
- }
88
-
89
- export type LiquityV2UsedAssets = { [key: string]: LiquityV2UsedAsset };
90
-
91
- export interface LiquityV2AggregatedTroveData {
92
- suppliedUsd: string,
93
- borrowedUsd: string,
94
- borrowLimitUsd: string,
95
- leftToBorrowUsd: string,
96
- netApy: string,
97
- incentiveUsd: string,
98
- totalInterestUsd: string,
99
- leveragedType: string,
100
- leveragedAsset: string,
101
- liquidationPrice: string,
102
- ratio: string,
103
- collRatio: string,
104
- }
105
-
106
- export interface LiquityV2TroveData {
107
- usedAssets: LiquityV2UsedAssets,
108
- troveId: string,
109
- ratio: string,
110
- collRatio: string,
111
- liqRatio: string,
112
- interestRate: string,
113
- leftToBorrowUsd: string,
114
- borrowLimitUsd: string,
115
- suppliedUsd: string,
116
- borrowedUsd: string,
117
- netApy: string,
118
- incentiveUsd: string,
119
- totalInterestUsd: string,
120
- interestBatchManager: EthAddress,
121
- troveStatus: string,
122
- leveragedType: string,
123
- leveragedAsset: string,
124
- liquidationPrice: string,
125
- debtInFront: string,
126
- lastInterestRateAdjTime: string,
1
+ import { EthAddress, IncentiveData, NetworkNumber } from './common';
2
+
3
+ export enum LiquityV2Versions {
4
+ LiquityV2Eth = 'liquityv2eth',
5
+ LiquityV2WstEth = 'liquityv2wsteth',
6
+ LiquityV2REth = 'liquityv2reth',
7
+ // Legacy
8
+ LiquityV2EthLegacy = 'liquityv2ethlegacy',
9
+ LiquityV2WstEthLegacy = 'liquityv2wstethlegacy',
10
+ LiquityV2REthLegacy = 'liquityv2rethlegacy',
11
+ }
12
+
13
+ export enum LIQUITY_V2_TROVE_STATUS_ENUM {
14
+ nonExistent,
15
+ active,
16
+ closedByOwner,
17
+ closedByLiquidation,
18
+ zombie,
19
+ }
20
+
21
+ export const LIQUITY_V2_STATUS_MAPPING = {
22
+ nonExistent: 'Non existent',
23
+ active: 'Active',
24
+ closedByOwner: 'Closed',
25
+ closedByLiquidation: 'Liquidated',
26
+ zombie: 'Zombie',
27
+ };
28
+
29
+ export interface LiquityV2MarketInfo {
30
+ chainIds: NetworkNumber[],
31
+ label: string,
32
+ shortLabel: string,
33
+ url: string,
34
+ value: LiquityV2Versions,
35
+ debtToken: string,
36
+ collateralToken: string,
37
+ marketAddress: EthAddress,
38
+ protocolName: string,
39
+ isLegacy: boolean,
40
+ }
41
+
42
+ export interface LiquityV2AssetData {
43
+ symbol: string,
44
+ address: string,
45
+ price: string,
46
+ totalSupply: string,
47
+ totalBorrow: string,
48
+ canBeSupplied: boolean,
49
+ canBeBorrowed: boolean,
50
+ leftToBorrowGlobal: string,
51
+ leftToWithdrawGlobal: string,
52
+ supplyIncentives: IncentiveData[],
53
+ borrowIncentives: IncentiveData[],
54
+ }
55
+
56
+ export type LiquityV2AssetsData = { [key: string]: LiquityV2AssetData };
57
+
58
+ export interface InnerLiquityV2MarketData {
59
+ minCollRatio: string,
60
+ totalCollRatio: string,
61
+ criticalCollRatio: string,
62
+ batchCollRatio: string,
63
+ isUnderCollateralized: boolean,
64
+ hintHelperAddress: EthAddress,
65
+ troveNFTAddress: EthAddress,
66
+ borrowerOperationsAddress: EthAddress,
67
+ troveManagerAddress: EthAddress,
68
+ stabilityPoolAddress: EthAddress,
69
+ collSurplusPoolAddress: EthAddress,
70
+ activePoolAddress: EthAddress,
71
+ }
72
+
73
+ export interface LiquityV2MarketData {
74
+ assetsData: LiquityV2AssetsData,
75
+ marketData: InnerLiquityV2MarketData,
76
+ }
77
+
78
+ export interface LiquityV2UsedAsset {
79
+ symbol: string,
80
+ collateral?: boolean,
81
+ supplied: string,
82
+ suppliedUsd: string,
83
+ borrowed: string,
84
+ borrowedUsd: string,
85
+ isSupplied: boolean,
86
+ isBorrowed: boolean,
87
+ }
88
+
89
+ export type LiquityV2UsedAssets = { [key: string]: LiquityV2UsedAsset };
90
+
91
+ export interface LiquityV2AggregatedTroveData {
92
+ suppliedUsd: string,
93
+ borrowedUsd: string,
94
+ borrowLimitUsd: string,
95
+ leftToBorrowUsd: string,
96
+ netApy: string,
97
+ incentiveUsd: string,
98
+ totalInterestUsd: string,
99
+ leveragedType: string,
100
+ leveragedAsset: string,
101
+ liquidationPrice: string,
102
+ ratio: string,
103
+ collRatio: string,
104
+ }
105
+
106
+ export interface LiquityV2TroveData {
107
+ usedAssets: LiquityV2UsedAssets,
108
+ troveId: string,
109
+ ratio: string,
110
+ collRatio: string,
111
+ liqRatio: string,
112
+ interestRate: string,
113
+ leftToBorrowUsd: string,
114
+ borrowLimitUsd: string,
115
+ suppliedUsd: string,
116
+ borrowedUsd: string,
117
+ netApy: string,
118
+ incentiveUsd: string,
119
+ totalInterestUsd: string,
120
+ interestBatchManager: EthAddress,
121
+ troveStatus: string,
122
+ leveragedType: string,
123
+ leveragedAsset: string,
124
+ liquidationPrice: string,
125
+ debtInFront: string,
126
+ lastInterestRateAdjTime: string,
127
127
  }
@@ -1,159 +1,159 @@
1
- import { EthAddress, IncentiveData, NetworkNumber } from './common';
2
- import { BandData, UserBandData } from './curveUsd';
3
-
4
- export enum LLVersionsEth {
5
- // long only
6
- LLWstethCrvusd = 'llamaLendwstETHcrvUSD',
7
- LLWstethCrvusd2 = 'llamaLendwstETHcrvUSD2',
8
- LLSusdeCrvusd = 'llamaLendsUSDecrvUSD',
9
- LLSusdeCrvusd2 = 'llamaLendsUSDecrvUSD2',
10
- LLWbtcCrvusd = 'llamaLendWBTCcrvUSD',
11
- // LLPufethCrvusd = 'llamaLendPufETHcrvUSD', // temp disabled
12
- LLUsdeCrvusd = 'llamaLendUSDecrvUSD',
13
- LLWethCrvusd2 = 'llamaLendWETHcrvUSD2',
14
- // long and short crv
15
- LLCrvCrvusd = 'llamaLendCRVcrvUSD',
16
- LLCrvusdCrv = 'llamaLendcrvUSDCRV',
17
- // long and short tbtc
18
- LLTbtcCrvusd = 'llamaLendTBTCcrvUSD',
19
- LLCrvusdTbtc = 'llamaLendcrvUSDTBTC',
20
- // long and short weth
21
- LLWethCrvusd = 'llamaLendWETHcrvUSD',
22
- LLCrvusdWeth = 'llamaLendcrvUSDWETH',
23
- }
24
-
25
- export enum LLVersionsArb {
26
- // long only
27
- LLArbCrvusd = 'llamaLendArbcrvUSD',
28
- LLArbCrvusd2 = 'llamaLendArbcrvUSD2',
29
- LLFxnCrvusd = 'llamaLendFXNcrvUSD',
30
- LLWbtcCrvusd = 'llamaLendWBTCcrvUSD',
31
- LLWbtcCrvusd2 = 'llamaLendWBTCcrvUSD2',
32
- LLCrvCrvusd = 'llamaLendCRVcrvUSD',
33
- LLWethCrvusd = 'llamaLendWETHcrvUSD',
34
- LLWethCrvusd2 = 'llamaLendWETHcrvUSD2',
35
- }
36
-
37
- export const LlamaLendVersions = {
38
- ...LLVersionsEth,
39
- ...LLVersionsArb,
40
- } as const;
41
-
42
- export type LlamaLendVersionsType = typeof LlamaLendVersions[keyof typeof LlamaLendVersions];
43
-
44
- export enum LlamaLendStatus {
45
- Nonexistant = 'Nonexistant',
46
- Safe = 'Safe',
47
- Risk = 'Risk',
48
- SoftLiquidating = 'SoftLiquidating',
49
- SoftLiquidated = 'SoftLiquidated',
50
- }
51
-
52
- export interface LlamaLendMarketData {
53
- chainIds: NetworkNumber[],
54
- label: string,
55
- shortLabel: string,
56
- value: LlamaLendVersionsType,
57
- collAsset: string,
58
- baseAsset: string,
59
- controllerAddress: EthAddress,
60
- vaultAddress: EthAddress,
61
- url: string,
62
- }
63
- export interface LlamaLendAssetData {
64
- symbol: string,
65
- address: string,
66
- price: string,
67
- supplyRate: string,
68
- borrowRate: string,
69
- totalSupply?: string,
70
- totalBorrow?: string,
71
- canBeSupplied?: boolean,
72
- canBeBorrowed?: boolean,
73
- shares?: string,
74
- supplyIncentives: IncentiveData[],
75
- borrowIncentives: IncentiveData[],
76
- }
77
-
78
- export type LlamaLendAssetsData = { [key: string]: LlamaLendAssetData };
79
-
80
- export interface LlamaLendGlobalMarketData {
81
- A:string,
82
- loanDiscount: string,
83
- activeBand: string,
84
- totalDebt: string,
85
- totalDebtSupplied:string,
86
- utilization:string,
87
- ammPrice: string,
88
- basePrice: string,
89
- oraclePrice: string,
90
- minted: string,
91
- redeemed: string,
92
- monetaryPolicyRate: string,
93
- ammRate: string,
94
- minBand: string,
95
- maxBand: string,
96
- borrowRate: string,
97
- lendRate: string,
98
- futureBorrowRate: string,
99
- leftToBorrow: string,
100
- bands: BandData[],
101
- assetsData: LlamaLendAssetsData,
102
- }
103
-
104
- export interface LlamaLendAggregatedPositionData {
105
- ratio: string,
106
- suppliedUsd: string,
107
- borrowedUsd: string,
108
- suppliedForYieldUsd: string,
109
- safetyRatio: string,
110
- borrowLimitUsd: string,
111
- minAllowedRatio: number,
112
- collFactor: string,
113
- leveragedType: string,
114
- leveragedAsset?: string,
115
- liquidationPrice?: string,
116
- netApy: string,
117
- incentiveUsd: string,
118
- totalInterestUsd: string,
119
- }
120
-
121
- export interface LlamaLendUsedAsset {
122
- isSupplied: boolean,
123
- supplied: string,
124
- suppliedUsd: string,
125
- borrowed: string,
126
- borrowedUsd: string,
127
- isBorrowed: boolean,
128
- symbol: string,
129
- collateral: boolean,
130
- price: string,
131
- interestRate?: string,
132
- suppliedForYield?: string,
133
- suppliedForYieldUsd?: string,
134
- shares?: string,
135
- }
136
-
137
- export interface LlamaLendUsedAssets {
138
- [key: string]: LlamaLendUsedAsset,
139
- }
140
-
141
- export interface LlamaLendUserData {
142
- debtAmount: string,
143
- health: string,
144
- healthPercent: string,
145
- priceHigh: string,
146
- priceLow: string,
147
- liquidationDiscount: string,
148
- numOfBands: string,
149
- usedAssets: LlamaLendUsedAssets,
150
- status: LlamaLendStatus,
151
- ratio: string,
152
- suppliedUsd: string,
153
- borrowedUsd: string,
154
- suppliedForYieldUsd: string,
155
- safetyRatio: string,
156
- userBands: UserBandData[],
157
- loanExists: boolean,
158
- borrowRate?: string,
159
- }
1
+ import { EthAddress, IncentiveData, NetworkNumber } from './common';
2
+ import { BandData, UserBandData } from './curveUsd';
3
+
4
+ export enum LLVersionsEth {
5
+ // long only
6
+ LLWstethCrvusd = 'llamaLendwstETHcrvUSD',
7
+ LLWstethCrvusd2 = 'llamaLendwstETHcrvUSD2',
8
+ LLSusdeCrvusd = 'llamaLendsUSDecrvUSD',
9
+ LLSusdeCrvusd2 = 'llamaLendsUSDecrvUSD2',
10
+ LLWbtcCrvusd = 'llamaLendWBTCcrvUSD',
11
+ // LLPufethCrvusd = 'llamaLendPufETHcrvUSD', // temp disabled
12
+ LLUsdeCrvusd = 'llamaLendUSDecrvUSD',
13
+ LLWethCrvusd2 = 'llamaLendWETHcrvUSD2',
14
+ // long and short crv
15
+ LLCrvCrvusd = 'llamaLendCRVcrvUSD',
16
+ LLCrvusdCrv = 'llamaLendcrvUSDCRV',
17
+ // long and short tbtc
18
+ LLTbtcCrvusd = 'llamaLendTBTCcrvUSD',
19
+ LLCrvusdTbtc = 'llamaLendcrvUSDTBTC',
20
+ // long and short weth
21
+ LLWethCrvusd = 'llamaLendWETHcrvUSD',
22
+ LLCrvusdWeth = 'llamaLendcrvUSDWETH',
23
+ }
24
+
25
+ export enum LLVersionsArb {
26
+ // long only
27
+ LLArbCrvusd = 'llamaLendArbcrvUSD',
28
+ LLArbCrvusd2 = 'llamaLendArbcrvUSD2',
29
+ LLFxnCrvusd = 'llamaLendFXNcrvUSD',
30
+ LLWbtcCrvusd = 'llamaLendWBTCcrvUSD',
31
+ LLWbtcCrvusd2 = 'llamaLendWBTCcrvUSD2',
32
+ LLCrvCrvusd = 'llamaLendCRVcrvUSD',
33
+ LLWethCrvusd = 'llamaLendWETHcrvUSD',
34
+ LLWethCrvusd2 = 'llamaLendWETHcrvUSD2',
35
+ }
36
+
37
+ export const LlamaLendVersions = {
38
+ ...LLVersionsEth,
39
+ ...LLVersionsArb,
40
+ } as const;
41
+
42
+ export type LlamaLendVersionsType = typeof LlamaLendVersions[keyof typeof LlamaLendVersions];
43
+
44
+ export enum LlamaLendStatus {
45
+ Nonexistant = 'Nonexistant',
46
+ Safe = 'Safe',
47
+ Risk = 'Risk',
48
+ SoftLiquidating = 'SoftLiquidating',
49
+ SoftLiquidated = 'SoftLiquidated',
50
+ }
51
+
52
+ export interface LlamaLendMarketData {
53
+ chainIds: NetworkNumber[],
54
+ label: string,
55
+ shortLabel: string,
56
+ value: LlamaLendVersionsType,
57
+ collAsset: string,
58
+ baseAsset: string,
59
+ controllerAddress: EthAddress,
60
+ vaultAddress: EthAddress,
61
+ url: string,
62
+ }
63
+ export interface LlamaLendAssetData {
64
+ symbol: string,
65
+ address: string,
66
+ price: string,
67
+ supplyRate: string,
68
+ borrowRate: string,
69
+ totalSupply?: string,
70
+ totalBorrow?: string,
71
+ canBeSupplied?: boolean,
72
+ canBeBorrowed?: boolean,
73
+ shares?: string,
74
+ supplyIncentives: IncentiveData[],
75
+ borrowIncentives: IncentiveData[],
76
+ }
77
+
78
+ export type LlamaLendAssetsData = { [key: string]: LlamaLendAssetData };
79
+
80
+ export interface LlamaLendGlobalMarketData {
81
+ A:string,
82
+ loanDiscount: string,
83
+ activeBand: string,
84
+ totalDebt: string,
85
+ totalDebtSupplied:string,
86
+ utilization:string,
87
+ ammPrice: string,
88
+ basePrice: string,
89
+ oraclePrice: string,
90
+ minted: string,
91
+ redeemed: string,
92
+ monetaryPolicyRate: string,
93
+ ammRate: string,
94
+ minBand: string,
95
+ maxBand: string,
96
+ borrowRate: string,
97
+ lendRate: string,
98
+ futureBorrowRate: string,
99
+ leftToBorrow: string,
100
+ bands: BandData[],
101
+ assetsData: LlamaLendAssetsData,
102
+ }
103
+
104
+ export interface LlamaLendAggregatedPositionData {
105
+ ratio: string,
106
+ suppliedUsd: string,
107
+ borrowedUsd: string,
108
+ suppliedForYieldUsd: string,
109
+ safetyRatio: string,
110
+ borrowLimitUsd: string,
111
+ minAllowedRatio: number,
112
+ collFactor: string,
113
+ leveragedType: string,
114
+ leveragedAsset?: string,
115
+ liquidationPrice?: string,
116
+ netApy: string,
117
+ incentiveUsd: string,
118
+ totalInterestUsd: string,
119
+ }
120
+
121
+ export interface LlamaLendUsedAsset {
122
+ isSupplied: boolean,
123
+ supplied: string,
124
+ suppliedUsd: string,
125
+ borrowed: string,
126
+ borrowedUsd: string,
127
+ isBorrowed: boolean,
128
+ symbol: string,
129
+ collateral: boolean,
130
+ price: string,
131
+ interestRate?: string,
132
+ suppliedForYield?: string,
133
+ suppliedForYieldUsd?: string,
134
+ shares?: string,
135
+ }
136
+
137
+ export interface LlamaLendUsedAssets {
138
+ [key: string]: LlamaLendUsedAsset,
139
+ }
140
+
141
+ export interface LlamaLendUserData {
142
+ debtAmount: string,
143
+ health: string,
144
+ healthPercent: string,
145
+ priceHigh: string,
146
+ priceLow: string,
147
+ liquidationDiscount: string,
148
+ numOfBands: string,
149
+ usedAssets: LlamaLendUsedAssets,
150
+ status: LlamaLendStatus,
151
+ ratio: string,
152
+ suppliedUsd: string,
153
+ borrowedUsd: string,
154
+ suppliedForYieldUsd: string,
155
+ safetyRatio: string,
156
+ userBands: UserBandData[],
157
+ loanExists: boolean,
158
+ borrowRate?: string,
159
+ }