@defisaver/positions-sdk 2.1.160-morpho-stakehouse-dev → 2.1.160-shifter-v2-dev
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/cjs/aaveV2/index.js +2 -0
- package/cjs/curveUsd/index.d.ts +5 -2
- package/cjs/curveUsd/index.js +30 -15
- package/cjs/fluid/index.d.ts +5 -0
- package/cjs/fluid/index.js +36 -1
- package/cjs/helpers/aaveHelpers/index.js +3 -0
- package/cjs/helpers/aaveV4Helpers/index.js +1 -0
- package/cjs/helpers/compoundHelpers/index.js +2 -0
- package/cjs/helpers/curveUsdHelpers/index.d.ts +3 -1
- package/cjs/helpers/curveUsdHelpers/index.js +16 -2
- package/cjs/helpers/fluidHelpers/index.js +1 -0
- package/cjs/helpers/liquityV2Helpers/index.js +1 -0
- package/cjs/helpers/llamaLendHelpers/index.js +2 -0
- package/cjs/helpers/makerHelpers/index.d.ts +1 -1
- package/cjs/helpers/makerHelpers/index.js +2 -2
- package/cjs/helpers/morphoBlueHelpers/index.js +2 -0
- package/cjs/helpers/morphoMidnightHelpers/index.js +2 -0
- package/cjs/helpers/sparkHelpers/index.js +1 -0
- package/cjs/liquity/index.js +16 -2
- package/cjs/maker/index.d.ts +7 -2
- package/cjs/maker/index.js +45 -12
- package/cjs/markets/index.d.ts +1 -0
- package/cjs/markets/index.js +3 -1
- package/cjs/markets/maker/index.d.ts +1 -0
- package/cjs/markets/maker/index.js +13 -0
- package/cjs/portfolio/index.d.ts +5 -1
- package/cjs/portfolio/index.js +274 -2
- package/cjs/savings/index.js +2 -5
- package/cjs/savings/morphoVaults/index.d.ts +1 -1
- package/cjs/savings/morphoVaults/index.js +18 -56
- package/cjs/savings/morphoVaults/options.d.ts +0 -2
- package/cjs/savings/morphoVaults/options.js +1 -61
- package/cjs/staking/staking.d.ts +20 -0
- package/cjs/staking/staking.js +19 -1
- package/cjs/types/aave.d.ts +2 -0
- package/cjs/types/aaveV4.d.ts +1 -0
- package/cjs/types/compound.d.ts +2 -0
- package/cjs/types/curveUsd.d.ts +6 -0
- package/cjs/types/fluid.d.ts +1 -0
- package/cjs/types/liquity.d.ts +4 -0
- package/cjs/types/liquityV2.d.ts +2 -0
- package/cjs/types/maker.d.ts +4 -0
- package/cjs/types/morphoBlue.d.ts +2 -0
- package/cjs/types/morphoMidnight.d.ts +1 -0
- package/cjs/types/portfolio.d.ts +26 -10
- package/cjs/types/savings/morphoVaults.d.ts +2 -10
- package/cjs/types/savings/morphoVaults.js +1 -9
- package/cjs/types/spark.d.ts +2 -0
- package/esm/aaveV2/index.js +2 -0
- package/esm/curveUsd/index.d.ts +5 -2
- package/esm/curveUsd/index.js +30 -15
- package/esm/fluid/index.d.ts +5 -0
- package/esm/fluid/index.js +33 -0
- package/esm/helpers/aaveHelpers/index.js +3 -0
- package/esm/helpers/aaveV4Helpers/index.js +1 -0
- package/esm/helpers/compoundHelpers/index.js +2 -0
- package/esm/helpers/curveUsdHelpers/index.d.ts +3 -1
- package/esm/helpers/curveUsdHelpers/index.js +16 -2
- package/esm/helpers/fluidHelpers/index.js +1 -0
- package/esm/helpers/liquityV2Helpers/index.js +1 -0
- package/esm/helpers/llamaLendHelpers/index.js +2 -0
- package/esm/helpers/makerHelpers/index.d.ts +1 -1
- package/esm/helpers/makerHelpers/index.js +2 -2
- package/esm/helpers/morphoBlueHelpers/index.js +2 -0
- package/esm/helpers/morphoMidnightHelpers/index.js +2 -0
- package/esm/helpers/sparkHelpers/index.js +1 -0
- package/esm/liquity/index.js +16 -2
- package/esm/maker/index.d.ts +7 -2
- package/esm/maker/index.js +44 -13
- package/esm/markets/index.d.ts +1 -0
- package/esm/markets/index.js +1 -0
- package/esm/markets/maker/index.d.ts +1 -0
- package/esm/markets/maker/index.js +10 -0
- package/esm/portfolio/index.d.ts +5 -1
- package/esm/portfolio/index.js +276 -5
- package/esm/savings/index.js +2 -5
- package/esm/savings/morphoVaults/index.d.ts +1 -1
- package/esm/savings/morphoVaults/index.js +19 -57
- package/esm/savings/morphoVaults/options.d.ts +0 -2
- package/esm/savings/morphoVaults/options.js +1 -61
- package/esm/staking/staking.d.ts +20 -0
- package/esm/staking/staking.js +17 -0
- package/esm/types/aave.d.ts +2 -0
- package/esm/types/aaveV4.d.ts +1 -0
- package/esm/types/compound.d.ts +2 -0
- package/esm/types/curveUsd.d.ts +6 -0
- package/esm/types/fluid.d.ts +1 -0
- package/esm/types/liquity.d.ts +4 -0
- package/esm/types/liquityV2.d.ts +2 -0
- package/esm/types/maker.d.ts +4 -0
- package/esm/types/morphoBlue.d.ts +2 -0
- package/esm/types/morphoMidnight.d.ts +1 -0
- package/esm/types/portfolio.d.ts +26 -10
- package/esm/types/savings/morphoVaults.d.ts +2 -10
- package/esm/types/savings/morphoVaults.js +0 -8
- package/esm/types/spark.d.ts +2 -0
- package/package.json +1 -1
- package/src/aaveV2/index.ts +2 -0
- package/src/curveUsd/index.ts +33 -16
- package/src/fluid/index.ts +40 -0
- package/src/helpers/aaveHelpers/index.ts +3 -0
- package/src/helpers/aaveV4Helpers/index.ts +1 -0
- package/src/helpers/compoundHelpers/index.ts +2 -0
- package/src/helpers/curveUsdHelpers/index.ts +23 -2
- package/src/helpers/fluidHelpers/index.ts +1 -0
- package/src/helpers/liquityV2Helpers/index.ts +1 -0
- package/src/helpers/llamaLendHelpers/index.ts +2 -0
- package/src/helpers/makerHelpers/index.ts +2 -1
- package/src/helpers/morphoBlueHelpers/index.ts +2 -0
- package/src/helpers/morphoMidnightHelpers/index.ts +2 -0
- package/src/helpers/sparkHelpers/index.ts +1 -0
- package/src/liquity/index.ts +17 -2
- package/src/maker/index.ts +77 -29
- package/src/markets/index.ts +2 -1
- package/src/markets/maker/index.ts +10 -0
- package/src/portfolio/index.ts +259 -4
- package/src/savings/index.ts +2 -5
- package/src/savings/morphoVaults/index.ts +21 -73
- package/src/savings/morphoVaults/options.ts +1 -67
- package/src/staking/staking.ts +28 -0
- package/src/types/aave.ts +3 -0
- package/src/types/aaveV4.ts +1 -0
- package/src/types/compound.ts +2 -0
- package/src/types/curveUsd.ts +7 -0
- package/src/types/fluid.ts +1 -0
- package/src/types/liquity.ts +6 -0
- package/src/types/liquityV2.ts +2 -0
- package/src/types/maker.ts +6 -0
- package/src/types/morphoBlue.ts +2 -0
- package/src/types/morphoMidnight.ts +1 -0
- package/src/types/portfolio.ts +31 -12
- package/src/types/savings/morphoVaults.ts +1 -11
- package/src/types/spark.ts +2 -0
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMorphoVault = exports.MORPHO_VAULTS = exports.
|
|
3
|
+
exports.getMorphoVault = exports.MORPHO_VAULTS = exports.MORPHO_VAULT_SMOKEHOUSE_DAI = exports.MORPHO_VAULT_SMOKEHOUSE_USDC = exports.MORPHO_VAULT_SMOKEHOUSE_USDT = exports.MORPHO_VAULT_STEAKHOUSE_PYUSD = exports.MORPHO_VAULT_STEAKHOUSE_ETH = exports.MORPHO_VAULT_STEAKHOUSE_USDC = exports.MORPHO_VAULT_STEAKHOUSE_USDT = exports.MORPHO_VAULT_GAUNTLET_RESOLV_USDC = exports.MORPHO_VAULT_GAUNTLET_USDT_PRIME = exports.MORPHO_VAULT_GAUNTLET_USDA_CORE = exports.MORPHO_VAULT_FLAGSHIP_USDT = exports.MORPHO_VAULT_BOOSTED_USDC = exports.MORPHO_VAULT_GAUNTLET_WETH_PRIME = exports.MORPHO_VAULT_GAUNTLET_WETH_CORE = exports.MORPHO_VAULT_RE7_WETH = exports.MORPHO_VAULT_GAUNTLET_USDC_PRIME = exports.MORPHO_VAULT_GAUNTLET_USDC_CORE = exports.MORPHO_VAULT_FLAGSHIP_ETH = void 0;
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
exports.MORPHO_VAULT_FLAGSHIP_ETH = {
|
|
6
6
|
type: types_1.MorphoVaultType.MorphoVaultFlagshipEth,
|
|
7
7
|
name: 'Flagship ETH',
|
|
8
8
|
address: '0x38989BBA00BDF8181F4082995b3DEAe96163aC5D',
|
|
9
9
|
asset: 'WETH',
|
|
10
|
-
network: types_1.NetworkNumber.Eth,
|
|
11
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
12
10
|
deploymentBlock: 18927491,
|
|
13
11
|
isLegacy: true,
|
|
14
12
|
};
|
|
@@ -17,8 +15,6 @@ exports.MORPHO_VAULT_GAUNTLET_USDC_CORE = {
|
|
|
17
15
|
name: 'Gauntlet USDC Core',
|
|
18
16
|
address: '0x8eB67A509616cd6A7c1B3c8C21D48FF57df3d458',
|
|
19
17
|
asset: 'USDC',
|
|
20
|
-
network: types_1.NetworkNumber.Eth,
|
|
21
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
22
18
|
deploymentBlock: 19777569,
|
|
23
19
|
isLegacy: true,
|
|
24
20
|
};
|
|
@@ -27,8 +23,6 @@ exports.MORPHO_VAULT_GAUNTLET_USDC_PRIME = {
|
|
|
27
23
|
name: 'Gauntlet USDC Prime',
|
|
28
24
|
address: '0xdd0f28e19C1780eb6396170735D45153D261490d',
|
|
29
25
|
asset: 'USDC',
|
|
30
|
-
network: types_1.NetworkNumber.Eth,
|
|
31
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
32
26
|
deploymentBlock: 19777569,
|
|
33
27
|
isLegacy: true,
|
|
34
28
|
};
|
|
@@ -37,8 +31,6 @@ exports.MORPHO_VAULT_RE7_WETH = {
|
|
|
37
31
|
name: 'RE7 WETH',
|
|
38
32
|
address: '0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0',
|
|
39
33
|
asset: 'WETH',
|
|
40
|
-
network: types_1.NetworkNumber.Eth,
|
|
41
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
42
34
|
deploymentBlock: 19121118,
|
|
43
35
|
isLegacy: true,
|
|
44
36
|
};
|
|
@@ -47,8 +39,6 @@ exports.MORPHO_VAULT_GAUNTLET_WETH_CORE = {
|
|
|
47
39
|
name: 'Gauntlet WETH Core',
|
|
48
40
|
address: '0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658',
|
|
49
41
|
asset: 'WETH',
|
|
50
|
-
network: types_1.NetworkNumber.Eth,
|
|
51
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
52
42
|
deploymentBlock: 19541126,
|
|
53
43
|
isLegacy: true,
|
|
54
44
|
};
|
|
@@ -57,8 +47,6 @@ exports.MORPHO_VAULT_GAUNTLET_WETH_PRIME = {
|
|
|
57
47
|
name: 'Gauntlet WETH Prime',
|
|
58
48
|
address: '0x2371e134e3455e0593363cBF89d3b6cf53740618',
|
|
59
49
|
asset: 'WETH',
|
|
60
|
-
network: types_1.NetworkNumber.Eth,
|
|
61
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
62
50
|
deploymentBlock: 19372149,
|
|
63
51
|
isLegacy: true,
|
|
64
52
|
};
|
|
@@ -67,8 +55,6 @@ exports.MORPHO_VAULT_BOOSTED_USDC = {
|
|
|
67
55
|
name: 'Boosted USDC',
|
|
68
56
|
address: '0xd63070114470f685b75B74D60EEc7c1113d33a3D',
|
|
69
57
|
asset: 'USDC',
|
|
70
|
-
network: types_1.NetworkNumber.Eth,
|
|
71
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
72
58
|
deploymentBlock: 20377233,
|
|
73
59
|
isLegacy: true,
|
|
74
60
|
};
|
|
@@ -77,8 +63,6 @@ exports.MORPHO_VAULT_FLAGSHIP_USDT = {
|
|
|
77
63
|
name: 'Flagship USDT',
|
|
78
64
|
address: '0x2C25f6C25770fFEC5959D34B94Bf898865e5D6b1',
|
|
79
65
|
asset: 'USDT',
|
|
80
|
-
network: types_1.NetworkNumber.Eth,
|
|
81
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
82
66
|
deploymentBlock: 19127039,
|
|
83
67
|
isLegacy: true,
|
|
84
68
|
};
|
|
@@ -87,8 +71,6 @@ exports.MORPHO_VAULT_GAUNTLET_USDA_CORE = {
|
|
|
87
71
|
name: 'Gauntlet USDA Core',
|
|
88
72
|
address: '0x125D41A6e5dbf455cD9Df8F80BCC6fd172D52Cc6',
|
|
89
73
|
asset: 'USDA',
|
|
90
|
-
network: types_1.NetworkNumber.Eth,
|
|
91
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
92
74
|
deploymentBlock: 19633608,
|
|
93
75
|
isLegacy: true,
|
|
94
76
|
};
|
|
@@ -97,8 +79,6 @@ exports.MORPHO_VAULT_GAUNTLET_USDT_PRIME = {
|
|
|
97
79
|
name: 'Gauntlet USDT Prime',
|
|
98
80
|
address: '0x8CB3649114051cA5119141a34C200D65dc0Faa73',
|
|
99
81
|
asset: 'USDT',
|
|
100
|
-
network: types_1.NetworkNumber.Eth,
|
|
101
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
102
82
|
deploymentBlock: 19486541,
|
|
103
83
|
isLegacy: true,
|
|
104
84
|
};
|
|
@@ -107,8 +87,6 @@ exports.MORPHO_VAULT_GAUNTLET_RESOLV_USDC = {
|
|
|
107
87
|
name: 'Gauntlet Resolv USDC',
|
|
108
88
|
address: '0x132E6C9C33A62D7727cd359b1f51e5B566E485Eb',
|
|
109
89
|
asset: 'USDC',
|
|
110
|
-
network: types_1.NetworkNumber.Eth,
|
|
111
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
112
90
|
deploymentBlock: 21487882,
|
|
113
91
|
isLegacy: true,
|
|
114
92
|
};
|
|
@@ -118,8 +96,6 @@ exports.MORPHO_VAULT_STEAKHOUSE_USDT = {
|
|
|
118
96
|
name: 'Steakhouse USDT',
|
|
119
97
|
address: '0xbEef047a543E45807105E51A8BBEFCc5950fcfBa',
|
|
120
98
|
asset: 'USDT',
|
|
121
|
-
network: types_1.NetworkNumber.Eth,
|
|
122
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
123
99
|
deploymentBlock: 19043398,
|
|
124
100
|
isLegacy: false,
|
|
125
101
|
};
|
|
@@ -128,8 +104,6 @@ exports.MORPHO_VAULT_STEAKHOUSE_USDC = {
|
|
|
128
104
|
name: 'Steakhouse USDC',
|
|
129
105
|
address: '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB',
|
|
130
106
|
asset: 'USDC',
|
|
131
|
-
network: types_1.NetworkNumber.Eth,
|
|
132
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
133
107
|
deploymentBlock: 18928285,
|
|
134
108
|
isLegacy: false,
|
|
135
109
|
};
|
|
@@ -138,8 +112,6 @@ exports.MORPHO_VAULT_STEAKHOUSE_ETH = {
|
|
|
138
112
|
name: 'Steakhouse WETH',
|
|
139
113
|
address: '0xBEEf050ecd6a16c4e7bfFbB52Ebba7846C4b8cD4',
|
|
140
114
|
asset: 'WETH',
|
|
141
|
-
network: types_1.NetworkNumber.Eth,
|
|
142
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
143
115
|
deploymentBlock: 19380443,
|
|
144
116
|
isLegacy: false,
|
|
145
117
|
};
|
|
@@ -148,8 +120,6 @@ exports.MORPHO_VAULT_STEAKHOUSE_PYUSD = {
|
|
|
148
120
|
name: 'Steakhouse PYUSD',
|
|
149
121
|
address: '0xbEEF02e5E13584ab96848af90261f0C8Ee04722a',
|
|
150
122
|
asset: 'PYUSD',
|
|
151
|
-
network: types_1.NetworkNumber.Eth,
|
|
152
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
153
123
|
deploymentBlock: 19043398,
|
|
154
124
|
isLegacy: false,
|
|
155
125
|
};
|
|
@@ -159,8 +129,6 @@ exports.MORPHO_VAULT_SMOKEHOUSE_USDT = {
|
|
|
159
129
|
name: 'Smokehouse USDT',
|
|
160
130
|
address: '0xA0804346780b4c2e3bE118ac957D1DB82F9d7484',
|
|
161
131
|
asset: 'USDT',
|
|
162
|
-
network: types_1.NetworkNumber.Eth,
|
|
163
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
164
132
|
deploymentBlock: 21522238,
|
|
165
133
|
isLegacy: false,
|
|
166
134
|
};
|
|
@@ -169,8 +137,6 @@ exports.MORPHO_VAULT_SMOKEHOUSE_USDC = {
|
|
|
169
137
|
name: 'Smokehouse USDC',
|
|
170
138
|
address: '0xBEeFFF209270748ddd194831b3fa287a5386f5bC',
|
|
171
139
|
asset: 'USDC',
|
|
172
|
-
network: types_1.NetworkNumber.Eth,
|
|
173
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
174
140
|
deploymentBlock: 21337719,
|
|
175
141
|
isLegacy: false,
|
|
176
142
|
};
|
|
@@ -179,32 +145,9 @@ exports.MORPHO_VAULT_SMOKEHOUSE_DAI = {
|
|
|
179
145
|
name: 'Smokehouse DAI',
|
|
180
146
|
address: '0xbeeFfF68CC520D68f82641EFF84330C631E2490E',
|
|
181
147
|
asset: 'DAI',
|
|
182
|
-
network: types_1.NetworkNumber.Eth,
|
|
183
|
-
version: types_1.MorphoVaultVersion.V1,
|
|
184
148
|
deploymentBlock: 21343808,
|
|
185
149
|
isLegacy: false,
|
|
186
150
|
};
|
|
187
|
-
// Vault V2
|
|
188
|
-
exports.MORPHO_VAULT_GAUNTLET_USDG_PREMIUM = {
|
|
189
|
-
type: types_1.MorphoVaultType.MorphoVaultGauntletUSDGPremium,
|
|
190
|
-
name: 'Gauntlet USDG Premium',
|
|
191
|
-
address: '0x390c1bb01F3F627144a40617e287d4cE3D5aBCfa',
|
|
192
|
-
asset: 'USDG',
|
|
193
|
-
network: types_1.NetworkNumber.Arb,
|
|
194
|
-
version: types_1.MorphoVaultVersion.V2,
|
|
195
|
-
deploymentBlock: 510799903,
|
|
196
|
-
isLegacy: false,
|
|
197
|
-
};
|
|
198
|
-
exports.MORPHO_VAULT_STEAKHOUSE_USDG_PRO = {
|
|
199
|
-
type: types_1.MorphoVaultType.MorphoVaultSteakhouseUSDGPro,
|
|
200
|
-
name: 'Steakhouse USDG Pro',
|
|
201
|
-
address: '0xbeeFf72B77e7584a450E887125F25E8D8819016a',
|
|
202
|
-
asset: 'USDG',
|
|
203
|
-
network: types_1.NetworkNumber.Arb,
|
|
204
|
-
version: types_1.MorphoVaultVersion.V2,
|
|
205
|
-
deploymentBlock: 512247107,
|
|
206
|
-
isLegacy: false,
|
|
207
|
-
};
|
|
208
151
|
exports.MORPHO_VAULTS = {
|
|
209
152
|
[types_1.MorphoVaultType.MorphoVaultFlagshipEth]: exports.MORPHO_VAULT_FLAGSHIP_ETH,
|
|
210
153
|
[types_1.MorphoVaultType.MorphoVaultGauntletUSDCCore]: exports.MORPHO_VAULT_GAUNTLET_USDC_CORE,
|
|
@@ -226,9 +169,6 @@ exports.MORPHO_VAULTS = {
|
|
|
226
169
|
[types_1.MorphoVaultType.MorphoVaultSmokehouseUSDT]: exports.MORPHO_VAULT_SMOKEHOUSE_USDT,
|
|
227
170
|
[types_1.MorphoVaultType.MorphoVaultSmokehouseUSDC]: exports.MORPHO_VAULT_SMOKEHOUSE_USDC,
|
|
228
171
|
[types_1.MorphoVaultType.MorphoVaultSmokehouseDAI]: exports.MORPHO_VAULT_SMOKEHOUSE_DAI,
|
|
229
|
-
// Vault V2
|
|
230
|
-
[types_1.MorphoVaultType.MorphoVaultGauntletUSDGPremium]: exports.MORPHO_VAULT_GAUNTLET_USDG_PREMIUM,
|
|
231
|
-
[types_1.MorphoVaultType.MorphoVaultSteakhouseUSDGPro]: exports.MORPHO_VAULT_STEAKHOUSE_USDG_PRO,
|
|
232
172
|
};
|
|
233
173
|
const getMorphoVault = (type) => exports.MORPHO_VAULTS[type];
|
|
234
174
|
exports.getMorphoVault = getMorphoVault;
|
package/cjs/staking/staking.d.ts
CHANGED
|
@@ -3,6 +3,26 @@ import { MMAssetsData, MMUsedAssets } from '../types/common';
|
|
|
3
3
|
export declare const STAKING_ASSETS: string[];
|
|
4
4
|
export declare const getStakingApy: ((asset: string, network?: number) => Promise<string>) & memoize.Memoized<(asset: string, network?: number) => Promise<string>>;
|
|
5
5
|
export declare const calculateInterestEarned: (principal: string, interest: string, type: string, apy?: boolean) => number;
|
|
6
|
+
/**
|
|
7
|
+
* Net APY for positions that have a single known borrow rate (and optionally a single supply rate)
|
|
8
|
+
* instead of per-asset `assetsData` to feed into `calculateNetApy` (Maker, crvUSD, Liquity v1).
|
|
9
|
+
* All rates are yearly percentages that are already compounded. `incentives` are extra yields
|
|
10
|
+
* (e.g. the native staking yield of the collateral) applied to their own USD base and summed into `incentiveUsd`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const calculateNetApyFromRates: ({ suppliedUsd, borrowedUsd, supplyRate, borrowRate, incentives, }: {
|
|
13
|
+
suppliedUsd: string;
|
|
14
|
+
borrowedUsd: string;
|
|
15
|
+
supplyRate?: string;
|
|
16
|
+
borrowRate?: string;
|
|
17
|
+
incentives?: {
|
|
18
|
+
apy: string;
|
|
19
|
+
amountUsd: string;
|
|
20
|
+
}[];
|
|
21
|
+
}) => {
|
|
22
|
+
netApy: string;
|
|
23
|
+
totalInterestUsd: string;
|
|
24
|
+
incentiveUsd: string;
|
|
25
|
+
};
|
|
6
26
|
export declare const calculateNetApy: ({ usedAssets, assetsData, optionalData, }: {
|
|
7
27
|
usedAssets: MMUsedAssets;
|
|
8
28
|
assetsData: MMAssetsData;
|
package/cjs/staking/staking.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.calculateNetApy = exports.calculateInterestEarned = exports.getStakingApy = exports.STAKING_ASSETS = void 0;
|
|
15
|
+
exports.calculateNetApy = exports.calculateNetApyFromRates = exports.calculateInterestEarned = exports.getStakingApy = exports.STAKING_ASSETS = void 0;
|
|
16
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
17
|
const memoizee_1 = __importDefault(require("memoizee"));
|
|
18
18
|
const common_1 = require("../types/common");
|
|
@@ -189,6 +189,24 @@ const calculateInterestEarned = (principal, interest, type, apy = false) => {
|
|
|
189
189
|
return (+principal * (Math.pow(((1 + (+interest / 100) / constants_1.BLOCKS_IN_A_YEAR)), (constants_1.BLOCKS_IN_A_YEAR * interval)))) - +principal; // eslint-disable-line
|
|
190
190
|
};
|
|
191
191
|
exports.calculateInterestEarned = calculateInterestEarned;
|
|
192
|
+
/**
|
|
193
|
+
* Net APY for positions that have a single known borrow rate (and optionally a single supply rate)
|
|
194
|
+
* instead of per-asset `assetsData` to feed into `calculateNetApy` (Maker, crvUSD, Liquity v1).
|
|
195
|
+
* All rates are yearly percentages that are already compounded. `incentives` are extra yields
|
|
196
|
+
* (e.g. the native staking yield of the collateral) applied to their own USD base and summed into `incentiveUsd`.
|
|
197
|
+
*/
|
|
198
|
+
const calculateNetApyFromRates = ({ suppliedUsd, borrowedUsd, supplyRate = '0', borrowRate = '0', incentives = [], }) => {
|
|
199
|
+
const supplyInterest = new decimal_js_1.default((0, exports.calculateInterestEarned)(suppliedUsd, supplyRate, 'year', true));
|
|
200
|
+
const borrowInterest = new decimal_js_1.default((0, exports.calculateInterestEarned)(borrowedUsd, borrowRate, 'year', true));
|
|
201
|
+
const incentiveUsd = incentives
|
|
202
|
+
.reduce((acc, { apy, amountUsd }) => acc.add((0, exports.calculateInterestEarned)(amountUsd, apy, 'year', true)), new decimal_js_1.default(0))
|
|
203
|
+
.toString();
|
|
204
|
+
const totalInterestUsd = supplyInterest.sub(borrowInterest).add(incentiveUsd).toString();
|
|
205
|
+
const balance = new decimal_js_1.default(suppliedUsd).sub(borrowedUsd);
|
|
206
|
+
const netApy = balance.isZero() ? '0' : new decimal_js_1.default(totalInterestUsd).div(balance).times(100).toString();
|
|
207
|
+
return { netApy, totalInterestUsd, incentiveUsd };
|
|
208
|
+
};
|
|
209
|
+
exports.calculateNetApyFromRates = calculateNetApyFromRates;
|
|
192
210
|
const calculateNetApy = ({ usedAssets, assetsData, optionalData, }) => {
|
|
193
211
|
const sumValues = Object.values(usedAssets).reduce((_acc, usedAsset) => {
|
|
194
212
|
const acc = Object.assign({}, _acc);
|
package/cjs/types/aave.d.ts
CHANGED
|
@@ -126,6 +126,7 @@ export interface AavePositionData extends MMPositionData {
|
|
|
126
126
|
minRatio: string;
|
|
127
127
|
collRatio: string;
|
|
128
128
|
safetyRatioWithLtvZeroFallback?: string;
|
|
129
|
+
safetyRatio?: string;
|
|
129
130
|
suppliedUsd: string;
|
|
130
131
|
borrowedUsd: string;
|
|
131
132
|
borrowLimitUsd: string;
|
|
@@ -159,6 +160,7 @@ export interface AaveV3AggregatedPositionData {
|
|
|
159
160
|
collRatio: string;
|
|
160
161
|
borrowLimitWithLtvZeroFallbackUsd: string;
|
|
161
162
|
safetyRatioWithLtvZeroFallback: string;
|
|
163
|
+
safetyRatio: string;
|
|
162
164
|
netApy: string;
|
|
163
165
|
incentiveUsd: string;
|
|
164
166
|
totalInterestUsd: string;
|
package/cjs/types/aaveV4.d.ts
CHANGED
package/cjs/types/compound.d.ts
CHANGED
|
@@ -96,6 +96,7 @@ export interface CompoundAggregatedPositionData {
|
|
|
96
96
|
leftToBorrowUsd: string;
|
|
97
97
|
ratio: string;
|
|
98
98
|
collRatio: string;
|
|
99
|
+
safetyRatio: string;
|
|
99
100
|
netApy: string;
|
|
100
101
|
incentiveUsd: string;
|
|
101
102
|
totalInterestUsd: string;
|
|
@@ -115,6 +116,7 @@ export interface CompoundAggregatedPositionData {
|
|
|
115
116
|
export interface CompoundPositionData extends MMPositionData {
|
|
116
117
|
ratio: string;
|
|
117
118
|
minRatio: string;
|
|
119
|
+
safetyRatio?: string;
|
|
118
120
|
suppliedUsd: string;
|
|
119
121
|
borrowedUsd: string;
|
|
120
122
|
borrowLimitUsd: string;
|
package/cjs/types/curveUsd.d.ts
CHANGED
|
@@ -73,6 +73,9 @@ export interface CrvUSDAggregatedPositionData {
|
|
|
73
73
|
collFactor: string;
|
|
74
74
|
leveragedType: LeverageType;
|
|
75
75
|
exposure: string;
|
|
76
|
+
netApy: string;
|
|
77
|
+
totalInterestUsd: string;
|
|
78
|
+
incentiveUsd: string;
|
|
76
79
|
leveragedAsset?: string;
|
|
77
80
|
liquidationPrice?: string;
|
|
78
81
|
}
|
|
@@ -113,4 +116,7 @@ export interface CrvUSDUserData {
|
|
|
113
116
|
collateralPrice: string;
|
|
114
117
|
collRatio: string;
|
|
115
118
|
exposure: string;
|
|
119
|
+
netApy: string;
|
|
120
|
+
totalInterestUsd: string;
|
|
121
|
+
incentiveUsd: string;
|
|
116
122
|
}
|
package/cjs/types/fluid.d.ts
CHANGED
package/cjs/types/liquity.d.ts
CHANGED
|
@@ -24,7 +24,11 @@ export interface LiquityTroveInfo {
|
|
|
24
24
|
totalETH: string;
|
|
25
25
|
totalLUSD: string;
|
|
26
26
|
minCollateralRatio: number;
|
|
27
|
+
safetyRatio: string;
|
|
27
28
|
priceForRecovery: string;
|
|
28
29
|
debtInFront: string;
|
|
29
30
|
exposure: string;
|
|
31
|
+
netApy: string;
|
|
32
|
+
totalInterestUsd: string;
|
|
33
|
+
incentiveUsd: string;
|
|
30
34
|
}
|
package/cjs/types/liquityV2.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ export interface LiquityV2AggregatedTroveData {
|
|
|
94
94
|
liquidationPrice: string;
|
|
95
95
|
ratio: string;
|
|
96
96
|
collRatio: string;
|
|
97
|
+
safetyRatio: string;
|
|
97
98
|
exposure: string;
|
|
98
99
|
}
|
|
99
100
|
export interface LiquityV2TroveData {
|
|
@@ -101,6 +102,7 @@ export interface LiquityV2TroveData {
|
|
|
101
102
|
troveId: string;
|
|
102
103
|
ratio: string;
|
|
103
104
|
collRatio: string;
|
|
105
|
+
safetyRatio?: string;
|
|
104
106
|
liqRatio: string;
|
|
105
107
|
borrowLimitRatio: string;
|
|
106
108
|
interestRate: string;
|
package/cjs/types/maker.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export interface CdpData {
|
|
|
43
43
|
debtAssetMarketPrice: string;
|
|
44
44
|
liquidationPrice: string;
|
|
45
45
|
ratio: string;
|
|
46
|
+
safetyRatio: string;
|
|
46
47
|
liqRatio: string;
|
|
47
48
|
liqPercent: number;
|
|
48
49
|
assetPrice: string;
|
|
@@ -58,4 +59,7 @@ export interface CdpData {
|
|
|
58
59
|
liquidationFee: string;
|
|
59
60
|
lastUpdated: number;
|
|
60
61
|
exposure: string;
|
|
62
|
+
netApy: string;
|
|
63
|
+
totalInterestUsd: string;
|
|
64
|
+
incentiveUsd: string;
|
|
61
65
|
}
|
|
@@ -185,6 +185,7 @@ export interface MorphoBlueAggregatedPositionData {
|
|
|
185
185
|
totalInterestUsd: string;
|
|
186
186
|
ltv: string;
|
|
187
187
|
ratio: string;
|
|
188
|
+
safetyRatio: string;
|
|
188
189
|
leveragedType: LeverageType;
|
|
189
190
|
leveragedAsset?: string;
|
|
190
191
|
currentVolatilePairRatio?: string;
|
|
@@ -207,6 +208,7 @@ export interface MorphoBluePositionData {
|
|
|
207
208
|
totalInterestUsd: string;
|
|
208
209
|
ltv: string;
|
|
209
210
|
ratio: string;
|
|
211
|
+
safetyRatio?: string;
|
|
210
212
|
leveragedType: LeverageType;
|
|
211
213
|
leveragedAsset?: string;
|
|
212
214
|
currentVolatilePairRatio?: string;
|
package/cjs/types/portfolio.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { AaveV2PositionData, AaveV3PositionData, AaveVersions } from './aave';
|
|
2
|
-
import { AaveV4AccountData, AaveV4SpokesType } from './aaveV4';
|
|
1
|
+
import { AaveV2MarketData, AaveV2PositionData, AaveV3MarketData, AaveV3PositionData, AaveVersions } from './aave';
|
|
2
|
+
import { AaveV4AccountData, AaveV4SpokeData, AaveV4SpokesType } from './aaveV4';
|
|
3
3
|
import { EthAddress } from './common';
|
|
4
|
-
import { CompoundV2PositionData, CompoundV3PositionData, CompoundVersions } from './compound';
|
|
5
|
-
import { CrvUSDUserData, CrvUSDVersions } from './curveUsd';
|
|
6
|
-
import { FluidVaultData } from './fluid';
|
|
4
|
+
import { CompoundV2MarketsData, CompoundV2PositionData, CompoundV3MarketsData, CompoundV3PositionData, CompoundVersions } from './compound';
|
|
5
|
+
import { CrvUSDGlobalMarketData, CrvUSDUserData, CrvUSDVersions } from './curveUsd';
|
|
6
|
+
import { FluidMarketData, FluidVaultData } from './fluid';
|
|
7
7
|
import { LiquityTroveInfo } from './liquity';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
8
|
+
import { LiquityV2MarketData } from './liquityV2';
|
|
9
|
+
import { LlamaLendGlobalMarketData, LlamaLendUserData, LlamaLendVersionsType } from './llamaLend';
|
|
10
|
+
import { CdpData, IlkInfo } from './maker';
|
|
11
|
+
import { MorphoBlueMarketInfo, MorphoBluePositionData, MorphoBlueVersions } from './morphoBlue';
|
|
12
|
+
import { MorphoMidnightMarketInfo, MorphoMidnightPositionData, MorphoMidnightVersions } from './morphoMidnight';
|
|
13
|
+
import { SparkMarketsData, SparkPositionData, SparkVersions } from './spark';
|
|
13
14
|
export interface PortfolioProtocolData<T> {
|
|
14
15
|
error: string;
|
|
15
16
|
data: T | null;
|
|
@@ -59,3 +60,18 @@ export interface PortfolioPositionsDataForAddress {
|
|
|
59
60
|
export interface PortfolioPositionsData {
|
|
60
61
|
[key: EthAddress]: PortfolioPositionsDataForAddress;
|
|
61
62
|
}
|
|
63
|
+
export interface PortfolioMarketsData {
|
|
64
|
+
morphoMarketsData: Record<string, MorphoBlueMarketInfo>;
|
|
65
|
+
morphoMidnightMarketsData: Record<string, MorphoMidnightMarketInfo>;
|
|
66
|
+
compoundV3MarketsData: Record<string, CompoundV3MarketsData>;
|
|
67
|
+
sparkMarketsData: Record<string, SparkMarketsData>;
|
|
68
|
+
aaveV3MarketsData: Record<string, AaveV3MarketData>;
|
|
69
|
+
aaveV2MarketsData: Record<string, AaveV2MarketData>;
|
|
70
|
+
compoundV2MarketsData: Record<string, CompoundV2MarketsData>;
|
|
71
|
+
crvUsdMarketsData: Record<string, CrvUSDGlobalMarketData>;
|
|
72
|
+
llamaLendMarketsData: Record<string, LlamaLendGlobalMarketData>;
|
|
73
|
+
liquityV2MarketsData: Record<string, LiquityV2MarketData>;
|
|
74
|
+
aaveV4SpokesData: Record<string, AaveV4SpokeData>;
|
|
75
|
+
fluidMarketsData: Record<string, FluidMarketData>;
|
|
76
|
+
makerMarketsData: Record<string, IlkInfo>;
|
|
77
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthAddress
|
|
1
|
+
import { EthAddress } from '../common';
|
|
2
2
|
export declare enum MorphoVaultType {
|
|
3
3
|
MorphoVaultFlagshipEth = "morpho_vault_flagship_eth",
|
|
4
4
|
MorphoVaultGauntletUSDCCore = "morpho_vault_gauntlet_usdc_core",
|
|
@@ -17,21 +17,13 @@ export declare enum MorphoVaultType {
|
|
|
17
17
|
MorphoVaultSteakhousePYUSD = "morpho_vault_steakhouse_pyusd",
|
|
18
18
|
MorphoVaultSmokehouseUSDT = "morpho_vault_smokehouse_usdt",
|
|
19
19
|
MorphoVaultSmokehouseUSDC = "morpho_vault_smokehouse_usdc",
|
|
20
|
-
MorphoVaultSmokehouseDAI = "morpho_vault_smokehouse_dai"
|
|
21
|
-
MorphoVaultGauntletUSDGPremium = "morpho_vault_gauntlet_usdg_premium",
|
|
22
|
-
MorphoVaultSteakhouseUSDGPro = "morpho_vault_steakhouse_usdg_pro"
|
|
23
|
-
}
|
|
24
|
-
export declare enum MorphoVaultVersion {
|
|
25
|
-
V1 = 1,
|
|
26
|
-
V2 = 2
|
|
20
|
+
MorphoVaultSmokehouseDAI = "morpho_vault_smokehouse_dai"
|
|
27
21
|
}
|
|
28
22
|
export interface MorphoVault {
|
|
29
23
|
type: MorphoVaultType;
|
|
30
24
|
name: string;
|
|
31
25
|
address: EthAddress;
|
|
32
26
|
asset: string;
|
|
33
|
-
network: NetworkNumber;
|
|
34
|
-
version: MorphoVaultVersion;
|
|
35
27
|
deploymentBlock: number;
|
|
36
28
|
isLegacy: boolean;
|
|
37
29
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MorphoVaultType = void 0;
|
|
4
4
|
var MorphoVaultType;
|
|
5
5
|
(function (MorphoVaultType) {
|
|
6
6
|
MorphoVaultType["MorphoVaultFlagshipEth"] = "morpho_vault_flagship_eth";
|
|
@@ -23,12 +23,4 @@ var MorphoVaultType;
|
|
|
23
23
|
MorphoVaultType["MorphoVaultSmokehouseUSDT"] = "morpho_vault_smokehouse_usdt";
|
|
24
24
|
MorphoVaultType["MorphoVaultSmokehouseUSDC"] = "morpho_vault_smokehouse_usdc";
|
|
25
25
|
MorphoVaultType["MorphoVaultSmokehouseDAI"] = "morpho_vault_smokehouse_dai";
|
|
26
|
-
// Vault V2
|
|
27
|
-
MorphoVaultType["MorphoVaultGauntletUSDGPremium"] = "morpho_vault_gauntlet_usdg_premium";
|
|
28
|
-
MorphoVaultType["MorphoVaultSteakhouseUSDGPro"] = "morpho_vault_steakhouse_usdg_pro";
|
|
29
26
|
})(MorphoVaultType || (exports.MorphoVaultType = MorphoVaultType = {}));
|
|
30
|
-
var MorphoVaultVersion;
|
|
31
|
-
(function (MorphoVaultVersion) {
|
|
32
|
-
MorphoVaultVersion[MorphoVaultVersion["V1"] = 1] = "V1";
|
|
33
|
-
MorphoVaultVersion[MorphoVaultVersion["V2"] = 2] = "V2";
|
|
34
|
-
})(MorphoVaultVersion || (exports.MorphoVaultVersion = MorphoVaultVersion = {}));
|
package/cjs/types/spark.d.ts
CHANGED
|
@@ -85,6 +85,7 @@ export interface SparkAggregatedPositionData {
|
|
|
85
85
|
leftToBorrowUsd: string;
|
|
86
86
|
ratio: string;
|
|
87
87
|
collRatio: string;
|
|
88
|
+
safetyRatio: string;
|
|
88
89
|
netApy: string;
|
|
89
90
|
incentiveUsd: string;
|
|
90
91
|
totalInterestUsd: string;
|
|
@@ -104,6 +105,7 @@ export interface SparkPositionData extends MMPositionData {
|
|
|
104
105
|
ratio: string;
|
|
105
106
|
minRatio: string;
|
|
106
107
|
collRatio: string;
|
|
108
|
+
safetyRatio?: string;
|
|
107
109
|
suppliedUsd: string;
|
|
108
110
|
borrowedUsd: string;
|
|
109
111
|
borrowLimitUsd: string;
|
package/esm/aaveV2/index.js
CHANGED
|
@@ -167,6 +167,8 @@ export const _getAaveV2AccountData = (provider, network, address, assetsData, ma
|
|
|
167
167
|
payload.collRatio = payload.borrowedUsd && payload.borrowedUsd !== '0'
|
|
168
168
|
? new Dec(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString()
|
|
169
169
|
: '0';
|
|
170
|
+
// Aave v2 has no LTV-0 fallback (AaveV3View only), so its safety ratio is the plain ratio.
|
|
171
|
+
payload.safetyRatio = payload.ratio;
|
|
170
172
|
// Calculate borrow limits per asset
|
|
171
173
|
Object.values(payload.usedAssets).forEach((item) => {
|
|
172
174
|
if (item.isBorrowed) {
|
package/esm/curveUsd/index.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ export declare const _getCurveUsdGlobalData: (provider: Client, network: Network
|
|
|
5
5
|
export declare const getCurveUsdGlobalData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDGlobalMarketData>;
|
|
6
6
|
export declare const _getCrvUsdAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress) => Promise<PositionBalances>;
|
|
7
7
|
export declare const getCrvUsdAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress) => Promise<PositionBalances>;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
|
|
10
|
+
*/
|
|
11
|
+
export declare const _getCurveUsdUserData: (provider: Client, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
|
|
12
|
+
export declare const getCurveUsdUserData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
|
|
10
13
|
export declare const getCurveUsdFullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDUserData>;
|
package/esm/curveUsd/index.js
CHANGED
|
@@ -16,6 +16,12 @@ import { getCrvUsdAggregatedData } from '../helpers/curveUsdHelpers';
|
|
|
16
16
|
import { CrvUsdMarkets } from '../markets';
|
|
17
17
|
import { wethToEth } from '../services/utils';
|
|
18
18
|
import { getViemProvider, setViemBlockNumber } from '../services/viem';
|
|
19
|
+
import { getStakingApy, STAKING_ASSETS } from '../staking';
|
|
20
|
+
/** Converts a per-second AMM rate (wei, 18 decimals) into a yearly compounded borrow APY in %. */
|
|
21
|
+
const ammRateToBorrowApy = (rateWei) => {
|
|
22
|
+
const exponent = new Dec(assetAmountInEth(rateWei)).mul(365).mul(86400);
|
|
23
|
+
return new Dec(new Dec(2.718281828459).pow(exponent).minus(1)).mul(100).toString();
|
|
24
|
+
};
|
|
19
25
|
const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
26
|
const contract = CrvUSDViewContractViem(provider, network);
|
|
21
27
|
const minBand = parseInt(_minBand, 10);
|
|
@@ -65,14 +71,8 @@ export const _getCurveUsdGlobalData = (provider, network, selectedMarket) => __a
|
|
|
65
71
|
// all prices are in 18 decimals
|
|
66
72
|
const totalDebt = assetAmountInEth(data.totalDebt.toString(), debtAsset);
|
|
67
73
|
const ammPrice = assetAmountInEth(data.ammPrice.toString(), debtAsset);
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
const exponentRate = new Dec(rate).mul(365).mul(86400);
|
|
71
|
-
const exponentFutureRate = new Dec(futureRate).mul(365).mul(86400);
|
|
72
|
-
const borrowRate = new Dec(new Dec(2.718281828459).pow(exponentRate).minus(1)).mul(100)
|
|
73
|
-
.toString();
|
|
74
|
-
const futureBorrowRate = new Dec(new Dec(2.718281828459).pow(exponentFutureRate).minus(1)).mul(100)
|
|
75
|
-
.toString();
|
|
74
|
+
const borrowRate = ammRateToBorrowApy(data.ammRate.toString());
|
|
75
|
+
const futureBorrowRate = ammRateToBorrowApy(data.monetaryPolicyRate.toString());
|
|
76
76
|
const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString());
|
|
77
77
|
const leftToBorrow = new Dec(debtCeiling.toString()).minus(totalDebt).toString();
|
|
78
78
|
const loanDiscount = assetAmountInEth(loanDiscountWei.toString(), debtAsset);
|
|
@@ -121,11 +121,20 @@ export const _getCrvUsdAccountBalances = (provider, network, block, addressMappi
|
|
|
121
121
|
return balances;
|
|
122
122
|
});
|
|
123
123
|
export const getCrvUsdAccountBalances = (provider, network, block, addressMapping, address, controllerAddress) => __awaiter(void 0, void 0, void 0, function* () { return _getCrvUsdAccountBalances(getViemProvider(provider, network), network, block, addressMapping, address, controllerAddress); });
|
|
124
|
-
|
|
124
|
+
/**
|
|
125
|
+
* @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
|
|
126
|
+
*/
|
|
127
|
+
export const _getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () {
|
|
125
128
|
const contract = CrvUSDViewContractViem(provider, network);
|
|
126
|
-
const data = yield contract.read.userData([selectedMarket.controllerAddress, address]);
|
|
127
129
|
const collAsset = selectedMarket.collAsset;
|
|
128
130
|
const debtAsset = selectedMarket.baseAsset;
|
|
131
|
+
const [data, collStakingApy, marketBorrowRate] = yield Promise.all([
|
|
132
|
+
contract.read.userData([selectedMarket.controllerAddress, address]),
|
|
133
|
+
STAKING_ASSETS.includes(collAsset) ? getStakingApy(collAsset) : Promise.resolve('0'),
|
|
134
|
+
borrowRate !== undefined
|
|
135
|
+
? Promise.resolve(borrowRate)
|
|
136
|
+
: contract.read.globalData([selectedMarket.controllerAddress]).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
|
|
137
|
+
]);
|
|
129
138
|
const health = assetAmountInEth(data.health.toString());
|
|
130
139
|
const healthPercent = new Dec(health).mul(100).toString();
|
|
131
140
|
const collPrice = assetAmountInEth(data.collateralPrice.toString(), debtAsset);
|
|
@@ -156,7 +165,7 @@ export const _getCurveUsdUserData = (provider, network, address, selectedMarket,
|
|
|
156
165
|
isBorrowed: new Dec(debtBorrowed).gt('0'),
|
|
157
166
|
symbol: 'crvUSD',
|
|
158
167
|
price: '1',
|
|
159
|
-
interestRate:
|
|
168
|
+
interestRate: marketBorrowRate,
|
|
160
169
|
},
|
|
161
170
|
} : {};
|
|
162
171
|
const priceHigh = assetAmountInEth(data.priceHigh.toString());
|
|
@@ -168,13 +177,19 @@ export const _getCurveUsdUserData = (provider, network, address, selectedMarket,
|
|
|
168
177
|
healthPercent,
|
|
169
178
|
priceHigh,
|
|
170
179
|
priceLow, liquidationDiscount: assetAmountInEth(data.liquidationDiscount.toString()), numOfBands: data.N.toString(), usedAssets,
|
|
171
|
-
status }), getCrvUsdAggregatedData({
|
|
172
|
-
loanExists: data.loanExists,
|
|
180
|
+
status, borrowRate: marketBorrowRate }), getCrvUsdAggregatedData({
|
|
181
|
+
loanExists: data.loanExists,
|
|
182
|
+
usedAssets,
|
|
183
|
+
network: NetworkNumber.Eth,
|
|
184
|
+
selectedMarket,
|
|
185
|
+
numOfBands: data.N.toString(),
|
|
186
|
+
borrowRate: marketBorrowRate,
|
|
187
|
+
collStakingApy,
|
|
173
188
|
})), { userBands });
|
|
174
189
|
});
|
|
175
|
-
export const getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand) => __awaiter(void 0, void 0, void 0, function* () { return _getCurveUsdUserData(getViemProvider(provider, network), network, address, selectedMarket, activeBand); });
|
|
190
|
+
export const getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () { return _getCurveUsdUserData(getViemProvider(provider, network), network, address, selectedMarket, activeBand, borrowRate); });
|
|
176
191
|
export const getCurveUsdFullPositionData = (provider, network, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
|
|
177
192
|
const marketData = yield getCurveUsdGlobalData(provider, network, selectedMarket);
|
|
178
|
-
const positionData = yield getCurveUsdUserData(provider, network, address, selectedMarket, marketData.activeBand);
|
|
193
|
+
const positionData = yield getCurveUsdUserData(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate);
|
|
179
194
|
return positionData;
|
|
180
195
|
});
|
package/esm/fluid/index.d.ts
CHANGED
|
@@ -133,6 +133,7 @@ export declare const _getUserPositions: (provider: PublicClient, network: Networ
|
|
|
133
133
|
merklBorrowIncentives: import("../types").IncentiveData[];
|
|
134
134
|
ratio: string;
|
|
135
135
|
collRatio: string;
|
|
136
|
+
safetyRatio: string;
|
|
136
137
|
minRatio: string;
|
|
137
138
|
totalInterestUsd: string;
|
|
138
139
|
leveragedType?: import("../types").LeverageType;
|
|
@@ -167,6 +168,7 @@ export declare const getUserPositions: (provider: EthereumProvider, network: Net
|
|
|
167
168
|
merklBorrowIncentives: import("../types").IncentiveData[];
|
|
168
169
|
ratio: string;
|
|
169
170
|
collRatio: string;
|
|
171
|
+
safetyRatio: string;
|
|
170
172
|
minRatio: string;
|
|
171
173
|
totalInterestUsd: string;
|
|
172
174
|
leveragedType?: import("../types").LeverageType;
|
|
@@ -201,6 +203,7 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
|
|
|
201
203
|
merklBorrowIncentives: import("../types").IncentiveData[];
|
|
202
204
|
ratio: string;
|
|
203
205
|
collRatio: string;
|
|
206
|
+
safetyRatio: string;
|
|
204
207
|
minRatio: string;
|
|
205
208
|
totalInterestUsd: string;
|
|
206
209
|
leveragedType?: import("../types").LeverageType;
|
|
@@ -221,3 +224,5 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
|
|
|
221
224
|
nftId: string;
|
|
222
225
|
} | undefined;
|
|
223
226
|
}[]>;
|
|
227
|
+
export declare const _getAllFluidMarketDataPortfolio: (provider: PublicClient, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
|
|
228
|
+
export declare const getAllFluidMarketDataPortfolio: (provider: EthereumProvider, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
|