@1delta/margin-fetcher 0.0.159 → 0.0.160
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 +320 -3
- 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;
|
|
@@ -13288,7 +13329,6 @@ function convertSumerEntry(opts) {
|
|
|
13288
13329
|
cToken,
|
|
13289
13330
|
exchangeRate: exchangeRateRaw.toString(),
|
|
13290
13331
|
cTokenDecimals: Number(currentEntry.cTokenDecimals?.toString()),
|
|
13291
|
-
groupId,
|
|
13292
13332
|
sumer: {
|
|
13293
13333
|
isCToken: Boolean(currentEntry.isCToken),
|
|
13294
13334
|
...groups[groupId] ?? groups[0]
|
|
@@ -26489,6 +26529,283 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
|
|
|
26489
26529
|
return liqCopy;
|
|
26490
26530
|
}
|
|
26491
26531
|
|
|
26532
|
+
// src/lending/margin/sumer/deposit.ts
|
|
26533
|
+
function computeSumerDepositDelta(amount, price, targetMarketUid, balanceData2, positions, createNewSubAccount = false, apr, yieldParams) {
|
|
26534
|
+
const base = createNewSubAccount ? EMPTY_BALANCE : balanceData2;
|
|
26535
|
+
const dollarAmount = amount * price;
|
|
26536
|
+
const updatedPositions = applyPositionDelta(
|
|
26537
|
+
positions,
|
|
26538
|
+
targetMarketUid,
|
|
26539
|
+
dollarAmount,
|
|
26540
|
+
0,
|
|
26541
|
+
0
|
|
26542
|
+
);
|
|
26543
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26544
|
+
const groups = Object.values(groupRatesMap);
|
|
26545
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26546
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26547
|
+
const postTrade = {
|
|
26548
|
+
...base,
|
|
26549
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26550
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26551
|
+
collateral: waterfallCollateral,
|
|
26552
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26553
|
+
deposits: base.deposits + dollarAmount,
|
|
26554
|
+
debt: base.debt,
|
|
26555
|
+
adjustedDebt: base.debt,
|
|
26556
|
+
nav: base.deposits + dollarAmount - base.debt
|
|
26557
|
+
};
|
|
26558
|
+
const result = computePostTradeMetrics(base, postTrade);
|
|
26559
|
+
if (apr && yieldParams) {
|
|
26560
|
+
const cashFlowDeposits = base.deposits * apr.depositApr;
|
|
26561
|
+
const cashFlowDebt = base.debt * apr.borrowApr;
|
|
26562
|
+
const rewardFlowDeposits = base.deposits * (apr.rewardDepositApr ?? 0);
|
|
26563
|
+
const rewardFlowDebt = base.debt * (apr.rewardBorrowApr ?? 0);
|
|
26564
|
+
const intrinsicFlowDeposits = base.deposits * apr.intrinsicDepositApr;
|
|
26565
|
+
const intrinsicFlowDebt = base.debt * apr.intrinsicBorrowApr;
|
|
26566
|
+
const newApr = { ...apr };
|
|
26567
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldDeposit(
|
|
26568
|
+
dollarAmount,
|
|
26569
|
+
cashFlowDeposits,
|
|
26570
|
+
cashFlowDebt,
|
|
26571
|
+
base.deposits,
|
|
26572
|
+
base.debt,
|
|
26573
|
+
yieldParams
|
|
26574
|
+
);
|
|
26575
|
+
newApr.rewards = getRewardYieldDeposit(
|
|
26576
|
+
dollarAmount,
|
|
26577
|
+
rewardFlowDeposits,
|
|
26578
|
+
rewardFlowDebt,
|
|
26579
|
+
base.deposits,
|
|
26580
|
+
base.debt,
|
|
26581
|
+
yieldParams
|
|
26582
|
+
);
|
|
26583
|
+
[
|
|
26584
|
+
newApr.intrinsicBorrowApr,
|
|
26585
|
+
newApr.intrinsicDepositApr,
|
|
26586
|
+
newApr.intrinsicApr
|
|
26587
|
+
] = getIntrinsicYieldDeposit(
|
|
26588
|
+
dollarAmount,
|
|
26589
|
+
intrinsicFlowDeposits,
|
|
26590
|
+
intrinsicFlowDebt,
|
|
26591
|
+
base.deposits,
|
|
26592
|
+
base.debt,
|
|
26593
|
+
yieldParams
|
|
26594
|
+
);
|
|
26595
|
+
result.aprDataPost = newApr;
|
|
26596
|
+
}
|
|
26597
|
+
return result;
|
|
26598
|
+
}
|
|
26599
|
+
|
|
26600
|
+
// src/lending/margin/sumer/withdraw.ts
|
|
26601
|
+
function computeSumerWithdrawDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams) {
|
|
26602
|
+
const dollarAmount = amount * price;
|
|
26603
|
+
const updatedPositions = applyPositionDelta(
|
|
26604
|
+
positions,
|
|
26605
|
+
targetMarketUid,
|
|
26606
|
+
-dollarAmount,
|
|
26607
|
+
0,
|
|
26608
|
+
0
|
|
26609
|
+
);
|
|
26610
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26611
|
+
const groups = Object.values(groupRatesMap);
|
|
26612
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26613
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26614
|
+
const postTrade = {
|
|
26615
|
+
...balanceData2,
|
|
26616
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26617
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26618
|
+
collateral: waterfallCollateral,
|
|
26619
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26620
|
+
deposits: balanceData2.deposits - dollarAmount,
|
|
26621
|
+
debt: balanceData2.debt,
|
|
26622
|
+
adjustedDebt: balanceData2.debt,
|
|
26623
|
+
nav: balanceData2.deposits - dollarAmount - balanceData2.debt
|
|
26624
|
+
};
|
|
26625
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26626
|
+
if (apr && yieldParams) {
|
|
26627
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26628
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26629
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26630
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26631
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26632
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26633
|
+
const newApr = { ...apr };
|
|
26634
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldWithdraw(
|
|
26635
|
+
dollarAmount,
|
|
26636
|
+
cashFlowDeposits,
|
|
26637
|
+
cashFlowDebt,
|
|
26638
|
+
balanceData2.deposits,
|
|
26639
|
+
balanceData2.debt,
|
|
26640
|
+
yieldParams
|
|
26641
|
+
);
|
|
26642
|
+
newApr.rewards = getRewardYieldWithdraw(
|
|
26643
|
+
dollarAmount,
|
|
26644
|
+
rewardFlowDeposits,
|
|
26645
|
+
rewardFlowDebt,
|
|
26646
|
+
balanceData2.deposits,
|
|
26647
|
+
balanceData2.debt,
|
|
26648
|
+
yieldParams
|
|
26649
|
+
);
|
|
26650
|
+
[
|
|
26651
|
+
newApr.intrinsicBorrowApr,
|
|
26652
|
+
newApr.intrinsicDepositApr,
|
|
26653
|
+
newApr.intrinsicApr
|
|
26654
|
+
] = getIntrinsicYieldWithdraw(
|
|
26655
|
+
dollarAmount,
|
|
26656
|
+
intrinsicFlowDeposits,
|
|
26657
|
+
intrinsicFlowDebt,
|
|
26658
|
+
balanceData2.deposits,
|
|
26659
|
+
balanceData2.debt,
|
|
26660
|
+
yieldParams
|
|
26661
|
+
);
|
|
26662
|
+
result.aprDataPost = newApr;
|
|
26663
|
+
}
|
|
26664
|
+
return result;
|
|
26665
|
+
}
|
|
26666
|
+
|
|
26667
|
+
// src/lending/margin/sumer/borrow.ts
|
|
26668
|
+
function computeSumerBorrowDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams, irMode) {
|
|
26669
|
+
const dollarAmount = amount * price;
|
|
26670
|
+
const mode = irMode ?? 2;
|
|
26671
|
+
const updatedPositions = applyPositionDelta(
|
|
26672
|
+
positions,
|
|
26673
|
+
targetMarketUid,
|
|
26674
|
+
0,
|
|
26675
|
+
mode === 1 ? 0 : dollarAmount,
|
|
26676
|
+
mode === 1 ? dollarAmount : 0
|
|
26677
|
+
);
|
|
26678
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26679
|
+
const groups = Object.values(groupRatesMap);
|
|
26680
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26681
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26682
|
+
const newDebt = balanceData2.debt + dollarAmount;
|
|
26683
|
+
const postTrade = {
|
|
26684
|
+
...balanceData2,
|
|
26685
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26686
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26687
|
+
collateral: waterfallCollateral,
|
|
26688
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26689
|
+
deposits: balanceData2.deposits,
|
|
26690
|
+
debt: newDebt,
|
|
26691
|
+
adjustedDebt: newDebt,
|
|
26692
|
+
nav: balanceData2.nav - dollarAmount
|
|
26693
|
+
};
|
|
26694
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26695
|
+
if (apr && yieldParams) {
|
|
26696
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26697
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26698
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26699
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26700
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26701
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26702
|
+
const newApr = { ...apr };
|
|
26703
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldBorrow(
|
|
26704
|
+
dollarAmount,
|
|
26705
|
+
mode,
|
|
26706
|
+
cashFlowDeposits,
|
|
26707
|
+
cashFlowDebt,
|
|
26708
|
+
balanceData2.deposits,
|
|
26709
|
+
balanceData2.debt,
|
|
26710
|
+
yieldParams
|
|
26711
|
+
);
|
|
26712
|
+
newApr.rewards = getRewardYieldBorrow(
|
|
26713
|
+
dollarAmount,
|
|
26714
|
+
mode,
|
|
26715
|
+
rewardFlowDeposits,
|
|
26716
|
+
rewardFlowDebt,
|
|
26717
|
+
balanceData2.deposits,
|
|
26718
|
+
balanceData2.debt,
|
|
26719
|
+
yieldParams
|
|
26720
|
+
);
|
|
26721
|
+
[
|
|
26722
|
+
newApr.intrinsicBorrowApr,
|
|
26723
|
+
newApr.intrinsicDepositApr,
|
|
26724
|
+
newApr.intrinsicApr
|
|
26725
|
+
] = getIntrinsicYieldBorrow(
|
|
26726
|
+
dollarAmount,
|
|
26727
|
+
intrinsicFlowDeposits,
|
|
26728
|
+
intrinsicFlowDebt,
|
|
26729
|
+
balanceData2.deposits,
|
|
26730
|
+
balanceData2.debt,
|
|
26731
|
+
yieldParams
|
|
26732
|
+
);
|
|
26733
|
+
result.aprDataPost = newApr;
|
|
26734
|
+
}
|
|
26735
|
+
return result;
|
|
26736
|
+
}
|
|
26737
|
+
|
|
26738
|
+
// src/lending/margin/sumer/repay.ts
|
|
26739
|
+
function computeSumerRepayDelta(amount, price, targetMarketUid, balanceData2, positions, apr, yieldParams, irMode) {
|
|
26740
|
+
const dollarAmount = amount * price;
|
|
26741
|
+
const mode = irMode ?? 2;
|
|
26742
|
+
const updatedPositions = applyPositionDelta(
|
|
26743
|
+
positions,
|
|
26744
|
+
targetMarketUid,
|
|
26745
|
+
0,
|
|
26746
|
+
mode === 1 ? 0 : -dollarAmount,
|
|
26747
|
+
mode === 1 ? -dollarAmount : 0
|
|
26748
|
+
);
|
|
26749
|
+
const { groupRatesMap, gAccum, gAccumAll } = buildSumerAccumulators(updatedPositions);
|
|
26750
|
+
const groups = Object.values(groupRatesMap);
|
|
26751
|
+
const waterfallCollateral = computeSumerWaterfall(groups, gAccum);
|
|
26752
|
+
const waterfallCollateralAll = computeSumerWaterfall(groups, gAccumAll);
|
|
26753
|
+
const newDebt = balanceData2.debt - dollarAmount;
|
|
26754
|
+
const postTrade = {
|
|
26755
|
+
...balanceData2,
|
|
26756
|
+
borrowDiscountedCollateral: waterfallCollateral,
|
|
26757
|
+
borrowDiscountedCollateralAllActive: waterfallCollateralAll,
|
|
26758
|
+
collateral: waterfallCollateral,
|
|
26759
|
+
collateralAllActive: waterfallCollateralAll,
|
|
26760
|
+
deposits: balanceData2.deposits,
|
|
26761
|
+
debt: newDebt,
|
|
26762
|
+
adjustedDebt: Math.max(0, newDebt),
|
|
26763
|
+
nav: balanceData2.nav + dollarAmount
|
|
26764
|
+
};
|
|
26765
|
+
const result = computePostTradeMetrics(balanceData2, postTrade);
|
|
26766
|
+
if (apr && yieldParams) {
|
|
26767
|
+
const cashFlowDeposits = balanceData2.deposits * apr.depositApr;
|
|
26768
|
+
const cashFlowDebt = balanceData2.debt * apr.borrowApr;
|
|
26769
|
+
const rewardFlowDeposits = balanceData2.deposits * (apr.rewardDepositApr ?? 0);
|
|
26770
|
+
const rewardFlowDebt = balanceData2.debt * (apr.rewardBorrowApr ?? 0);
|
|
26771
|
+
const intrinsicFlowDeposits = balanceData2.deposits * apr.intrinsicDepositApr;
|
|
26772
|
+
const intrinsicFlowDebt = balanceData2.debt * apr.intrinsicBorrowApr;
|
|
26773
|
+
const newApr = { ...apr };
|
|
26774
|
+
[newApr.borrowApr, newApr.depositApr, newApr.apr] = getOrganicYieldRepay(
|
|
26775
|
+
dollarAmount,
|
|
26776
|
+
mode,
|
|
26777
|
+
cashFlowDeposits,
|
|
26778
|
+
cashFlowDebt,
|
|
26779
|
+
balanceData2.deposits,
|
|
26780
|
+
balanceData2.debt,
|
|
26781
|
+
yieldParams
|
|
26782
|
+
);
|
|
26783
|
+
newApr.rewards = getRewardYieldRepay(
|
|
26784
|
+
dollarAmount,
|
|
26785
|
+
mode,
|
|
26786
|
+
rewardFlowDeposits,
|
|
26787
|
+
rewardFlowDebt,
|
|
26788
|
+
balanceData2.deposits,
|
|
26789
|
+
balanceData2.debt,
|
|
26790
|
+
yieldParams
|
|
26791
|
+
);
|
|
26792
|
+
[
|
|
26793
|
+
newApr.intrinsicBorrowApr,
|
|
26794
|
+
newApr.intrinsicDepositApr,
|
|
26795
|
+
newApr.intrinsicApr
|
|
26796
|
+
] = getIntrinsicYieldRepay(
|
|
26797
|
+
dollarAmount,
|
|
26798
|
+
intrinsicFlowDeposits,
|
|
26799
|
+
intrinsicFlowDebt,
|
|
26800
|
+
balanceData2.deposits,
|
|
26801
|
+
balanceData2.debt,
|
|
26802
|
+
yieldParams
|
|
26803
|
+
);
|
|
26804
|
+
result.aprDataPost = newApr;
|
|
26805
|
+
}
|
|
26806
|
+
return result;
|
|
26807
|
+
}
|
|
26808
|
+
|
|
26492
26809
|
// src/utils/rpcParse.ts
|
|
26493
26810
|
function parseRawRpcResponses(responses, callMetadata, allowFailure = true) {
|
|
26494
26811
|
const sortedResponses = [...responses].sort((a, b) => a.id - b.id);
|
|
@@ -26849,6 +27166,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
26849
27166
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
26850
27167
|
}
|
|
26851
27168
|
|
|
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 };
|
|
27169
|
+
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
27170
|
//# sourceMappingURL=index.js.map
|
|
26854
27171
|
//# sourceMappingURL=index.js.map
|