@1delta/margin-fetcher 0.0.190 → 0.0.192
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.js +68 -6
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/lista/getMarketsFromChain.d.ts.map +1 -1
- package/dist/lending/public-data/morpho/utils/evmParser.d.ts +2 -0
- package/dist/lending/public-data/morpho/utils/evmParser.d.ts.map +1 -1
- package/dist/lending/public-data/morpho/utils/mathLib.d.ts +10 -0
- package/dist/lending/public-data/morpho/utils/mathLib.d.ts.map +1 -1
- package/dist/types/lender/morpho-types.d.ts +4 -0
- package/dist/types/lender/morpho-types.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -10870,10 +10870,10 @@ var MORPHO_LENS = {
|
|
|
10870
10870
|
[Chain.KATANA]: "0xCe434378adacC51d54312c872113D687Ac19B516",
|
|
10871
10871
|
[Chain.HYPEREVM]: "0x6Bc6aCB905c1216B0119C87Bf9E178ce298310FA",
|
|
10872
10872
|
[Chain.SONEIUM]: "0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d",
|
|
10873
|
-
[Chain.ETHEREUM_MAINNET]: "
|
|
10873
|
+
[Chain.ETHEREUM_MAINNET]: "0xFc107f469A92c0de7B3105B802584CD6c7D710C2",
|
|
10874
10874
|
[Chain.PLASMA_MAINNET]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
|
|
10875
10875
|
[Chain.BERACHAIN]: "0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07",
|
|
10876
|
-
[Chain.BNB_SMART_CHAIN_MAINNET]: "
|
|
10876
|
+
[Chain.BNB_SMART_CHAIN_MAINNET]: "0x79f4061BF049c5c6CAC6bfe2415c2460815F4ac7",
|
|
10877
10877
|
// lista lens
|
|
10878
10878
|
[Chain.UNICHAIN]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
|
|
10879
10879
|
[Chain.SEI_NETWORK]: "0xcB6Eb8df68153cebF60E1872273Ef52075a5C297",
|
|
@@ -12341,7 +12341,7 @@ var MORPHO_RECORD_SIZE = 4 * FIELD_SIZES.addr + // loanToken, collateralToken, o
|
|
|
12341
12341
|
5 * FIELD_SIZES.u128 + // totals (4) + lastUpdate
|
|
12342
12342
|
1 * FIELD_SIZES.u128;
|
|
12343
12343
|
var LISTA_RECORD_SIZE = 7 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm, loanProvider, collateralProvider, broker
|
|
12344
|
-
|
|
12344
|
+
10 * FIELD_SIZES.u128 + // lltv, minLoan, totals (4), lastUpdate, fee, rateCap, rateFloor
|
|
12345
12345
|
3 * FIELD_SIZES.u256 + // priceLoanToken, priceCollateralToken, rateAtTarget
|
|
12346
12346
|
1;
|
|
12347
12347
|
function decodeMarkets(input) {
|
|
@@ -12448,6 +12448,10 @@ function decodeListaMarkets(bytes) {
|
|
|
12448
12448
|
o += FIELD_SIZES.u128;
|
|
12449
12449
|
const fee = readUintBE(bytes, o, FIELD_SIZES.u128);
|
|
12450
12450
|
o += FIELD_SIZES.u128;
|
|
12451
|
+
const rateCap = readUintBE(bytes, o, FIELD_SIZES.u128);
|
|
12452
|
+
o += FIELD_SIZES.u128;
|
|
12453
|
+
const rateFloor = readUintBE(bytes, o, FIELD_SIZES.u128);
|
|
12454
|
+
o += FIELD_SIZES.u128;
|
|
12451
12455
|
const hasWhitelist = bytes[o] === 1;
|
|
12452
12456
|
o += 1;
|
|
12453
12457
|
const loanProvider = readAddress(bytes, o, FIELD_SIZES.addr);
|
|
@@ -12467,6 +12471,8 @@ function decodeListaMarkets(bytes) {
|
|
|
12467
12471
|
loanTokenPrice,
|
|
12468
12472
|
collateralTokenPrice,
|
|
12469
12473
|
minLoan,
|
|
12474
|
+
rateCap,
|
|
12475
|
+
rateFloor,
|
|
12470
12476
|
hasWhitelist,
|
|
12471
12477
|
loanProvider,
|
|
12472
12478
|
collateralProvider,
|
|
@@ -12664,6 +12670,56 @@ var MathLib;
|
|
|
12664
12670
|
return borrowRate ? rateToApy(borrowRate) : 0n;
|
|
12665
12671
|
}
|
|
12666
12672
|
MathLib2.getBorrowApy = getBorrowApy;
|
|
12673
|
+
function getListaBorrowApy(rateAtTarget, utilization, _timestamp = Math.floor(Date.now() / 1e3), _lastUpdate, rateCap, rateFloor) {
|
|
12674
|
+
if (rateAtTarget == null || rateAtTarget === 0n) return 0n;
|
|
12675
|
+
const elapsed = BigInt(_timestamp) - BigInt(_lastUpdate);
|
|
12676
|
+
if (elapsed < 0n) return 0n;
|
|
12677
|
+
const { endBorrowRate } = _getListaBorrowRate(
|
|
12678
|
+
utilization,
|
|
12679
|
+
rateAtTarget,
|
|
12680
|
+
elapsed,
|
|
12681
|
+
rateCap,
|
|
12682
|
+
rateFloor
|
|
12683
|
+
);
|
|
12684
|
+
return rateToApy(endBorrowRate);
|
|
12685
|
+
}
|
|
12686
|
+
MathLib2.getListaBorrowApy = getListaBorrowApy;
|
|
12687
|
+
function _getListaBorrowRate(startUtilization, startRateAtTarget, elapsed, rateCap, rateFloor) {
|
|
12688
|
+
const errNormFactor = startUtilization > TARGET_UTILIZATION ? MathLib2.WAD - TARGET_UTILIZATION : TARGET_UTILIZATION;
|
|
12689
|
+
const err = MathLib2.wDivDown(
|
|
12690
|
+
startUtilization - TARGET_UTILIZATION,
|
|
12691
|
+
errNormFactor
|
|
12692
|
+
);
|
|
12693
|
+
let endRateAtTarget;
|
|
12694
|
+
if (startRateAtTarget === 0n) {
|
|
12695
|
+
endRateAtTarget = INITIAL_RATE_AT_TARGET;
|
|
12696
|
+
} else {
|
|
12697
|
+
const speed = MathLib2.wMulDown(ADJUSTMENT_SPEED, err);
|
|
12698
|
+
const linearAdaptation = speed * elapsed;
|
|
12699
|
+
if (linearAdaptation === 0n) {
|
|
12700
|
+
endRateAtTarget = startRateAtTarget;
|
|
12701
|
+
} else {
|
|
12702
|
+
const _newRateAtTarget = (la) => MathLib2.min(
|
|
12703
|
+
MathLib2.max(
|
|
12704
|
+
MathLib2.wMulDown(startRateAtTarget, wExp(la)),
|
|
12705
|
+
MIN_RATE_AT_TARGET
|
|
12706
|
+
),
|
|
12707
|
+
MAX_RATE_AT_TARGET
|
|
12708
|
+
);
|
|
12709
|
+
endRateAtTarget = _newRateAtTarget(linearAdaptation);
|
|
12710
|
+
}
|
|
12711
|
+
}
|
|
12712
|
+
const cap = rateCap && rateCap > 0n ? rateCap : DEFAULT_RATE_CAP;
|
|
12713
|
+
if (endRateAtTarget > cap / 4n) endRateAtTarget = cap / 4n;
|
|
12714
|
+
const coeff = err < 0n ? MathLib2.WAD - MathLib2.wDivDown(MathLib2.WAD, CURVE_STEEPNESS) : CURVE_STEEPNESS - MathLib2.WAD;
|
|
12715
|
+
const _curve = (rat) => MathLib2.wMulDown(MathLib2.wMulDown(coeff, err) + MathLib2.WAD, rat);
|
|
12716
|
+
let endBorrowRate = _curve(endRateAtTarget);
|
|
12717
|
+
if (endBorrowRate > cap) endBorrowRate = cap;
|
|
12718
|
+
if (rateFloor && rateFloor > 0n && endBorrowRate < rateFloor)
|
|
12719
|
+
endBorrowRate = rateFloor;
|
|
12720
|
+
return { endBorrowRate, endRateAtTarget };
|
|
12721
|
+
}
|
|
12722
|
+
const DEFAULT_RATE_CAP = 634195839675291n;
|
|
12667
12723
|
const CURVE_STEEPNESS = 4000000000000000000n;
|
|
12668
12724
|
const TARGET_UTILIZATION = 900000000000000000n;
|
|
12669
12725
|
const INITIAL_RATE_AT_TARGET = 40000000000000000n / SECONDS_PER_YEAR3;
|
|
@@ -12753,6 +12809,8 @@ function getListaMarketDataConverter(lender, chainId, prices, additionalYields =
|
|
|
12753
12809
|
loanToken,
|
|
12754
12810
|
collateralToken,
|
|
12755
12811
|
minLoan,
|
|
12812
|
+
rateCap,
|
|
12813
|
+
rateFloor,
|
|
12756
12814
|
broker,
|
|
12757
12815
|
loanProvider,
|
|
12758
12816
|
collateralProvider,
|
|
@@ -12793,11 +12851,13 @@ function getListaMarketDataConverter(lender, chainId, prices, additionalYields =
|
|
|
12793
12851
|
let borrowApy = 0n;
|
|
12794
12852
|
let supplyApy = 0n;
|
|
12795
12853
|
try {
|
|
12796
|
-
borrowApy = MathLib.
|
|
12854
|
+
borrowApy = MathLib.getListaBorrowApy(
|
|
12797
12855
|
state.rateAtTarget,
|
|
12798
12856
|
utilization,
|
|
12799
12857
|
void 0,
|
|
12800
|
-
Number(state.lastUpdate)
|
|
12858
|
+
Number(state.lastUpdate),
|
|
12859
|
+
rateCap,
|
|
12860
|
+
rateFloor
|
|
12801
12861
|
);
|
|
12802
12862
|
supplyApy = MathLib.getSupplyApy(borrowApy, utilization, state.fee);
|
|
12803
12863
|
} catch {
|
|
@@ -12898,7 +12958,9 @@ function getListaMarketDataConverter(lender, chainId, prices, additionalYields =
|
|
|
12898
12958
|
collateralProvider,
|
|
12899
12959
|
hasWhitelist,
|
|
12900
12960
|
fee: state.fee.toString(),
|
|
12901
|
-
rateAtTarget: state.rateAtTarget.toString()
|
|
12961
|
+
rateAtTarget: state.rateAtTarget.toString(),
|
|
12962
|
+
rateCap: rateCap?.toString() ?? "0",
|
|
12963
|
+
rateFloor: rateFloor?.toString() ?? "0"
|
|
12902
12964
|
}
|
|
12903
12965
|
};
|
|
12904
12966
|
data[m].chainId = chainId;
|