@defisaver/positions-sdk 2.1.161-portfolio-api-2-dev → 2.1.162-npm-token-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/aaveV3/index.d.ts +12 -2
- package/cjs/aaveV3/index.js +7 -1
- package/cjs/aaveV3/sgho.d.ts +16 -2
- package/cjs/claiming/aaveV3.d.ts +2 -2
- package/cjs/claiming/ethena.d.ts +1 -2
- package/cjs/claiming/king.d.ts +1 -2
- package/cjs/claiming/spark.d.ts +2 -2
- package/cjs/fluid/index.d.ts +49 -5
- package/cjs/helpers/aaveHelpers/index.d.ts +9 -1
- package/cjs/helpers/aaveHelpers/index.js +23 -6
- package/cjs/liquity/index.d.ts +12 -2
- package/cjs/liquityV2/index.d.ts +23 -3
- package/cjs/portfolio/index.d.ts +5 -5
- package/cjs/portfolio/index.js +36 -51
- package/cjs/savings/index.js +5 -2
- package/cjs/savings/morphoVaults/index.d.ts +1 -1
- package/cjs/savings/morphoVaults/index.js +56 -18
- package/cjs/savings/morphoVaults/options.d.ts +2 -0
- package/cjs/savings/morphoVaults/options.js +61 -1
- package/cjs/spark/index.js +1 -0
- package/cjs/types/aave.d.ts +3 -98
- package/cjs/types/compound.d.ts +2 -26
- package/cjs/types/curveUsd.d.ts +1 -9
- package/cjs/types/fluid.d.ts +0 -13
- package/cjs/types/index.d.ts +0 -1
- package/cjs/types/index.js +0 -1
- package/cjs/types/liquity.d.ts +0 -12
- package/cjs/types/liquityV2.d.ts +0 -24
- package/cjs/types/llamaLend.d.ts +1 -12
- package/cjs/types/morphoBlue.d.ts +0 -2
- package/cjs/types/portfolio.d.ts +10 -88
- package/cjs/types/savings/morphoVaults.d.ts +10 -2
- package/cjs/types/savings/morphoVaults.js +9 -1
- package/cjs/types/spark.d.ts +1 -21
- package/cjs/umbrella/index.d.ts +3 -2
- package/esm/aaveV3/index.d.ts +12 -2
- package/esm/aaveV3/index.js +7 -1
- package/esm/aaveV3/sgho.d.ts +16 -2
- package/esm/claiming/aaveV3.d.ts +2 -2
- package/esm/claiming/aaveV3.js +1 -1
- package/esm/claiming/ethena.d.ts +1 -2
- package/esm/claiming/king.d.ts +1 -2
- package/esm/claiming/spark.d.ts +2 -2
- package/esm/claiming/spark.js +1 -1
- package/esm/fluid/index.d.ts +49 -5
- package/esm/helpers/aaveHelpers/index.d.ts +9 -1
- package/esm/helpers/aaveHelpers/index.js +20 -5
- package/esm/liquity/index.d.ts +12 -2
- package/esm/liquityV2/index.d.ts +23 -3
- package/esm/portfolio/index.d.ts +5 -5
- package/esm/portfolio/index.js +36 -51
- package/esm/savings/index.js +5 -2
- package/esm/savings/morphoVaults/index.d.ts +1 -1
- package/esm/savings/morphoVaults/index.js +57 -19
- package/esm/savings/morphoVaults/options.d.ts +2 -0
- package/esm/savings/morphoVaults/options.js +61 -1
- package/esm/spark/index.js +1 -0
- package/esm/types/aave.d.ts +3 -98
- package/esm/types/compound.d.ts +2 -26
- package/esm/types/curveUsd.d.ts +1 -9
- package/esm/types/fluid.d.ts +0 -13
- package/esm/types/index.d.ts +0 -1
- package/esm/types/index.js +0 -1
- package/esm/types/liquity.d.ts +0 -12
- package/esm/types/liquityV2.d.ts +0 -24
- package/esm/types/llamaLend.d.ts +1 -12
- package/esm/types/morphoBlue.d.ts +0 -2
- package/esm/types/portfolio.d.ts +10 -88
- package/esm/types/savings/morphoVaults.d.ts +10 -2
- package/esm/types/savings/morphoVaults.js +8 -0
- package/esm/types/spark.d.ts +1 -21
- package/esm/umbrella/index.d.ts +3 -2
- package/package.json +3 -2
- package/src/aaveV3/index.ts +7 -3
- package/src/aaveV3/sgho.ts +17 -2
- package/src/claiming/aaveV3.ts +2 -4
- package/src/claiming/ethena.ts +5 -5
- package/src/claiming/king.ts +3 -3
- package/src/claiming/spark.ts +4 -6
- package/src/fluid/index.ts +3 -4
- package/src/helpers/aaveHelpers/index.ts +24 -7
- package/src/liquity/index.ts +2 -2
- package/src/liquityV2/index.ts +3 -3
- package/src/portfolio/index.ts +57 -76
- package/src/savings/index.ts +5 -2
- package/src/savings/morphoVaults/index.ts +73 -21
- package/src/savings/morphoVaults/options.ts +67 -1
- package/src/spark/index.ts +1 -0
- package/src/types/aave.ts +2 -104
- package/src/types/compound.ts +2 -38
- package/src/types/curveUsd.ts +1 -17
- package/src/types/fluid.ts +0 -14
- package/src/types/index.ts +1 -2
- package/src/types/liquity.ts +1 -13
- package/src/types/liquityV2.ts +1 -26
- package/src/types/llamaLend.ts +1 -19
- package/src/types/morphoBlue.ts +0 -3
- package/src/types/portfolio.ts +11 -111
- package/src/types/savings/morphoVaults.ts +11 -1
- package/src/types/spark.ts +1 -25
- package/src/umbrella/index.ts +1 -2
package/cjs/portfolio/index.js
CHANGED
|
@@ -54,13 +54,8 @@ const ethena_1 = require("../claiming/ethena");
|
|
|
54
54
|
const aaveV4_1 = require("../aaveV4");
|
|
55
55
|
const uniswap_1 = require("../claiming/uniswap");
|
|
56
56
|
function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1) {
|
|
57
|
-
return __awaiter(this, arguments, void 0, function* (provider, network, defaultProvider, addresses, isSim = false
|
|
57
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, defaultProvider, addresses, isSim = false) {
|
|
58
58
|
const isMainnet = network === common_1.NetworkNumber.Eth;
|
|
59
|
-
const includeStaking = options.staking !== false;
|
|
60
|
-
const includeRewards = options.rewards !== false;
|
|
61
|
-
// The addresses staking and rewards are read for: none when left out, so their fetches below make no calls.
|
|
62
|
-
const stakingAddresses = includeStaking ? addresses : [];
|
|
63
|
-
const rewardsAddresses = includeRewards ? addresses : [];
|
|
64
59
|
const isFluidSupported = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Base, common_1.NetworkNumber.Plasma].includes(network);
|
|
65
60
|
const morphoMarkets = Object.values((0, markets_1.MorphoBlueMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
66
61
|
const morphoMidnightMarkets = Object.values((0, markets_1.MorphoMidnightMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -132,7 +127,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
132
127
|
};
|
|
133
128
|
}
|
|
134
129
|
// TODO: check default values, probably needed when fetching portfolio on unsupported networks
|
|
135
|
-
for (const address of
|
|
130
|
+
for (const address of addresses) {
|
|
136
131
|
stakingPositions[address.toLowerCase()] = {
|
|
137
132
|
aaveV3: {},
|
|
138
133
|
morphoBlue: {},
|
|
@@ -146,20 +141,14 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
146
141
|
error: '',
|
|
147
142
|
data: {},
|
|
148
143
|
},
|
|
149
|
-
// Set by the sBOLD/yBOLD fetch below, whether it succeeds or fails.
|
|
150
|
-
liquityV2SBoldYBold: { error: '', data: null },
|
|
151
144
|
};
|
|
152
|
-
}
|
|
153
|
-
for (const address of rewardsAddresses) {
|
|
154
|
-
// merkl, spk, king and uniswap are set by their fetches below, whether they succeed or fail.
|
|
155
145
|
rewardsData[address.toLowerCase()] = {
|
|
156
|
-
merkl: {
|
|
146
|
+
merkl: {},
|
|
157
147
|
aaveV3: {},
|
|
158
148
|
spark: {},
|
|
159
|
-
spk: {
|
|
160
|
-
king: {
|
|
149
|
+
spk: {},
|
|
150
|
+
king: {},
|
|
161
151
|
ethena: {},
|
|
162
|
-
uniswap: { error: '', data: null },
|
|
163
152
|
};
|
|
164
153
|
}
|
|
165
154
|
yield Promise.allSettled([
|
|
@@ -235,7 +224,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
235
224
|
}
|
|
236
225
|
})),
|
|
237
226
|
// === STAKING DATA (independent of market data) ===
|
|
238
|
-
...
|
|
227
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
239
228
|
try {
|
|
240
229
|
if (!isFluidSupported)
|
|
241
230
|
return;
|
|
@@ -246,7 +235,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
246
235
|
stakingPositions[address.toLowerCase()].fluid = { error: `Error fetching Fluid lend data for address ${address}`, data: null };
|
|
247
236
|
}
|
|
248
237
|
})),
|
|
249
|
-
...
|
|
238
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
250
239
|
try {
|
|
251
240
|
if (!isMainnet)
|
|
252
241
|
return;
|
|
@@ -257,7 +246,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
257
246
|
stakingPositions[address.toLowerCase()].liquity = { error: `Error fetching Liquity staking data for address ${address}`, data: null };
|
|
258
247
|
}
|
|
259
248
|
})),
|
|
260
|
-
...
|
|
249
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
261
250
|
try {
|
|
262
251
|
if (!isMainnet)
|
|
263
252
|
return;
|
|
@@ -268,7 +257,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
268
257
|
stakingPositions[address.toLowerCase()].aaveV3 = { error: `Error fetching Aave V3 staking data for address ${address}`, data: null };
|
|
269
258
|
}
|
|
270
259
|
})),
|
|
271
|
-
...
|
|
260
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
272
261
|
try {
|
|
273
262
|
if (!isMainnet)
|
|
274
263
|
return;
|
|
@@ -280,7 +269,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
280
269
|
}
|
|
281
270
|
})),
|
|
282
271
|
// Liquity V2 staking
|
|
283
|
-
...liquityV2MarketsStaking.map(market =>
|
|
272
|
+
...liquityV2MarketsStaking.map(market => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
284
273
|
try {
|
|
285
274
|
if (!isMainnet) {
|
|
286
275
|
stakingPositions[address.toLowerCase()].liquityV2[market.value] = { error: '', data: null };
|
|
@@ -299,13 +288,13 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
299
288
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
300
289
|
try {
|
|
301
290
|
if (!isMainnet) {
|
|
302
|
-
for (const address of
|
|
291
|
+
for (const address of addresses) {
|
|
303
292
|
rewardsData[address.toLowerCase()].king = { error: '', data: [] };
|
|
304
293
|
}
|
|
305
294
|
return;
|
|
306
295
|
}
|
|
307
|
-
const kingRewards = yield (0, king_1.getKingRewards)(client, network,
|
|
308
|
-
for (const address of
|
|
296
|
+
const kingRewards = yield (0, king_1.getKingRewards)(client, network, addresses);
|
|
297
|
+
for (const address of addresses) {
|
|
309
298
|
const lowerAddress = address.toLowerCase();
|
|
310
299
|
rewardsData[lowerAddress].king = {
|
|
311
300
|
error: '',
|
|
@@ -315,7 +304,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
315
304
|
}
|
|
316
305
|
catch (error) {
|
|
317
306
|
console.error('Error fetching King rewards data in batch:', error);
|
|
318
|
-
for (const address of
|
|
307
|
+
for (const address of addresses) {
|
|
319
308
|
rewardsData[address.toLowerCase()].king = {
|
|
320
309
|
error: 'Error fetching King rewards data in batch',
|
|
321
310
|
data: null,
|
|
@@ -327,13 +316,13 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
327
316
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
328
317
|
try {
|
|
329
318
|
if (!isMainnet) {
|
|
330
|
-
for (const address of
|
|
319
|
+
for (const address of addresses) {
|
|
331
320
|
rewardsData[address.toLowerCase()].uniswap = { error: '', data: [] };
|
|
332
321
|
}
|
|
333
322
|
return;
|
|
334
323
|
}
|
|
335
|
-
const uniswapRewards = yield (0, uniswap_1.getUniswapRewards)(client, network,
|
|
336
|
-
for (const address of
|
|
324
|
+
const uniswapRewards = yield (0, uniswap_1.getUniswapRewards)(client, network, addresses);
|
|
325
|
+
for (const address of addresses) {
|
|
337
326
|
const lowerAddress = address.toLowerCase();
|
|
338
327
|
rewardsData[lowerAddress].uniswap = {
|
|
339
328
|
error: '',
|
|
@@ -343,7 +332,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
343
332
|
}
|
|
344
333
|
catch (error) {
|
|
345
334
|
console.error('Error fetching Uniswap rewards data in batch:', error);
|
|
346
|
-
for (const address of
|
|
335
|
+
for (const address of addresses) {
|
|
347
336
|
rewardsData[address.toLowerCase()].uniswap = {
|
|
348
337
|
error: 'Error fetching Uniswap rewards data in batch',
|
|
349
338
|
data: null,
|
|
@@ -351,7 +340,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
351
340
|
}
|
|
352
341
|
}
|
|
353
342
|
}))(),
|
|
354
|
-
...sparkMarkets.map((market) =>
|
|
343
|
+
...sparkMarkets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
355
344
|
try {
|
|
356
345
|
if (!isMainnet) {
|
|
357
346
|
rewardsData[address.toLowerCase()].spark[market.value] = { error: '', data: [] };
|
|
@@ -365,7 +354,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
365
354
|
rewardsData[address.toLowerCase()].spark[market.value] = { error: `Error fetching Spark rewards data for address ${address}`, data: null };
|
|
366
355
|
}
|
|
367
356
|
}))).flat(),
|
|
368
|
-
...
|
|
357
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
369
358
|
try {
|
|
370
359
|
const merklData = yield (0, aaveV3_2.getMerklUnclaimedRewards)(address, network);
|
|
371
360
|
rewardsData[address.toLowerCase()].merkl = { error: '', data: merklData };
|
|
@@ -375,28 +364,27 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
375
364
|
rewardsData[address.toLowerCase()].merkl = { error: `Error fetching Merkl rewards data for address ${address}`, data: null };
|
|
376
365
|
}
|
|
377
366
|
})),
|
|
378
|
-
...aaveV3Markets.map(market =>
|
|
367
|
+
...aaveV3Markets.map(market => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
379
368
|
try {
|
|
380
369
|
const aaveData = yield (0, aaveV3_2.getUnclaimedRewardsForAllMarkets)(client, network, address, market.providerAddress);
|
|
381
370
|
rewardsData[address.toLowerCase()].aaveV3[market.value] = { error: '', data: aaveData };
|
|
382
371
|
}
|
|
383
372
|
catch (error) {
|
|
384
373
|
console.error(`Error fetching Aave V3 Merit rewards data for address ${address}:`, error);
|
|
385
|
-
|
|
386
|
-
rewardsData[address.toLowerCase()].aaveV3[market.value] = { error: `Error fetching Aave V3 rewards data for address ${address} on market ${market.value}`, data: null };
|
|
374
|
+
rewardsData[address.toLowerCase()].aaveV3 = { error: `Error fetching Aave V3 rewards data for address ${address}`, data: null };
|
|
387
375
|
}
|
|
388
376
|
}))).flat(),
|
|
389
377
|
// Batch Spark Airdrop rewards
|
|
390
378
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
391
379
|
try {
|
|
392
380
|
if (!isMainnet) {
|
|
393
|
-
for (const address of
|
|
381
|
+
for (const address of addresses) {
|
|
394
382
|
rewardsData[address.toLowerCase()].spk = { error: '', data: [] };
|
|
395
383
|
}
|
|
396
384
|
return;
|
|
397
385
|
}
|
|
398
|
-
const sparkAirdropRewards = yield (0, spark_2.fetchSparkAirdropRewards)(client, network,
|
|
399
|
-
for (const address of
|
|
386
|
+
const sparkAirdropRewards = yield (0, spark_2.fetchSparkAirdropRewards)(client, network, addresses);
|
|
387
|
+
for (const address of addresses) {
|
|
400
388
|
const lowerAddress = address.toLowerCase();
|
|
401
389
|
rewardsData[lowerAddress].spk = {
|
|
402
390
|
error: '',
|
|
@@ -406,7 +394,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
406
394
|
}
|
|
407
395
|
catch (error) {
|
|
408
396
|
console.error('Error fetching Spark Airdrop rewards data in batch:', error);
|
|
409
|
-
for (const address of
|
|
397
|
+
for (const address of addresses) {
|
|
410
398
|
rewardsData[address.toLowerCase()].spk = {
|
|
411
399
|
error: 'Error fetching Spark Airdrop rewards data in batch',
|
|
412
400
|
data: null,
|
|
@@ -419,8 +407,8 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
419
407
|
if (!isMainnet) {
|
|
420
408
|
return;
|
|
421
409
|
}
|
|
422
|
-
const ethenaAirdropRewards = yield (0, ethena_1.fetchEthenaAirdropRewards)(
|
|
423
|
-
for (const address of
|
|
410
|
+
const ethenaAirdropRewards = yield (0, ethena_1.fetchEthenaAirdropRewards)(addresses);
|
|
411
|
+
for (const address of addresses) {
|
|
424
412
|
const lowerAddress = address.toLowerCase();
|
|
425
413
|
rewardsData[lowerAddress].ethena = {
|
|
426
414
|
error: '',
|
|
@@ -430,7 +418,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
430
418
|
}
|
|
431
419
|
catch (error) {
|
|
432
420
|
console.error('Error fetching Ethena Airdrop rewards data:', error);
|
|
433
|
-
for (const address of
|
|
421
|
+
for (const address of addresses) {
|
|
434
422
|
rewardsData[address.toLowerCase()].ethena = {
|
|
435
423
|
error: 'Error fetching Ethena Airdrop rewards data in batch',
|
|
436
424
|
data: null,
|
|
@@ -466,16 +454,15 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
466
454
|
try {
|
|
467
455
|
const [accDataPromise, earnDataPromise] = yield Promise.allSettled([
|
|
468
456
|
(0, morphoBlue_1._getMorphoBlueAccountData)(client, network, address, market, morphoMarketsData[market.value]),
|
|
469
|
-
|
|
457
|
+
(0, morphoBlue_1.getMorphoEarn)(client, network, address, market, morphoMarketsData[market.value]),
|
|
470
458
|
]);
|
|
471
459
|
if (accDataPromise.status === 'rejected') {
|
|
472
460
|
console.error(`Error fetching MorphoBlue account data for address ${address} on market ${market.value}:`, accDataPromise.reason);
|
|
473
461
|
positions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue account data for address ${address} on market ${market.value}`, data: null };
|
|
474
462
|
}
|
|
475
463
|
if (earnDataPromise.status === 'rejected') {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
stakingPositions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue earn data for address ${address} on market ${market.value}`, data: null };
|
|
464
|
+
console.error(`Error fetching MorphoBlue account data for address ${address} on market ${market.value}:`, earnDataPromise.reason);
|
|
465
|
+
positions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue account data for address ${address} on market ${market.value}`, data: null };
|
|
479
466
|
}
|
|
480
467
|
if (accDataPromise.status !== 'rejected') {
|
|
481
468
|
const accData = accDataPromise.value;
|
|
@@ -534,11 +521,9 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
534
521
|
positions[address.toLowerCase()].spark[market.value] = { error: `Error fetching Spark account data for address ${address} on market ${market.value}`, data: null };
|
|
535
522
|
}
|
|
536
523
|
}))).flat(),
|
|
537
|
-
|
|
538
|
-
// before a vault's data lands and the vault is missing from the result.
|
|
539
|
-
...addresses.flatMap((address) => {
|
|
524
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
540
525
|
var _a;
|
|
541
|
-
return (
|
|
526
|
+
return (_a = makerCdps[address.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.map((cdpInfo) => __awaiter(this, void 0, void 0, function* () {
|
|
542
527
|
try {
|
|
543
528
|
const cdpData = yield (0, maker_1._getMakerCdpData)(client, network, cdpInfo);
|
|
544
529
|
if (cdpData) {
|
|
@@ -550,7 +535,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
550
535
|
positions[address.toLowerCase()].maker[cdpInfo.id] = { error: `Error fetching Maker CDP data for address ${address} with ID ${cdpInfo.id}`, data: null };
|
|
551
536
|
}
|
|
552
537
|
}));
|
|
553
|
-
}),
|
|
538
|
+
})).flat(),
|
|
554
539
|
...aaveV2Markets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
555
540
|
try {
|
|
556
541
|
const accData = yield (0, aaveV2_1._getAaveV2AccountData)(client, network, address, aaveV2MarketsData[market.value].assetsData, market);
|
|
@@ -611,7 +596,7 @@ function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1)
|
|
|
611
596
|
}
|
|
612
597
|
}))).flat(),
|
|
613
598
|
// liquity sBold/yBold and staking options
|
|
614
|
-
...
|
|
599
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
615
600
|
try {
|
|
616
601
|
if (!isMainnet) {
|
|
617
602
|
stakingPositions[address.toLowerCase()].liquityV2SBoldYBold = { error: '', data: null };
|
package/cjs/savings/index.js
CHANGED
|
@@ -60,7 +60,8 @@ exports.summerVaults = summerVaults;
|
|
|
60
60
|
const yearnV3Vaults = __importStar(require("./yearnV3Vaults"));
|
|
61
61
|
exports.yearnV3Vaults = yearnV3Vaults;
|
|
62
62
|
const getSavingsData = (provider, network, accounts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
const morphoVaultsList = Object.keys(morphoVaults.morphoVaultsOptions.MORPHO_VAULTS)
|
|
63
|
+
const morphoVaultsList = Object.keys(morphoVaults.morphoVaultsOptions.MORPHO_VAULTS)
|
|
64
|
+
.filter((key) => morphoVaults.morphoVaultsOptions.getMorphoVault(key).network === network);
|
|
64
65
|
const yearnVaultsList = Object.keys(yearnVaults.yearnVaultsOptions.YEARN_VAULTS);
|
|
65
66
|
const sparkSavingsVaultsList = Object.keys(sparkSavingsVaults.sparkSavingsVaultsOptions.SPARK_SAVINGS_VAULTS);
|
|
66
67
|
const yearnV3VaultsList = Object.keys(yearnV3Vaults.yearnV3VaultsOptions.YEARN_V3_VAULTS);
|
|
@@ -68,7 +69,7 @@ const getSavingsData = (provider, network, accounts) => __awaiter(void 0, void 0
|
|
|
68
69
|
.filter((key) => summerVaults.summerVaultsOptions.getSummerVault(key).network === network);
|
|
69
70
|
const savingsData = {};
|
|
70
71
|
yield Promise.all([
|
|
71
|
-
...(
|
|
72
|
+
...(morphoVaultsList.length ? [
|
|
72
73
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
74
|
try {
|
|
74
75
|
const vaults = morphoVaultsList.map((vaultKey) => morphoVaults.morphoVaultsOptions.getMorphoVault(vaultKey));
|
|
@@ -79,6 +80,8 @@ const getSavingsData = (provider, network, accounts) => __awaiter(void 0, void 0
|
|
|
79
80
|
console.error('[getSavingsData] Error fetching morpho vaults:', err);
|
|
80
81
|
}
|
|
81
82
|
}))(),
|
|
83
|
+
] : []),
|
|
84
|
+
...(network === common_1.NetworkNumber.Eth ? [
|
|
82
85
|
...yearnVaultsList.map((vaultKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
86
|
try {
|
|
84
87
|
const vault = yearnVaults.yearnVaultsOptions.getYearnVault(vaultKey);
|
|
@@ -3,7 +3,7 @@ import * as morphoVaultsOptions from './options';
|
|
|
3
3
|
import { EthAddress, EthereumProvider, NetworkNumber, MorphoVault, MorphoVaultType, SavingsVaultData } from '../../types';
|
|
4
4
|
export { morphoVaultsOptions, };
|
|
5
5
|
/**
|
|
6
|
-
* Fetches liquidity for all given vaults
|
|
6
|
+
* Fetches liquidity for all given vaults, one API request per vault version (chunked if over the page cap),
|
|
7
7
|
* returned as a map keyed by lowercased vault address. A vault missing from the API response is
|
|
8
8
|
* absent from the map.
|
|
9
9
|
*/
|
|
@@ -53,42 +53,50 @@ const graphql_request_1 = require("graphql-request");
|
|
|
53
53
|
const tokens_1 = require("@defisaver/tokens");
|
|
54
54
|
const morphoVaultsOptions = __importStar(require("./options"));
|
|
55
55
|
exports.morphoVaultsOptions = morphoVaultsOptions;
|
|
56
|
+
const types_1 = require("../../types");
|
|
56
57
|
const viem_1 = require("../../services/viem");
|
|
57
58
|
const contracts_1 = require("../../contracts");
|
|
58
59
|
const constants_1 = require("../../constants");
|
|
59
60
|
// Morpho API caps list page size at 100 items
|
|
60
61
|
const MORPHO_API_PAGE_SIZE = 100;
|
|
61
|
-
const
|
|
62
|
+
const buildLiquidityQuery = (listField) => `
|
|
62
63
|
query VaultsLiquidity($addresses: [String!], $chainIds: [Int!]) {
|
|
63
|
-
|
|
64
|
+
${listField}(first: ${MORPHO_API_PAGE_SIZE}, where: { address_in: $addresses, chainId_in: $chainIds }) {
|
|
64
65
|
items {
|
|
65
66
|
address
|
|
66
|
-
liquidity {
|
|
67
|
-
underlying
|
|
68
|
-
}
|
|
67
|
+
liquidity${listField === 'vaults' ? ' {\n underlying\n }' : ''}
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
70
|
}`;
|
|
71
|
+
const liquidityQueries = {
|
|
72
|
+
[types_1.MorphoVaultVersion.V1]: { field: 'vaults', query: buildLiquidityQuery('vaults') },
|
|
73
|
+
[types_1.MorphoVaultVersion.V2]: { field: 'vaultV2s', query: buildLiquidityQuery('vaultV2s') },
|
|
74
|
+
};
|
|
72
75
|
/**
|
|
73
|
-
* Fetches liquidity for all given vaults
|
|
76
|
+
* Fetches liquidity for all given vaults, one API request per vault version (chunked if over the page cap),
|
|
74
77
|
* returned as a map keyed by lowercased vault address. A vault missing from the API response is
|
|
75
78
|
* absent from the map.
|
|
76
79
|
*/
|
|
77
80
|
const fetchMorphoVaultsLiquidity = (network, vaults) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
const requests = [];
|
|
82
|
+
[types_1.MorphoVaultVersion.V1, types_1.MorphoVaultVersion.V2].forEach((version) => {
|
|
83
|
+
const versionVaults = vaults.filter((vault) => vault.version === version);
|
|
84
|
+
for (let i = 0; i < versionVaults.length; i += MORPHO_API_PAGE_SIZE)
|
|
85
|
+
requests.push({ version, chunk: versionVaults.slice(i, i + MORPHO_API_PAGE_SIZE) });
|
|
86
|
+
});
|
|
81
87
|
const liquidityByAddress = {};
|
|
82
|
-
yield Promise.all(
|
|
83
|
-
const
|
|
88
|
+
yield Promise.all(requests.map((_a) => __awaiter(void 0, [_a], void 0, function* ({ version, chunk }) {
|
|
89
|
+
const { field, query } = liquidityQueries[version];
|
|
90
|
+
const data = yield (0, graphql_request_1.request)(constants_1.MORPHO_API_URL, query, {
|
|
84
91
|
addresses: chunk.map((vault) => vault.address),
|
|
85
92
|
chainIds: [network],
|
|
86
93
|
// the BigInt scalar serializes as a JSON number when it fits in Number.MAX_SAFE_INTEGER, a string otherwise
|
|
87
94
|
});
|
|
88
|
-
(data.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
(data[field].items || []).forEach((item) => {
|
|
96
|
+
// V1 exposes liquidity as { underlying }, V2 as a plain BigInt scalar
|
|
97
|
+
const underlying = (item === null || item === void 0 ? void 0 : item.liquidity) !== null && typeof (item === null || item === void 0 ? void 0 : item.liquidity) === 'object' ? item.liquidity.underlying : item === null || item === void 0 ? void 0 : item.liquidity;
|
|
98
|
+
if (underlying !== undefined && underlying !== null) {
|
|
99
|
+
liquidityByAddress[item.address.toLowerCase()] = String(underlying);
|
|
92
100
|
}
|
|
93
101
|
});
|
|
94
102
|
})));
|
|
@@ -102,7 +110,19 @@ const getBatchedViemProvider = (provider, network) => (0, viem_1.getViemProvider
|
|
|
102
110
|
},
|
|
103
111
|
},
|
|
104
112
|
});
|
|
105
|
-
|
|
113
|
+
// Vault V2 is ERC-4626 but has no decimals offset, so shares are converted with convertToAssets
|
|
114
|
+
const getMorphoVaultV2ChainData = (provider, morphoVault, accounts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
115
|
+
const vaultContract = (0, contracts_1.getErc4626ContractViem)(provider, morphoVault.address);
|
|
116
|
+
const [totalAssets, suppliedAssets] = yield Promise.all([
|
|
117
|
+
vaultContract.read.totalAssets(),
|
|
118
|
+
Promise.all(accounts.map((account) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
+
const share = yield vaultContract.read.balanceOf([account]);
|
|
120
|
+
return share === BigInt(0) ? BigInt(0) : vaultContract.read.convertToAssets([share]);
|
|
121
|
+
}))),
|
|
122
|
+
]);
|
|
123
|
+
return { totalAssets, suppliedAssets };
|
|
124
|
+
});
|
|
125
|
+
const getMorphoVaultV1ChainData = (provider, morphoVault, accounts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
126
|
const morphoVaultContract = (0, contracts_1.getMorphoVaultContractViem)(provider, morphoVault.address);
|
|
107
127
|
const shares = {};
|
|
108
128
|
const [totalAssets, totalSupply, decimals, decimalsOffset] = yield Promise.all([
|
|
@@ -119,11 +139,29 @@ const getMorphoVaultChainData = (provider, morphoVault, accounts) => __awaiter(v
|
|
|
119
139
|
totalAssets, totalSupply, decimals, decimalsOffset, shares,
|
|
120
140
|
};
|
|
121
141
|
});
|
|
142
|
+
const getMorphoVaultChainData = (provider, morphoVault, accounts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
143
|
+
return (morphoVault.version === types_1.MorphoVaultVersion.V2
|
|
144
|
+
? { v2: yield getMorphoVaultV2ChainData(provider, morphoVault, accounts) }
|
|
145
|
+
: { v1: yield getMorphoVaultV1ChainData(provider, morphoVault, accounts) });
|
|
146
|
+
});
|
|
122
147
|
const formatMorphoVaultData = (morphoVault, chainData, liquidityUnderlying, accounts) => {
|
|
123
|
-
const { totalAssets, totalSupply, decimals, decimalsOffset, shares, } = chainData;
|
|
124
|
-
const poolSize = (0, tokens_1.assetAmountInEth)(totalAssets.toString(), morphoVault.asset);
|
|
125
148
|
const liquidity = (0, tokens_1.assetAmountInEth)(liquidityUnderlying, morphoVault.asset);
|
|
126
149
|
const supplied = {};
|
|
150
|
+
if (chainData.v2) {
|
|
151
|
+
const { totalAssets, suppliedAssets } = chainData.v2;
|
|
152
|
+
accounts.forEach((account, i) => {
|
|
153
|
+
supplied[account.toLowerCase()] = (0, tokens_1.assetAmountInEth)(suppliedAssets[i].toString(), morphoVault.asset);
|
|
154
|
+
});
|
|
155
|
+
return {
|
|
156
|
+
poolSize: (0, tokens_1.assetAmountInEth)(totalAssets.toString(), morphoVault.asset),
|
|
157
|
+
supplied,
|
|
158
|
+
liquidity,
|
|
159
|
+
asset: morphoVault.asset,
|
|
160
|
+
optionType: morphoVault.type,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const { totalAssets, totalSupply, decimals, decimalsOffset, shares, } = chainData.v1;
|
|
164
|
+
const poolSize = (0, tokens_1.assetAmountInEth)(totalAssets.toString(), morphoVault.asset);
|
|
127
165
|
accounts.forEach((account) => {
|
|
128
166
|
const share = shares[account] || BigInt(0);
|
|
129
167
|
supplied[account.toLowerCase()] = new decimal_js_1.default(new decimal_js_1.default(share.toString()).mul(new decimal_js_1.default(totalAssets.toString()).add(1)).div(new decimal_js_1.default(totalSupply.toString()).add(Math.pow(10, decimalsOffset))).div(Math.pow(10, 18))
|
|
@@ -17,5 +17,7 @@ export declare const MORPHO_VAULT_STEAKHOUSE_PYUSD: MorphoVault;
|
|
|
17
17
|
export declare const MORPHO_VAULT_SMOKEHOUSE_USDT: MorphoVault;
|
|
18
18
|
export declare const MORPHO_VAULT_SMOKEHOUSE_USDC: MorphoVault;
|
|
19
19
|
export declare const MORPHO_VAULT_SMOKEHOUSE_DAI: MorphoVault;
|
|
20
|
+
export declare const MORPHO_VAULT_GAUNTLET_USDG_PREMIUM: MorphoVault;
|
|
21
|
+
export declare const MORPHO_VAULT_STEAKHOUSE_USDG_PRO: MorphoVault;
|
|
20
22
|
export declare const MORPHO_VAULTS: Record<MorphoVaultType, MorphoVault>;
|
|
21
23
|
export declare const getMorphoVault: (type: MorphoVaultType) => MorphoVault;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
3
|
+
exports.getMorphoVault = exports.MORPHO_VAULTS = exports.MORPHO_VAULT_STEAKHOUSE_USDG_PRO = exports.MORPHO_VAULT_GAUNTLET_USDG_PREMIUM = 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,
|
|
10
12
|
deploymentBlock: 18927491,
|
|
11
13
|
isLegacy: true,
|
|
12
14
|
};
|
|
@@ -15,6 +17,8 @@ exports.MORPHO_VAULT_GAUNTLET_USDC_CORE = {
|
|
|
15
17
|
name: 'Gauntlet USDC Core',
|
|
16
18
|
address: '0x8eB67A509616cd6A7c1B3c8C21D48FF57df3d458',
|
|
17
19
|
asset: 'USDC',
|
|
20
|
+
network: types_1.NetworkNumber.Eth,
|
|
21
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
18
22
|
deploymentBlock: 19777569,
|
|
19
23
|
isLegacy: true,
|
|
20
24
|
};
|
|
@@ -23,6 +27,8 @@ exports.MORPHO_VAULT_GAUNTLET_USDC_PRIME = {
|
|
|
23
27
|
name: 'Gauntlet USDC Prime',
|
|
24
28
|
address: '0xdd0f28e19C1780eb6396170735D45153D261490d',
|
|
25
29
|
asset: 'USDC',
|
|
30
|
+
network: types_1.NetworkNumber.Eth,
|
|
31
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
26
32
|
deploymentBlock: 19777569,
|
|
27
33
|
isLegacy: true,
|
|
28
34
|
};
|
|
@@ -31,6 +37,8 @@ exports.MORPHO_VAULT_RE7_WETH = {
|
|
|
31
37
|
name: 'RE7 WETH',
|
|
32
38
|
address: '0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0',
|
|
33
39
|
asset: 'WETH',
|
|
40
|
+
network: types_1.NetworkNumber.Eth,
|
|
41
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
34
42
|
deploymentBlock: 19121118,
|
|
35
43
|
isLegacy: true,
|
|
36
44
|
};
|
|
@@ -39,6 +47,8 @@ exports.MORPHO_VAULT_GAUNTLET_WETH_CORE = {
|
|
|
39
47
|
name: 'Gauntlet WETH Core',
|
|
40
48
|
address: '0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658',
|
|
41
49
|
asset: 'WETH',
|
|
50
|
+
network: types_1.NetworkNumber.Eth,
|
|
51
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
42
52
|
deploymentBlock: 19541126,
|
|
43
53
|
isLegacy: true,
|
|
44
54
|
};
|
|
@@ -47,6 +57,8 @@ exports.MORPHO_VAULT_GAUNTLET_WETH_PRIME = {
|
|
|
47
57
|
name: 'Gauntlet WETH Prime',
|
|
48
58
|
address: '0x2371e134e3455e0593363cBF89d3b6cf53740618',
|
|
49
59
|
asset: 'WETH',
|
|
60
|
+
network: types_1.NetworkNumber.Eth,
|
|
61
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
50
62
|
deploymentBlock: 19372149,
|
|
51
63
|
isLegacy: true,
|
|
52
64
|
};
|
|
@@ -55,6 +67,8 @@ exports.MORPHO_VAULT_BOOSTED_USDC = {
|
|
|
55
67
|
name: 'Boosted USDC',
|
|
56
68
|
address: '0xd63070114470f685b75B74D60EEc7c1113d33a3D',
|
|
57
69
|
asset: 'USDC',
|
|
70
|
+
network: types_1.NetworkNumber.Eth,
|
|
71
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
58
72
|
deploymentBlock: 20377233,
|
|
59
73
|
isLegacy: true,
|
|
60
74
|
};
|
|
@@ -63,6 +77,8 @@ exports.MORPHO_VAULT_FLAGSHIP_USDT = {
|
|
|
63
77
|
name: 'Flagship USDT',
|
|
64
78
|
address: '0x2C25f6C25770fFEC5959D34B94Bf898865e5D6b1',
|
|
65
79
|
asset: 'USDT',
|
|
80
|
+
network: types_1.NetworkNumber.Eth,
|
|
81
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
66
82
|
deploymentBlock: 19127039,
|
|
67
83
|
isLegacy: true,
|
|
68
84
|
};
|
|
@@ -71,6 +87,8 @@ exports.MORPHO_VAULT_GAUNTLET_USDA_CORE = {
|
|
|
71
87
|
name: 'Gauntlet USDA Core',
|
|
72
88
|
address: '0x125D41A6e5dbf455cD9Df8F80BCC6fd172D52Cc6',
|
|
73
89
|
asset: 'USDA',
|
|
90
|
+
network: types_1.NetworkNumber.Eth,
|
|
91
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
74
92
|
deploymentBlock: 19633608,
|
|
75
93
|
isLegacy: true,
|
|
76
94
|
};
|
|
@@ -79,6 +97,8 @@ exports.MORPHO_VAULT_GAUNTLET_USDT_PRIME = {
|
|
|
79
97
|
name: 'Gauntlet USDT Prime',
|
|
80
98
|
address: '0x8CB3649114051cA5119141a34C200D65dc0Faa73',
|
|
81
99
|
asset: 'USDT',
|
|
100
|
+
network: types_1.NetworkNumber.Eth,
|
|
101
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
82
102
|
deploymentBlock: 19486541,
|
|
83
103
|
isLegacy: true,
|
|
84
104
|
};
|
|
@@ -87,6 +107,8 @@ exports.MORPHO_VAULT_GAUNTLET_RESOLV_USDC = {
|
|
|
87
107
|
name: 'Gauntlet Resolv USDC',
|
|
88
108
|
address: '0x132E6C9C33A62D7727cd359b1f51e5B566E485Eb',
|
|
89
109
|
asset: 'USDC',
|
|
110
|
+
network: types_1.NetworkNumber.Eth,
|
|
111
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
90
112
|
deploymentBlock: 21487882,
|
|
91
113
|
isLegacy: true,
|
|
92
114
|
};
|
|
@@ -96,6 +118,8 @@ exports.MORPHO_VAULT_STEAKHOUSE_USDT = {
|
|
|
96
118
|
name: 'Steakhouse USDT',
|
|
97
119
|
address: '0xbEef047a543E45807105E51A8BBEFCc5950fcfBa',
|
|
98
120
|
asset: 'USDT',
|
|
121
|
+
network: types_1.NetworkNumber.Eth,
|
|
122
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
99
123
|
deploymentBlock: 19043398,
|
|
100
124
|
isLegacy: false,
|
|
101
125
|
};
|
|
@@ -104,6 +128,8 @@ exports.MORPHO_VAULT_STEAKHOUSE_USDC = {
|
|
|
104
128
|
name: 'Steakhouse USDC',
|
|
105
129
|
address: '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB',
|
|
106
130
|
asset: 'USDC',
|
|
131
|
+
network: types_1.NetworkNumber.Eth,
|
|
132
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
107
133
|
deploymentBlock: 18928285,
|
|
108
134
|
isLegacy: false,
|
|
109
135
|
};
|
|
@@ -112,6 +138,8 @@ exports.MORPHO_VAULT_STEAKHOUSE_ETH = {
|
|
|
112
138
|
name: 'Steakhouse WETH',
|
|
113
139
|
address: '0xBEEf050ecd6a16c4e7bfFbB52Ebba7846C4b8cD4',
|
|
114
140
|
asset: 'WETH',
|
|
141
|
+
network: types_1.NetworkNumber.Eth,
|
|
142
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
115
143
|
deploymentBlock: 19380443,
|
|
116
144
|
isLegacy: false,
|
|
117
145
|
};
|
|
@@ -120,6 +148,8 @@ exports.MORPHO_VAULT_STEAKHOUSE_PYUSD = {
|
|
|
120
148
|
name: 'Steakhouse PYUSD',
|
|
121
149
|
address: '0xbEEF02e5E13584ab96848af90261f0C8Ee04722a',
|
|
122
150
|
asset: 'PYUSD',
|
|
151
|
+
network: types_1.NetworkNumber.Eth,
|
|
152
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
123
153
|
deploymentBlock: 19043398,
|
|
124
154
|
isLegacy: false,
|
|
125
155
|
};
|
|
@@ -129,6 +159,8 @@ exports.MORPHO_VAULT_SMOKEHOUSE_USDT = {
|
|
|
129
159
|
name: 'Smokehouse USDT',
|
|
130
160
|
address: '0xA0804346780b4c2e3bE118ac957D1DB82F9d7484',
|
|
131
161
|
asset: 'USDT',
|
|
162
|
+
network: types_1.NetworkNumber.Eth,
|
|
163
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
132
164
|
deploymentBlock: 21522238,
|
|
133
165
|
isLegacy: false,
|
|
134
166
|
};
|
|
@@ -137,6 +169,8 @@ exports.MORPHO_VAULT_SMOKEHOUSE_USDC = {
|
|
|
137
169
|
name: 'Smokehouse USDC',
|
|
138
170
|
address: '0xBEeFFF209270748ddd194831b3fa287a5386f5bC',
|
|
139
171
|
asset: 'USDC',
|
|
172
|
+
network: types_1.NetworkNumber.Eth,
|
|
173
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
140
174
|
deploymentBlock: 21337719,
|
|
141
175
|
isLegacy: false,
|
|
142
176
|
};
|
|
@@ -145,9 +179,32 @@ exports.MORPHO_VAULT_SMOKEHOUSE_DAI = {
|
|
|
145
179
|
name: 'Smokehouse DAI',
|
|
146
180
|
address: '0xbeeFfF68CC520D68f82641EFF84330C631E2490E',
|
|
147
181
|
asset: 'DAI',
|
|
182
|
+
network: types_1.NetworkNumber.Eth,
|
|
183
|
+
version: types_1.MorphoVaultVersion.V1,
|
|
148
184
|
deploymentBlock: 21343808,
|
|
149
185
|
isLegacy: false,
|
|
150
186
|
};
|
|
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
|
+
};
|
|
151
208
|
exports.MORPHO_VAULTS = {
|
|
152
209
|
[types_1.MorphoVaultType.MorphoVaultFlagshipEth]: exports.MORPHO_VAULT_FLAGSHIP_ETH,
|
|
153
210
|
[types_1.MorphoVaultType.MorphoVaultGauntletUSDCCore]: exports.MORPHO_VAULT_GAUNTLET_USDC_CORE,
|
|
@@ -169,6 +226,9 @@ exports.MORPHO_VAULTS = {
|
|
|
169
226
|
[types_1.MorphoVaultType.MorphoVaultSmokehouseUSDT]: exports.MORPHO_VAULT_SMOKEHOUSE_USDT,
|
|
170
227
|
[types_1.MorphoVaultType.MorphoVaultSmokehouseUSDC]: exports.MORPHO_VAULT_SMOKEHOUSE_USDC,
|
|
171
228
|
[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,
|
|
172
232
|
};
|
|
173
233
|
const getMorphoVault = (type) => exports.MORPHO_VAULTS[type];
|
|
174
234
|
exports.getMorphoVault = getMorphoVault;
|
package/cjs/spark/index.js
CHANGED
|
@@ -88,6 +88,7 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
88
88
|
collateralAssets: eModeCategoriesData[emodeCategoryId] ? [...eModeCategoriesData[emodeCategoryId].collateralAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
|
|
89
89
|
borrowAssets: eModeCategoriesData[emodeCategoryId] ? [...eModeCategoriesData[emodeCategoryId].borrowAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
|
|
90
90
|
ltvZeroAssets: [],
|
|
91
|
+
isolated: false,
|
|
91
92
|
};
|
|
92
93
|
return ({
|
|
93
94
|
symbol: selectedMarket.assets[i],
|