@1delta/margin-fetcher 5.0.79 → 5.0.80
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 +55 -22
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -17091,6 +17091,7 @@ var parseMantissaWad = (raw) => {
|
|
|
17091
17091
|
}
|
|
17092
17092
|
};
|
|
17093
17093
|
var getCompoundV2DataConverter = (lender, chainId, prices, additionalYields, tokenList = {}, unitSeconds) => {
|
|
17094
|
+
if (!getCompoundV2Lens(chainId, lender)) return [() => void 0, 0];
|
|
17094
17095
|
if (lender === Lender.TAKARA) {
|
|
17095
17096
|
return [
|
|
17096
17097
|
(data) => {
|
|
@@ -18468,6 +18469,7 @@ function buildTokenConfig(vaultAddr, reverseLTV, borrowVaults, vaultData) {
|
|
|
18468
18469
|
const config = {};
|
|
18469
18470
|
const ownInfo = findInfo(vaultAddr, vaultData);
|
|
18470
18471
|
const liquidationPenalty = ownInfo ? ltvToNumber(ownInfo.maxLiquidationDiscount) : 0;
|
|
18472
|
+
const ownDepositsOff = ownInfo ? isOperationDisabled(ownInfo, OP_DEPOSIT) : false;
|
|
18471
18473
|
const reverseEntries = reverseLTV.get(vaultAddr) ?? [];
|
|
18472
18474
|
for (const { borrowVault, ltv } of reverseEntries) {
|
|
18473
18475
|
if (!borrowVaults.has(borrowVault)) continue;
|
|
@@ -18479,7 +18481,7 @@ function buildTokenConfig(vaultAddr, reverseLTV, borrowVaults, vaultData) {
|
|
|
18479
18481
|
borrowFactor: 1,
|
|
18480
18482
|
liquidationPenalty,
|
|
18481
18483
|
closeFactor: 1,
|
|
18482
|
-
collateralDisabled:
|
|
18484
|
+
collateralDisabled: ownDepositsOff,
|
|
18483
18485
|
debtDisabled: true
|
|
18484
18486
|
};
|
|
18485
18487
|
}
|
|
@@ -18493,7 +18495,8 @@ function buildTokenConfig(vaultAddr, reverseLTV, borrowVaults, vaultData) {
|
|
|
18493
18495
|
borrowFactor: 1,
|
|
18494
18496
|
liquidationPenalty,
|
|
18495
18497
|
closeFactor: 1,
|
|
18496
|
-
|
|
18498
|
+
// Borrow hooked off (zero hook target) ⇒ no new debt in this config.
|
|
18499
|
+
debtDisabled: selfInfo ? isOperationDisabled(selfInfo, OP_BORROW) : false,
|
|
18497
18500
|
collateralDisabled: true
|
|
18498
18501
|
};
|
|
18499
18502
|
}
|
|
@@ -20614,7 +20617,7 @@ var toBig = (v) => {
|
|
|
20614
20617
|
var parToWei = (par, index) => toBig(par) * toBig(index) / BASE;
|
|
20615
20618
|
var getDolomitePublicDataConverter = (lender, chainId, _prices, additionalYields, tokenList = {}) => {
|
|
20616
20619
|
const marketIds = getDolomiteMarketIds(chainId);
|
|
20617
|
-
const expectedNumberOfCalls = GLOBAL_COUNT + MARKET_STRIDE * marketIds.length;
|
|
20620
|
+
const expectedNumberOfCalls = !dolomiteConfigs()?.[chainId]?.dolomiteMargin || marketIds.length === 0 ? 0 : GLOBAL_COUNT + MARKET_STRIDE * marketIds.length;
|
|
20618
20621
|
return [
|
|
20619
20622
|
(data) => {
|
|
20620
20623
|
if (data.length !== expectedNumberOfCalls) return void 0;
|
|
@@ -21146,12 +21149,14 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
21146
21149
|
let calls = [];
|
|
21147
21150
|
const validLenders = [];
|
|
21148
21151
|
const sliceStart = {};
|
|
21152
|
+
const sliceBuilt = {};
|
|
21149
21153
|
for (const lender of lenders) {
|
|
21150
21154
|
const abi = getAbi(lender);
|
|
21151
21155
|
const callData = buildLenderCall(chainId, lender);
|
|
21152
21156
|
if (callData.some((c) => !c.address)) continue;
|
|
21153
21157
|
const mappedCalls = callData.map((call) => ({ call, abi: call.abi ?? abi }));
|
|
21154
21158
|
sliceStart[lender] = calls.length;
|
|
21159
|
+
sliceBuilt[lender] = mappedCalls.length;
|
|
21155
21160
|
calls.push(...mappedCalls);
|
|
21156
21161
|
validLenders.push(lender);
|
|
21157
21162
|
}
|
|
@@ -21203,9 +21208,27 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
21203
21208
|
}
|
|
21204
21209
|
})
|
|
21205
21210
|
);
|
|
21206
|
-
|
|
21211
|
+
const slices = sliceLenderResults(
|
|
21212
|
+
chainId,
|
|
21213
|
+
rawResults,
|
|
21214
|
+
validLenders.map((lender) => ({
|
|
21215
|
+
lender,
|
|
21216
|
+
start: sliceStart[lender],
|
|
21217
|
+
built: sliceBuilt[lender],
|
|
21218
|
+
declared: getLenderDataConverter(
|
|
21219
|
+
lender,
|
|
21220
|
+
chainId,
|
|
21221
|
+
prices,
|
|
21222
|
+
additionalYields,
|
|
21223
|
+
list,
|
|
21224
|
+
rateUnitSeconds.get(lender)
|
|
21225
|
+
)[1]
|
|
21226
|
+
}))
|
|
21227
|
+
);
|
|
21207
21228
|
for (const lender of validLenders) {
|
|
21208
|
-
const
|
|
21229
|
+
const data = slices[lender];
|
|
21230
|
+
if (!data || data.length === 0) continue;
|
|
21231
|
+
const [converter] = getLenderDataConverter(
|
|
21209
21232
|
lender,
|
|
21210
21233
|
chainId,
|
|
21211
21234
|
prices,
|
|
@@ -21213,30 +21236,40 @@ var getLenderPublicData = async (chainId, lenders, prices, additionalYields, mul
|
|
|
21213
21236
|
list,
|
|
21214
21237
|
rateUnitSeconds.get(lender)
|
|
21215
21238
|
);
|
|
21216
|
-
|
|
21217
|
-
|
|
21218
|
-
|
|
21219
|
-
|
|
21220
|
-
|
|
21221
|
-
if (!convertedData) {
|
|
21222
|
-
invalidLenders.push(lender);
|
|
21223
|
-
} else {
|
|
21224
|
-
Object.assign(lenderData, convertedData);
|
|
21225
|
-
}
|
|
21239
|
+
try {
|
|
21240
|
+
const convertedData = converter(data);
|
|
21241
|
+
if (isMultiMarket(lender)) {
|
|
21242
|
+
if (!convertedData) {
|
|
21243
|
+
invalidLenders.push(lender);
|
|
21226
21244
|
} else {
|
|
21227
|
-
|
|
21228
|
-
|
|
21229
|
-
|
|
21230
|
-
|
|
21231
|
-
|
|
21245
|
+
Object.assign(lenderData, convertedData);
|
|
21246
|
+
}
|
|
21247
|
+
} else {
|
|
21248
|
+
if (!convertedData) {
|
|
21249
|
+
invalidLenders.push(lender);
|
|
21250
|
+
} else {
|
|
21251
|
+
lenderData[lender] = convertedData;
|
|
21232
21252
|
}
|
|
21233
|
-
} catch {
|
|
21234
21253
|
}
|
|
21235
|
-
|
|
21254
|
+
} catch {
|
|
21236
21255
|
}
|
|
21237
21256
|
}
|
|
21238
21257
|
return lenderData;
|
|
21239
21258
|
};
|
|
21259
|
+
function sliceLenderResults(chainId, rawResults, entries) {
|
|
21260
|
+
const out = {};
|
|
21261
|
+
for (const { lender, start, built, declared } of entries) {
|
|
21262
|
+
if (declared !== built) {
|
|
21263
|
+
console.warn(
|
|
21264
|
+
`[lending] chain ${chainId} ${lender}: builder emitted ${built} calls but parser expects ${declared} \u2014 dropping this lender for the cycle (builder/parser out of sync)`
|
|
21265
|
+
);
|
|
21266
|
+
out[lender] = null;
|
|
21267
|
+
continue;
|
|
21268
|
+
}
|
|
21269
|
+
out[lender] = built > 0 ? rawResults.slice(start, start + built) : [];
|
|
21270
|
+
}
|
|
21271
|
+
return out;
|
|
21272
|
+
}
|
|
21240
21273
|
var DEFAULT_MIDNIGHT_API = "https://api.morpho.org/v0/midnight";
|
|
21241
21274
|
var warn = (...args) => {
|
|
21242
21275
|
};
|