@1delta/margin-fetcher 0.0.159 → 0.0.161
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +339 -6
- package/dist/index.js.map +1 -1
- package/dist/lending/margin/sumer/borrow.d.ts +12 -0
- package/dist/lending/margin/sumer/borrow.d.ts.map +1 -0
- package/dist/lending/margin/sumer/deposit.d.ts +11 -0
- package/dist/lending/margin/sumer/deposit.d.ts.map +1 -0
- package/dist/lending/margin/sumer/index.d.ts +7 -0
- package/dist/lending/margin/sumer/index.d.ts.map +1 -0
- package/dist/lending/margin/sumer/repay.d.ts +12 -0
- package/dist/lending/margin/sumer/repay.d.ts.map +1 -0
- package/dist/lending/margin/sumer/types.d.ts +27 -0
- package/dist/lending/margin/sumer/types.d.ts.map +1 -0
- package/dist/lending/margin/sumer/waterfall.d.ts +31 -0
- package/dist/lending/margin/sumer/waterfall.d.ts.map +1 -0
- package/dist/lending/margin/sumer/withdraw.d.ts +10 -0
- package/dist/lending/margin/sumer/withdraw.d.ts.map +1 -0
- package/dist/lending/public-data/compound-v2/publicCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/utils/createSumerUserState.d.ts.map +1 -1
- package/dist/types/lender/compound-v2-types.d.ts +3 -0
- package/dist/types/lender/compound-v2-types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export { computeDepositDelta, computeWithdrawDelta, computeBorrowDelta, computeR
|
|
|
10
10
|
export type { PostTradeMetrics } from './lending/margin/base';
|
|
11
11
|
export { computeOpenTradeDeltas, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeZapTradeDeltas, positivePart, nanTo, keysFromMaps, noOpResult, buildLoopResult, } from './lending/margin/loop';
|
|
12
12
|
export type { LoopPostTradeMetrics, LendingMode, } from './lending/margin/loop';
|
|
13
|
+
export { computeSumerDepositDelta, computeSumerWithdrawDelta, computeSumerBorrowDelta, computeSumerRepayDelta, computeSumerWaterfall, buildSumerAccumulators, applyPositionDelta, } from './lending/margin/sumer';
|
|
14
|
+
export type { SumerPositionInput, GroupAccumulator } from './lending/margin/sumer';
|
|
13
15
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
14
16
|
export { type PreparedCall, type RawRpcCall, type RawRpcBatch, type MulticallRpcBatch, createRawRpcCalls, createMulticallRpcCall, multicall3Abi, } from './utils/rpcCall';
|
|
15
17
|
export { type RawRpcResponse, parseRawRpcResponses, parseRawRpcBatchResponses, parseMulticallRpcResponses, } from './utils/rpcParse';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10985,7 +10985,7 @@ function createBaseTypeUserState(payload, lenderData, totalDeposits24h = 0, tota
|
|
|
10985
10985
|
};
|
|
10986
10986
|
}
|
|
10987
10987
|
|
|
10988
|
-
// src/lending/
|
|
10988
|
+
// src/lending/margin/sumer/waterfall.ts
|
|
10989
10989
|
function computeSumerWaterfall(groups, accum) {
|
|
10990
10990
|
let total = 0;
|
|
10991
10991
|
for (const g of groups) {
|
|
@@ -11023,6 +11023,47 @@ function computeSumerWaterfall(groups, accum) {
|
|
|
11023
11023
|
}
|
|
11024
11024
|
return total;
|
|
11025
11025
|
}
|
|
11026
|
+
function buildSumerAccumulators(positions) {
|
|
11027
|
+
const groupRatesMap = {};
|
|
11028
|
+
const gAccum = {};
|
|
11029
|
+
const gAccumAll = {};
|
|
11030
|
+
for (const pos of positions) {
|
|
11031
|
+
const sm = pos.sumerMeta;
|
|
11032
|
+
const gId = sm.groupId;
|
|
11033
|
+
if (!groupRatesMap[gId]) groupRatesMap[gId] = sm;
|
|
11034
|
+
if (!gAccum[gId]) gAccum[gId] = { cDep: 0, sDep: 0, cDebt: 0, sDebt: 0 };
|
|
11035
|
+
if (!gAccumAll[gId])
|
|
11036
|
+
gAccumAll[gId] = { cDep: 0, sDep: 0, cDebt: 0, sDebt: 0 };
|
|
11037
|
+
const totalDebt = pos.debtUSD + pos.debtStableUSD;
|
|
11038
|
+
if (sm.isCToken) {
|
|
11039
|
+
if (pos.collateralActive && pos.collateralEnabled)
|
|
11040
|
+
gAccum[gId].cDep += pos.depositsUSD;
|
|
11041
|
+
if (pos.collateralActive) gAccumAll[gId].cDep += pos.depositsUSD;
|
|
11042
|
+
gAccum[gId].cDebt += totalDebt;
|
|
11043
|
+
gAccumAll[gId].cDebt += totalDebt;
|
|
11044
|
+
} else {
|
|
11045
|
+
if (pos.collateralActive && pos.collateralEnabled)
|
|
11046
|
+
gAccum[gId].sDep += pos.depositsUSD;
|
|
11047
|
+
if (pos.collateralActive) gAccumAll[gId].sDep += pos.depositsUSD;
|
|
11048
|
+
gAccum[gId].sDebt += totalDebt;
|
|
11049
|
+
gAccumAll[gId].sDebt += totalDebt;
|
|
11050
|
+
}
|
|
11051
|
+
}
|
|
11052
|
+
return { groupRatesMap, gAccum, gAccumAll };
|
|
11053
|
+
}
|
|
11054
|
+
function applyPositionDelta(positions, targetMarketUid, depositsDeltaUSD, debtDeltaUSD, debtStableDeltaUSD) {
|
|
11055
|
+
return positions.map((p) => {
|
|
11056
|
+
if (p.marketUid !== targetMarketUid) return p;
|
|
11057
|
+
return {
|
|
11058
|
+
...p,
|
|
11059
|
+
depositsUSD: p.depositsUSD + depositsDeltaUSD,
|
|
11060
|
+
debtUSD: p.debtUSD + debtDeltaUSD,
|
|
11061
|
+
debtStableUSD: p.debtStableUSD + debtStableDeltaUSD
|
|
11062
|
+
};
|
|
11063
|
+
});
|
|
11064
|
+
}
|
|
11065
|
+
|
|
11066
|
+
// src/lending/user-data/utils/createSumerUserState.ts
|
|
11026
11067
|
function createSumerUserState(payload, lenderData, totalDeposits24h = 0, totalDebt24h = 0) {
|
|
11027
11068
|
const assetKeys = getMarketUidsFromMeta(lenderData);
|
|
11028
11069
|
const { chainId, account } = payload;
|
|
@@ -13221,7 +13262,16 @@ function convertSingleEntry(opts) {
|
|
|
13221
13262
|
};
|
|
13222
13263
|
}
|
|
13223
13264
|
function convertSumerEntry(opts) {
|
|
13224
|
-
const {
|
|
13265
|
+
const {
|
|
13266
|
+
entryRaw,
|
|
13267
|
+
asset,
|
|
13268
|
+
chainId,
|
|
13269
|
+
lender,
|
|
13270
|
+
prices,
|
|
13271
|
+
additionalYields,
|
|
13272
|
+
cToken,
|
|
13273
|
+
groups
|
|
13274
|
+
} = opts;
|
|
13225
13275
|
const decs = asset.decimals;
|
|
13226
13276
|
const currentEntry = readSumerCTokenMetadata(entryRaw, asset);
|
|
13227
13277
|
const exchangeRateRaw = currentEntry.exchangeRateCurrent ?? 0n;
|
|
@@ -13241,10 +13291,16 @@ function convertSumerEntry(opts) {
|
|
|
13241
13291
|
const marketUid = createMarketUid(chainId, lender, cToken);
|
|
13242
13292
|
const groupId = currentEntry.groupId;
|
|
13243
13293
|
const intraRate = Number(
|
|
13244
|
-
parseRawAmount(
|
|
13294
|
+
parseRawAmount(
|
|
13295
|
+
currentEntry.intraRate?.toString(),
|
|
13296
|
+
RESERVE_MANTISSA_DECIMALS
|
|
13297
|
+
)
|
|
13245
13298
|
);
|
|
13246
13299
|
const interRate = Number(
|
|
13247
|
-
parseRawAmount(
|
|
13300
|
+
parseRawAmount(
|
|
13301
|
+
currentEntry.interRate?.toString(),
|
|
13302
|
+
RESERVE_MANTISSA_DECIMALS
|
|
13303
|
+
)
|
|
13248
13304
|
);
|
|
13249
13305
|
const config = {};
|
|
13250
13306
|
for (let gId = 0; gId < SUMER_GROUP_COUNT; gId++) {
|
|
@@ -13288,7 +13344,6 @@ function convertSumerEntry(opts) {
|
|
|
13288
13344
|
cToken,
|
|
13289
13345
|
exchangeRate: exchangeRateRaw.toString(),
|
|
13290
13346
|
cTokenDecimals: Number(currentEntry.cTokenDecimals?.toString()),
|
|
13291
|
-
groupId,
|
|
13292
13347
|
sumer: {
|
|
13293
13348
|
isCToken: Boolean(currentEntry.isCToken),
|
|
13294
13349
|
...groups[groupId] ?? groups[0]
|
|
@@ -13315,6 +13370,7 @@ var getCompoundV2DataConverter = (lender, chainId, prices, additionalYields, tok
|
|
|
13315
13370
|
if (!cToken || !underlying) continue;
|
|
13316
13371
|
const poolId = underlying;
|
|
13317
13372
|
const asset = tokenList[poolId];
|
|
13373
|
+
if (!asset) continue;
|
|
13318
13374
|
const entryRaw = data[i];
|
|
13319
13375
|
out.data[poolId] = convertSumerEntry({
|
|
13320
13376
|
entryRaw,
|
|
@@ -26489,6 +26545,283 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
|
|
|
26489
26545
|
return liqCopy;
|
|
26490
26546
|
}
|
|
26491
26547
|
|
|
26548
|
+
// src/lending/margin/sumer/deposit.ts
|
|
26549
|
+
function computeSumerDepositDelta(amount, price, targetMarketUid, balanceData2, positions, createNewSubAccount = false, apr, yieldParams) {
|
|
26550
|
+
const base = createNewSubAccount ? EMPTY_BALANCE : balanceData2;
|
|
26551
|
+
const dollarAmount = amount * price;
|
|
26552
|
+
const updatedPositions = applyPositionDelta(
|
|
26553
|
+
positions,
|
|
26554
|
+
targetMarketUid,
|
|
26555
|
+
dollarAmount,
|
|
26556
|
+
0,
|
|
26557
|
+
0
|
|
26558
|
+
);
|
|
26559
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26560
|
+
const groups = Object.values(groupRatesMap);
|
|
26561
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26562
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26563
|
+
const postTrade = {
|
|
26564
|
+
...base,
|
|
26565
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26566
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26567
|
+
collateral: waterfallCollateral,
|
|
26568
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26569
|
+
deposits: base.deposits + dollarAmount,
|
|
26570
|
+
debt: base.debt,
|
|
26571
|
+
adjustedDebt: base.debt,
|
|
26572
|
+
nav: base.deposits + dollarAmount - base.debt
|
|
26573
|
+
};
|
|
26574
|
+
const result = computePostTradeMetrics(base, postTrade);
|
|
26575
|
+
if (apr && yieldParams) {
|
|
26576
|
+
const cashFlowDeposits = base.deposits * apr.depositApr;
|
|
26577
|
+
const cashFlowDebt = base.debt * apr.borrowApr;
|
|
26578
|
+
const rewardFlowDeposits = base.deposits * (apr.rewardDepositApr ?? 0);
|
|
26579
|
+
const rewardFlowDebt = base.debt * (apr.rewardBorrowApr ?? 0);
|
|
26580
|
+
const intrinsicFlowDeposits = base.deposits * apr.intrinsicDepositApr;
|
|
26581
|
+
const intrinsicFlowDebt = base.debt * apr.intrinsicBorrowApr;
|
|
26582
|
+
const newApr = { ...apr };
|
|
26583
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldDeposit(
|
|
26584
|
+
dollarAmount,
|
|
26585
|
+
cashFlowDeposits,
|
|
26586
|
+
cashFlowDebt,
|
|
26587
|
+
base.deposits,
|
|
26588
|
+
base.debt,
|
|
26589
|
+
yieldParams
|
|
26590
|
+
);
|
|
26591
|
+
newApr.rewards = getRewardYieldDeposit(
|
|
26592
|
+
dollarAmount,
|
|
26593
|
+
rewardFlowDeposits,
|
|
26594
|
+
rewardFlowDebt,
|
|
26595
|
+
base.deposits,
|
|
26596
|
+
base.debt,
|
|
26597
|
+
yieldParams
|
|
26598
|
+
);
|
|
26599
|
+
[
|
|
26600
|
+
newApr.intrinsicBorrowApr,
|
|
26601
|
+
newApr.intrinsicDepositApr,
|
|
26602
|
+
newApr.intrinsicApr
|
|
26603
|
+
] = getIntrinsicYieldDeposit(
|
|
26604
|
+
dollarAmount,
|
|
26605
|
+
intrinsicFlowDeposits,
|
|
26606
|
+
intrinsicFlowDebt,
|
|
26607
|
+
base.deposits,
|
|
26608
|
+
base.debt,
|
|
26609
|
+
yieldParams
|
|
26610
|
+
);
|
|
26611
|
+
result.aprDataPost = newApr;
|
|
26612
|
+
}
|
|
26613
|
+
return result;
|
|
26614
|
+
}
|
|
26615
|
+
|
|
26616
|
+
// src/lending/margin/sumer/withdraw.ts
|
|
26617
|
+
function computeSumerWithdrawDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams) {
|
|
26618
|
+
const dollarAmount = amount * price;
|
|
26619
|
+
const updatedPositions = applyPositionDelta(
|
|
26620
|
+
positions,
|
|
26621
|
+
targetMarketUid,
|
|
26622
|
+
-dollarAmount,
|
|
26623
|
+
0,
|
|
26624
|
+
0
|
|
26625
|
+
);
|
|
26626
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26627
|
+
const groups = Object.values(groupRatesMap);
|
|
26628
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26629
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26630
|
+
const postTrade = {
|
|
26631
|
+
...balanceData2,
|
|
26632
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26633
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26634
|
+
collateral: waterfallCollateral,
|
|
26635
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26636
|
+
deposits: balanceData2.deposits - dollarAmount,
|
|
26637
|
+
debt: balanceData2.debt,
|
|
26638
|
+
adjustedDebt: balanceData2.debt,
|
|
26639
|
+
nav: balanceData2.deposits - dollarAmount - balanceData2.debt
|
|
26640
|
+
};
|
|
26641
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26642
|
+
if (apr && yieldParams) {
|
|
26643
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26644
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26645
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26646
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26647
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26648
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26649
|
+
const newApr = { ...apr };
|
|
26650
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldWithdraw(
|
|
26651
|
+
dollarAmount,
|
|
26652
|
+
cashFlowDeposits,
|
|
26653
|
+
cashFlowDebt,
|
|
26654
|
+
balanceData2.deposits,
|
|
26655
|
+
balanceData2.debt,
|
|
26656
|
+
yieldParams
|
|
26657
|
+
);
|
|
26658
|
+
newApr.rewards = getRewardYieldWithdraw(
|
|
26659
|
+
dollarAmount,
|
|
26660
|
+
rewardFlowDeposits,
|
|
26661
|
+
rewardFlowDebt,
|
|
26662
|
+
balanceData2.deposits,
|
|
26663
|
+
balanceData2.debt,
|
|
26664
|
+
yieldParams
|
|
26665
|
+
);
|
|
26666
|
+
[
|
|
26667
|
+
newApr.intrinsicBorrowApr,
|
|
26668
|
+
newApr.intrinsicDepositApr,
|
|
26669
|
+
newApr.intrinsicApr
|
|
26670
|
+
] = getIntrinsicYieldWithdraw(
|
|
26671
|
+
dollarAmount,
|
|
26672
|
+
intrinsicFlowDeposits,
|
|
26673
|
+
intrinsicFlowDebt,
|
|
26674
|
+
balanceData2.deposits,
|
|
26675
|
+
balanceData2.debt,
|
|
26676
|
+
yieldParams
|
|
26677
|
+
);
|
|
26678
|
+
result.aprDataPost = newApr;
|
|
26679
|
+
}
|
|
26680
|
+
return result;
|
|
26681
|
+
}
|
|
26682
|
+
|
|
26683
|
+
// src/lending/margin/sumer/borrow.ts
|
|
26684
|
+
function computeSumerBorrowDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams, irMode) {
|
|
26685
|
+
const dollarAmount = amount * price;
|
|
26686
|
+
const mode = irMode ?? 2;
|
|
26687
|
+
const updatedPositions = applyPositionDelta(
|
|
26688
|
+
positions,
|
|
26689
|
+
targetMarketUid,
|
|
26690
|
+
0,
|
|
26691
|
+
mode === 1 ? 0 : dollarAmount,
|
|
26692
|
+
mode === 1 ? dollarAmount : 0
|
|
26693
|
+
);
|
|
26694
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26695
|
+
const groups = Object.values(groupRatesMap);
|
|
26696
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26697
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26698
|
+
const newDebt = balanceData2.debt + dollarAmount;
|
|
26699
|
+
const postTrade = {
|
|
26700
|
+
...balanceData2,
|
|
26701
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26702
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26703
|
+
collateral: waterfallCollateral,
|
|
26704
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26705
|
+
deposits: balanceData2.deposits,
|
|
26706
|
+
debt: newDebt,
|
|
26707
|
+
adjustedDebt: newDebt,
|
|
26708
|
+
nav: balanceData2.nav - dollarAmount
|
|
26709
|
+
};
|
|
26710
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26711
|
+
if (apr && yieldParams) {
|
|
26712
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26713
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26714
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26715
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26716
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26717
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26718
|
+
const newApr = { ...apr };
|
|
26719
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldBorrow(
|
|
26720
|
+
dollarAmount,
|
|
26721
|
+
mode,
|
|
26722
|
+
cashFlowDeposits,
|
|
26723
|
+
cashFlowDebt,
|
|
26724
|
+
balanceData2.deposits,
|
|
26725
|
+
balanceData2.debt,
|
|
26726
|
+
yieldParams
|
|
26727
|
+
);
|
|
26728
|
+
newApr.rewards = getRewardYieldBorrow(
|
|
26729
|
+
dollarAmount,
|
|
26730
|
+
mode,
|
|
26731
|
+
rewardFlowDeposits,
|
|
26732
|
+
rewardFlowDebt,
|
|
26733
|
+
balanceData2.deposits,
|
|
26734
|
+
balanceData2.debt,
|
|
26735
|
+
yieldParams
|
|
26736
|
+
);
|
|
26737
|
+
[
|
|
26738
|
+
newApr.intrinsicBorrowApr,
|
|
26739
|
+
newApr.intrinsicDepositApr,
|
|
26740
|
+
newApr.intrinsicApr
|
|
26741
|
+
] = getIntrinsicYieldBorrow(
|
|
26742
|
+
dollarAmount,
|
|
26743
|
+
intrinsicFlowDeposits,
|
|
26744
|
+
intrinsicFlowDebt,
|
|
26745
|
+
balanceData2.deposits,
|
|
26746
|
+
balanceData2.debt,
|
|
26747
|
+
yieldParams
|
|
26748
|
+
);
|
|
26749
|
+
result.aprDataPost = newApr;
|
|
26750
|
+
}
|
|
26751
|
+
return result;
|
|
26752
|
+
}
|
|
26753
|
+
|
|
26754
|
+
// src/lending/margin/sumer/repay.ts
|
|
26755
|
+
function computeSumerRepayDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams, irMode) {
|
|
26756
|
+
const dollarAmount = amount * price;
|
|
26757
|
+
const mode = irMode ?? 2;
|
|
26758
|
+
const updatedPositions = applyPositionDelta(
|
|
26759
|
+
positions,
|
|
26760
|
+
targetMarketUid,
|
|
26761
|
+
0,
|
|
26762
|
+
mode === 1 ? 0 : -dollarAmount,
|
|
26763
|
+
mode === 1 ? -dollarAmount : 0
|
|
26764
|
+
);
|
|
26765
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26766
|
+
const groups = Object.values(groupRatesMap);
|
|
26767
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26768
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26769
|
+
const newDebt = balanceData2.debt - dollarAmount;
|
|
26770
|
+
const postTrade = {
|
|
26771
|
+
...balanceData2,
|
|
26772
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26773
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26774
|
+
collateral: waterfallCollateral,
|
|
26775
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26776
|
+
deposits: balanceData2.deposits,
|
|
26777
|
+
debt: newDebt,
|
|
26778
|
+
adjustedDebt: Math.max(0, newDebt),
|
|
26779
|
+
nav: balanceData2.nav + dollarAmount
|
|
26780
|
+
};
|
|
26781
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26782
|
+
if (apr && yieldParams) {
|
|
26783
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26784
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26785
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26786
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26787
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26788
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26789
|
+
const newApr = { ...apr };
|
|
26790
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldRepay(
|
|
26791
|
+
dollarAmount,
|
|
26792
|
+
mode,
|
|
26793
|
+
cashFlowDeposits,
|
|
26794
|
+
cashFlowDebt,
|
|
26795
|
+
balanceData2.deposits,
|
|
26796
|
+
balanceData2.debt,
|
|
26797
|
+
yieldParams
|
|
26798
|
+
);
|
|
26799
|
+
newApr.rewards = getRewardYieldRepay(
|
|
26800
|
+
dollarAmount,
|
|
26801
|
+
mode,
|
|
26802
|
+
rewardFlowDeposits,
|
|
26803
|
+
rewardFlowDebt,
|
|
26804
|
+
balanceData2.deposits,
|
|
26805
|
+
balanceData2.debt,
|
|
26806
|
+
yieldParams
|
|
26807
|
+
);
|
|
26808
|
+
[
|
|
26809
|
+
newApr.intrinsicBorrowApr,
|
|
26810
|
+
newApr.intrinsicDepositApr,
|
|
26811
|
+
newApr.intrinsicApr
|
|
26812
|
+
] = getIntrinsicYieldRepay(
|
|
26813
|
+
dollarAmount,
|
|
26814
|
+
intrinsicFlowDeposits,
|
|
26815
|
+
intrinsicFlowDebt,
|
|
26816
|
+
balanceData2.deposits,
|
|
26817
|
+
balanceData2.debt,
|
|
26818
|
+
yieldParams
|
|
26819
|
+
);
|
|
26820
|
+
result.aprDataPost = newApr;
|
|
26821
|
+
}
|
|
26822
|
+
return result;
|
|
26823
|
+
}
|
|
26824
|
+
|
|
26492
26825
|
// src/utils/rpcParse.ts
|
|
26493
26826
|
function parseRawRpcResponses(responses, callMetadata, allowFailure = true) {
|
|
26494
26827
|
const sortedResponses = [...responses].sort((a, b) => a.id - b.id);
|
|
@@ -26849,6 +27182,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
26849
27182
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
26850
27183
|
}
|
|
26851
27184
|
|
|
26852
|
-
export { EMPTY_BALANCE, MORPHO_LENS, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, flattenToUSDPriceMap, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMorphoTypeMarketConverter, getTopPairs, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR, keysFromMaps, multicall3Abi, nanTo, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, unflattenLenderData };
|
|
27185
|
+
export { EMPTY_BALANCE, MORPHO_LENS, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, flattenToUSDPriceMap, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMorphoTypeMarketConverter, getTopPairs, isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR, keysFromMaps, multicall3Abi, nanTo, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, unflattenLenderData };
|
|
26853
27186
|
//# sourceMappingURL=index.js.map
|
|
26854
27187
|
//# sourceMappingURL=index.js.map
|