@1delta/margin-fetcher 0.0.68 → 0.0.70
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
CHANGED
|
@@ -8287,9 +8287,9 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
8287
8287
|
const resultReserves = {};
|
|
8288
8288
|
const decimalsCeiling = data[expectedNumberOfCalls - 1];
|
|
8289
8289
|
let eModeConfigs = {};
|
|
8290
|
-
allModes.
|
|
8290
|
+
allModes.forEach((mode, index) => {
|
|
8291
8291
|
const rawCfg = emodeDataResult[index];
|
|
8292
|
-
if (mode === 0 || rawCfg?.label !== "")
|
|
8292
|
+
if ((mode === 0 || rawCfg?.label !== "") && Number(rawCfg.ltv) !== 0) {
|
|
8293
8293
|
eModeConfigs[mode] = {
|
|
8294
8294
|
category: mode,
|
|
8295
8295
|
label: rawCfg.label,
|
|
@@ -8297,6 +8297,7 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
8297
8297
|
collateralFactor: rawCfg.liquidationThreshold / BPS,
|
|
8298
8298
|
borrowFactor: 1
|
|
8299
8299
|
};
|
|
8300
|
+
}
|
|
8300
8301
|
});
|
|
8301
8302
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
8302
8303
|
const asset = assetsToQuery[i];
|
|
@@ -8370,8 +8371,6 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
8370
8371
|
hasStable: configData?.[7 /* stableBorrowRateEnabled */],
|
|
8371
8372
|
isActive: configData?.[8 /* isActive */],
|
|
8372
8373
|
isFrozen: configData?.[9 /* isFrozen */],
|
|
8373
|
-
// eMode
|
|
8374
|
-
eMode: eModeConfigs[eModeCategory],
|
|
8375
8374
|
// caps
|
|
8376
8375
|
borrowCap: Number(reserveCaps[0]?.toString()),
|
|
8377
8376
|
supplyCap: Number(reserveCaps[1]?.toString()),
|
|
@@ -8395,23 +8394,32 @@ var getAaveV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
8395
8394
|
var populateEModes = (borrowCollateralFactor, collateralFactor, eModeCategory, eModeConfigs, allModes) => {
|
|
8396
8395
|
let data = {};
|
|
8397
8396
|
allModes.forEach((e) => {
|
|
8398
|
-
|
|
8399
|
-
category: e,
|
|
8400
|
-
borrowCollateralFactor,
|
|
8401
|
-
collateralFactor,
|
|
8402
|
-
borrowFactor: 1
|
|
8403
|
-
};
|
|
8404
|
-
if (e > 0) data[e].debtDisabled = true;
|
|
8405
|
-
if (e > 0 && e === eModeCategory && eModeConfigs[e]) {
|
|
8397
|
+
if (e === 0)
|
|
8406
8398
|
data[e] = {
|
|
8407
|
-
|
|
8399
|
+
label: "Disabled",
|
|
8408
8400
|
category: e,
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
borrowFactor: 1,
|
|
8413
|
-
debtDisabled: false
|
|
8401
|
+
borrowCollateralFactor,
|
|
8402
|
+
collateralFactor,
|
|
8403
|
+
borrowFactor: 1
|
|
8414
8404
|
};
|
|
8405
|
+
if (e > 0 && eModeConfigs[e]?.label && eModeConfigs[e]?.label !== "") {
|
|
8406
|
+
data[e] = {};
|
|
8407
|
+
data[e].label = eModeConfigs[e]?.label;
|
|
8408
|
+
data[e].debtDisabled = true;
|
|
8409
|
+
data[e].category = e;
|
|
8410
|
+
data[e].borrowFactor = 1;
|
|
8411
|
+
data[e].collateralFactor = collateralFactor;
|
|
8412
|
+
data[e].borrowCollateralFactor = borrowCollateralFactor;
|
|
8413
|
+
if (e > 0 && e === eModeCategory && eModeConfigs[e]) {
|
|
8414
|
+
data[e] = {
|
|
8415
|
+
...data[e],
|
|
8416
|
+
category: e,
|
|
8417
|
+
borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
|
|
8418
|
+
collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
|
|
8419
|
+
borrowFactor: 1,
|
|
8420
|
+
debtDisabled: false
|
|
8421
|
+
};
|
|
8422
|
+
}
|
|
8415
8423
|
}
|
|
8416
8424
|
});
|
|
8417
8425
|
return data;
|
|
@@ -8419,27 +8427,39 @@ var populateEModes = (borrowCollateralFactor, collateralFactor, eModeCategory, e
|
|
|
8419
8427
|
var populateEModes32 = (borrowCollateralFactor, collateralFactor, collateralBitmap, debtBitmap, assetIndex, eModeConfigs, allModes) => {
|
|
8420
8428
|
let data = {};
|
|
8421
8429
|
allModes.forEach((e) => {
|
|
8422
|
-
|
|
8423
|
-
category: e,
|
|
8424
|
-
borrowCollateralFactor,
|
|
8425
|
-
collateralFactor,
|
|
8426
|
-
borrowFactor: 1
|
|
8427
|
-
};
|
|
8428
|
-
if (e > 0) data[e].debtDisabled = !!eModeConfigs[e];
|
|
8429
|
-
if (e > 0 && eModeConfigs[e]) {
|
|
8430
|
+
if (e === 0)
|
|
8430
8431
|
data[e] = {
|
|
8431
|
-
|
|
8432
|
+
label: "Disabled",
|
|
8432
8433
|
category: e,
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
borrowFactor: 1,
|
|
8437
|
-
collateralDisabled: !isReserveEnabledOnBitmap(
|
|
8438
|
-
collateralBitmap[e],
|
|
8439
|
-
assetIndex
|
|
8440
|
-
),
|
|
8441
|
-
debtDisabled: !isReserveEnabledOnBitmap(debtBitmap[e], assetIndex)
|
|
8434
|
+
borrowCollateralFactor,
|
|
8435
|
+
collateralFactor,
|
|
8436
|
+
borrowFactor: 1
|
|
8442
8437
|
};
|
|
8438
|
+
if (e > 0) {
|
|
8439
|
+
if (eModeConfigs[e]?.label && eModeConfigs[e]?.label !== "") {
|
|
8440
|
+
data[e] = {};
|
|
8441
|
+
data[e].label = eModeConfigs[e]?.label ?? "Default";
|
|
8442
|
+
data[e].debtDisabled = true;
|
|
8443
|
+
data[e].category = e;
|
|
8444
|
+
data[e].borrowFactor = 1;
|
|
8445
|
+
data[e].collateralFactor = collateralFactor;
|
|
8446
|
+
data[e].borrowCollateralFactor = borrowCollateralFactor;
|
|
8447
|
+
data[e].debtDisabled = !!eModeConfigs[e];
|
|
8448
|
+
if (eModeConfigs[e]) {
|
|
8449
|
+
data[e] = {
|
|
8450
|
+
...data[e],
|
|
8451
|
+
category: e,
|
|
8452
|
+
borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,
|
|
8453
|
+
collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,
|
|
8454
|
+
borrowFactor: 1,
|
|
8455
|
+
collateralDisabled: !isReserveEnabledOnBitmap(
|
|
8456
|
+
collateralBitmap[e],
|
|
8457
|
+
assetIndex
|
|
8458
|
+
),
|
|
8459
|
+
debtDisabled: !isReserveEnabledOnBitmap(debtBitmap[e], assetIndex)
|
|
8460
|
+
};
|
|
8461
|
+
}
|
|
8462
|
+
}
|
|
8443
8463
|
}
|
|
8444
8464
|
});
|
|
8445
8465
|
return data;
|
|
@@ -8559,9 +8579,9 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
|
|
|
8559
8579
|
let eModeConfigs = {};
|
|
8560
8580
|
let collateralBitmap = {};
|
|
8561
8581
|
let debtBitmap = {};
|
|
8562
|
-
allModes.
|
|
8582
|
+
allModes.forEach((mode, index) => {
|
|
8563
8583
|
const rawCfg = emodeDataResult[3 * index];
|
|
8564
|
-
if (rawCfg && (mode === 0 || rawCfg?.label !== ""))
|
|
8584
|
+
if (rawCfg && (mode === 0 || rawCfg?.label !== "")) {
|
|
8565
8585
|
eModeConfigs[mode] = {
|
|
8566
8586
|
category: mode,
|
|
8567
8587
|
label: rawCfg.label,
|
|
@@ -8569,8 +8589,9 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
|
|
|
8569
8589
|
collateralFactor: rawCfg.liquidationThreshold / BPS,
|
|
8570
8590
|
borrowFactor: 1
|
|
8571
8591
|
};
|
|
8572
|
-
|
|
8573
|
-
|
|
8592
|
+
debtBitmap[mode] = emodeDataResult[3 * index + 1];
|
|
8593
|
+
collateralBitmap[mode] = emodeDataResult[3 * index + 2];
|
|
8594
|
+
}
|
|
8574
8595
|
});
|
|
8575
8596
|
const lowerReservesList = reservesList?.map(
|
|
8576
8597
|
(a) => a.toLowerCase()
|
|
@@ -8629,7 +8650,7 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
|
|
|
8629
8650
|
const activeEmodes = allModes.map(
|
|
8630
8651
|
(mode) => isReserveEnabledOnBitmap(debtBitmap[mode], assetIndex) || isReserveEnabledOnBitmap(collateralBitmap[mode], assetIndex) ? mode : -1
|
|
8631
8652
|
).filter((m) => m !== void 0 && m > 0);
|
|
8632
|
-
|
|
8653
|
+
activeEmodes.length === 0 ? 0 : activeEmodes[0];
|
|
8633
8654
|
resultReserves[asset] = {
|
|
8634
8655
|
...resultReserves[asset],
|
|
8635
8656
|
decimals: Number(
|
|
@@ -8652,8 +8673,6 @@ function parseAave32(chainId, lender, prices, additionalYields, tokenList) {
|
|
|
8652
8673
|
hasStable: configData?.[7 /* stableBorrowRateEnabled */],
|
|
8653
8674
|
isActive: configData?.[8 /* isActive */],
|
|
8654
8675
|
isFrozen: configData?.[9 /* isFrozen */],
|
|
8655
|
-
// eMode
|
|
8656
|
-
eMode: eModeConfigs[eModeCategory],
|
|
8657
8676
|
// caps
|
|
8658
8677
|
borrowCap: Number(reserveCaps[0]?.toString()),
|
|
8659
8678
|
supplyCap: Number(reserveCaps[1]?.toString()),
|
|
@@ -18418,6 +18437,7 @@ var RUSD = "0x09d4214c03d01f49544c0448dbe3a27f768f2b34";
|
|
|
18418
18437
|
var USDF = "0xfa2b947eec368f42195f24f36d2af29f7c24cec2";
|
|
18419
18438
|
var USUAL = "0xc4441c2be5d8fa8126822b9929ca0b81ea0de38e";
|
|
18420
18439
|
var WOETH = "0xdcee70654261af21c44c093c300ed3bb97b78192";
|
|
18440
|
+
var DEUSD = "0x15700B564Ca08D9439C58cA5053166E8317aa138";
|
|
18421
18441
|
var datasEthereum = [
|
|
18422
18442
|
RETH,
|
|
18423
18443
|
WBTC,
|
|
@@ -18462,7 +18482,8 @@ var datasEthereum = [
|
|
|
18462
18482
|
RUSD,
|
|
18463
18483
|
USDF,
|
|
18464
18484
|
USUAL,
|
|
18465
|
-
WOETH
|
|
18485
|
+
WOETH,
|
|
18486
|
+
DEUSD
|
|
18466
18487
|
].map((d) => prefixEthereum + d).join(",");
|
|
18467
18488
|
var prefixAvalanche = "avax:";
|
|
18468
18489
|
var WAVAX = "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7";
|
|
@@ -18639,7 +18660,8 @@ var SYMBOL_MAP = {
|
|
|
18639
18660
|
wbera: "WBERA",
|
|
18640
18661
|
wtlos: "WTLOS",
|
|
18641
18662
|
xpl: "WXPL",
|
|
18642
|
-
wglmr: "WGLMR"
|
|
18663
|
+
wglmr: "WGLMR",
|
|
18664
|
+
deusd: "Elixir deUSD::DEUSD"
|
|
18643
18665
|
};
|
|
18644
18666
|
async function fetchDefillamaData() {
|
|
18645
18667
|
try {
|
|
@@ -20226,6 +20248,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20226
20248
|
const uniswapV3Calls = getUniswapV3Calls(chainId);
|
|
20227
20249
|
const [api3Calls, api3Names] = getApi3Calls(chainId);
|
|
20228
20250
|
const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId);
|
|
20251
|
+
const [cometCalls, cometNames] = getCometCalls(chainId);
|
|
20229
20252
|
const allCalls = [
|
|
20230
20253
|
...chainlinkCalls,
|
|
20231
20254
|
...aaveCalls,
|
|
@@ -20233,6 +20256,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20233
20256
|
...uniswapV3Calls,
|
|
20234
20257
|
...api3Calls,
|
|
20235
20258
|
...rwaCalls,
|
|
20259
|
+
...cometCalls,
|
|
20236
20260
|
...morphoCalls
|
|
20237
20261
|
];
|
|
20238
20262
|
const abis = [
|
|
@@ -20242,7 +20266,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20242
20266
|
...AaveOracleAbi,
|
|
20243
20267
|
...Api3OracleAbi,
|
|
20244
20268
|
...RWADynamicOracleAbi,
|
|
20245
|
-
...ProxyOracleAbi
|
|
20269
|
+
...ProxyOracleAbi,
|
|
20270
|
+
...CometAbi
|
|
20246
20271
|
];
|
|
20247
20272
|
const result = await multicallRetry(
|
|
20248
20273
|
chainId,
|
|
@@ -20262,6 +20287,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20262
20287
|
chainlink: { calls: chainlinkCalls, names: chainlinkNames },
|
|
20263
20288
|
api3: { calls: api3Calls, names: api3Names },
|
|
20264
20289
|
rwa: { calls: rwaCalls, names: rwaNames },
|
|
20290
|
+
comet: { calls: cometCalls, names: cometNames },
|
|
20265
20291
|
morpho: { queries: morphoQueries },
|
|
20266
20292
|
uniswapCalls,
|
|
20267
20293
|
uniswapV3Calls,
|
|
@@ -20285,6 +20311,7 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20285
20311
|
rwa,
|
|
20286
20312
|
uniswapCalls,
|
|
20287
20313
|
uniswapV3Calls,
|
|
20314
|
+
comet,
|
|
20288
20315
|
aaveCalls
|
|
20289
20316
|
}
|
|
20290
20317
|
} of chainResults) {
|
|
@@ -20316,6 +20343,13 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20316
20343
|
const rwaSlice = result.slice(offset, offset + rwa.calls.length);
|
|
20317
20344
|
const rwaData = parseRWADynamicOracleResults(chainId, rwaSlice, rwa.names);
|
|
20318
20345
|
offset += rwa.calls.length;
|
|
20346
|
+
const cometSlice = result.slice(offset, offset + comet.calls.length);
|
|
20347
|
+
const cometData = parseCometResults(
|
|
20348
|
+
chainId,
|
|
20349
|
+
cometSlice,
|
|
20350
|
+
comet.names
|
|
20351
|
+
);
|
|
20352
|
+
offset += comet.calls.length;
|
|
20319
20353
|
allPrices = {
|
|
20320
20354
|
...allPrices,
|
|
20321
20355
|
...chainlinkData,
|
|
@@ -20323,7 +20357,8 @@ var fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
|
|
|
20323
20357
|
...uniswapData,
|
|
20324
20358
|
...uniswapV3Data,
|
|
20325
20359
|
...api3Data,
|
|
20326
|
-
...rwaData
|
|
20360
|
+
...rwaData,
|
|
20361
|
+
...cometData
|
|
20327
20362
|
};
|
|
20328
20363
|
}
|
|
20329
20364
|
allPrices = { ...otherResults[0], ...allPrices, ...otherResults[1] };
|
|
@@ -20383,6 +20418,68 @@ var getUniswapV2Calls = (chainId) => {
|
|
|
20383
20418
|
return [];
|
|
20384
20419
|
}
|
|
20385
20420
|
};
|
|
20421
|
+
var getCometCalls = (chainId) => {
|
|
20422
|
+
switch (chainId) {
|
|
20423
|
+
case Chain.ETHEREUM_MAINNET: {
|
|
20424
|
+
const names = [
|
|
20425
|
+
"Staked FRAX::SFRAX",
|
|
20426
|
+
//
|
|
20427
|
+
"Elixir deUSD::DEUSD",
|
|
20428
|
+
"Elixir Staked deUSD::SDEUSD"
|
|
20429
|
+
];
|
|
20430
|
+
return [
|
|
20431
|
+
[
|
|
20432
|
+
{
|
|
20433
|
+
address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
|
|
20434
|
+
// usdt comet
|
|
20435
|
+
name: "getPrice",
|
|
20436
|
+
params: [
|
|
20437
|
+
"0x8C74B2811D2F1aD65517ADB5C65773c1E520ed2f"
|
|
20438
|
+
// sfrax
|
|
20439
|
+
]
|
|
20440
|
+
},
|
|
20441
|
+
{
|
|
20442
|
+
address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
|
|
20443
|
+
name: "getPrice",
|
|
20444
|
+
params: [
|
|
20445
|
+
"0x471a6299C027Bd81ed4D66069dc510Bd0569f4F8"
|
|
20446
|
+
// deusd
|
|
20447
|
+
]
|
|
20448
|
+
},
|
|
20449
|
+
{
|
|
20450
|
+
address: "0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840",
|
|
20451
|
+
name: "getPrice",
|
|
20452
|
+
params: [
|
|
20453
|
+
"0xE4829421ae79f2F44716cCbbb40751cd6Be3d483"
|
|
20454
|
+
// sdeusd
|
|
20455
|
+
]
|
|
20456
|
+
}
|
|
20457
|
+
],
|
|
20458
|
+
names
|
|
20459
|
+
];
|
|
20460
|
+
}
|
|
20461
|
+
default:
|
|
20462
|
+
return [[], []];
|
|
20463
|
+
}
|
|
20464
|
+
};
|
|
20465
|
+
var parseCometResults = (chainId, data, names) => {
|
|
20466
|
+
switch (chainId) {
|
|
20467
|
+
case Chain.ETHEREUM_MAINNET: {
|
|
20468
|
+
const targetDecimals = [8, 8, 8];
|
|
20469
|
+
return Object.assign(
|
|
20470
|
+
{},
|
|
20471
|
+
...data.map((entry, index) => {
|
|
20472
|
+
return {
|
|
20473
|
+
[names[index]]: Number(parseRawAmount(entry ?? "0", targetDecimals[index]))
|
|
20474
|
+
};
|
|
20475
|
+
})
|
|
20476
|
+
);
|
|
20477
|
+
}
|
|
20478
|
+
default: {
|
|
20479
|
+
return {};
|
|
20480
|
+
}
|
|
20481
|
+
}
|
|
20482
|
+
};
|
|
20386
20483
|
var getUniswapV3Calls = (chainId) => {
|
|
20387
20484
|
switch (chainId) {
|
|
20388
20485
|
case Chain.HEMI_NETWORK:
|
|
@@ -20530,12 +20627,10 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
|
|
|
20530
20627
|
let prices = {};
|
|
20531
20628
|
data.forEach((d, i) => {
|
|
20532
20629
|
const details = queries[i];
|
|
20533
|
-
const
|
|
20534
|
-
|
|
20535
|
-
|
|
20536
|
-
|
|
20537
|
-
collateralAssetDecimals
|
|
20538
|
-
} = details;
|
|
20630
|
+
const loanAsset = details?.loanAsset;
|
|
20631
|
+
const collateralAsset = details?.collateralAsset;
|
|
20632
|
+
const loanAssetDecimals = details?.loanAssetDecimals;
|
|
20633
|
+
const collateralAssetDecimals = details?.collateralAssetDecimals;
|
|
20539
20634
|
const oracleId = list[loanAsset]?.assetGroup ?? chainId + "-" + loanAsset;
|
|
20540
20635
|
const debtPrice = donePrices[oracleId] ?? prices[oracleId];
|
|
20541
20636
|
const oracleIdCollateral = list[collateralAsset]?.assetGroup ?? chainId + "-" + collateralAsset;
|
|
@@ -20546,12 +20641,12 @@ var parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) =>
|
|
|
20546
20641
|
collateralAssetDecimals
|
|
20547
20642
|
);
|
|
20548
20643
|
if (debtPrice) {
|
|
20549
|
-
if (!prices[oracleIdCollateral]) {
|
|
20644
|
+
if (!prices[oracleIdCollateral] && !donePrices[oracleIdCollateral]) {
|
|
20550
20645
|
prices[oracleIdCollateral] = priceDebtToCollateral * debtPrice;
|
|
20551
20646
|
}
|
|
20552
20647
|
} else {
|
|
20553
20648
|
if (collateralPrice) {
|
|
20554
|
-
if (!prices[oracleId]) {
|
|
20649
|
+
if (!prices[oracleId] && !donePrices[oracleId]) {
|
|
20555
20650
|
prices[oracleId] = collateralPrice / priceDebtToCollateral;
|
|
20556
20651
|
}
|
|
20557
20652
|
}
|