@1delta/margin-fetcher 0.0.342 → 0.0.402
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 +114 -17
- package/dist/index.js +2127 -240
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { parseAbi, keccak256, encodeAbiParameters, formatEther, BaseError, encodeFunctionData, formatUnits, isAddress, getAddress, decodeFunctionResult, decodeAbiParameters, AbiEncodingLengthMismatchError, concatHex, pad, InvalidAddressError, stringToHex, boolToHex, integerRegex, numberToHex, bytesRegex, BytesSizeMismatchError, arrayRegex, UnsupportedPackedAbiType } from './chunk-Z3MGRQJR.js';
|
|
2
2
|
import './chunk-BYTNVMX7.js';
|
|
3
3
|
import './chunk-PR4QN5HX.js';
|
|
4
|
-
import { Lender, LIQUITY_FAMILY_LENDERS, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isDolomite, isEulerType, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isFluid, isGearboxV3,
|
|
4
|
+
import { Lender, LIQUITY_FAMILY_LENDERS, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isDolomite, isMidnight, isTerm, isExactly, isLiquityFamily, isRiver, isTeller, isEulerType, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isFluid, isGearboxV3, isYLDR, isCompoundV3Type, isLista, isTectonicType, isKineticType, isBenqiType } from '@1delta/lender-registry';
|
|
5
5
|
export { isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR } from '@1delta/lender-registry';
|
|
6
6
|
import { fetchTokenLists, fetchTokenList, aavePools, compoundV3Pools, initConfig, morphoPools, compoundV2Pools, eulerVaults, siloMarkets, siloV2LenderKey, siloMarketsV3, siloV3LenderKey, aaveV4Spokes, aaveV4SpokeLenderKey, fluidResolvers, gearboxResolvers, dolomiteConfigs, midnightConfig, termConfig, termMarketsByChain, exactlyConfig, liquityLendersByChain, riverLendersByChain, tellerConfigByChain, tellerPoolsByChain, aaveReserves, compoundV3Reserves, liquityConfigFor, liquityBranchesByChain, riverConfigFor, riverChainData, aaveOracles, morphoTypeMarkets, resolveMidnightApiBase, resolveTermApiBase, getSiloV2MarketEntry, getSiloV3MarketEntry, dolomiteEmode, aaveTokens, morphoTypeVaults, eulerConfigs, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxV3LenderKey, midnightMarketsByChain, parseAaveV4SpokeLenderKey, gearboxAccountCompressor, compoundV2Tokens, exactlyMarketsByChain, aaveOraclesConfig, compoundV2Oracles, compoundV2TokenArray, compoundV2OraclesConfig, compoundV3OraclesData, compoundV3BaseData, compoundV2Reserves, aaveV4Oracles } from '@1delta/data-sdk';
|
|
7
7
|
import lodash from 'lodash';
|
|
8
|
-
import {
|
|
8
|
+
import { multicallRetryUniversal, getEvmClient, getEvmChain, getEvmClientUniversal } from '@1delta/providers';
|
|
9
9
|
import { LiquityTroveManagerAbi, LiquityActivePoolAbi, LiquityStabilityPoolAbi, LiquityPriceFeedAbi, LiquitySortedTrovesAbi, RiverTroveManagerAbi, RiverStabilityPoolAbi, TellerMarketRegistryAbi, TellerV2Abi, MetaMorphoAbi, ExactlyPreviewerAbi, ExactlyAuditorAbi, LenderCommitmentGroupAbi, FluidLendingResolverAbi, FluidVaultResolverAbi, FluidLiquidityResolverAbi, MoolahVaultAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, DolomiteMarginAbi, GearboxMarketCompressorV310Abi, MorphoBlueAbi, MidnightAbi, TermRepoTokenAbi, TermRepoServicerAbi, TermRepoCollateralManagerAbi, LiquityTroveNFTAbi, LiquityCollSurplusPoolAbi, TellerCollateralManagerAbi, GearboxCreditAccountCompressorV310Abi, TermPriceConsumerAbi } from '@1delta/abis';
|
|
10
10
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
11
11
|
import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, InitMarginAddresses, getLstAcceptedInputs } from '@1delta/calldata-sdk';
|
|
@@ -11303,7 +11303,14 @@ var MORPHO_LENS = {
|
|
|
11303
11303
|
[Chain.LISK]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
|
|
11304
11304
|
[Chain.ABSTRACT]: "0x8e24cfc19c6c00c524353cb8816f5f1c2f33c201",
|
|
11305
11305
|
[Chain.INK]: "0x0bd7473CbBf81d9dD936c61117eD230d95006CA2",
|
|
11306
|
-
[Chain.KAIA_MAINNET]: "0x925716D57c842B50806884EDb295bA3E3A8EBdFE"
|
|
11306
|
+
[Chain.KAIA_MAINNET]: "0x925716D57c842B50806884EDb295bA3E3A8EBdFE",
|
|
11307
|
+
// blue-api does not index these three, so the lens is the ONLY way to read
|
|
11308
|
+
// their Morpho markets — see `lenderApiOnly` in fetchLenderAll.ts.
|
|
11309
|
+
[Chain.GNOSIS]: "0x98542B95B44a4732EffB1F4F01A696F1546236d3",
|
|
11310
|
+
[Chain.AVALANCHE_C_CHAIN]: "0x2eA75bBBc5615651efc9401FBc9Db4d03B055CA6",
|
|
11311
|
+
// Same address as HyperEVM — same deployer + nonce, so CREATE lands
|
|
11312
|
+
// identically on both chains.
|
|
11313
|
+
[Chain.MEGAETH_MAINNET]: "0x6Bc6aCB905c1216B0119C87Bf9E178ce298310FA"
|
|
11307
11314
|
};
|
|
11308
11315
|
var buildMorphoUserCallWithLens = (chainId, account, lender, marketsToQuery) => {
|
|
11309
11316
|
const marketSlices = chunk(marketsToQuery, 100);
|
|
@@ -23956,6 +23963,9 @@ function lenderApiOnly(lender, chainId) {
|
|
|
23956
23963
|
if (chainId === Chain.KAIA_MAINNET) return false;
|
|
23957
23964
|
if (chainId === Chain.PHAROS_MAINNET) return false;
|
|
23958
23965
|
if (chainId === "4114") return false;
|
|
23966
|
+
if (chainId === Chain.GNOSIS) return false;
|
|
23967
|
+
if (chainId === Chain.AVALANCHE_C_CHAIN) return false;
|
|
23968
|
+
if (chainId === Chain.MEGAETH_MAINNET) return false;
|
|
23959
23969
|
return true;
|
|
23960
23970
|
}
|
|
23961
23971
|
if (isMidnight(lender)) return true;
|
|
@@ -24240,14 +24250,14 @@ var { isArray } = lodash;
|
|
|
24240
24250
|
var maxRetries = 3;
|
|
24241
24251
|
var MULTICALL_FAILURE = "0x";
|
|
24242
24252
|
var isFailedCall = (value) => value === void 0 || value === null || value === MULTICALL_FAILURE;
|
|
24243
|
-
var retryFailedSlots = async (chainId, contracts, mapped,
|
|
24253
|
+
var retryFailedSlots = async (chainId, contracts, mapped, getEvmClient17, nextRpcId, batchSize, logs) => {
|
|
24244
24254
|
const failedIdx = [];
|
|
24245
24255
|
for (let i = 0; i < mapped.length; i++) {
|
|
24246
24256
|
if (isFailedCall(mapped[i])) failedIdx.push(i);
|
|
24247
24257
|
}
|
|
24248
24258
|
if (failedIdx.length === 0) return mapped;
|
|
24249
24259
|
try {
|
|
24250
|
-
const provider =
|
|
24260
|
+
const provider = getEvmClient17(chainId, nextRpcId);
|
|
24251
24261
|
const returnData = await provider.multicall({
|
|
24252
24262
|
allowFailure: true,
|
|
24253
24263
|
batchSize,
|
|
@@ -24261,9 +24271,9 @@ var retryFailedSlots = async (chainId, contracts, mapped, getEvmClient18, nextRp
|
|
|
24261
24271
|
}
|
|
24262
24272
|
return mapped;
|
|
24263
24273
|
};
|
|
24264
|
-
var multicallViemAbiArray = async (chainId, abi, calls,
|
|
24274
|
+
var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient17, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false, retryFailed = false) => {
|
|
24265
24275
|
try {
|
|
24266
|
-
const provider =
|
|
24276
|
+
const provider = getEvmClient17(chainId, providerId);
|
|
24267
24277
|
const abiIsArray = isArray(abi[0]);
|
|
24268
24278
|
const contracts = calls.map(({ address, name, params }, i) => ({
|
|
24269
24279
|
abi: abiIsArray ? abi?.[i] : abi,
|
|
@@ -24285,7 +24295,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient18, retry =
|
|
|
24285
24295
|
chainId,
|
|
24286
24296
|
contracts,
|
|
24287
24297
|
res,
|
|
24288
|
-
|
|
24298
|
+
getEvmClient17,
|
|
24289
24299
|
providerId + 1,
|
|
24290
24300
|
batchSize,
|
|
24291
24301
|
logs
|
|
@@ -24299,7 +24309,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient18, retry =
|
|
|
24299
24309
|
chainId,
|
|
24300
24310
|
abi,
|
|
24301
24311
|
calls,
|
|
24302
|
-
|
|
24312
|
+
getEvmClient17,
|
|
24303
24313
|
retry,
|
|
24304
24314
|
providerId,
|
|
24305
24315
|
retries,
|
|
@@ -24310,13 +24320,13 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient18, retry =
|
|
|
24310
24320
|
);
|
|
24311
24321
|
}
|
|
24312
24322
|
};
|
|
24313
|
-
var multicallShardedAbiArray = async (chainId, abi, calls,
|
|
24323
|
+
var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient17, poolSize, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false, retryFailed = false) => {
|
|
24314
24324
|
if (poolSize <= 1) {
|
|
24315
24325
|
return multicallViemAbiArray(
|
|
24316
24326
|
chainId,
|
|
24317
24327
|
abi,
|
|
24318
24328
|
calls,
|
|
24319
|
-
|
|
24329
|
+
getEvmClient17,
|
|
24320
24330
|
true,
|
|
24321
24331
|
0,
|
|
24322
24332
|
retries,
|
|
@@ -24341,7 +24351,7 @@ var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient18, poolS
|
|
|
24341
24351
|
const results = new Array(contracts.length);
|
|
24342
24352
|
const runBatch = async (batch, rpcId, attemptsLeft, size) => {
|
|
24343
24353
|
try {
|
|
24344
|
-
const provider =
|
|
24354
|
+
const provider = getEvmClient17(chainId, rpcId);
|
|
24345
24355
|
const returnData = await provider.multicall({
|
|
24346
24356
|
allowFailure,
|
|
24347
24357
|
batchSize: size,
|
|
@@ -24355,7 +24365,7 @@ var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient18, poolS
|
|
|
24355
24365
|
chainId,
|
|
24356
24366
|
batch.items,
|
|
24357
24367
|
mapped,
|
|
24358
|
-
|
|
24368
|
+
getEvmClient17,
|
|
24359
24369
|
rpcId + 1,
|
|
24360
24370
|
size,
|
|
24361
24371
|
logs
|
|
@@ -33193,7 +33203,7 @@ function unflattenLenderData(pools) {
|
|
|
33193
33203
|
}
|
|
33194
33204
|
return result;
|
|
33195
33205
|
}
|
|
33196
|
-
var getLenderUserDataResult = async (chainId, queriesRaw,
|
|
33206
|
+
var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient17, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false, concurrency = 1) => {
|
|
33197
33207
|
const queries = organizeUserQueries(queriesRaw);
|
|
33198
33208
|
const builtCalls = await Promise.all(
|
|
33199
33209
|
queries.map(async (query3) => {
|
|
@@ -33203,7 +33213,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient18, allowF
|
|
|
33203
33213
|
query3.lender,
|
|
33204
33214
|
query3.account,
|
|
33205
33215
|
query3.params,
|
|
33206
|
-
|
|
33216
|
+
getEvmClient17
|
|
33207
33217
|
);
|
|
33208
33218
|
return callData.map((call) => ({ call, abi: call.abi ?? abi }));
|
|
33209
33219
|
})
|
|
@@ -33213,7 +33223,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient18, allowF
|
|
|
33213
33223
|
chainId,
|
|
33214
33224
|
calls.map((call) => call.abi),
|
|
33215
33225
|
calls.map((call) => call.call),
|
|
33216
|
-
|
|
33226
|
+
getEvmClient17,
|
|
33217
33227
|
concurrency,
|
|
33218
33228
|
retries,
|
|
33219
33229
|
allowFailure,
|
|
@@ -36145,6 +36155,166 @@ var monadLstFetcher = {
|
|
|
36145
36155
|
return out;
|
|
36146
36156
|
}
|
|
36147
36157
|
};
|
|
36158
|
+
var CHAIN_ID7 = Chain.ETHEREUM_MAINNET;
|
|
36159
|
+
var FRXETH_SUMMARY_URL = "https://api.frax.finance/v2/frxeth/summary/latest";
|
|
36160
|
+
var SFRXETH = "0xac3e018457b222d93114458476f3e3416abbe38f";
|
|
36161
|
+
var SFRXUSD = "0xcf62f905562626cfcdd2261162a51fd02fc9c5b6";
|
|
36162
|
+
var SFRAX = "0xa663b02cf0a4b149d2ad41910cb81e23e1c41c32";
|
|
36163
|
+
var YEAR_SECONDS3 = 31536000n;
|
|
36164
|
+
var ONE_E186 = 10n ** 18n;
|
|
36165
|
+
var SFRXETH_KEY = "SFRXETH";
|
|
36166
|
+
var SFRXUSD_KEY = "SFRXUSD";
|
|
36167
|
+
var SFRXUSD_GROUP_KEY = "Staked Frax USD::sfrxUSD";
|
|
36168
|
+
var SFRAX_KEY = "SFRAX";
|
|
36169
|
+
var SFRAX_GROUP_KEY = "Staked FRAX::SFRAX";
|
|
36170
|
+
var XERC4626_ABI = [
|
|
36171
|
+
{
|
|
36172
|
+
name: "rewardsCycleEnd",
|
|
36173
|
+
type: "function",
|
|
36174
|
+
stateMutability: "view",
|
|
36175
|
+
inputs: [],
|
|
36176
|
+
outputs: [{ type: "uint32" }]
|
|
36177
|
+
},
|
|
36178
|
+
{
|
|
36179
|
+
name: "lastSync",
|
|
36180
|
+
type: "function",
|
|
36181
|
+
stateMutability: "view",
|
|
36182
|
+
inputs: [],
|
|
36183
|
+
outputs: [{ type: "uint32" }]
|
|
36184
|
+
},
|
|
36185
|
+
{
|
|
36186
|
+
name: "lastRewardAmount",
|
|
36187
|
+
type: "function",
|
|
36188
|
+
stateMutability: "view",
|
|
36189
|
+
inputs: [],
|
|
36190
|
+
outputs: [{ type: "uint192" }]
|
|
36191
|
+
},
|
|
36192
|
+
{
|
|
36193
|
+
name: "totalAssets",
|
|
36194
|
+
type: "function",
|
|
36195
|
+
stateMutability: "view",
|
|
36196
|
+
inputs: [],
|
|
36197
|
+
outputs: [{ type: "uint256" }]
|
|
36198
|
+
}
|
|
36199
|
+
];
|
|
36200
|
+
var LINEAR_REWARDS_ABI = [
|
|
36201
|
+
{
|
|
36202
|
+
name: "rewardsCycleData",
|
|
36203
|
+
type: "function",
|
|
36204
|
+
stateMutability: "view",
|
|
36205
|
+
inputs: [],
|
|
36206
|
+
outputs: [
|
|
36207
|
+
{ type: "uint40", name: "cycleEnd" },
|
|
36208
|
+
{ type: "uint40", name: "lastSync" },
|
|
36209
|
+
{ type: "uint216", name: "rewardCycleAmount" }
|
|
36210
|
+
]
|
|
36211
|
+
},
|
|
36212
|
+
{
|
|
36213
|
+
name: "maxDistributionPerSecondPerAsset",
|
|
36214
|
+
type: "function",
|
|
36215
|
+
stateMutability: "view",
|
|
36216
|
+
inputs: [],
|
|
36217
|
+
outputs: [{ type: "uint256" }]
|
|
36218
|
+
},
|
|
36219
|
+
{
|
|
36220
|
+
name: "storedTotalAssets",
|
|
36221
|
+
type: "function",
|
|
36222
|
+
stateMutability: "view",
|
|
36223
|
+
inputs: [],
|
|
36224
|
+
outputs: [{ type: "uint256" }]
|
|
36225
|
+
}
|
|
36226
|
+
];
|
|
36227
|
+
var robustFetchJson2 = async (url, { timeoutMs = 5e3, attempts = 3 } = {}) => {
|
|
36228
|
+
let lastErr;
|
|
36229
|
+
for (let i = 0; i < attempts; i++) {
|
|
36230
|
+
try {
|
|
36231
|
+
const res = await fetch(url, {
|
|
36232
|
+
headers: {
|
|
36233
|
+
accept: "application/json",
|
|
36234
|
+
"user-agent": "1delta-margin-fetcher"
|
|
36235
|
+
},
|
|
36236
|
+
signal: AbortSignal.timeout(timeoutMs)
|
|
36237
|
+
});
|
|
36238
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
36239
|
+
return await res.json();
|
|
36240
|
+
} catch (e) {
|
|
36241
|
+
lastErr = e;
|
|
36242
|
+
if (i < attempts - 1)
|
|
36243
|
+
await new Promise((r) => setTimeout(r, 250 * (i + 1)));
|
|
36244
|
+
}
|
|
36245
|
+
}
|
|
36246
|
+
throw lastErr;
|
|
36247
|
+
};
|
|
36248
|
+
var fetchSfrxEthAprOnChain = async () => {
|
|
36249
|
+
const [cycleEnd, lastSync, lastRewardAmount, totalAssets] = await multicallRetryUniversal({
|
|
36250
|
+
chain: CHAIN_ID7,
|
|
36251
|
+
abi: XERC4626_ABI,
|
|
36252
|
+
calls: [
|
|
36253
|
+
{ address: SFRXETH, name: "rewardsCycleEnd", params: [] },
|
|
36254
|
+
{ address: SFRXETH, name: "lastSync", params: [] },
|
|
36255
|
+
{ address: SFRXETH, name: "lastRewardAmount", params: [] },
|
|
36256
|
+
{ address: SFRXETH, name: "totalAssets", params: [] }
|
|
36257
|
+
],
|
|
36258
|
+
allowFailure: false
|
|
36259
|
+
});
|
|
36260
|
+
const window = BigInt(cycleEnd) - BigInt(lastSync);
|
|
36261
|
+
if (window <= 0n || totalAssets === 0n) return 0;
|
|
36262
|
+
const perSecond = lastRewardAmount / window;
|
|
36263
|
+
return Number(perSecond * YEAR_SECONDS3 * ONE_E186 / totalAssets) / 1e16;
|
|
36264
|
+
};
|
|
36265
|
+
var fetchSfrxEthApr = async () => {
|
|
36266
|
+
try {
|
|
36267
|
+
const res = await robustFetchJson2(FRXETH_SUMMARY_URL);
|
|
36268
|
+
const apr = Number(res?.sfrxethApr);
|
|
36269
|
+
if (Number.isFinite(apr) && apr >= 0) return apr;
|
|
36270
|
+
throw new Error("sfrxethApr missing or non-numeric");
|
|
36271
|
+
} catch {
|
|
36272
|
+
return fetchSfrxEthAprOnChain();
|
|
36273
|
+
}
|
|
36274
|
+
};
|
|
36275
|
+
var fetchFraxSavingsAprs = async () => {
|
|
36276
|
+
const results = await multicallRetryUniversal({
|
|
36277
|
+
chain: CHAIN_ID7,
|
|
36278
|
+
abi: LINEAR_REWARDS_ABI,
|
|
36279
|
+
calls: [SFRXUSD, SFRAX].flatMap((address) => [
|
|
36280
|
+
{ address, name: "rewardsCycleData", params: [] },
|
|
36281
|
+
{ address, name: "maxDistributionPerSecondPerAsset", params: [] },
|
|
36282
|
+
{ address, name: "storedTotalAssets", params: [] }
|
|
36283
|
+
]),
|
|
36284
|
+
allowFailure: false
|
|
36285
|
+
});
|
|
36286
|
+
const aprAt = (offset) => {
|
|
36287
|
+
const [cycleEnd, lastSync, rewardCycleAmount] = results[offset];
|
|
36288
|
+
const maxPerSecondPerAsset = results[offset + 1];
|
|
36289
|
+
const storedTotalAssets = results[offset + 2];
|
|
36290
|
+
if (storedTotalAssets === 0n) return 0;
|
|
36291
|
+
const window = BigInt(cycleEnd) - BigInt(lastSync);
|
|
36292
|
+
const uncapped = window > 0n ? rewardCycleAmount / window : 0n;
|
|
36293
|
+
const cap = maxPerSecondPerAsset * storedTotalAssets / ONE_E186;
|
|
36294
|
+
const perSecond = uncapped < cap ? uncapped : cap;
|
|
36295
|
+
return Number(perSecond * YEAR_SECONDS3 * ONE_E186 / storedTotalAssets) / 1e16;
|
|
36296
|
+
};
|
|
36297
|
+
return { sfrxUsd: aprAt(0), sfrax: aprAt(3) };
|
|
36298
|
+
};
|
|
36299
|
+
var sfrxEthFetcher = {
|
|
36300
|
+
label: "SFRXETH",
|
|
36301
|
+
fetch: async () => {
|
|
36302
|
+
const apr = await fetchSfrxEthApr();
|
|
36303
|
+
return { [SFRXETH_KEY]: apr };
|
|
36304
|
+
}
|
|
36305
|
+
};
|
|
36306
|
+
var fraxSavingsFetcher = {
|
|
36307
|
+
label: "SFRXUSD_SFRAX",
|
|
36308
|
+
fetch: async () => {
|
|
36309
|
+
const { sfrxUsd, sfrax: sfrax2 } = await fetchFraxSavingsAprs();
|
|
36310
|
+
return {
|
|
36311
|
+
[SFRXUSD_KEY]: sfrxUsd,
|
|
36312
|
+
[SFRXUSD_GROUP_KEY]: sfrxUsd,
|
|
36313
|
+
[SFRAX_KEY]: sfrax2,
|
|
36314
|
+
[SFRAX_GROUP_KEY]: sfrax2
|
|
36315
|
+
};
|
|
36316
|
+
}
|
|
36317
|
+
};
|
|
36148
36318
|
|
|
36149
36319
|
// src/vaults/lst/registry.ts
|
|
36150
36320
|
var LST_REGISTRY = {
|
|
@@ -36251,6 +36421,39 @@ var LST_REGISTRY = {
|
|
|
36251
36421
|
yieldFetcher: wstethFetcher,
|
|
36252
36422
|
yieldKey: "WSTETH"
|
|
36253
36423
|
},
|
|
36424
|
+
{
|
|
36425
|
+
// Frax sfrxETH — a plain ERC-4626 over **frxETH**, not over ETH:
|
|
36426
|
+
// `asset()` is frxETH and `convertToAssets` is denominated in it,
|
|
36427
|
+
// so `underlying` is frxETH rather than the native sentinel.
|
|
36428
|
+
//
|
|
36429
|
+
// Two exits, and they behave differently. sfrxETH → frxETH is an
|
|
36430
|
+
// unconditional same-block `redeem` (the vault holds the whole
|
|
36431
|
+
// frxETH float), which is what `withdrawalMode` describes. frxETH
|
|
36432
|
+
// → ETH has **no protocol redemption at all** — the frxETHMinter
|
|
36433
|
+
// is one-way — so that leg is DEX-only (Curve frxETH/ETH). Modeled
|
|
36434
|
+
// as `instant-or-queued` because the *listed underlying* is always
|
|
36435
|
+
// instantly redeemable; see LST_DEPOSIT_INTERFACES.md.
|
|
36436
|
+
address: "0xac3e018457b222d93114458476f3e3416abbe38f",
|
|
36437
|
+
underlying: "0x5e8422345238f34275888049021821e8e08caa1f",
|
|
36438
|
+
// frxETH
|
|
36439
|
+
symbol: "sfrxETH",
|
|
36440
|
+
brand: "Frax",
|
|
36441
|
+
decimals: 18,
|
|
36442
|
+
reader: "erc4626",
|
|
36443
|
+
isErc4626: true,
|
|
36444
|
+
isRebasing: false,
|
|
36445
|
+
isMintable: true,
|
|
36446
|
+
// Native ETH mints in one call via `frxETHMinter.submitAndDeposit`
|
|
36447
|
+
// (ETH → frxETH → sfrxETH); the frxETH ERC-20 path is the plain
|
|
36448
|
+
// 4626 `deposit`. Both are declared in the calldata-sdk
|
|
36449
|
+
// `fraxSfrxEth` accept-set.
|
|
36450
|
+
isNativeUnderlying: true,
|
|
36451
|
+
mintContract: "0xac3e018457b222d93114458476f3e3416abbe38f",
|
|
36452
|
+
mintInputAsset: "0x5e8422345238f34275888049021821e8e08caa1f",
|
|
36453
|
+
withdrawalMode: "instant-or-queued",
|
|
36454
|
+
yieldFetcher: sfrxEthFetcher,
|
|
36455
|
+
yieldKey: "SFRXETH"
|
|
36456
|
+
},
|
|
36254
36457
|
{
|
|
36255
36458
|
address: "0xae78736cd615f374d3085123a210448e74fc6393",
|
|
36256
36459
|
underlying: "0x0000000000000000000000000000000000000000",
|
|
@@ -37717,65 +37920,1297 @@ var hastraPrimeFetcher = {
|
|
|
37717
37920
|
return { [HASTRA_PRIME_KEY]: Math.max(0, apr) };
|
|
37718
37921
|
}
|
|
37719
37922
|
};
|
|
37720
|
-
var CHAIN_ID7 = "4663";
|
|
37721
|
-
var VAULT2 = "0xde770c84fe66e063336b31737cfe9790f18c4087";
|
|
37722
|
-
var SPARK_SAVINGS_USDG_KEY = "SPUSDG";
|
|
37723
37923
|
var RAY3 = 10n ** 27n;
|
|
37724
|
-
var
|
|
37725
|
-
var
|
|
37726
|
-
|
|
37924
|
+
var YEAR_SECONDS4 = 31536e3;
|
|
37925
|
+
var SPARK_VAULTS_V2 = [
|
|
37926
|
+
{
|
|
37927
|
+
chainId: Chain.ETHEREUM_MAINNET,
|
|
37928
|
+
address: "0x28b3a8fb53b741a8fd78c0fb9a6b2393d896a43d",
|
|
37929
|
+
symbol: "spUSDC",
|
|
37930
|
+
assetGroup: "Spark Savings USDC::SPUSDC"
|
|
37931
|
+
},
|
|
37932
|
+
{
|
|
37933
|
+
chainId: Chain.ETHEREUM_MAINNET,
|
|
37934
|
+
address: "0xe2e7a17dff93280dec073c995595155283e3c372",
|
|
37935
|
+
symbol: "spUSDT",
|
|
37936
|
+
assetGroup: "Spark Savings USDT::SPUSDT"
|
|
37937
|
+
},
|
|
37938
|
+
{
|
|
37939
|
+
chainId: Chain.ETHEREUM_MAINNET,
|
|
37940
|
+
address: "0xfe6eb3b609a7c8352a241f7f3a21cea4e9209b8f",
|
|
37941
|
+
symbol: "spETH",
|
|
37942
|
+
// NB: three unrelated tokens share the `SPETH` ticker in the list
|
|
37943
|
+
// (Spectrum ETH, Kroma Staked ETH) — only the full group is safe.
|
|
37944
|
+
assetGroup: "Spark Savings ETH::SPETH"
|
|
37945
|
+
},
|
|
37727
37946
|
{
|
|
37728
|
-
|
|
37947
|
+
chainId: Chain.ETHEREUM_MAINNET,
|
|
37948
|
+
address: "0x80128dbb9f07b93dde62a6daeadb69ed14a7d354",
|
|
37949
|
+
symbol: "spPYUSD"
|
|
37950
|
+
},
|
|
37951
|
+
{
|
|
37952
|
+
chainId: Chain.AVALANCHE_C_CHAIN,
|
|
37953
|
+
address: "0x28b3a8fb53b741a8fd78c0fb9a6b2393d896a43d",
|
|
37954
|
+
symbol: "spUSDC"
|
|
37955
|
+
},
|
|
37956
|
+
{
|
|
37957
|
+
chainId: Chain.ARBITRUM_ONE,
|
|
37958
|
+
address: "0x45d91340b3b7b96985a72b5c678f7d9e8d664b62",
|
|
37959
|
+
symbol: "spUSDT"
|
|
37960
|
+
},
|
|
37961
|
+
{
|
|
37962
|
+
chainId: Chain.X_LAYER_MAINNET,
|
|
37963
|
+
address: "0xc358c90d32375721cb3924320fdc2f8b694347ca",
|
|
37964
|
+
symbol: "spUSDT"
|
|
37965
|
+
},
|
|
37966
|
+
{
|
|
37967
|
+
chainId: Chain.ROBINHOOD_CHAIN,
|
|
37968
|
+
address: "0xde770c84fe66e063336b31737cfe9790f18c4087",
|
|
37969
|
+
symbol: "spUSDG"
|
|
37970
|
+
}
|
|
37971
|
+
];
|
|
37972
|
+
var sparkVaultV2Key = (chainId, symbol) => `SPARK_V2::${chainId}::${symbol}`;
|
|
37973
|
+
var SPARK_SAVINGS_USDG_KEY = sparkVaultV2Key(
|
|
37974
|
+
Chain.ROBINHOOD_CHAIN,
|
|
37975
|
+
"spUSDG"
|
|
37976
|
+
);
|
|
37977
|
+
var SPARK_SUSDC_KEY = "SPARK_V1::sUSDC";
|
|
37978
|
+
var SPARK_SUSDC_GROUP_KEY = "Spark USDC Vault::sUSDC";
|
|
37979
|
+
var SPARK_SUSDC_LEGACY_GROUP_KEY = "Spark USDC::SUSDC";
|
|
37980
|
+
var SKY_SSR_SOURCE = "0xa3931d71877c0e7a3148cb7eb4463524fec27fbd";
|
|
37981
|
+
var VSR_ABI = [
|
|
37982
|
+
{
|
|
37983
|
+
name: "vsr",
|
|
37729
37984
|
type: "function",
|
|
37730
37985
|
stateMutability: "view",
|
|
37731
37986
|
inputs: [],
|
|
37732
37987
|
outputs: [{ type: "uint256" }]
|
|
37733
37988
|
}
|
|
37734
37989
|
];
|
|
37735
|
-
var
|
|
37736
|
-
|
|
37737
|
-
|
|
37738
|
-
|
|
37739
|
-
|
|
37740
|
-
|
|
37741
|
-
|
|
37742
|
-
|
|
37743
|
-
|
|
37744
|
-
|
|
37745
|
-
|
|
37746
|
-
|
|
37747
|
-
|
|
37748
|
-
|
|
37749
|
-
|
|
37750
|
-
|
|
37751
|
-
|
|
37752
|
-
|
|
37753
|
-
|
|
37754
|
-
|
|
37755
|
-
|
|
37756
|
-
|
|
37757
|
-
|
|
37758
|
-
|
|
37759
|
-
|
|
37760
|
-
|
|
37761
|
-
|
|
37762
|
-
|
|
37763
|
-
|
|
37764
|
-
|
|
37765
|
-
|
|
37990
|
+
var SSR_ABI = [
|
|
37991
|
+
{
|
|
37992
|
+
name: "ssr",
|
|
37993
|
+
type: "function",
|
|
37994
|
+
stateMutability: "view",
|
|
37995
|
+
inputs: [],
|
|
37996
|
+
outputs: [{ type: "uint256" }]
|
|
37997
|
+
}
|
|
37998
|
+
];
|
|
37999
|
+
var aprFromVsr = (vsr) => {
|
|
38000
|
+
if (vsr <= RAY3) return 0;
|
|
38001
|
+
const perSecond = Number(vsr - RAY3) / 1e27;
|
|
38002
|
+
return perSecond * YEAR_SECONDS4 * 100;
|
|
38003
|
+
};
|
|
38004
|
+
var chainsOf = (vaults) => [
|
|
38005
|
+
...new Set(vaults.map((v) => v.chainId))
|
|
38006
|
+
];
|
|
38007
|
+
var fetchChain = async (chainId, vaults) => {
|
|
38008
|
+
const results = await multicallRetryUniversal({
|
|
38009
|
+
chain: chainId,
|
|
38010
|
+
abi: VSR_ABI,
|
|
38011
|
+
calls: vaults.map((v) => ({
|
|
38012
|
+
address: v.address,
|
|
38013
|
+
name: "vsr",
|
|
38014
|
+
params: []
|
|
38015
|
+
})),
|
|
38016
|
+
allowFailure: false
|
|
38017
|
+
});
|
|
38018
|
+
const out = {};
|
|
38019
|
+
vaults.forEach((v, i) => {
|
|
38020
|
+
const vsr = results[i];
|
|
38021
|
+
if (typeof vsr !== "bigint" || vsr < RAY3) return;
|
|
38022
|
+
const apr = aprFromVsr(vsr);
|
|
38023
|
+
out[sparkVaultV2Key(v.chainId, v.symbol)] = apr;
|
|
38024
|
+
if (v.assetGroup) out[v.assetGroup] = apr;
|
|
38025
|
+
});
|
|
38026
|
+
return out;
|
|
38027
|
+
};
|
|
38028
|
+
var fetchSusdcApr = async () => {
|
|
38029
|
+
const [ssr] = await multicallRetryUniversal({
|
|
38030
|
+
chain: Chain.ETHEREUM_MAINNET,
|
|
38031
|
+
abi: SSR_ABI,
|
|
38032
|
+
calls: [{ address: SKY_SSR_SOURCE, name: "ssr", params: [] }],
|
|
38033
|
+
allowFailure: false
|
|
38034
|
+
});
|
|
38035
|
+
if (typeof ssr !== "bigint" || ssr < RAY3) {
|
|
38036
|
+
throw new Error("Spark sUSDC: unreadable ssr()");
|
|
38037
|
+
}
|
|
38038
|
+
const apr = aprFromVsr(ssr);
|
|
38039
|
+
return {
|
|
38040
|
+
[SPARK_SUSDC_KEY]: apr,
|
|
38041
|
+
[SPARK_SUSDC_GROUP_KEY]: apr,
|
|
38042
|
+
[SPARK_SUSDC_LEGACY_GROUP_KEY]: apr
|
|
38043
|
+
};
|
|
38044
|
+
};
|
|
38045
|
+
var sparkSavingsFetcher = {
|
|
38046
|
+
label: "SPARK_SAVINGS",
|
|
38047
|
+
fetch: async () => {
|
|
38048
|
+
const settled = await Promise.allSettled([
|
|
38049
|
+
...chainsOf(SPARK_VAULTS_V2).map(
|
|
38050
|
+
(chainId) => fetchChain(
|
|
38051
|
+
chainId,
|
|
38052
|
+
SPARK_VAULTS_V2.filter((v) => v.chainId === chainId)
|
|
38053
|
+
)
|
|
38054
|
+
),
|
|
38055
|
+
fetchSusdcApr()
|
|
38056
|
+
]);
|
|
38057
|
+
const out = {};
|
|
38058
|
+
for (const r of settled) {
|
|
38059
|
+
if (r.status === "fulfilled") Object.assign(out, r.value);
|
|
38060
|
+
}
|
|
38061
|
+
if (Object.keys(out).length === 0) {
|
|
38062
|
+
throw new Error("Spark: no chain returned a readable rate");
|
|
37766
38063
|
}
|
|
38064
|
+
return out;
|
|
37767
38065
|
}
|
|
37768
|
-
throw new Error(
|
|
37769
|
-
`spUSDG APR: no Robinhood RPC returned valid historical chi (${String(lastErr)})`
|
|
37770
|
-
);
|
|
37771
38066
|
};
|
|
37772
|
-
|
|
37773
|
-
|
|
38067
|
+
|
|
38068
|
+
// src/yields/intrinsic/fetchers/reProtocol.ts
|
|
38069
|
+
var REUSD_KEY = "RE::reUSD";
|
|
38070
|
+
var REUSDE_KEY = "RE::reUSDe";
|
|
38071
|
+
var REUSD_GROUP_KEY = "Re Protocol reUSD::REUSD";
|
|
38072
|
+
var REUSDE_GROUP_KEY = "Re Protocol reUSDe::REUSDE";
|
|
38073
|
+
var REUSD_POOL = "1c312830-ee96-40c9-b55f-b0f209ca6ebd";
|
|
38074
|
+
var REUSDE_POOL = "145810df-dc01-43e7-8033-e0aa5dceb767";
|
|
38075
|
+
var reProtocolFetcher = {
|
|
38076
|
+
label: "RE_PROTOCOL",
|
|
37774
38077
|
fetch: async () => {
|
|
37775
|
-
const
|
|
37776
|
-
|
|
38078
|
+
const [reusd, reusde] = await Promise.allSettled([
|
|
38079
|
+
fetchDefiLlamaApy(REUSD_POOL),
|
|
38080
|
+
fetchDefiLlamaApy(REUSDE_POOL)
|
|
38081
|
+
]);
|
|
38082
|
+
const out = {};
|
|
38083
|
+
if (reusd.status === "fulfilled") {
|
|
38084
|
+
const apr = apyToAprPercent(reusd.value);
|
|
38085
|
+
out[REUSD_KEY] = apr;
|
|
38086
|
+
out[REUSD_GROUP_KEY] = apr;
|
|
38087
|
+
}
|
|
38088
|
+
if (reusde.status === "fulfilled") {
|
|
38089
|
+
const apr = apyToAprPercent(reusde.value);
|
|
38090
|
+
out[REUSDE_KEY] = apr;
|
|
38091
|
+
out[REUSDE_GROUP_KEY] = apr;
|
|
38092
|
+
}
|
|
38093
|
+
if (Object.keys(out).length === 0) {
|
|
38094
|
+
throw new Error("Re Protocol: DefiLlama returned no apy for either pool");
|
|
38095
|
+
}
|
|
38096
|
+
return out;
|
|
38097
|
+
}
|
|
38098
|
+
};
|
|
38099
|
+
|
|
38100
|
+
// src/yields/intrinsic/fetchers/nativeCreditPool.ts
|
|
38101
|
+
var nativeCreditPoolYieldKey = (chainId, underlying) => `${chainId}:${underlying.toLowerCase()}`;
|
|
38102
|
+
var POOL_IDS = {
|
|
38103
|
+
// Ethereum
|
|
38104
|
+
"1": {
|
|
38105
|
+
// wNLP-USDT — 2.92 % APY at pinning (2026-07-30)
|
|
38106
|
+
"0xdac17f958d2ee523a2206206994597c13d831ec7": "ea6b472d-82a2-47fa-9c55-78907deebe13",
|
|
38107
|
+
// wNLP-USDC — 2.58 %
|
|
38108
|
+
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "8e92a8ea-0dbd-463e-bb0b-a7f419b20db5",
|
|
38109
|
+
// wNLP-WETH — 2.21 %
|
|
38110
|
+
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": "76aa8b2e-c5cd-4ae5-8182-c74ee969d71d",
|
|
38111
|
+
// wNLP-WBTC — 0.43 %
|
|
38112
|
+
"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": "8c603090-cda6-4a17-975a-69a08a7dcf5e",
|
|
38113
|
+
// wNLP-tGLD — 0 %
|
|
38114
|
+
"0x6a547b25534234bb79ce6961a23db13de154b6f4": "eb208601-24b8-5291-8c13-1327208ef2e9",
|
|
38115
|
+
// wNLP-STONEUSD — 0 %
|
|
38116
|
+
"0x6a6e3a4396993a4ec98a6f4a654cc0819538721e": "09f09cf1-915a-4b71-82eb-5f6c54f0cc68"
|
|
38117
|
+
},
|
|
38118
|
+
// BNB Chain
|
|
38119
|
+
"56": {
|
|
38120
|
+
// wNLP-Q3B (QQQB) — 36.42 % on a $4.2 M tokenized-equity pool
|
|
38121
|
+
"0x205812cdbed920aff76c6580abd681a46d11efc7": "a5bd33df-4410-5631-a44b-bab8214b1dc2",
|
|
38122
|
+
// wNLP-USDT — 3.40 %
|
|
38123
|
+
"0x55d398326f99059ff775485246999027b3197955": "14ca42f2-1d51-4093-b5c8-74effe4c5cf3",
|
|
38124
|
+
// wNLP-WBNB — 1.17 %
|
|
38125
|
+
"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c": "cd637956-e278-4462-a030-8d0d26a63a5c",
|
|
38126
|
+
// wNLP-P4B (PLTRB) — 0 %
|
|
38127
|
+
"0x0ca5d51d0277bd006fd9607d3e560785ebad8222": "a36f61e0-31d4-5bce-85c1-b7cfd57b2c21",
|
|
38128
|
+
// wNLP-S4B (SNDKB) — 0 %
|
|
38129
|
+
"0x3ee4df61bd4f867e349beae8bfe07bc31b4850fb": "06081a23-0157-4141-951b-eae858070214",
|
|
38130
|
+
// wNLP-T4B (TSLAB) — 0 %
|
|
38131
|
+
"0x5b1910eaad6450e50f816082aa078c41f10c292f": "44b167ce-b22c-4294-8877-4f71042bdd13",
|
|
38132
|
+
// wNLP-L4B (LITEB) — 0 %
|
|
38133
|
+
"0x64748bea17b6d19e242adf20425de2440c656142": "aa632ad9-f1e1-5b35-a76a-33006320aa1e",
|
|
38134
|
+
// wNLP-M5B (METAB) — 0 %
|
|
38135
|
+
"0x7425889fe94f9d693e8daefe88bcced6acfef4c0": "75edd0e5-82b9-5ff8-beba-4d9f07322990",
|
|
38136
|
+
// wNLP-M6B (MSFTB) — 0 %
|
|
38137
|
+
"0x80106cb3ead06659a5ad19df39d9b4733863b9b0": "8d6849a9-6bcb-550d-b916-38a0e792a097",
|
|
38138
|
+
// wNLP-C4B (CRCLB) — 0 %
|
|
38139
|
+
"0x80f3d493ebce97e343c53d29a137942416b4ffc0": "a1e52090-7faf-46e9-9e1e-174982f4cad9",
|
|
38140
|
+
// wNLP-USDC — 0 %
|
|
38141
|
+
"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d": "0f76c834-6f24-4187-b7d5-6f3d641c3123",
|
|
38142
|
+
// wNLP-USD1 — 0 %
|
|
38143
|
+
"0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d": "28211a21-46c4-4a0d-807a-f010b304c3d0",
|
|
38144
|
+
// wNLP-M2B (MUB) — 0 %
|
|
38145
|
+
"0xcdf2f3e0fa43c47a6662a91c9e4a7c5f69762699": "1687633e-61ff-49d4-9256-5734ba06e595"
|
|
38146
|
+
},
|
|
38147
|
+
// Arbitrum
|
|
38148
|
+
"42161": {
|
|
38149
|
+
// wNLP-USDT (USD₮0) — 2.57 %
|
|
38150
|
+
"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9": "a6dc5af9-ff47-44f4-ad38-a0c6fc62278e",
|
|
38151
|
+
// wNLP-WETH — 0.88 %
|
|
38152
|
+
"0x82af49447d8a07e3bd95bd0d56f35241523fbab1": "1b7193de-1ddf-48b7-81d2-13f082a8cf3a"
|
|
38153
|
+
},
|
|
38154
|
+
// Base
|
|
38155
|
+
"8453": {
|
|
38156
|
+
// wNLP-USDC — 3.52 %
|
|
38157
|
+
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": "a057d9d8-99d4-4017-bb59-b96f67366178",
|
|
38158
|
+
// wNLP-WETH — 1.98 %
|
|
38159
|
+
"0x4200000000000000000000000000000000000006": "9f1d3455-050c-482c-93e0-e1271d240cec"
|
|
37777
38160
|
}
|
|
37778
38161
|
};
|
|
38162
|
+
var buildChainFetcher = (chainId, pools) => ({
|
|
38163
|
+
label: `NATIVE_CREDIT_POOL_${chainId}`,
|
|
38164
|
+
fetch: async () => {
|
|
38165
|
+
const rows = Object.entries(pools);
|
|
38166
|
+
const settled = await Promise.allSettled(
|
|
38167
|
+
rows.map(([, poolId]) => fetchDefiLlamaApy(poolId))
|
|
38168
|
+
);
|
|
38169
|
+
const out = {};
|
|
38170
|
+
settled.forEach((res, i) => {
|
|
38171
|
+
if (res.status !== "fulfilled") return;
|
|
38172
|
+
if (!Number.isFinite(res.value)) return;
|
|
38173
|
+
out[nativeCreditPoolYieldKey(chainId, rows[i][0])] = apyToAprPercent(
|
|
38174
|
+
res.value
|
|
38175
|
+
);
|
|
38176
|
+
});
|
|
38177
|
+
return out;
|
|
38178
|
+
}
|
|
38179
|
+
});
|
|
38180
|
+
var FETCHERS = Object.fromEntries(
|
|
38181
|
+
Object.entries(POOL_IDS).map(([chainId, pools]) => [
|
|
38182
|
+
chainId,
|
|
38183
|
+
buildChainFetcher(chainId, pools)
|
|
38184
|
+
])
|
|
38185
|
+
);
|
|
38186
|
+
var nativeCreditPoolFetcher = (chainId) => FETCHERS[chainId];
|
|
38187
|
+
|
|
38188
|
+
// src/vaults/savings/registryNative.ts
|
|
38189
|
+
var NATIVE_CREDIT_VAULT = {
|
|
38190
|
+
"1": "0xe3d41d19564922c9952f692c5dd0563030f5f2ef",
|
|
38191
|
+
// Ethereum
|
|
38192
|
+
"56": "0xba8db0caf781cac69b6acf6c848ac148264cc05d",
|
|
38193
|
+
// BNB Chain
|
|
38194
|
+
"42161": "0xba1cf8a63227b46575af823beb4d83d1025eff09",
|
|
38195
|
+
// Arbitrum
|
|
38196
|
+
"8453": "0x74a4cd023e5afb88369e3f22b02440f2614a1367",
|
|
38197
|
+
// Base
|
|
38198
|
+
"143": "0xcd1d2d602c3e7394515daae96e4ffe16de71e5b4",
|
|
38199
|
+
// Monad
|
|
38200
|
+
"196": "0x4df7557734b382eb542bea6c74786d398df4cc19",
|
|
38201
|
+
// X Layer
|
|
38202
|
+
"4663": "0x57b8f68ef57af2db70bc9aac891836661ca4cb51",
|
|
38203
|
+
// Robinhood Chain
|
|
38204
|
+
"2818": "0x4df7557734b382eb542bea6c74786d398df4cc19"
|
|
38205
|
+
// Morph
|
|
38206
|
+
};
|
|
38207
|
+
var NATIVE_WNLP_ROWS = {
|
|
38208
|
+
// Ethereum — 24 pools, 7 funded, 6 with a DefiLlama APR.
|
|
38209
|
+
"1": [
|
|
38210
|
+
[
|
|
38211
|
+
"wNLP-WETH",
|
|
38212
|
+
"0x50ecabe78ae99bb1adc292a94e535feb0ed29853",
|
|
38213
|
+
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
|
|
38214
|
+
"0x79dcfeb6f52977ef899d92bece132e95c3d08b66",
|
|
38215
|
+
18,
|
|
38216
|
+
259200
|
|
38217
|
+
],
|
|
38218
|
+
[
|
|
38219
|
+
"wNLP-WBTC",
|
|
38220
|
+
"0x9441f31ab75f466a8afdc67a0fa65241f7600f5a",
|
|
38221
|
+
"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
|
|
38222
|
+
"0x0a1a4d7cb85b231cc9223730d2ae0582ddad228a",
|
|
38223
|
+
8,
|
|
38224
|
+
259200
|
|
38225
|
+
],
|
|
38226
|
+
[
|
|
38227
|
+
"wNLP-USDT",
|
|
38228
|
+
"0xc31daeeb822790e9ca730e7e34a9ef497fffc959",
|
|
38229
|
+
"0xdac17f958d2ee523a2206206994597c13d831ec7",
|
|
38230
|
+
"0xd1f2d929881abb26e5780d202d3c550df264791c",
|
|
38231
|
+
6,
|
|
38232
|
+
259200
|
|
38233
|
+
],
|
|
38234
|
+
[
|
|
38235
|
+
"wNLP-USDC",
|
|
38236
|
+
"0x3c339289baa2eab3802c1f0c10e025b29bdbea1a",
|
|
38237
|
+
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
38238
|
+
"0x231c3946b3a4ea1163744f236a184f796a8e18a1",
|
|
38239
|
+
6,
|
|
38240
|
+
259200
|
|
38241
|
+
],
|
|
38242
|
+
[
|
|
38243
|
+
"wNLP-STONEUSD",
|
|
38244
|
+
"0xb88791ef86d10037f7481b4e3fcbca5bb4162bfa",
|
|
38245
|
+
"0x6a6e3a4396993a4ec98a6f4a654cc0819538721e",
|
|
38246
|
+
"0x65dd5953ac28018207da0a309d0304cd53e5b734",
|
|
38247
|
+
18,
|
|
38248
|
+
28800
|
|
38249
|
+
],
|
|
38250
|
+
// 8h queue, 0bips instant fee
|
|
38251
|
+
[
|
|
38252
|
+
"wNLP-CRCLon",
|
|
38253
|
+
"0xaeb7c9122d897a224180d2ca25bc86a16d12ae92",
|
|
38254
|
+
"0x3632dea96a953c11dac2f00b4a05a32cd1063fae",
|
|
38255
|
+
"0x5b2bc2d8ad715391aff2ffa0f3f19d3a4c6686ed",
|
|
38256
|
+
18,
|
|
38257
|
+
259200
|
|
38258
|
+
],
|
|
38259
|
+
// unfunded, no APR feed
|
|
38260
|
+
[
|
|
38261
|
+
"wNLP-GOOGLon",
|
|
38262
|
+
"0x66924f881bd0cbfabded19838c5f5443867359d9",
|
|
38263
|
+
"0xba47214edd2bb43099611b208f75e4b42fdcfedc",
|
|
38264
|
+
"0x6285d06426eef9beef33ee92eab7f491f736da57",
|
|
38265
|
+
18,
|
|
38266
|
+
259200
|
|
38267
|
+
],
|
|
38268
|
+
// unfunded, no APR feed
|
|
38269
|
+
[
|
|
38270
|
+
"wNLP-INTCon",
|
|
38271
|
+
"0xb5cebfa986dd20a674be725bacebabec458abc84",
|
|
38272
|
+
"0xfda09936dbd717368de0835ba441d9e62069d36f",
|
|
38273
|
+
"0x97c156ec88085e8a057955908d056e55fc0ac589",
|
|
38274
|
+
18,
|
|
38275
|
+
259200
|
|
38276
|
+
],
|
|
38277
|
+
// unfunded, no APR feed
|
|
38278
|
+
[
|
|
38279
|
+
"wNLP-MRVLon",
|
|
38280
|
+
"0x3b1dbe5ca2d39fac168e3575d707b714a7eaa7e7",
|
|
38281
|
+
"0xf404e5f887dbd5508e16a1198fcdd5de1a4296b8",
|
|
38282
|
+
"0x7f24d9dc37483a50fcbabdb2274cf8748ae0907a",
|
|
38283
|
+
18,
|
|
38284
|
+
259200
|
|
38285
|
+
],
|
|
38286
|
+
// unfunded, no APR feed
|
|
38287
|
+
[
|
|
38288
|
+
"wNLP-MUon",
|
|
38289
|
+
"0x1e42d39df3e927c0765f258a8b7f75726350f41b",
|
|
38290
|
+
"0x050362ab1072cb2ce74d74770e22a3203ad04ee5",
|
|
38291
|
+
"0x3ee49a51a5efa599ff544fd37f197bbf15536e04",
|
|
38292
|
+
18,
|
|
38293
|
+
259200
|
|
38294
|
+
],
|
|
38295
|
+
// unfunded, no APR feed
|
|
38296
|
+
[
|
|
38297
|
+
"wNLP-NVDAon",
|
|
38298
|
+
"0xe74ee33a50a9eab6f62cb22f44b1e72e5579894c",
|
|
38299
|
+
"0x2d1f7226bd1f780af6b9a49dcc0ae00e8df4bdee",
|
|
38300
|
+
"0x3f527be145afa0e808c41ec9060513dbb82afe0c",
|
|
38301
|
+
18,
|
|
38302
|
+
259200
|
|
38303
|
+
],
|
|
38304
|
+
// unfunded, no APR feed
|
|
38305
|
+
[
|
|
38306
|
+
"wNLP-QQQon",
|
|
38307
|
+
"0xe05f1635756b6f5046e53f8e911a14794a73a4e7",
|
|
38308
|
+
"0x0e397938c1aa0680954093495b70a9f5e2249aba",
|
|
38309
|
+
"0x9d2f7e285557c65416fb2bbb268d509e9e2eb2b3",
|
|
38310
|
+
18,
|
|
38311
|
+
259200
|
|
38312
|
+
],
|
|
38313
|
+
// unfunded, no APR feed
|
|
38314
|
+
[
|
|
38315
|
+
"wNLP-SPCXon",
|
|
38316
|
+
"0xbffaaa25d2b8fe6e3e8c2c790673fa0c28c64bd4",
|
|
38317
|
+
"0xc9eef266834730340a55b6cc24621b31baf55581",
|
|
38318
|
+
"0xe66430ce224b1e65100d1b9a15381aa59e17e4b4",
|
|
38319
|
+
18,
|
|
38320
|
+
259200
|
|
38321
|
+
],
|
|
38322
|
+
// unfunded, no APR feed
|
|
38323
|
+
[
|
|
38324
|
+
"wNLP-TSLAon",
|
|
38325
|
+
"0x0183d055c77310af03dcb397efaa7e9cfb6db59b",
|
|
38326
|
+
"0xf6b1117ec07684d3958cad8beb1b302bfd21103f",
|
|
38327
|
+
"0x0cb46d89ed4ae005160b3270fafe453c43bba664",
|
|
38328
|
+
18,
|
|
38329
|
+
259200
|
|
38330
|
+
],
|
|
38331
|
+
// no APR feed
|
|
38332
|
+
[
|
|
38333
|
+
"wNLP-CRCLx",
|
|
38334
|
+
"0x2ba837484e8969da87d237effedea7badd294dd9",
|
|
38335
|
+
"0xfebded1b0986a8ee107f5ab1a1c5a813491deceb",
|
|
38336
|
+
"0x149d45c599203e06d727b7d10bb00f7035023932",
|
|
38337
|
+
18,
|
|
38338
|
+
259200
|
|
38339
|
+
],
|
|
38340
|
+
// unfunded, no APR feed
|
|
38341
|
+
[
|
|
38342
|
+
"wNLP-GOOGLx",
|
|
38343
|
+
"0x8425b76b81008d6b8f0ed468d72a2098fc13b2d2",
|
|
38344
|
+
"0xe92f673ca36c5e2efd2de7628f815f84807e803f",
|
|
38345
|
+
"0x8cbbace186e3411b61d57b897c916b912a36991a",
|
|
38346
|
+
18,
|
|
38347
|
+
259200
|
|
38348
|
+
],
|
|
38349
|
+
// unfunded, no APR feed
|
|
38350
|
+
[
|
|
38351
|
+
"wNLP-NVDAx",
|
|
38352
|
+
"0x2014e669ab74e114aa155c6b9c162bb26a5b9972",
|
|
38353
|
+
"0xc845b2894dbddd03858fd2d643b4ef725fe0849d",
|
|
38354
|
+
"0x6540c6b85ade3601f9bdf5b2d8712615dbd7730b",
|
|
38355
|
+
18,
|
|
38356
|
+
259200
|
|
38357
|
+
],
|
|
38358
|
+
// unfunded, no APR feed
|
|
38359
|
+
[
|
|
38360
|
+
"wNLP-QQQx",
|
|
38361
|
+
"0x12a81e5b0721e62d907ae5527031fb29f9eef323",
|
|
38362
|
+
"0xa753a7395cae905cd615da0b82a53e0560f250af",
|
|
38363
|
+
"0xe004a1ff7633a53530e697eec8e9de952d792abb",
|
|
38364
|
+
18,
|
|
38365
|
+
259200
|
|
38366
|
+
],
|
|
38367
|
+
// unfunded, no APR feed
|
|
38368
|
+
[
|
|
38369
|
+
"wNLP-SPCXx",
|
|
38370
|
+
"0x405a559b5c0fcb207ddd60dd2b87e9f6b5798564",
|
|
38371
|
+
"0x68fa48b1c2fe52b3d776e1953e0e782b5044ce28",
|
|
38372
|
+
"0x17beb26401a50d139e167d80e22494e17df040cd",
|
|
38373
|
+
18,
|
|
38374
|
+
259200
|
|
38375
|
+
],
|
|
38376
|
+
// unfunded, no APR feed
|
|
38377
|
+
[
|
|
38378
|
+
"wNLP-TSLAx",
|
|
38379
|
+
"0x95603e6d7753833b1ad9feba5f4e7213ba5b1d8a",
|
|
38380
|
+
"0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0",
|
|
38381
|
+
"0x8f8ce39752ef02916a13422568aea6a4cc178d16",
|
|
38382
|
+
18,
|
|
38383
|
+
259200
|
|
38384
|
+
],
|
|
38385
|
+
// unfunded, no APR feed
|
|
38386
|
+
[
|
|
38387
|
+
"wNLP-PAXG",
|
|
38388
|
+
"0xa15100ee8c648dd9d01271424bface4891aa2e8f",
|
|
38389
|
+
"0x45804880de22913dafe09f4980848ece6ecbaf78",
|
|
38390
|
+
"0xc6e39e6ffc712708d229685fa7ca1abca4309377",
|
|
38391
|
+
18,
|
|
38392
|
+
259200
|
|
38393
|
+
],
|
|
38394
|
+
// unfunded, no APR feed
|
|
38395
|
+
[
|
|
38396
|
+
"wNLP-XAUt",
|
|
38397
|
+
"0x894e71b1cdf9fb8775d54dd911d60d5bd2a0e256",
|
|
38398
|
+
"0x68749665ff8d2d112fa859aa293f07a622782f38",
|
|
38399
|
+
"0x63b102f73c19e6fb0cb3545182d97371dbab62fc",
|
|
38400
|
+
6,
|
|
38401
|
+
259200
|
|
38402
|
+
],
|
|
38403
|
+
// unfunded, no APR feed
|
|
38404
|
+
[
|
|
38405
|
+
"wNLP-tGLD",
|
|
38406
|
+
"0x72bc5907f4bd6963a145cad7fe6538927062bec4",
|
|
38407
|
+
"0x6a547b25534234bb79ce6961a23db13de154b6f4",
|
|
38408
|
+
"0xecff722c6a57c097b12d5e6a77bd8ad15bae4f0f",
|
|
38409
|
+
18,
|
|
38410
|
+
259200
|
|
38411
|
+
],
|
|
38412
|
+
[
|
|
38413
|
+
"wNLP-DRAMon",
|
|
38414
|
+
"0x4aa3d1cca957ee0c21333b7465fc94feab45037a",
|
|
38415
|
+
"0xdb5a8f5b4c17f2ee2e7192a150687e48eb3c415d",
|
|
38416
|
+
"0x6b5ce3319e47f3c59a27564b5f49ae1926322633",
|
|
38417
|
+
18,
|
|
38418
|
+
259200
|
|
38419
|
+
]
|
|
38420
|
+
// unfunded, no APR feed
|
|
38421
|
+
],
|
|
38422
|
+
// BNB Chain — 49 pools, 19 funded, 13 with a DefiLlama APR.
|
|
38423
|
+
"56": [
|
|
38424
|
+
[
|
|
38425
|
+
"wNLP-WBNB",
|
|
38426
|
+
"0x85f08a266758ea0c98b15deae71ca6ee84392afa",
|
|
38427
|
+
"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
|
|
38428
|
+
"0x9e0de0b11cd3b50370ddabf3926553c4fc3cb956",
|
|
38429
|
+
18,
|
|
38430
|
+
259200
|
|
38431
|
+
],
|
|
38432
|
+
[
|
|
38433
|
+
"wNLP-ETH",
|
|
38434
|
+
"0xfafae0cdec65cdd601ffc39f472dd4f5c7bd0721",
|
|
38435
|
+
"0x2170ed0880ac9a755fd29b2688956bd959f933f8",
|
|
38436
|
+
"0x3906f7078b25b3d4a568438da7be5c0abbe481a8",
|
|
38437
|
+
18,
|
|
38438
|
+
259200
|
|
38439
|
+
],
|
|
38440
|
+
// unfunded, no APR feed
|
|
38441
|
+
[
|
|
38442
|
+
"wNLP-USDT",
|
|
38443
|
+
"0xea5ff211ef700dccc521a1e6501c9fe1b95d8ee7",
|
|
38444
|
+
"0x55d398326f99059ff775485246999027b3197955",
|
|
38445
|
+
"0xb88791ef86d10037f7481b4e3fcbca5bb4162bfa",
|
|
38446
|
+
18,
|
|
38447
|
+
259200
|
|
38448
|
+
],
|
|
38449
|
+
[
|
|
38450
|
+
"wNLP-USDC",
|
|
38451
|
+
"0x8592ffff658310150befd83c3c5de326e9bf6f0d",
|
|
38452
|
+
"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
38453
|
+
"0x38eda6dd1def97aaa07d5fa781395221305bc3f1",
|
|
38454
|
+
18,
|
|
38455
|
+
259200
|
|
38456
|
+
],
|
|
38457
|
+
[
|
|
38458
|
+
"wNLP-USD1",
|
|
38459
|
+
"0x2f6f303924f0fdc559c57a14cb73dd9a4d611bd8",
|
|
38460
|
+
"0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d",
|
|
38461
|
+
"0x92903262eff424cae02d6f7b7b0a486e4c7ef24b",
|
|
38462
|
+
18,
|
|
38463
|
+
28800
|
|
38464
|
+
],
|
|
38465
|
+
// 8h queue, 0bips instant fee
|
|
38466
|
+
[
|
|
38467
|
+
"wNLP-STONEUSD",
|
|
38468
|
+
"0xa1cc671f9b975d0a548c436175b99891db961934",
|
|
38469
|
+
"0x8b4e28607bdcacbf937f81f29e3dafe7bc1d7c0b",
|
|
38470
|
+
"0x5b8382383c7d5bb5341cc3dc97cb09d5b5a5e798",
|
|
38471
|
+
18,
|
|
38472
|
+
28800
|
|
38473
|
+
],
|
|
38474
|
+
// unfunded, no APR feed, 8h queue, 0bips instant fee
|
|
38475
|
+
[
|
|
38476
|
+
"wNLP-CRCLon",
|
|
38477
|
+
"0x50fbc992085b065a404fb007e344d49c558047b2",
|
|
38478
|
+
"0x992879cd8ce0c312d98648875b5a8d6d042cbf34",
|
|
38479
|
+
"0x8a3d397caddd88e725e012af97bb1af3fee3f250",
|
|
38480
|
+
18,
|
|
38481
|
+
259200
|
|
38482
|
+
],
|
|
38483
|
+
// no APR feed
|
|
38484
|
+
[
|
|
38485
|
+
"wNLP-GOOGLon",
|
|
38486
|
+
"0x14e13011121fa293d20a4d9a7037814f3c932860",
|
|
38487
|
+
"0x091fc7778e6932d4009b087b191d1ee3bac5729a",
|
|
38488
|
+
"0x0335ab1c86aaea2c442d10fec9e54261a4e0cc90",
|
|
38489
|
+
18,
|
|
38490
|
+
259200
|
|
38491
|
+
],
|
|
38492
|
+
// unfunded, no APR feed
|
|
38493
|
+
[
|
|
38494
|
+
"wNLP-INTCon",
|
|
38495
|
+
"0x6b3de4f43d20c7b29bca9850dfbf6bf94824e67e",
|
|
38496
|
+
"0xa528caaa2f96090e379d43f90834c75df54d6e74",
|
|
38497
|
+
"0x7facfe33b3a0de1ef8cdf15d8717439e9f60cc24",
|
|
38498
|
+
18,
|
|
38499
|
+
259200
|
|
38500
|
+
],
|
|
38501
|
+
// unfunded, no APR feed
|
|
38502
|
+
[
|
|
38503
|
+
"wNLP-MRVLon",
|
|
38504
|
+
"0x0d8de51813ef9b8634d3b91086884d3045a5f3e8",
|
|
38505
|
+
"0x1501ec83ffef405b4331cc4f73277a40fb0c627d",
|
|
38506
|
+
"0x2ac5c050b88a00e395a12b0d724f38a1f32050ad",
|
|
38507
|
+
18,
|
|
38508
|
+
259200
|
|
38509
|
+
],
|
|
38510
|
+
// unfunded, no APR feed
|
|
38511
|
+
[
|
|
38512
|
+
"wNLP-MUon",
|
|
38513
|
+
"0x3a18cde8a81060bdc7cace60ecbc2f01765f6008",
|
|
38514
|
+
"0x8b6acf6041a81567f012ff6a4c6d96d5818d74bf",
|
|
38515
|
+
"0x542c912b0e20895eeba104503d221683e1ceddc9",
|
|
38516
|
+
18,
|
|
38517
|
+
259200
|
|
38518
|
+
],
|
|
38519
|
+
// unfunded, no APR feed
|
|
38520
|
+
[
|
|
38521
|
+
"wNLP-NVDAon",
|
|
38522
|
+
"0x493fb39c8e37726539d3fb074c333a1eab58e36b",
|
|
38523
|
+
"0xa9ee28c80f960b889dfbd1902055218cba016f75",
|
|
38524
|
+
"0x912ce4b093fc7ce0de3cc64e9cd626706da838b7",
|
|
38525
|
+
18,
|
|
38526
|
+
259200
|
|
38527
|
+
],
|
|
38528
|
+
// unfunded, no APR feed
|
|
38529
|
+
[
|
|
38530
|
+
"wNLP-QQQon",
|
|
38531
|
+
"0x03e7dce34eed4adc4b228d00a28deba2b7941266",
|
|
38532
|
+
"0x0cde6936d305d5b34667fc46425e852efd73559a",
|
|
38533
|
+
"0x83ae22182fab9e75f7b85745693fc55100d18ca0",
|
|
38534
|
+
18,
|
|
38535
|
+
259200
|
|
38536
|
+
],
|
|
38537
|
+
// unfunded, no APR feed
|
|
38538
|
+
[
|
|
38539
|
+
"wNLP-SPCXon",
|
|
38540
|
+
"0xb810dc8f7ffc2318931b4af211592eac5e1d0190",
|
|
38541
|
+
"0xd0a58bc9d88d3ff48c0294cb7e45937d0e41a928",
|
|
38542
|
+
"0xcbd0d2627cb03da58dd8ee5bc62c964cb61d4734",
|
|
38543
|
+
18,
|
|
38544
|
+
259200
|
|
38545
|
+
],
|
|
38546
|
+
// unfunded, no APR feed
|
|
38547
|
+
[
|
|
38548
|
+
"wNLP-TSLAon",
|
|
38549
|
+
"0x73be73e7570fbcbd3d83de1e32ae5594c3963fe1",
|
|
38550
|
+
"0x2494b603319d4d9f9715c9f4496d9e0364b59d93",
|
|
38551
|
+
"0xbf9640dd79e916f386e2c89566654b6fe16b0f65",
|
|
38552
|
+
18,
|
|
38553
|
+
259200
|
|
38554
|
+
],
|
|
38555
|
+
// unfunded, no APR feed
|
|
38556
|
+
[
|
|
38557
|
+
"wNLP-DRAMon",
|
|
38558
|
+
"0x90cc94befe6c6437de7c6ded32a4dc25ebbee3d2",
|
|
38559
|
+
"0x087b5761b161429013d41ea54cd2fb6022a21564",
|
|
38560
|
+
"0x8ccb472112d0fe00ba7f8b8b9fc407e68d78f62b",
|
|
38561
|
+
18,
|
|
38562
|
+
259200
|
|
38563
|
+
],
|
|
38564
|
+
// unfunded, no APR feed
|
|
38565
|
+
[
|
|
38566
|
+
"wNLP-CRCLx",
|
|
38567
|
+
"0xddfe8d98a0b459a2a2906e02ab3dd5a5bbc303c8",
|
|
38568
|
+
"0xfebded1b0986a8ee107f5ab1a1c5a813491deceb",
|
|
38569
|
+
"0x4d722dc923510a9ec4cfb3c41c414b15cbce4df0",
|
|
38570
|
+
18,
|
|
38571
|
+
259200
|
|
38572
|
+
],
|
|
38573
|
+
// unfunded, no APR feed
|
|
38574
|
+
[
|
|
38575
|
+
"wNLP-GOOGLx",
|
|
38576
|
+
"0xa8d9eb043d4bc05e4b0dac89cd5837cf40fb3bc5",
|
|
38577
|
+
"0xe92f673ca36c5e2efd2de7628f815f84807e803f",
|
|
38578
|
+
"0x2db1571c7c7954e546c8f0870cfa16b244b7f6ff",
|
|
38579
|
+
18,
|
|
38580
|
+
259200
|
|
38581
|
+
],
|
|
38582
|
+
// unfunded, no APR feed
|
|
38583
|
+
[
|
|
38584
|
+
"wNLP-NVDAx",
|
|
38585
|
+
"0x358100ed7ecdd6c608d9d5e642e34b1a2ba152b7",
|
|
38586
|
+
"0xc845b2894dbddd03858fd2d643b4ef725fe0849d",
|
|
38587
|
+
"0xef435b99c2108d0309211d0cc05b70d202c0b5df",
|
|
38588
|
+
18,
|
|
38589
|
+
259200
|
|
38590
|
+
],
|
|
38591
|
+
// unfunded, no APR feed
|
|
38592
|
+
[
|
|
38593
|
+
"wNLP-QQQx",
|
|
38594
|
+
"0x427fb58709c47fb8794771bd2e17784c0cda845a",
|
|
38595
|
+
"0xa753a7395cae905cd615da0b82a53e0560f250af",
|
|
38596
|
+
"0x7768aa6322ab912bee159191ec3380df13f6db37",
|
|
38597
|
+
18,
|
|
38598
|
+
259200
|
|
38599
|
+
],
|
|
38600
|
+
// unfunded, no APR feed
|
|
38601
|
+
[
|
|
38602
|
+
"wNLP-SPCXx",
|
|
38603
|
+
"0x335d144f211c3f4dedb3ef1fe003cbc7dd9c24a9",
|
|
38604
|
+
"0x68fa48b1c2fe52b3d776e1953e0e782b5044ce28",
|
|
38605
|
+
"0xee880bf2050a23bb84dd4734dd7413d9d9793500",
|
|
38606
|
+
18,
|
|
38607
|
+
259200
|
|
38608
|
+
],
|
|
38609
|
+
// unfunded, no APR feed
|
|
38610
|
+
[
|
|
38611
|
+
"wNLP-TSLAx",
|
|
38612
|
+
"0xbcac5180fc867d741d06e1aafde15d65ca16d3f3",
|
|
38613
|
+
"0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0",
|
|
38614
|
+
"0x826d54e624c59a01fe2917cda2429d3058880099",
|
|
38615
|
+
18,
|
|
38616
|
+
259200
|
|
38617
|
+
],
|
|
38618
|
+
// unfunded, no APR feed
|
|
38619
|
+
[
|
|
38620
|
+
"wNLP-A4B",
|
|
38621
|
+
"0xd8a25f5e864534bb2324f2eff6f5c3dd58693b8b",
|
|
38622
|
+
"0x75fd4cf6f8392e41e70391d60c90c0d5211603a1",
|
|
38623
|
+
"0xf4166b08dc7eea43101066ef8f52fb95d994d62c",
|
|
38624
|
+
18,
|
|
38625
|
+
259200
|
|
38626
|
+
],
|
|
38627
|
+
// no APR feed
|
|
38628
|
+
[
|
|
38629
|
+
"wNLP-COINB",
|
|
38630
|
+
"0x16ccbca076c24d1c174cddc8ce30389097bf8982",
|
|
38631
|
+
"0x585bde7c54abb5ccd7791f923d6c2187635f3952",
|
|
38632
|
+
"0xe7290a875d32f676b715283e1eafdfcece97110b",
|
|
38633
|
+
18,
|
|
38634
|
+
259200
|
|
38635
|
+
],
|
|
38636
|
+
// unfunded, no APR feed
|
|
38637
|
+
[
|
|
38638
|
+
"wNLP-C4B",
|
|
38639
|
+
"0xe05f1635756b6f5046e53f8e911a14794a73a4e7",
|
|
38640
|
+
"0x80f3d493ebce97e343c53d29a137942416b4ffc0",
|
|
38641
|
+
"0x9d2f7e285557c65416fb2bbb268d509e9e2eb2b3",
|
|
38642
|
+
18,
|
|
38643
|
+
259200
|
|
38644
|
+
],
|
|
38645
|
+
[
|
|
38646
|
+
"wNLP-DRAMB",
|
|
38647
|
+
"0x52207f4c347631abb40484e30c71fa66660581a7",
|
|
38648
|
+
"0x93862d63fd9fd488b1328e9b47717d75e994a84b",
|
|
38649
|
+
"0xd805265e8e1c003c65d7e2565149289459b2911f",
|
|
38650
|
+
18,
|
|
38651
|
+
259200
|
|
38652
|
+
],
|
|
38653
|
+
// unfunded, no APR feed
|
|
38654
|
+
[
|
|
38655
|
+
"wNLP-E3B",
|
|
38656
|
+
"0x3dac466a0190ce1dd7a062290ce48310206b4bca",
|
|
38657
|
+
"0xbe82f76637dba2c114c41df856c2c51e522e2cb8",
|
|
38658
|
+
"0x50b91e72b7a4a5eaf926931e4a6b3357c26235b2",
|
|
38659
|
+
18,
|
|
38660
|
+
259200
|
|
38661
|
+
],
|
|
38662
|
+
// no APR feed
|
|
38663
|
+
[
|
|
38664
|
+
"wNLP-GLWB",
|
|
38665
|
+
"0xfc6fdde35860a327be88f54bf35993f72de91a87",
|
|
38666
|
+
"0x740e075cbbea22a082b9d6679e65e82767875b6a",
|
|
38667
|
+
"0xbe38df1755e942e11241c2a39e029f9359a483e3",
|
|
38668
|
+
18,
|
|
38669
|
+
259200
|
|
38670
|
+
],
|
|
38671
|
+
// unfunded, no APR feed
|
|
38672
|
+
[
|
|
38673
|
+
"wNLP-GOOGLB",
|
|
38674
|
+
"0x38982f1604d2459f317ca9ff03808b17d4d9754b",
|
|
38675
|
+
"0x3f53de71c126bdabae20f9cd64848d317f6c3238",
|
|
38676
|
+
"0x7de2d4edc91dbef780f0c4f59828e752a9f43bac",
|
|
38677
|
+
18,
|
|
38678
|
+
259200
|
|
38679
|
+
],
|
|
38680
|
+
// unfunded, no APR feed
|
|
38681
|
+
[
|
|
38682
|
+
"wNLP-I4B",
|
|
38683
|
+
"0x737b83b17156348b84157d528e02bd9acec4163a",
|
|
38684
|
+
"0xe614e2fc6c787035ff51f452e8e826bfd32d5283",
|
|
38685
|
+
"0xe31013938457f086958c32a921a6ec17f468902d",
|
|
38686
|
+
18,
|
|
38687
|
+
259200
|
|
38688
|
+
],
|
|
38689
|
+
// no APR feed
|
|
38690
|
+
[
|
|
38691
|
+
"wNLP-L4B",
|
|
38692
|
+
"0xcf76092d538e4df7a1e8dc3eb8c21be1d462a5da",
|
|
38693
|
+
"0x64748bea17b6d19e242adf20425de2440c656142",
|
|
38694
|
+
"0xa97aea8e9d81771d4566cd1a636b58b600a1e3e8",
|
|
38695
|
+
18,
|
|
38696
|
+
259200
|
|
38697
|
+
],
|
|
38698
|
+
[
|
|
38699
|
+
"wNLP-M5B",
|
|
38700
|
+
"0x25fe9180e6c95da24b7a3fcff8bf2dbca1fb171a",
|
|
38701
|
+
"0x7425889fe94f9d693e8daefe88bcced6acfef4c0",
|
|
38702
|
+
"0x4c234c7575f762066b59670d52478c12a1d2c0ff",
|
|
38703
|
+
18,
|
|
38704
|
+
259200
|
|
38705
|
+
],
|
|
38706
|
+
[
|
|
38707
|
+
"wNLP-M6B",
|
|
38708
|
+
"0x19bbae8f804b0ea4c7c4351f722fd39efe37c2b2",
|
|
38709
|
+
"0x80106cb3ead06659a5ad19df39d9b4733863b9b0",
|
|
38710
|
+
"0x94cd73e04503537da2aa129832a0e3580d8f76a3",
|
|
38711
|
+
18,
|
|
38712
|
+
259200
|
|
38713
|
+
],
|
|
38714
|
+
[
|
|
38715
|
+
"wNLP-M4B",
|
|
38716
|
+
"0xafcd64ebfc83d57ddf5716f3814019f5543d7c46",
|
|
38717
|
+
"0xe87afb3076aeb0f9b14e368de8145ae6a2826a14",
|
|
38718
|
+
"0x8729f978393fe4a71a819c392822f80a0600f260",
|
|
38719
|
+
18,
|
|
38720
|
+
259200
|
|
38721
|
+
],
|
|
38722
|
+
// no APR feed
|
|
38723
|
+
[
|
|
38724
|
+
"wNLP-M2B",
|
|
38725
|
+
"0x66924f881bd0cbfabded19838c5f5443867359d9",
|
|
38726
|
+
"0xcdf2f3e0fa43c47a6662a91c9e4a7c5f69762699",
|
|
38727
|
+
"0x6285d06426eef9beef33ee92eab7f491f736da57",
|
|
38728
|
+
18,
|
|
38729
|
+
259200
|
|
38730
|
+
],
|
|
38731
|
+
[
|
|
38732
|
+
"wNLP-NBISB",
|
|
38733
|
+
"0x4d45a527b03551821c8d7d8974b939ed6a2824ec",
|
|
38734
|
+
"0xe256bc2a4f5297f8ba6f043f180a46300ecbcbb1",
|
|
38735
|
+
"0x1bbdd8da349ba112b51e644f10bab6598db4330b",
|
|
38736
|
+
18,
|
|
38737
|
+
259200
|
|
38738
|
+
],
|
|
38739
|
+
// unfunded, no APR feed
|
|
38740
|
+
[
|
|
38741
|
+
"wNLP-N4B",
|
|
38742
|
+
"0x2ba837484e8969da87d237effedea7badd294dd9",
|
|
38743
|
+
"0x02fca66c1d1afb4e2a7884261eb00f63598a7436",
|
|
38744
|
+
"0x149d45c599203e06d727b7d10bb00f7035023932",
|
|
38745
|
+
18,
|
|
38746
|
+
259200
|
|
38747
|
+
],
|
|
38748
|
+
// unfunded, no APR feed
|
|
38749
|
+
[
|
|
38750
|
+
"wNLP-P4B",
|
|
38751
|
+
"0x93da79355ae801a673e4d3b656a4152330646ee4",
|
|
38752
|
+
"0x0ca5d51d0277bd006fd9607d3e560785ebad8222",
|
|
38753
|
+
"0xe5ed3ae9fca303126526d4084481fd0b9f589a97",
|
|
38754
|
+
18,
|
|
38755
|
+
259200
|
|
38756
|
+
],
|
|
38757
|
+
[
|
|
38758
|
+
"wNLP-QCOMB",
|
|
38759
|
+
"0xdfa34465d1c6c044304b798fa4a147eac579b66b",
|
|
38760
|
+
"0x5f7a56e877b9130608bf8be962621011182fefe1",
|
|
38761
|
+
"0x8618171d00f972b6b40a7c20dd9f9b3d6efdb673",
|
|
38762
|
+
18,
|
|
38763
|
+
259200
|
|
38764
|
+
],
|
|
38765
|
+
// unfunded, no APR feed
|
|
38766
|
+
[
|
|
38767
|
+
"wNLP-Q3B",
|
|
38768
|
+
"0x564d609b363b902148af559c18aa1bc84bf29a5b",
|
|
38769
|
+
"0x205812cdbed920aff76c6580abd681a46d11efc7",
|
|
38770
|
+
"0xbb389a0ae36d5dc04967b1866c8f9835eca9f895",
|
|
38771
|
+
18,
|
|
38772
|
+
259200
|
|
38773
|
+
],
|
|
38774
|
+
[
|
|
38775
|
+
"wNLP-S4B",
|
|
38776
|
+
"0x2014e669ab74e114aa155c6b9c162bb26a5b9972",
|
|
38777
|
+
"0x3ee4df61bd4f867e349beae8bfe07bc31b4850fb",
|
|
38778
|
+
"0x6540c6b85ade3601f9bdf5b2d8712615dbd7730b",
|
|
38779
|
+
18,
|
|
38780
|
+
259200
|
|
38781
|
+
],
|
|
38782
|
+
[
|
|
38783
|
+
"wNLP-SOXLB",
|
|
38784
|
+
"0xcd1c23eaec3bbdef5f945f2b352b188c8a3b14d3",
|
|
38785
|
+
"0xd97d097a89113fa59b76c572e5b2eb647e8eefaf",
|
|
38786
|
+
"0x7ee63c39be8f868991830f47b167c21c0c1bf23c",
|
|
38787
|
+
18,
|
|
38788
|
+
259200
|
|
38789
|
+
],
|
|
38790
|
+
// unfunded, no APR feed
|
|
38791
|
+
[
|
|
38792
|
+
"wNLP-S5B",
|
|
38793
|
+
"0xf27760f7b431ad8caee0f4e3062e6140b14e0ebc",
|
|
38794
|
+
"0xbe9d156892e55e7154bcd3cb0fea677f9d3103e1",
|
|
38795
|
+
"0x8386c857577fced92537aea6e5112f38da46212a",
|
|
38796
|
+
18,
|
|
38797
|
+
259200
|
|
38798
|
+
],
|
|
38799
|
+
// no APR feed
|
|
38800
|
+
[
|
|
38801
|
+
"wNLP-SPYB",
|
|
38802
|
+
"0x5c53355123a51bd800934e0fa1f8eb8c9f3a848b",
|
|
38803
|
+
"0x7138b48df7d98d7e3cc221bfe7192d0a178182d8",
|
|
38804
|
+
"0x1535fa32cd0bcf66309da5209dbfca4f4c466ce1",
|
|
38805
|
+
18,
|
|
38806
|
+
259200
|
|
38807
|
+
],
|
|
38808
|
+
// unfunded, no APR feed
|
|
38809
|
+
[
|
|
38810
|
+
"wNLP-T4B",
|
|
38811
|
+
"0xaeb7c9122d897a224180d2ca25bc86a16d12ae92",
|
|
38812
|
+
"0x5b1910eaad6450e50f816082aa078c41f10c292f",
|
|
38813
|
+
"0x5b2bc2d8ad715391aff2ffa0f3f19d3a4c6686ed",
|
|
38814
|
+
18,
|
|
38815
|
+
259200
|
|
38816
|
+
],
|
|
38817
|
+
[
|
|
38818
|
+
"wNLP-WDCB",
|
|
38819
|
+
"0x3bdd26cf07bd97baa5f2a588cb6a67b83c7a60a5",
|
|
38820
|
+
"0xebe29695f8047c13d36e7a790ca8c1b239ffad1c",
|
|
38821
|
+
"0x22e87beb7307dcac4ab20b4a23080a3b7a078ff5",
|
|
38822
|
+
18,
|
|
38823
|
+
259200
|
|
38824
|
+
],
|
|
38825
|
+
// unfunded, no APR feed
|
|
38826
|
+
[
|
|
38827
|
+
"wNLP-CANP",
|
|
38828
|
+
"0x63689d5fe0d8f766fc11296c694634cd6f14ee6e",
|
|
38829
|
+
"0xdc22f0a9a60eee3697e925414bdb4580d1c35f91",
|
|
38830
|
+
"0xed2f65b5889f9889ad45b97108cc1d449ddef6ff",
|
|
38831
|
+
6,
|
|
38832
|
+
259200
|
|
38833
|
+
],
|
|
38834
|
+
// unfunded, no APR feed
|
|
38835
|
+
[
|
|
38836
|
+
"wNLP-CBRSB",
|
|
38837
|
+
"0x01246b4a5e22bba113108606451db0817a7d20f1",
|
|
38838
|
+
"0xe81c6bb0266cd68b4f17278531dd03ea1f12da4e",
|
|
38839
|
+
"0xb25861953cc45c6a0a572f892eb671e00198cfc7",
|
|
38840
|
+
18,
|
|
38841
|
+
259200
|
|
38842
|
+
],
|
|
38843
|
+
// unfunded, no APR feed
|
|
38844
|
+
[
|
|
38845
|
+
"wNLP-SK4B",
|
|
38846
|
+
"0x31ac519953055b7c356228658e6836d1c7b4fa36",
|
|
38847
|
+
"0xca750ef65f295bbecd685abf54e82caf297bdb61",
|
|
38848
|
+
"0x5e043dc607c23b94b964c8553722932b9eaf54cb",
|
|
38849
|
+
18,
|
|
38850
|
+
259200
|
|
38851
|
+
]
|
|
38852
|
+
// unfunded, no APR feed
|
|
38853
|
+
],
|
|
38854
|
+
// Arbitrum — 4 pools, 3 funded, 2 with a DefiLlama APR.
|
|
38855
|
+
"42161": [
|
|
38856
|
+
[
|
|
38857
|
+
"wNLP-WETH",
|
|
38858
|
+
"0x9db777ca39e1f1144d564cb5f593d629d2debe46",
|
|
38859
|
+
"0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
|
38860
|
+
"0x7f1bcc60ed3c80da906fd91a2ec63ec71442430a",
|
|
38861
|
+
18,
|
|
38862
|
+
259200
|
|
38863
|
+
],
|
|
38864
|
+
[
|
|
38865
|
+
"wNLP-USDT",
|
|
38866
|
+
"0xe83ce032108f539c5a5b1c6029a89ff412d9e27f",
|
|
38867
|
+
"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
|
|
38868
|
+
"0xa6734c9588c458f4f6bd450a62245d76303fb9a3",
|
|
38869
|
+
6,
|
|
38870
|
+
259200
|
|
38871
|
+
],
|
|
38872
|
+
[
|
|
38873
|
+
"wNLP-USDC",
|
|
38874
|
+
"0xb873363be6e4c99c1f4e6ffd6526c7c03a7a07ad",
|
|
38875
|
+
"0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
|
38876
|
+
"0x73a8df5258fb736eb1aeb198b72b73d6eb457bf8",
|
|
38877
|
+
6,
|
|
38878
|
+
259200
|
|
38879
|
+
],
|
|
38880
|
+
// no APR feed
|
|
38881
|
+
[
|
|
38882
|
+
"wNLP-WBTC",
|
|
38883
|
+
"0xd8865923465463002bc2ccc522e5a21f8d06adfa",
|
|
38884
|
+
"0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f",
|
|
38885
|
+
"0xb043e07edf8cf2ddc2fa22bb087697a721af1058",
|
|
38886
|
+
8,
|
|
38887
|
+
259200
|
|
38888
|
+
]
|
|
38889
|
+
// unfunded, no APR feed
|
|
38890
|
+
],
|
|
38891
|
+
// Base — 4 pools, 3 funded, 2 with a DefiLlama APR.
|
|
38892
|
+
"8453": [
|
|
38893
|
+
[
|
|
38894
|
+
"wNLP-WETH",
|
|
38895
|
+
"0xc750fe788a828dc960cd08e8bbe1ddd3bffc03bf",
|
|
38896
|
+
"0x4200000000000000000000000000000000000006",
|
|
38897
|
+
"0x9af2f3c0cd35283e13f7087e2b34b1444b57a44c",
|
|
38898
|
+
18,
|
|
38899
|
+
259200
|
|
38900
|
+
],
|
|
38901
|
+
[
|
|
38902
|
+
"wNLP-USDC",
|
|
38903
|
+
"0xe745b0565cecb4612a41eae78319bf3ca8063e6f",
|
|
38904
|
+
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
38905
|
+
"0xe7d6b7689bd2cea0af533dd3ad79df6968acb53e",
|
|
38906
|
+
6,
|
|
38907
|
+
259200
|
|
38908
|
+
],
|
|
38909
|
+
[
|
|
38910
|
+
"wNLP-USDT",
|
|
38911
|
+
"0x0872c63c9b1f55ea4166752ba3b890a444b59e9e",
|
|
38912
|
+
"0xfde4c96c8593536e31f229ea8f37b2ada2699bb2",
|
|
38913
|
+
"0x337ec533b568957af458e10cbfbcbf3d59c935b1",
|
|
38914
|
+
6,
|
|
38915
|
+
259200
|
|
38916
|
+
],
|
|
38917
|
+
// no APR feed
|
|
38918
|
+
[
|
|
38919
|
+
"wNLP-cbBTC",
|
|
38920
|
+
"0x90256c018d2acadda2da0b4fd61449e956fd59b6",
|
|
38921
|
+
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
|
|
38922
|
+
"0xa2efe8e37f247cb51c2a48692301335292ccb630",
|
|
38923
|
+
8,
|
|
38924
|
+
259200
|
|
38925
|
+
]
|
|
38926
|
+
// unfunded, no APR feed
|
|
38927
|
+
],
|
|
38928
|
+
// Monad — 6 pools, 4 funded, 0 with a DefiLlama APR.
|
|
38929
|
+
"143": [
|
|
38930
|
+
[
|
|
38931
|
+
"wNLP-WMON",
|
|
38932
|
+
"0x0166f153e26f572dfac570ccc351ba84ac7a2a72",
|
|
38933
|
+
"0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
|
|
38934
|
+
"0x277ad957898ce34fd959cbfd28ab5962de613b85",
|
|
38935
|
+
18,
|
|
38936
|
+
259200
|
|
38937
|
+
],
|
|
38938
|
+
// no APR feed
|
|
38939
|
+
[
|
|
38940
|
+
"wNLP-USDC",
|
|
38941
|
+
"0xf3d44492f11a2dc234acba80a9e377ab5732b09d",
|
|
38942
|
+
"0x754704bc059f8c67012fed69bc8a327a5aafb603",
|
|
38943
|
+
"0xefadd9a8342bd4ae4d55aed2d748dc006149186a",
|
|
38944
|
+
6,
|
|
38945
|
+
259200
|
|
38946
|
+
],
|
|
38947
|
+
// no APR feed
|
|
38948
|
+
[
|
|
38949
|
+
"wNLP-USDT0",
|
|
38950
|
+
"0x3b1dbe5ca2d39fac168e3575d707b714a7eaa7e7",
|
|
38951
|
+
"0xe7cd86e13ac4309349f30b3435a9d337750fc82d",
|
|
38952
|
+
"0x4cbf9530d653d862a8ece9ed46af6c2f136e2e80",
|
|
38953
|
+
6,
|
|
38954
|
+
259200
|
|
38955
|
+
],
|
|
38956
|
+
// unfunded, no APR feed
|
|
38957
|
+
[
|
|
38958
|
+
"wNLP-WETH",
|
|
38959
|
+
"0x01135c821a87154de3f338f1978811f2648e9570",
|
|
38960
|
+
"0xee8c0e9f1bffb4eb878d8f15f368a02a35481242",
|
|
38961
|
+
"0x92e6d5cdf9c01473adf7089cc416bb934f702cfd",
|
|
38962
|
+
18,
|
|
38963
|
+
259200
|
|
38964
|
+
],
|
|
38965
|
+
// no APR feed
|
|
38966
|
+
[
|
|
38967
|
+
"wNLP-cbBTC",
|
|
38968
|
+
"0x72c486886d199984bdbcf278ba68358365b0f8b7",
|
|
38969
|
+
"0xd18b7ec58cdf4876f6afebd3ed1730e4ce10414b",
|
|
38970
|
+
"0x339808a8be84f74bdcd570c546e2efbd0e780296",
|
|
38971
|
+
8,
|
|
38972
|
+
259200
|
|
38973
|
+
],
|
|
38974
|
+
// no APR feed
|
|
38975
|
+
[
|
|
38976
|
+
"wNLP-AUSD",
|
|
38977
|
+
"0x70dd4db19f75dfea083ce50e77f9b53b55d8558a",
|
|
38978
|
+
"0x00000000efe302beaa2b3e6e1b18d08d69a9012a",
|
|
38979
|
+
"0x4ee1c93eb1ca08f566211fb18a8dc5c1c6d04939",
|
|
38980
|
+
6,
|
|
38981
|
+
28800
|
|
38982
|
+
]
|
|
38983
|
+
// unfunded, no APR feed, 8h queue
|
|
38984
|
+
],
|
|
38985
|
+
// X Layer — 9 pools, 2 funded, 0 with a DefiLlama APR.
|
|
38986
|
+
"196": [
|
|
38987
|
+
[
|
|
38988
|
+
"wNLP-WETH",
|
|
38989
|
+
"0xde540eabdb4ee3a2680394a4346dbfd76bb78e83",
|
|
38990
|
+
"0x5a77f1443d16ee5761d310e38b62f77f726bc71c",
|
|
38991
|
+
"0x79292d171531673ff97035315fda568189c3c8a5",
|
|
38992
|
+
18,
|
|
38993
|
+
259200
|
|
38994
|
+
],
|
|
38995
|
+
// no APR feed
|
|
38996
|
+
[
|
|
38997
|
+
"wNLP-USD\u20AE0",
|
|
38998
|
+
"0x0b28888e8f0755809c679e01f67591d1ed5ae9b9",
|
|
38999
|
+
"0x779ded0c9e1022225f8e0630b35a9b54be713736",
|
|
39000
|
+
"0x4af9206a885e4708ad3be482611d224239efe173",
|
|
39001
|
+
6,
|
|
39002
|
+
259200
|
|
39003
|
+
],
|
|
39004
|
+
// unfunded, no APR feed
|
|
39005
|
+
[
|
|
39006
|
+
"wNLP-USDG",
|
|
39007
|
+
"0x6285d06426eef9beef33ee92eab7f491f736da57",
|
|
39008
|
+
"0x4ae46a509f6b1d9056937ba4500cb143933d2dc8",
|
|
39009
|
+
"0x92e6d5cdf9c01473adf7089cc416bb934f702cfd",
|
|
39010
|
+
6,
|
|
39011
|
+
259200
|
|
39012
|
+
],
|
|
39013
|
+
// no APR feed
|
|
39014
|
+
[
|
|
39015
|
+
"wNLP-NVDAx",
|
|
39016
|
+
"0x7fde95f8ca333f87677e89e42d09cb4b156f8921",
|
|
39017
|
+
"0xc845b2894dbddd03858fd2d643b4ef725fe0849d",
|
|
39018
|
+
"0x06ab0323c1e3759fe3df946068825fe572db1254",
|
|
39019
|
+
18,
|
|
39020
|
+
259200
|
|
39021
|
+
],
|
|
39022
|
+
// unfunded, no APR feed
|
|
39023
|
+
[
|
|
39024
|
+
"wNLP-TSLAx",
|
|
39025
|
+
"0x78901dd5e09434c6d8c4caa651c012280324af59",
|
|
39026
|
+
"0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0",
|
|
39027
|
+
"0x9dc27e2b3cc52533c159567a9e45243014ef3c0d",
|
|
39028
|
+
18,
|
|
39029
|
+
259200
|
|
39030
|
+
],
|
|
39031
|
+
// unfunded, no APR feed
|
|
39032
|
+
[
|
|
39033
|
+
"wNLP-CRCLx",
|
|
39034
|
+
"0xe1e4bcb64121fff9cfa4d4f5bc31759f035992ad",
|
|
39035
|
+
"0xfebded1b0986a8ee107f5ab1a1c5a813491deceb",
|
|
39036
|
+
"0xf3d44492f11a2dc234acba80a9e377ab5732b09d",
|
|
39037
|
+
18,
|
|
39038
|
+
259200
|
|
39039
|
+
],
|
|
39040
|
+
// unfunded, no APR feed
|
|
39041
|
+
[
|
|
39042
|
+
"wNLP-GOOGLx",
|
|
39043
|
+
"0x1d2831785db72d0809d493a4cfcc90fee47927ad",
|
|
39044
|
+
"0xe92f673ca36c5e2efd2de7628f815f84807e803f",
|
|
39045
|
+
"0xc9be6db8797f44455e578cac759cd209a1fd126d",
|
|
39046
|
+
18,
|
|
39047
|
+
259200
|
|
39048
|
+
],
|
|
39049
|
+
// unfunded, no APR feed
|
|
39050
|
+
[
|
|
39051
|
+
"wNLP-QQQx",
|
|
39052
|
+
"0x4fb706eb3e3784da4fc5aa824886f6129a65fb2e",
|
|
39053
|
+
"0xa753a7395cae905cd615da0b82a53e0560f250af",
|
|
39054
|
+
"0x4f53c62a940748dd572d5ac790d3628e9b39ca8e",
|
|
39055
|
+
18,
|
|
39056
|
+
259200
|
|
39057
|
+
],
|
|
39058
|
+
// unfunded, no APR feed
|
|
39059
|
+
[
|
|
39060
|
+
"wNLP-SPCXx",
|
|
39061
|
+
"0x6540c6b85ade3601f9bdf5b2d8712615dbd7730b",
|
|
39062
|
+
"0x68fa48b1c2fe52b3d776e1953e0e782b5044ce28",
|
|
39063
|
+
"0x277ac2538df35713f196d75058e6a661a058cd6f",
|
|
39064
|
+
18,
|
|
39065
|
+
259200
|
|
39066
|
+
]
|
|
39067
|
+
// unfunded, no APR feed
|
|
39068
|
+
],
|
|
39069
|
+
// Robinhood Chain — 10 pools, 2 funded, 0 with a DefiLlama APR.
|
|
39070
|
+
"4663": [
|
|
39071
|
+
[
|
|
39072
|
+
"wNLP-WETH",
|
|
39073
|
+
"0x7ce2c710c132f68a74dbb186644ec1eb86dfaf4e",
|
|
39074
|
+
"0x0bd7d308f8e1639fab988df18a8011f41eacad73",
|
|
39075
|
+
"0x70f167a4fed2c68d68760a4b0b6e93d919cfa935",
|
|
39076
|
+
18,
|
|
39077
|
+
259200
|
|
39078
|
+
],
|
|
39079
|
+
// no APR feed
|
|
39080
|
+
[
|
|
39081
|
+
"wNLP-USDG",
|
|
39082
|
+
"0xbb761ba477de2e887968d6c01073a477a9f9815b",
|
|
39083
|
+
"0x5fc5360d0400a0fd4f2af552add042d716f1d168",
|
|
39084
|
+
"0x855a737dbaf7143574cfe869b0849f929d8ba222",
|
|
39085
|
+
6,
|
|
39086
|
+
259200
|
|
39087
|
+
],
|
|
39088
|
+
// no APR feed
|
|
39089
|
+
[
|
|
39090
|
+
"wNLP-AMD",
|
|
39091
|
+
"0x1eda0a1353c57113ff41c32f38ca4b8d0cfec562",
|
|
39092
|
+
"0x86923f96303d656e4aa86d9d42d1e57ad2023fdc",
|
|
39093
|
+
"0x24417d45dfe01841b5f28c05c1d44abf4c321ae6",
|
|
39094
|
+
18,
|
|
39095
|
+
259200
|
|
39096
|
+
],
|
|
39097
|
+
// unfunded, no APR feed
|
|
39098
|
+
[
|
|
39099
|
+
"wNLP-CRCL",
|
|
39100
|
+
"0x965cfe674859cb223ffdc0f72722ad5619f7d90f",
|
|
39101
|
+
"0xdf0992e440dd0be65bd8439b609d6d4366bf1cb5",
|
|
39102
|
+
"0x3581a66d36e307b41b11402cf858f3f83e31d859",
|
|
39103
|
+
18,
|
|
39104
|
+
259200
|
|
39105
|
+
],
|
|
39106
|
+
// unfunded, no APR feed
|
|
39107
|
+
[
|
|
39108
|
+
"wNLP-MSFT",
|
|
39109
|
+
"0xa43ab4c0539ad04b41203fc0544d859540088613",
|
|
39110
|
+
"0xe93237c50d904957cf27e7b1133b510c669c2e74",
|
|
39111
|
+
"0xa81bfbe0994e0b49d66f2273c52d5d447ea71038",
|
|
39112
|
+
18,
|
|
39113
|
+
259200
|
|
39114
|
+
],
|
|
39115
|
+
// unfunded, no APR feed
|
|
39116
|
+
[
|
|
39117
|
+
"wNLP-MU",
|
|
39118
|
+
"0xb05b806fc5bdce389b734dce50400fa27ae54942",
|
|
39119
|
+
"0xff080c8ce2e5feadaca0da81314ae59d232d4afd",
|
|
39120
|
+
"0x48cf773961339cea5284f62bcc9a4a342be42adc",
|
|
39121
|
+
18,
|
|
39122
|
+
259200
|
|
39123
|
+
],
|
|
39124
|
+
// unfunded, no APR feed
|
|
39125
|
+
[
|
|
39126
|
+
"wNLP-NVDA",
|
|
39127
|
+
"0x001660ed89e93c7c9b348e247934fa1ebc3a2625",
|
|
39128
|
+
"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec",
|
|
39129
|
+
"0x6422b1130526d842f74a9340a0d244c289534dd9",
|
|
39130
|
+
18,
|
|
39131
|
+
259200
|
|
39132
|
+
],
|
|
39133
|
+
// unfunded, no APR feed
|
|
39134
|
+
[
|
|
39135
|
+
"wNLP-SNDK",
|
|
39136
|
+
"0xbd254986706115081d84b7a71f3aa1f07d748a5b",
|
|
39137
|
+
"0xb90a19ff0af67f7779aff50a882a9cff42446400",
|
|
39138
|
+
"0x45ee33d6c6d399aa6fa14e25c5462bfd7f0ffea9",
|
|
39139
|
+
18,
|
|
39140
|
+
259200
|
|
39141
|
+
],
|
|
39142
|
+
// unfunded, no APR feed
|
|
39143
|
+
[
|
|
39144
|
+
"wNLP-SPCX",
|
|
39145
|
+
"0x68722297b35760ff16b873c4c89187f4e1d5dbe6",
|
|
39146
|
+
"0x4a0e65a3eccec6dbe60ae065f2e7bb85fae35eea",
|
|
39147
|
+
"0x2933c9c18ba62fe494b4ac75d32060594c9c28bc",
|
|
39148
|
+
18,
|
|
39149
|
+
259200
|
|
39150
|
+
],
|
|
39151
|
+
// unfunded, no APR feed
|
|
39152
|
+
[
|
|
39153
|
+
"wNLP-TSLA",
|
|
39154
|
+
"0xf54b421461d41203e4babdc59d1259d7de886a73",
|
|
39155
|
+
"0x322f0929c4625ed5bad873c95208d54e1c003b2d",
|
|
39156
|
+
"0x0945712145b562ec6ba6631293fb917feb6b262a",
|
|
39157
|
+
18,
|
|
39158
|
+
259200
|
|
39159
|
+
]
|
|
39160
|
+
// unfunded, no APR feed
|
|
39161
|
+
],
|
|
39162
|
+
// Morph — 2 pools, 2 funded, 0 with a DefiLlama APR.
|
|
39163
|
+
"2818": [
|
|
39164
|
+
[
|
|
39165
|
+
"wNLP-USDC",
|
|
39166
|
+
"0xcf7b55c544b579a09b54f5a4da3e1ba476c04364",
|
|
39167
|
+
"0xcfb1186f4e93d60e60a8bdd997427d1f33bc372b",
|
|
39168
|
+
"0x26ff7df6d9e1feead7786a6ba82618aafd7c8ea7",
|
|
39169
|
+
6,
|
|
39170
|
+
259200
|
|
39171
|
+
],
|
|
39172
|
+
// no APR feed
|
|
39173
|
+
[
|
|
39174
|
+
"wNLP-BGBTC",
|
|
39175
|
+
"0xca0f3fb46eb413abefa10d91aa2a6fd49eab60eb",
|
|
39176
|
+
"0x31011317764e097b28d159a8145b92bfa453f606",
|
|
39177
|
+
"0x0d8de51813ef9b8634d3b91086884d3045a5f3e8",
|
|
39178
|
+
8,
|
|
39179
|
+
259200
|
|
39180
|
+
]
|
|
39181
|
+
// no APR feed
|
|
39182
|
+
]
|
|
39183
|
+
};
|
|
39184
|
+
var NATIVE_WNLP_ENTRIES = Object.fromEntries(
|
|
39185
|
+
Object.entries(NATIVE_WNLP_ROWS).map(([chainId, rows]) => [
|
|
39186
|
+
chainId,
|
|
39187
|
+
rows.map(
|
|
39188
|
+
([
|
|
39189
|
+
symbol,
|
|
39190
|
+
address,
|
|
39191
|
+
underlying,
|
|
39192
|
+
withdrawQueue,
|
|
39193
|
+
decimals,
|
|
39194
|
+
withdrawalWindowSeconds
|
|
39195
|
+
]) => ({
|
|
39196
|
+
address,
|
|
39197
|
+
underlying,
|
|
39198
|
+
symbol,
|
|
39199
|
+
brand: "Native",
|
|
39200
|
+
decimals,
|
|
39201
|
+
isRebasing: false,
|
|
39202
|
+
isMintable: true,
|
|
39203
|
+
withdrawalMode: "fee-or-queued",
|
|
39204
|
+
withdrawalCooldownSeconds: withdrawalWindowSeconds,
|
|
39205
|
+
reader: "native-wnlp",
|
|
39206
|
+
withdrawQueue,
|
|
39207
|
+
inventoryContract: NATIVE_CREDIT_VAULT[chainId],
|
|
39208
|
+
yieldFetcher: nativeCreditPoolFetcher(chainId),
|
|
39209
|
+
yieldKey: nativeCreditPoolYieldKey(chainId, underlying)
|
|
39210
|
+
})
|
|
39211
|
+
)
|
|
39212
|
+
])
|
|
39213
|
+
);
|
|
37779
39214
|
|
|
37780
39215
|
// src/vaults/savings/registry.ts
|
|
37781
39216
|
var stUsdGroup = {
|
|
@@ -37871,11 +39306,121 @@ var yUsdGroup = {
|
|
|
37871
39306
|
// confirmed on Basescan.
|
|
37872
39307
|
}
|
|
37873
39308
|
};
|
|
39309
|
+
var sUsdcGroup = {
|
|
39310
|
+
base: {
|
|
39311
|
+
reader: "erc4626-idle",
|
|
39312
|
+
symbol: "sUSDC",
|
|
39313
|
+
brand: "Spark",
|
|
39314
|
+
decimals: 18,
|
|
39315
|
+
underlyingDecimals: 6,
|
|
39316
|
+
isRebasing: false,
|
|
39317
|
+
isMintable: true,
|
|
39318
|
+
withdrawalMode: "instant-capped",
|
|
39319
|
+
yieldFetcher: sparkSavingsFetcher,
|
|
39320
|
+
yieldKey: SPARK_SUSDC_KEY
|
|
39321
|
+
},
|
|
39322
|
+
chains: {
|
|
39323
|
+
"1": {
|
|
39324
|
+
address: "0xbc65ad17c5c0a2a4d159fa5a503f4992c7b545fe",
|
|
39325
|
+
underlying: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
39326
|
+
// Mainnet PSM keeps a dedicated pocket contract.
|
|
39327
|
+
inventoryContract: "0x37305b1cd40574e4c5ce33f8e8306be057fd7341"
|
|
39328
|
+
},
|
|
39329
|
+
"8453": {
|
|
39330
|
+
address: "0x3128a0f7f0ea68e7b7c9b00afa7e41045828e858",
|
|
39331
|
+
underlying: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
39332
|
+
// L2 PSM3s custody the pocket themselves (`pocket() == psm`).
|
|
39333
|
+
inventoryContract: "0x1601843c5e9bc251a3272907010afa41fa18347e"
|
|
39334
|
+
},
|
|
39335
|
+
"42161": {
|
|
39336
|
+
address: "0x940098b108fb7d0a7e374f6eded7760787464609",
|
|
39337
|
+
underlying: "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
|
39338
|
+
inventoryContract: "0x2b05f8e1cacc6974fd79a673a341fe1f58d27266"
|
|
39339
|
+
},
|
|
39340
|
+
"10": {
|
|
39341
|
+
address: "0xcf9326e24ebffbef22ce1050007a43a3c0b6db55",
|
|
39342
|
+
underlying: "0x0b2c639c533813f4aa9d7837caf62653d097ff85",
|
|
39343
|
+
inventoryContract: "0xe0f9978b907853f354d79188a3defbd41978af62"
|
|
39344
|
+
},
|
|
39345
|
+
"130": {
|
|
39346
|
+
address: "0x14d9143becc348920b68d123687045db49a016c6",
|
|
39347
|
+
underlying: "0x078d782b760474a361dda0af3839290b0ef57ad6",
|
|
39348
|
+
inventoryContract: "0x7b42ed932f26509465f7ce3faf76ffce1275312f"
|
|
39349
|
+
}
|
|
39350
|
+
}
|
|
39351
|
+
};
|
|
39352
|
+
var reUsdGroup = {
|
|
39353
|
+
base: {
|
|
39354
|
+
reader: "nav-oracle",
|
|
39355
|
+
symbol: "reUSD",
|
|
39356
|
+
brand: "Re Protocol",
|
|
39357
|
+
decimals: 18,
|
|
39358
|
+
underlyingDecimals: 6,
|
|
39359
|
+
isRebasing: false,
|
|
39360
|
+
isMintable: false,
|
|
39361
|
+
withdrawalMode: "request-based",
|
|
39362
|
+
// Quarterly queue — the documented worst case, and the live case
|
|
39363
|
+
// wherever the buffer sits under 1 % of supply.
|
|
39364
|
+
withdrawalCooldownSeconds: 90 * 86400,
|
|
39365
|
+
yieldFetcher: reProtocolFetcher,
|
|
39366
|
+
yieldKey: REUSD_KEY
|
|
39367
|
+
},
|
|
39368
|
+
chains: {
|
|
39369
|
+
"1": {
|
|
39370
|
+
address: "0x5086bf358635b81d8c47c66d1c8b9e567db70c72",
|
|
39371
|
+
underlying: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
39372
|
+
// USDC
|
|
39373
|
+
priceOracle: "0x72b5760cfbe437dd01409f44055fdfb8f8121b46",
|
|
39374
|
+
mintContract: "0x4691c475be804fa85f91c2d6d0adf03114de3093",
|
|
39375
|
+
// ICL
|
|
39376
|
+
withdrawQueue: "0x5c454f5526e41fbe917b63475cd8ca7e4631b147"
|
|
39377
|
+
},
|
|
39378
|
+
"8453": {
|
|
39379
|
+
address: "0x7d214438d0f27afccc23b3d1e1a53906ace5cfea",
|
|
39380
|
+
underlying: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
39381
|
+
priceOracle: "0x67a3226e69a1a8316ef1807a44f077af80071926",
|
|
39382
|
+
// On Base the ICL is the token itself.
|
|
39383
|
+
mintContract: "0x7d214438d0f27afccc23b3d1e1a53906ace5cfea",
|
|
39384
|
+
withdrawQueue: "0x9ab62aebabe738ab233c447eedce88d1d0a61fe3"
|
|
39385
|
+
},
|
|
39386
|
+
"42161": {
|
|
39387
|
+
address: "0x76ce01f0ef25aa66cc5f1e546a005e4a63b25609",
|
|
39388
|
+
underlying: "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
|
39389
|
+
priceOracle: "0x48abcc5a711ac23d3730bf627415dc898cbc5967",
|
|
39390
|
+
mintContract: "0x802edbb1ec20548a4388abc337e4011718eb0291",
|
|
39391
|
+
withdrawQueue: "0xfd4016ea13ca8acc04a11a99702df076a4d3b852"
|
|
39392
|
+
},
|
|
39393
|
+
"43114": {
|
|
39394
|
+
address: "0x180af87b47bf272b2df59dccf2d76a6eafa625bf",
|
|
39395
|
+
underlying: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
39396
|
+
priceOracle: "0x4c558694f16484e5c7a4a52bd210d471860ce7bc",
|
|
39397
|
+
mintContract: "0xb22a8533e6cd81598f82514a42f0b3161745fbe1",
|
|
39398
|
+
withdrawQueue: "0xe13292f97e38da0c64398de5e0bfc95180de9d23"
|
|
39399
|
+
}
|
|
39400
|
+
// NB: our token list also carries reUSD on BNB (0xba9425ec…) and Ink
|
|
39401
|
+
// (0x5bcf6b00…), but Re publishes no NAV oracle for either, so there
|
|
39402
|
+
// is no price source and they are deliberately NOT registered.
|
|
39403
|
+
}
|
|
39404
|
+
};
|
|
37874
39405
|
var MULTI_CHAIN_GROUPS = [
|
|
37875
39406
|
stUsdGroup,
|
|
37876
39407
|
stEurGroup,
|
|
37877
|
-
yUsdGroup
|
|
39408
|
+
yUsdGroup,
|
|
39409
|
+
sUsdcGroup,
|
|
39410
|
+
reUsdGroup
|
|
37878
39411
|
];
|
|
39412
|
+
var sparkV2Base = (symbol, decimals) => ({
|
|
39413
|
+
reader: "erc4626-idle",
|
|
39414
|
+
symbol,
|
|
39415
|
+
brand: "Spark",
|
|
39416
|
+
decimals,
|
|
39417
|
+
underlyingDecimals: decimals,
|
|
39418
|
+
isRebasing: false,
|
|
39419
|
+
isMintable: true,
|
|
39420
|
+
withdrawalMode: "instant-capped",
|
|
39421
|
+
yieldFetcher: sparkSavingsFetcher
|
|
39422
|
+
});
|
|
39423
|
+
var SPARK_V2_WITHDRAW_INTENTS = "0x592b7db9906e6f8924c4d74c2a0ab86ce44fdddf";
|
|
37879
39424
|
var SINGLE_CHAIN_ENTRIES = {
|
|
37880
39425
|
"1": [
|
|
37881
39426
|
{
|
|
@@ -37934,6 +39479,40 @@ var SINGLE_CHAIN_ENTRIES = {
|
|
|
37934
39479
|
yieldFetcher: susdsFetcher,
|
|
37935
39480
|
yieldKey: "Staked USDS::stUSDS"
|
|
37936
39481
|
},
|
|
39482
|
+
{
|
|
39483
|
+
// Frax sfrxUSD — `LinearRewardsErc4626` over frxUSD. Plain
|
|
39484
|
+
// instant 4626 exit; the rate is set by the vault's
|
|
39485
|
+
// `maxDistributionPerSecondPerAsset` cap rather than by
|
|
39486
|
+
// utilisation (see the frax fetcher for the exact maths).
|
|
39487
|
+
address: "0xcf62f905562626cfcdd2261162a51fd02fc9c5b6",
|
|
39488
|
+
underlying: "0xcacd6fd266af91b8aed52accc382b4e165586e29",
|
|
39489
|
+
// frxUSD
|
|
39490
|
+
symbol: "sfrxUSD",
|
|
39491
|
+
brand: "Frax",
|
|
39492
|
+
decimals: 18,
|
|
39493
|
+
isRebasing: false,
|
|
39494
|
+
isMintable: true,
|
|
39495
|
+
withdrawalMode: "instant",
|
|
39496
|
+
yieldFetcher: fraxSavingsFetcher,
|
|
39497
|
+
yieldKey: "SFRXUSD"
|
|
39498
|
+
},
|
|
39499
|
+
{
|
|
39500
|
+
// Frax sFRAX — the pre-rename sibling of sfrxUSD, over legacy
|
|
39501
|
+
// FRAX. Still live and roughly 2x sfrxUSD's size, so it stays a
|
|
39502
|
+
// first-class row rather than an alias. Same contract family, so
|
|
39503
|
+
// it shares `fraxSavingsFetcher` (one multicall covers both).
|
|
39504
|
+
address: "0xa663b02cf0a4b149d2ad41910cb81e23e1c41c32",
|
|
39505
|
+
underlying: "0x853d955acef822db058eb8505911ed77f175b99e",
|
|
39506
|
+
// FRAX
|
|
39507
|
+
symbol: "sFRAX",
|
|
39508
|
+
brand: "Frax",
|
|
39509
|
+
decimals: 18,
|
|
39510
|
+
isRebasing: false,
|
|
39511
|
+
isMintable: true,
|
|
39512
|
+
withdrawalMode: "instant",
|
|
39513
|
+
yieldFetcher: fraxSavingsFetcher,
|
|
39514
|
+
yieldKey: "SFRAX"
|
|
39515
|
+
},
|
|
37937
39516
|
{
|
|
37938
39517
|
address: "0x83f20f44975d03b1b09e64809b757c47f942beea",
|
|
37939
39518
|
underlying: "0x6b175474e89094c44da98b954eedeac495271d0f",
|
|
@@ -38058,6 +39637,91 @@ var SINGLE_CHAIN_ENTRIES = {
|
|
|
38058
39637
|
withdrawalMode: "request-based",
|
|
38059
39638
|
yieldFetcher: hastraPrimeFetcher,
|
|
38060
39639
|
yieldKey: "Hastra PRIME::PRIME"
|
|
39640
|
+
},
|
|
39641
|
+
{
|
|
39642
|
+
// Spark Vaults V2 — the mainnet book, and by far the largest of
|
|
39643
|
+
// the family. Only the Ethereum rows carry the intents contract as
|
|
39644
|
+
// `withdrawQueue`; the other chains have no deployment of it.
|
|
39645
|
+
...sparkV2Base("spUSDC", 6),
|
|
39646
|
+
address: "0x28b3a8fb53b741a8fd78c0fb9a6b2393d896a43d",
|
|
39647
|
+
underlying: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
39648
|
+
// USDC
|
|
39649
|
+
withdrawQueue: SPARK_V2_WITHDRAW_INTENTS,
|
|
39650
|
+
yieldKey: sparkVaultV2Key("1", "spUSDC")
|
|
39651
|
+
},
|
|
39652
|
+
{
|
|
39653
|
+
...sparkV2Base("spUSDT", 6),
|
|
39654
|
+
address: "0xe2e7a17dff93280dec073c995595155283e3c372",
|
|
39655
|
+
underlying: "0xdac17f958d2ee523a2206206994597c13d831ec7",
|
|
39656
|
+
// USDT
|
|
39657
|
+
withdrawQueue: SPARK_V2_WITHDRAW_INTENTS,
|
|
39658
|
+
yieldKey: sparkVaultV2Key("1", "spUSDT")
|
|
39659
|
+
},
|
|
39660
|
+
{
|
|
39661
|
+
// The only non-stable in the family — underlying is WETH, so
|
|
39662
|
+
// share and underlying are both 18-decimal.
|
|
39663
|
+
...sparkV2Base("spETH", 18),
|
|
39664
|
+
address: "0xfe6eb3b609a7c8352a241f7f3a21cea4e9209b8f",
|
|
39665
|
+
underlying: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
|
|
39666
|
+
// WETH
|
|
39667
|
+
withdrawQueue: SPARK_V2_WITHDRAW_INTENTS,
|
|
39668
|
+
yieldKey: sparkVaultV2Key("1", "spETH")
|
|
39669
|
+
},
|
|
39670
|
+
{
|
|
39671
|
+
// Seeded but live (~$30k) — real contract, real `vsr`, so it is
|
|
39672
|
+
// carried rather than special-cased. Expect it to grow.
|
|
39673
|
+
...sparkV2Base("spPYUSD", 6),
|
|
39674
|
+
address: "0x80128dbb9f07b93dde62a6daeadb69ed14a7d354",
|
|
39675
|
+
underlying: "0x6c3ea9036406852006290770bedfcaba0e23a0e8",
|
|
39676
|
+
// PYUSD
|
|
39677
|
+
withdrawQueue: SPARK_V2_WITHDRAW_INTENTS,
|
|
39678
|
+
yieldKey: sparkVaultV2Key("1", "spPYUSD")
|
|
39679
|
+
},
|
|
39680
|
+
{
|
|
39681
|
+
// Re Protocol reUSDe — the JUNIOR tranche of the same reinsurance
|
|
39682
|
+
// capital stack as reUSD (see `reUsdGroup` for the model, the
|
|
39683
|
+
// liquidity caveat and why `isMintable` is false). Ethereum only,
|
|
39684
|
+
// ~$18.8M, and it earns roughly double reUSD's rate precisely
|
|
39685
|
+
// because it absorbs losses first. Underlying is USDe, so unlike
|
|
39686
|
+
// reUSD the share and underlying decimals align at 18.
|
|
39687
|
+
reader: "nav-oracle",
|
|
39688
|
+
address: "0xddc0f880ff6e4e22e4b74632fbb43ce4df6ccc5a",
|
|
39689
|
+
underlying: "0x4c9edd5852cd905f086c759e8383e09bff1e68b3",
|
|
39690
|
+
// USDe
|
|
39691
|
+
priceOracle: "0x7844441f13c61cbd3d297f5d2d7fcabf17f0b843",
|
|
39692
|
+
mintContract: "0xe1886be2ba8b2496c2044a77516f63a734193082",
|
|
39693
|
+
// ICL
|
|
39694
|
+
symbol: "reUSDe",
|
|
39695
|
+
brand: "Re Protocol",
|
|
39696
|
+
decimals: 18,
|
|
39697
|
+
underlyingDecimals: 18,
|
|
39698
|
+
isRebasing: false,
|
|
39699
|
+
isMintable: false,
|
|
39700
|
+
withdrawalMode: "request-based",
|
|
39701
|
+
withdrawalCooldownSeconds: 90 * 86400,
|
|
39702
|
+
yieldFetcher: reProtocolFetcher,
|
|
39703
|
+
yieldKey: REUSDE_KEY
|
|
39704
|
+
}
|
|
39705
|
+
],
|
|
39706
|
+
"42161": [
|
|
39707
|
+
{
|
|
39708
|
+
// Same CREATE2 family as mainnet spUSDT but an independent vault
|
|
39709
|
+
// with its own `vsr`. Seeded (~$1k) at time of writing.
|
|
39710
|
+
...sparkV2Base("spUSDT", 6),
|
|
39711
|
+
address: "0x45d91340b3b7b96985a72b5c678f7d9e8d664b62",
|
|
39712
|
+
underlying: "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
|
|
39713
|
+
// USDT
|
|
39714
|
+
yieldKey: sparkVaultV2Key("42161", "spUSDT")
|
|
39715
|
+
}
|
|
39716
|
+
],
|
|
39717
|
+
"196": [
|
|
39718
|
+
{
|
|
39719
|
+
// X Layer spUSDT — seeded only. Underlying is the bridged USDT
|
|
39720
|
+
// (`USDT0`-style) deployment, not mainnet USDT.
|
|
39721
|
+
...sparkV2Base("spUSDT", 6),
|
|
39722
|
+
address: "0xc358c90d32375721cb3924320fdc2f8b694347ca",
|
|
39723
|
+
underlying: "0x779ded0c9e1022225f8e0630b35a9b54be713736",
|
|
39724
|
+
yieldKey: sparkVaultV2Key("196", "spUSDT")
|
|
38061
39725
|
}
|
|
38062
39726
|
],
|
|
38063
39727
|
"8453": [
|
|
@@ -38102,24 +39766,28 @@ var SINGLE_CHAIN_ENTRIES = {
|
|
|
38102
39766
|
withdrawalCooldownSeconds: 86400,
|
|
38103
39767
|
yieldFetcher: savbtcFetcher,
|
|
38104
39768
|
yieldKey: "Staked avBTC::savBTC"
|
|
39769
|
+
},
|
|
39770
|
+
{
|
|
39771
|
+
// Spark Vaults V2 spUSDC on Avalanche — same CREATE2 address as
|
|
39772
|
+
// the mainnet vault, independent deployment and `vsr`.
|
|
39773
|
+
...sparkV2Base("spUSDC", 6),
|
|
39774
|
+
address: "0x28b3a8fb53b741a8fd78c0fb9a6b2393d896a43d",
|
|
39775
|
+
underlying: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
39776
|
+
// USDC
|
|
39777
|
+
yieldKey: sparkVaultV2Key("43114", "spUSDC")
|
|
38105
39778
|
}
|
|
38106
39779
|
],
|
|
38107
39780
|
"4663": [
|
|
38108
39781
|
{
|
|
38109
|
-
// Spark
|
|
38110
|
-
//
|
|
38111
|
-
//
|
|
38112
|
-
//
|
|
39782
|
+
// Spark Vaults V2 spUSDG on Robinhood Chain — the first V2 vault
|
|
39783
|
+
// we carried. Its APR now comes from `vsr()` like every other V2
|
|
39784
|
+
// vault (the old chi-delta fetcher assumed no readable rate; the
|
|
39785
|
+
// getter is `vsr`, not `ssr`), and its exit is idle-capped like
|
|
39786
|
+
// the rest of the family rather than unconditionally instant.
|
|
39787
|
+
...sparkV2Base("spUSDG", 6),
|
|
38113
39788
|
address: "0xde770c84fe66e063336b31737cfe9790f18c4087",
|
|
38114
39789
|
underlying: "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
|
|
38115
39790
|
// USDG
|
|
38116
|
-
symbol: "spUSDG",
|
|
38117
|
-
brand: "Spark",
|
|
38118
|
-
decimals: 6,
|
|
38119
|
-
isRebasing: false,
|
|
38120
|
-
isMintable: true,
|
|
38121
|
-
withdrawalMode: "instant",
|
|
38122
|
-
yieldFetcher: sparkSavingsUsdgFetcher,
|
|
38123
39791
|
yieldKey: SPARK_SAVINGS_USDG_KEY
|
|
38124
39792
|
}
|
|
38125
39793
|
]
|
|
@@ -38135,6 +39803,10 @@ var SAVINGS_REGISTRY = (() => {
|
|
|
38135
39803
|
out[chainId].push({ ...group.base, ...addrs });
|
|
38136
39804
|
}
|
|
38137
39805
|
}
|
|
39806
|
+
for (const [chainId, entries] of Object.entries(NATIVE_WNLP_ENTRIES)) {
|
|
39807
|
+
if (!out[chainId]) out[chainId] = [];
|
|
39808
|
+
out[chainId].push(...entries);
|
|
39809
|
+
}
|
|
38138
39810
|
return out;
|
|
38139
39811
|
})();
|
|
38140
39812
|
var getSavingsRegistry = (chainId) => SAVINGS_REGISTRY[chainId] ?? [];
|
|
@@ -38948,13 +40620,14 @@ async function fetchMerklOpportunities(protocolId, chainId) {
|
|
|
38948
40620
|
while (true) {
|
|
38949
40621
|
const params = new URLSearchParams({
|
|
38950
40622
|
mainProtocolId: protocolId,
|
|
38951
|
-
chainId,
|
|
38952
40623
|
status: "LIVE",
|
|
38953
40624
|
items: "100",
|
|
38954
40625
|
page: String(page)
|
|
38955
40626
|
});
|
|
40627
|
+
if (chainId) params.set("chainId", chainId);
|
|
38956
40628
|
const res = await fetch(`${MERKL_API_BASE}/opportunities?${params}`);
|
|
38957
|
-
if (!res.ok)
|
|
40629
|
+
if (!res.ok)
|
|
40630
|
+
throw new Error(`Merkl API ${res.status} for chain ${chainId ?? "all"}`);
|
|
38958
40631
|
const batch = await res.json();
|
|
38959
40632
|
all.push(...batch);
|
|
38960
40633
|
if (batch.length < 100) break;
|
|
@@ -39018,37 +40691,40 @@ function createMerklRewardFetcher(config) {
|
|
|
39018
40691
|
label: `MERKL_${config.merklProtocolId.toUpperCase()}`,
|
|
39019
40692
|
fetch: async () => {
|
|
39020
40693
|
const result = {};
|
|
39021
|
-
const chainResults = await Promise.all(
|
|
40694
|
+
const chainResults = config.chainIds ? await Promise.all(
|
|
39022
40695
|
config.chainIds.map(async (chainId) => {
|
|
39023
40696
|
try {
|
|
39024
|
-
|
|
40697
|
+
return await fetchMerklOpportunities(
|
|
39025
40698
|
config.merklProtocolId,
|
|
39026
40699
|
chainId
|
|
39027
40700
|
);
|
|
39028
|
-
return { chainId, opps };
|
|
39029
40701
|
} catch (e) {
|
|
39030
40702
|
console.error(`Merkl: failed to fetch chain ${chainId}:`, e);
|
|
39031
|
-
return
|
|
40703
|
+
return [];
|
|
39032
40704
|
}
|
|
39033
40705
|
})
|
|
39034
|
-
);
|
|
39035
|
-
for (const
|
|
40706
|
+
) : [await fetchMerklOpportunities(config.merklProtocolId)];
|
|
40707
|
+
for (const opps of chainResults) {
|
|
39036
40708
|
for (const opp of opps) {
|
|
39037
40709
|
if (!opp.apr || opp.apr <= 0) continue;
|
|
39038
|
-
const
|
|
39039
|
-
|
|
39040
|
-
|
|
39041
|
-
|
|
39042
|
-
const
|
|
39043
|
-
|
|
39044
|
-
|
|
39045
|
-
|
|
39046
|
-
|
|
39047
|
-
|
|
39048
|
-
reward.
|
|
39049
|
-
|
|
39050
|
-
|
|
39051
|
-
|
|
40710
|
+
const chainId = String(opp.chainId);
|
|
40711
|
+
const resolvedRaw = resolve(opp);
|
|
40712
|
+
if (!resolvedRaw) continue;
|
|
40713
|
+
const resolutions = (Array.isArray(resolvedRaw) ? resolvedRaw : [resolvedRaw]).filter((r) => Boolean(r?.asset));
|
|
40714
|
+
for (const resolved2 of resolutions) {
|
|
40715
|
+
const bucket = resolved2.bucket ?? (opp.action === "LEND" ? "deposit" : opp.action === "BORROW" ? "borrow" : void 0);
|
|
40716
|
+
if (!bucket) continue;
|
|
40717
|
+
const lender = resolved2.lender ?? config.lenderKey;
|
|
40718
|
+
const reward = ensureReward(result, chainId, lender, resolved2.asset);
|
|
40719
|
+
const breakdowns = extractRewardBreakdowns(opp);
|
|
40720
|
+
reward.link = getMerkleUrl(opp);
|
|
40721
|
+
if (bucket === "deposit") {
|
|
40722
|
+
reward.deposit += opp.apr;
|
|
40723
|
+
reward.additionalDepositData.push(...breakdowns);
|
|
40724
|
+
} else {
|
|
40725
|
+
reward.borrow += opp.apr;
|
|
40726
|
+
reward.additionalBorrowData.push(...breakdowns);
|
|
40727
|
+
}
|
|
39052
40728
|
}
|
|
39053
40729
|
}
|
|
39054
40730
|
}
|
|
@@ -39056,81 +40732,39 @@ function createMerklRewardFetcher(config) {
|
|
|
39056
40732
|
}
|
|
39057
40733
|
};
|
|
39058
40734
|
}
|
|
39059
|
-
var AAVE_V3_MERKL_CHAINS = [
|
|
39060
|
-
"1",
|
|
39061
|
-
// Ethereum
|
|
39062
|
-
"10",
|
|
39063
|
-
// Optimism
|
|
39064
|
-
"56",
|
|
39065
|
-
// BSC
|
|
39066
|
-
"100",
|
|
39067
|
-
// Gnosis
|
|
39068
|
-
"137",
|
|
39069
|
-
// Polygon
|
|
39070
|
-
"5000",
|
|
39071
|
-
// Mantle
|
|
39072
|
-
"8453",
|
|
39073
|
-
// Base
|
|
39074
|
-
"42161",
|
|
39075
|
-
// Arbitrum
|
|
39076
|
-
"42220",
|
|
39077
|
-
// Celo
|
|
39078
|
-
"43114",
|
|
39079
|
-
// Avalanche
|
|
39080
|
-
"59144",
|
|
39081
|
-
// Linea
|
|
39082
|
-
"534352"
|
|
39083
|
-
// Scroll
|
|
39084
|
-
];
|
|
39085
40735
|
var aaveMerklRewardFetcher = createMerklRewardFetcher({
|
|
39086
40736
|
merklProtocolId: "aave",
|
|
39087
|
-
lenderKey: "AAVE_V3"
|
|
39088
|
-
chainIds: AAVE_V3_MERKL_CHAINS
|
|
40737
|
+
lenderKey: "AAVE_V3"
|
|
39089
40738
|
});
|
|
39090
|
-
|
|
39091
|
-
|
|
39092
|
-
|
|
39093
|
-
|
|
39094
|
-
|
|
39095
|
-
|
|
39096
|
-
|
|
39097
|
-
|
|
39098
|
-
|
|
39099
|
-
|
|
39100
|
-
|
|
39101
|
-
|
|
39102
|
-
|
|
39103
|
-
|
|
39104
|
-
|
|
39105
|
-
|
|
39106
|
-
|
|
39107
|
-
"80094"
|
|
39108
|
-
// Berachain
|
|
39109
|
-
];
|
|
40739
|
+
function parseEulerVaultFromUrl(depositUrl) {
|
|
40740
|
+
if (!depositUrl) return void 0;
|
|
40741
|
+
try {
|
|
40742
|
+
const url = new URL(depositUrl);
|
|
40743
|
+
const search = url.searchParams.get("search");
|
|
40744
|
+
if (search && /^0x[0-9a-fA-F]{40}$/.test(search))
|
|
40745
|
+
return search.toLowerCase();
|
|
40746
|
+
const positions = url.pathname.match(
|
|
40747
|
+
/\/positions\/0x[0-9a-fA-F]{40}\/(0x[0-9a-fA-F]{40})/
|
|
40748
|
+
);
|
|
40749
|
+
if (positions) return positions[1].toLowerCase();
|
|
40750
|
+
const vault = url.pathname.match(/\/vault\/(0x[0-9a-fA-F]{40})/);
|
|
40751
|
+
if (vault) return vault[1].toLowerCase();
|
|
40752
|
+
} catch {
|
|
40753
|
+
}
|
|
40754
|
+
return void 0;
|
|
40755
|
+
}
|
|
39110
40756
|
var eulerMerklRewardFetcher = createMerklRewardFetcher({
|
|
39111
40757
|
merklProtocolId: "euler",
|
|
39112
40758
|
lenderKey: "EULER_V2",
|
|
39113
|
-
chainIds: EULER_MERKL_CHAINS,
|
|
39114
40759
|
resolveAsset: (opp) => {
|
|
39115
|
-
|
|
40760
|
+
if (opp.type === "MULTILENDBORROW") {
|
|
40761
|
+
return (opp.tokens ?? []).filter((t) => !t.symbol?.endsWith("-DEBT")).map((t) => ({ asset: t.address.toLowerCase() }));
|
|
40762
|
+
}
|
|
40763
|
+
const vault = (opp.action === "BORROW" ? parseEulerVaultFromUrl(opp.depositUrl) : void 0) ?? opp.explorerAddress?.toLowerCase();
|
|
39116
40764
|
if (!vault) return void 0;
|
|
39117
40765
|
return { asset: vault };
|
|
39118
40766
|
}
|
|
39119
40767
|
});
|
|
39120
|
-
var MORPHO_MERKL_CHAINS = [
|
|
39121
|
-
"1",
|
|
39122
|
-
// Ethereum
|
|
39123
|
-
"130",
|
|
39124
|
-
// Unichain
|
|
39125
|
-
"137",
|
|
39126
|
-
// Polygon
|
|
39127
|
-
"8453",
|
|
39128
|
-
// Base
|
|
39129
|
-
"42161",
|
|
39130
|
-
// Arbitrum
|
|
39131
|
-
"4663"
|
|
39132
|
-
// Robinhood chain
|
|
39133
|
-
];
|
|
39134
40768
|
function parseMorphoUniqueKey(depositUrl) {
|
|
39135
40769
|
if (!depositUrl) return void 0;
|
|
39136
40770
|
const m = depositUrl.match(/\/market\/(0x[0-9a-fA-F]{64})/);
|
|
@@ -39139,7 +40773,6 @@ function parseMorphoUniqueKey(depositUrl) {
|
|
|
39139
40773
|
var morphoCollateralMerklRewardFetcher = createMerklRewardFetcher({
|
|
39140
40774
|
merklProtocolId: "morpho",
|
|
39141
40775
|
lenderKey: "MORPHO_BLUE",
|
|
39142
|
-
chainIds: MORPHO_MERKL_CHAINS,
|
|
39143
40776
|
resolveAsset: (opp) => {
|
|
39144
40777
|
if (opp.type !== "MORPHOCOLLATERAL") return void 0;
|
|
39145
40778
|
const uniqueKey = parseMorphoUniqueKey(opp.depositUrl);
|
|
@@ -39432,18 +41065,26 @@ var ProxyOracleAbi = [
|
|
|
39432
41065
|
];
|
|
39433
41066
|
|
|
39434
41067
|
// src/prices/oracle-prices/fetchers/morpho.ts
|
|
41068
|
+
var MORPHO_API_CHAINS = /* @__PURE__ */ new Set([
|
|
41069
|
+
Chain.ETHEREUM_MAINNET,
|
|
41070
|
+
Chain.BASE,
|
|
41071
|
+
Chain.ARBITRUM_ONE,
|
|
41072
|
+
Chain.OP_MAINNET,
|
|
41073
|
+
Chain.POLYGON_MAINNET,
|
|
41074
|
+
Chain.UNICHAIN,
|
|
41075
|
+
Chain.KATANA,
|
|
41076
|
+
Chain.HYPEREVM,
|
|
41077
|
+
Chain.WORLD_CHAIN,
|
|
41078
|
+
Chain.MONAD_MAINNET,
|
|
41079
|
+
Chain.STABLE_MAINNET,
|
|
41080
|
+
Chain.ROBINHOOD_CHAIN,
|
|
41081
|
+
"4217",
|
|
41082
|
+
// Tempo — no chain-registry enum yet
|
|
41083
|
+
"5042"
|
|
41084
|
+
// Arc — no chain-registry enum yet
|
|
41085
|
+
]);
|
|
39435
41086
|
function morphoApiAvailable(chainId) {
|
|
39436
|
-
|
|
39437
|
-
if (chainId === Chain.HEMI_NETWORK) return false;
|
|
39438
|
-
if (chainId === Chain.BERACHAIN) return false;
|
|
39439
|
-
if (chainId === Chain.SEI_NETWORK) return false;
|
|
39440
|
-
if (chainId === Chain.CELO_MAINNET) return false;
|
|
39441
|
-
if (chainId === Chain.CORN) return false;
|
|
39442
|
-
if (chainId === Chain.ABSTRACT) return false;
|
|
39443
|
-
if (chainId === Chain.PLUME_MAINNET) return false;
|
|
39444
|
-
if (chainId === Chain.LISK) return false;
|
|
39445
|
-
if (chainId === Chain.BNB_SMART_CHAIN_MAINNET) return false;
|
|
39446
|
-
return true;
|
|
41087
|
+
return MORPHO_API_CHAINS.has(chainId);
|
|
39447
41088
|
}
|
|
39448
41089
|
var MORPHO_API_INCOMPLETE_CHAINS = /* @__PURE__ */ new Set([
|
|
39449
41090
|
Chain.FLARE_MAINNET,
|
|
@@ -45552,7 +47193,7 @@ var Erc4626PreviewRedeemAbi = [
|
|
|
45552
47193
|
];
|
|
45553
47194
|
|
|
45554
47195
|
// src/vaults/lst/readers/shared.ts
|
|
45555
|
-
var
|
|
47196
|
+
var ONE_E187 = 10n ** 18n;
|
|
45556
47197
|
var rescaleDecimals = (v, fromDec, toDec) => toDec >= fromDec ? v * 10n ** BigInt(toDec - fromDec) : v / 10n ** BigInt(fromDec - toDec);
|
|
45557
47198
|
var MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
45558
47199
|
var Multicall3BalanceAbi = [
|
|
@@ -45595,7 +47236,7 @@ var readerBeetsStS = (entry) => ({
|
|
|
45595
47236
|
}
|
|
45596
47237
|
const liquidity = toBigInt12(pool);
|
|
45597
47238
|
return {
|
|
45598
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47239
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45599
47240
|
totalSupply,
|
|
45600
47241
|
exchangeRate,
|
|
45601
47242
|
liquidity
|
|
@@ -45628,7 +47269,7 @@ var readerBenqiSavax = (entry) => ({
|
|
|
45628
47269
|
{
|
|
45629
47270
|
address: entry.address,
|
|
45630
47271
|
name: "getPooledAvaxByShares",
|
|
45631
|
-
params: [
|
|
47272
|
+
params: [ONE_E187]
|
|
45632
47273
|
},
|
|
45633
47274
|
{ address: entry.address, name: "totalPooledAvax", params: [] }
|
|
45634
47275
|
],
|
|
@@ -45639,7 +47280,7 @@ var readerBenqiSavax = (entry) => ({
|
|
|
45639
47280
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
45640
47281
|
return void 0;
|
|
45641
47282
|
}
|
|
45642
|
-
const totalAssets = toBigInt12(totalPooled) ?? totalSupply * exchangeRate /
|
|
47283
|
+
const totalAssets = toBigInt12(totalPooled) ?? totalSupply * exchangeRate / ONE_E187;
|
|
45643
47284
|
return {
|
|
45644
47285
|
totalAssets,
|
|
45645
47286
|
totalSupply,
|
|
@@ -45658,7 +47299,7 @@ var readerBgtWrapper1to1 = (entry) => ({
|
|
|
45658
47299
|
return {
|
|
45659
47300
|
totalAssets: totalSupply,
|
|
45660
47301
|
totalSupply,
|
|
45661
|
-
exchangeRate:
|
|
47302
|
+
exchangeRate: ONE_E187
|
|
45662
47303
|
};
|
|
45663
47304
|
}
|
|
45664
47305
|
});
|
|
@@ -45688,7 +47329,7 @@ var readerDineroBeraEth = (entry) => ({
|
|
|
45688
47329
|
return void 0;
|
|
45689
47330
|
}
|
|
45690
47331
|
return {
|
|
45691
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47332
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45692
47333
|
totalSupply,
|
|
45693
47334
|
exchangeRate
|
|
45694
47335
|
};
|
|
@@ -45700,7 +47341,7 @@ var readerErc4626 = (entry) => ({
|
|
|
45700
47341
|
calls: [
|
|
45701
47342
|
{ address: entry.address, name: "totalAssets", params: [] },
|
|
45702
47343
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
45703
|
-
{ address: entry.address, name: "convertToAssets", params: [
|
|
47344
|
+
{ address: entry.address, name: "convertToAssets", params: [ONE_E187] }
|
|
45704
47345
|
],
|
|
45705
47346
|
abis: [Erc4626ReadAbi, TotalSupplyAbi, Erc4626ReadAbi],
|
|
45706
47347
|
parse: ([assets, supply, rate]) => {
|
|
@@ -45717,7 +47358,7 @@ var readerErc4626PreviewRedeem = (entry) => ({
|
|
|
45717
47358
|
calls: [
|
|
45718
47359
|
{ address: entry.address, name: "totalAssets", params: [] },
|
|
45719
47360
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
45720
|
-
{ address: entry.address, name: "previewRedeem", params: [
|
|
47361
|
+
{ address: entry.address, name: "previewRedeem", params: [ONE_E187] }
|
|
45721
47362
|
],
|
|
45722
47363
|
abis: [Erc4626PreviewRedeemAbi, TotalSupplyAbi, Erc4626PreviewRedeemAbi],
|
|
45723
47364
|
parse: ([assets, supply, rate]) => {
|
|
@@ -45797,7 +47438,7 @@ var readerEtherFiWeEth = (entry) => {
|
|
|
45797
47438
|
}
|
|
45798
47439
|
}
|
|
45799
47440
|
return {
|
|
45800
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47441
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45801
47442
|
totalSupply,
|
|
45802
47443
|
exchangeRate,
|
|
45803
47444
|
liquidity
|
|
@@ -45830,7 +47471,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
45830
47471
|
return {
|
|
45831
47472
|
totalAssets: totalSupply,
|
|
45832
47473
|
totalSupply,
|
|
45833
|
-
exchangeRate:
|
|
47474
|
+
exchangeRate: ONE_E187
|
|
45834
47475
|
};
|
|
45835
47476
|
}
|
|
45836
47477
|
};
|
|
@@ -45838,7 +47479,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
45838
47479
|
return {
|
|
45839
47480
|
calls: [
|
|
45840
47481
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
45841
|
-
{ address: stakingCore, name: "BeHYPEToHYPE", params: [
|
|
47482
|
+
{ address: stakingCore, name: "BeHYPEToHYPE", params: [ONE_E187] }
|
|
45842
47483
|
],
|
|
45843
47484
|
abis: [TotalSupplyAbi, HyperbeatStakingCoreAbi],
|
|
45844
47485
|
parse: ([supply, rate]) => {
|
|
@@ -45848,7 +47489,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
45848
47489
|
return void 0;
|
|
45849
47490
|
}
|
|
45850
47491
|
return {
|
|
45851
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47492
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45852
47493
|
totalSupply,
|
|
45853
47494
|
exchangeRate
|
|
45854
47495
|
};
|
|
@@ -45880,7 +47521,7 @@ var readerKelpRsEth = (entry) => {
|
|
|
45880
47521
|
return {
|
|
45881
47522
|
totalAssets: totalSupply,
|
|
45882
47523
|
totalSupply,
|
|
45883
|
-
exchangeRate:
|
|
47524
|
+
exchangeRate: ONE_E187
|
|
45884
47525
|
};
|
|
45885
47526
|
}
|
|
45886
47527
|
};
|
|
@@ -45898,7 +47539,7 @@ var readerKelpRsEth = (entry) => {
|
|
|
45898
47539
|
return void 0;
|
|
45899
47540
|
}
|
|
45900
47541
|
return {
|
|
45901
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47542
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45902
47543
|
totalSupply,
|
|
45903
47544
|
exchangeRate
|
|
45904
47545
|
};
|
|
@@ -45930,7 +47571,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
45930
47571
|
return {
|
|
45931
47572
|
totalAssets: totalSupply,
|
|
45932
47573
|
totalSupply,
|
|
45933
|
-
exchangeRate:
|
|
47574
|
+
exchangeRate: ONE_E187
|
|
45934
47575
|
};
|
|
45935
47576
|
}
|
|
45936
47577
|
};
|
|
@@ -45938,7 +47579,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
45938
47579
|
return {
|
|
45939
47580
|
calls: [
|
|
45940
47581
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
45941
|
-
{ address: accountant, name: "kHYPEToHYPE", params: [
|
|
47582
|
+
{ address: accountant, name: "kHYPEToHYPE", params: [ONE_E187] }
|
|
45942
47583
|
],
|
|
45943
47584
|
abis: [TotalSupplyAbi, KinetiqStakingAccountantAbi],
|
|
45944
47585
|
parse: ([supply, rate]) => {
|
|
@@ -45948,7 +47589,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
45948
47589
|
return void 0;
|
|
45949
47590
|
}
|
|
45950
47591
|
return {
|
|
45951
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47592
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
45952
47593
|
totalSupply,
|
|
45953
47594
|
exchangeRate
|
|
45954
47595
|
};
|
|
@@ -45988,7 +47629,7 @@ var readerLairStKaia = (entry) => ({
|
|
|
45988
47629
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
45989
47630
|
return void 0;
|
|
45990
47631
|
}
|
|
45991
|
-
const totalAssets = toBigInt12(totalStaking) ?? totalSupply * exchangeRate /
|
|
47632
|
+
const totalAssets = toBigInt12(totalStaking) ?? totalSupply * exchangeRate / ONE_E187;
|
|
45992
47633
|
return {
|
|
45993
47634
|
totalAssets,
|
|
45994
47635
|
totalSupply,
|
|
@@ -46022,7 +47663,7 @@ var readerLidoWstEth = (entry) => ({
|
|
|
46022
47663
|
return void 0;
|
|
46023
47664
|
}
|
|
46024
47665
|
return {
|
|
46025
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47666
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46026
47667
|
totalSupply,
|
|
46027
47668
|
exchangeRate
|
|
46028
47669
|
};
|
|
@@ -46060,7 +47701,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
46060
47701
|
return {
|
|
46061
47702
|
totalAssets: totalSupply,
|
|
46062
47703
|
totalSupply,
|
|
46063
|
-
exchangeRate:
|
|
47704
|
+
exchangeRate: ONE_E187
|
|
46064
47705
|
};
|
|
46065
47706
|
}
|
|
46066
47707
|
};
|
|
@@ -46068,7 +47709,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
46068
47709
|
return {
|
|
46069
47710
|
calls: [
|
|
46070
47711
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
46071
|
-
{ address: manager, name: "convertSnBnbToBnb", params: [
|
|
47712
|
+
{ address: manager, name: "convertSnBnbToBnb", params: [ONE_E187] },
|
|
46072
47713
|
{ address: manager, name: "getTotalPooledBnb", params: [] }
|
|
46073
47714
|
],
|
|
46074
47715
|
abis: [TotalSupplyAbi, ListaStakeManagerReadAbi, ListaStakeManagerReadAbi],
|
|
@@ -46079,7 +47720,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
46079
47720
|
return void 0;
|
|
46080
47721
|
}
|
|
46081
47722
|
const pooledBnb = toBigInt12(pooled);
|
|
46082
|
-
const totalAssets = pooledBnb ?? totalSupply * exchangeRate /
|
|
47723
|
+
const totalAssets = pooledBnb ?? totalSupply * exchangeRate / ONE_E187;
|
|
46083
47724
|
return { totalAssets, totalSupply, exchangeRate };
|
|
46084
47725
|
}
|
|
46085
47726
|
};
|
|
@@ -46109,7 +47750,7 @@ var readerMantleMEth = (entry) => {
|
|
|
46109
47750
|
return {
|
|
46110
47751
|
totalAssets: totalSupply,
|
|
46111
47752
|
totalSupply,
|
|
46112
|
-
exchangeRate:
|
|
47753
|
+
exchangeRate: ONE_E187
|
|
46113
47754
|
};
|
|
46114
47755
|
}
|
|
46115
47756
|
};
|
|
@@ -46117,7 +47758,7 @@ var readerMantleMEth = (entry) => {
|
|
|
46117
47758
|
return {
|
|
46118
47759
|
calls: [
|
|
46119
47760
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
46120
|
-
{ address: staking, name: "mETHToETH", params: [
|
|
47761
|
+
{ address: staking, name: "mETHToETH", params: [ONE_E187] }
|
|
46121
47762
|
],
|
|
46122
47763
|
abis: [TotalSupplyAbi, MantleStakingAbi],
|
|
46123
47764
|
parse: ([supply, rate]) => {
|
|
@@ -46127,7 +47768,7 @@ var readerMantleMEth = (entry) => {
|
|
|
46127
47768
|
return void 0;
|
|
46128
47769
|
}
|
|
46129
47770
|
return {
|
|
46130
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47771
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46131
47772
|
totalSupply,
|
|
46132
47773
|
exchangeRate
|
|
46133
47774
|
};
|
|
@@ -46148,7 +47789,7 @@ var readerOffChain = (entry) => {
|
|
|
46148
47789
|
return {
|
|
46149
47790
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
46150
47791
|
totalSupply,
|
|
46151
|
-
exchangeRate:
|
|
47792
|
+
exchangeRate: ONE_E187
|
|
46152
47793
|
};
|
|
46153
47794
|
}
|
|
46154
47795
|
};
|
|
@@ -46182,7 +47823,7 @@ var readerRenzoEzEth = (entry) => {
|
|
|
46182
47823
|
return {
|
|
46183
47824
|
totalAssets: totalSupply,
|
|
46184
47825
|
totalSupply,
|
|
46185
|
-
exchangeRate:
|
|
47826
|
+
exchangeRate: ONE_E187
|
|
46186
47827
|
};
|
|
46187
47828
|
}
|
|
46188
47829
|
};
|
|
@@ -46201,7 +47842,7 @@ var readerRenzoEzEth = (entry) => {
|
|
|
46201
47842
|
return {
|
|
46202
47843
|
totalAssets: totalTvl,
|
|
46203
47844
|
totalSupply,
|
|
46204
|
-
exchangeRate: totalTvl *
|
|
47845
|
+
exchangeRate: totalTvl * ONE_E187 / totalSupply
|
|
46205
47846
|
};
|
|
46206
47847
|
}
|
|
46207
47848
|
};
|
|
@@ -46257,7 +47898,7 @@ var readerRocketReth = (entry) => {
|
|
|
46257
47898
|
}
|
|
46258
47899
|
const liquidity = depositPool ? toBigInt12(slice[2]) : void 0;
|
|
46259
47900
|
return {
|
|
46260
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47901
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46261
47902
|
totalSupply,
|
|
46262
47903
|
exchangeRate,
|
|
46263
47904
|
liquidity
|
|
@@ -46299,7 +47940,7 @@ var readerStaderEthx = (entry) => {
|
|
|
46299
47940
|
return {
|
|
46300
47941
|
totalAssets: totalSupply,
|
|
46301
47942
|
totalSupply,
|
|
46302
|
-
exchangeRate:
|
|
47943
|
+
exchangeRate: ONE_E187
|
|
46303
47944
|
};
|
|
46304
47945
|
}
|
|
46305
47946
|
};
|
|
@@ -46317,7 +47958,7 @@ var readerStaderEthx = (entry) => {
|
|
|
46317
47958
|
return void 0;
|
|
46318
47959
|
}
|
|
46319
47960
|
return {
|
|
46320
|
-
totalAssets: totalSupply * exchangeRate /
|
|
47961
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46321
47962
|
totalSupply,
|
|
46322
47963
|
exchangeRate
|
|
46323
47964
|
};
|
|
@@ -46334,7 +47975,7 @@ var readerStaderMaticX = (entry) => {
|
|
|
46334
47975
|
{
|
|
46335
47976
|
address: rateAddress,
|
|
46336
47977
|
name: "convertMaticXToMatic",
|
|
46337
|
-
params: [
|
|
47978
|
+
params: [ONE_E187],
|
|
46338
47979
|
chainId: homeChainId
|
|
46339
47980
|
}
|
|
46340
47981
|
],
|
|
@@ -46349,7 +47990,7 @@ var readerStaderMaticX = (entry) => {
|
|
|
46349
47990
|
}
|
|
46350
47991
|
const isCrossChain = homeContract !== void 0;
|
|
46351
47992
|
return {
|
|
46352
|
-
totalAssets: isCrossChain ? totalSupply * amountInMatic /
|
|
47993
|
+
totalAssets: isCrossChain ? totalSupply * amountInMatic / ONE_E187 : totalPooledMatic ?? totalSupply * amountInMatic / ONE_E187,
|
|
46353
47994
|
totalSupply,
|
|
46354
47995
|
exchangeRate: amountInMatic
|
|
46355
47996
|
};
|
|
@@ -46381,7 +48022,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
46381
48022
|
return {
|
|
46382
48023
|
totalAssets: totalSupply,
|
|
46383
48024
|
totalSupply,
|
|
46384
|
-
exchangeRate:
|
|
48025
|
+
exchangeRate: ONE_E187
|
|
46385
48026
|
};
|
|
46386
48027
|
}
|
|
46387
48028
|
};
|
|
@@ -46389,7 +48030,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
46389
48030
|
return {
|
|
46390
48031
|
calls: [
|
|
46391
48032
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
46392
|
-
{ address: controller, name: "convertToAssets", params: [
|
|
48033
|
+
{ address: controller, name: "convertToAssets", params: [ONE_E187] }
|
|
46393
48034
|
],
|
|
46394
48035
|
abis: [TotalSupplyAbi, StakeWiseOsTokenAbi],
|
|
46395
48036
|
parse: ([supply, rate]) => {
|
|
@@ -46399,7 +48040,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
46399
48040
|
return void 0;
|
|
46400
48041
|
}
|
|
46401
48042
|
return {
|
|
46402
|
-
totalAssets: totalSupply * exchangeRate /
|
|
48043
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46403
48044
|
totalSupply,
|
|
46404
48045
|
exchangeRate
|
|
46405
48046
|
};
|
|
@@ -46431,7 +48072,7 @@ var readerStCelo = (entry) => {
|
|
|
46431
48072
|
return {
|
|
46432
48073
|
totalAssets: totalSupply,
|
|
46433
48074
|
totalSupply,
|
|
46434
|
-
exchangeRate:
|
|
48075
|
+
exchangeRate: ONE_E187
|
|
46435
48076
|
};
|
|
46436
48077
|
}
|
|
46437
48078
|
};
|
|
@@ -46439,7 +48080,7 @@ var readerStCelo = (entry) => {
|
|
|
46439
48080
|
return {
|
|
46440
48081
|
calls: [
|
|
46441
48082
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
46442
|
-
{ address: manager, name: "toCelo", params: [
|
|
48083
|
+
{ address: manager, name: "toCelo", params: [ONE_E187] }
|
|
46443
48084
|
],
|
|
46444
48085
|
abis: [TotalSupplyAbi, StCeloManagerAbi],
|
|
46445
48086
|
parse: ([supply, rate]) => {
|
|
@@ -46449,7 +48090,7 @@ var readerStCelo = (entry) => {
|
|
|
46449
48090
|
return void 0;
|
|
46450
48091
|
}
|
|
46451
48092
|
return {
|
|
46452
|
-
totalAssets: totalSupply * exchangeRate /
|
|
48093
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46453
48094
|
totalSupply,
|
|
46454
48095
|
exchangeRate
|
|
46455
48096
|
};
|
|
@@ -46482,7 +48123,7 @@ var readerSwellGetRate = (entry) => ({
|
|
|
46482
48123
|
return void 0;
|
|
46483
48124
|
}
|
|
46484
48125
|
return {
|
|
46485
|
-
totalAssets: totalSupply * exchangeRate /
|
|
48126
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46486
48127
|
totalSupply,
|
|
46487
48128
|
exchangeRate
|
|
46488
48129
|
};
|
|
@@ -46513,7 +48154,7 @@ var readerValantisWstHype = (entry) => {
|
|
|
46513
48154
|
return {
|
|
46514
48155
|
totalAssets: totalSupply,
|
|
46515
48156
|
totalSupply,
|
|
46516
|
-
exchangeRate:
|
|
48157
|
+
exchangeRate: ONE_E187
|
|
46517
48158
|
};
|
|
46518
48159
|
}
|
|
46519
48160
|
};
|
|
@@ -46531,7 +48172,7 @@ var readerValantisWstHype = (entry) => {
|
|
|
46531
48172
|
return void 0;
|
|
46532
48173
|
}
|
|
46533
48174
|
return {
|
|
46534
|
-
totalAssets: totalSupply * exchangeRate /
|
|
48175
|
+
totalAssets: totalSupply * exchangeRate / ONE_E187,
|
|
46535
48176
|
totalSupply,
|
|
46536
48177
|
exchangeRate
|
|
46537
48178
|
};
|
|
@@ -46565,7 +48206,7 @@ var readerVedaAccountant = (entry) => {
|
|
|
46565
48206
|
return {
|
|
46566
48207
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
46567
48208
|
totalSupply,
|
|
46568
|
-
exchangeRate:
|
|
48209
|
+
exchangeRate: ONE_E187
|
|
46569
48210
|
};
|
|
46570
48211
|
}
|
|
46571
48212
|
};
|
|
@@ -46584,7 +48225,7 @@ var readerVedaAccountant = (entry) => {
|
|
|
46584
48225
|
const exchangeRate = rawRate * scale;
|
|
46585
48226
|
return {
|
|
46586
48227
|
totalAssets: rescaleDecimals(
|
|
46587
|
-
totalSupply * exchangeRate /
|
|
48228
|
+
totalSupply * exchangeRate / ONE_E187,
|
|
46588
48229
|
shareDec,
|
|
46589
48230
|
underlyingDec
|
|
46590
48231
|
),
|
|
@@ -46620,9 +48261,9 @@ var readerAnkrRatio = (entry) => ({
|
|
|
46620
48261
|
return void 0;
|
|
46621
48262
|
}
|
|
46622
48263
|
return {
|
|
46623
|
-
totalAssets: totalSupply *
|
|
48264
|
+
totalAssets: totalSupply * ONE_E187 / r,
|
|
46624
48265
|
totalSupply,
|
|
46625
|
-
exchangeRate:
|
|
48266
|
+
exchangeRate: ONE_E187 * ONE_E187 / r
|
|
46626
48267
|
};
|
|
46627
48268
|
}
|
|
46628
48269
|
});
|
|
@@ -46666,7 +48307,7 @@ var readerCoreEarnRate = (entry) => {
|
|
|
46666
48307
|
return {
|
|
46667
48308
|
totalAssets: totalSupply * r / CORE_RATE_DENOM,
|
|
46668
48309
|
totalSupply,
|
|
46669
|
-
exchangeRate: r *
|
|
48310
|
+
exchangeRate: r * ONE_E187 / CORE_RATE_DENOM
|
|
46670
48311
|
};
|
|
46671
48312
|
}
|
|
46672
48313
|
};
|
|
@@ -46688,7 +48329,7 @@ var readerCoreStakedRatio = (entry) => {
|
|
|
46688
48329
|
return {
|
|
46689
48330
|
totalAssets: totalStaked,
|
|
46690
48331
|
totalSupply,
|
|
46691
|
-
exchangeRate: totalStaked *
|
|
48332
|
+
exchangeRate: totalStaked * ONE_E187 / totalSupply
|
|
46692
48333
|
};
|
|
46693
48334
|
}
|
|
46694
48335
|
};
|
|
@@ -46719,7 +48360,7 @@ var readerStellaStDot = (entry) => ({
|
|
|
46719
48360
|
{
|
|
46720
48361
|
address: entry.address,
|
|
46721
48362
|
name: "getPooledTokenByShares",
|
|
46722
|
-
params: [
|
|
48363
|
+
params: [ONE_E187]
|
|
46723
48364
|
},
|
|
46724
48365
|
{ address: entry.address, name: "getTotalPooledToken", params: [] }
|
|
46725
48366
|
],
|
|
@@ -46730,7 +48371,7 @@ var readerStellaStDot = (entry) => ({
|
|
|
46730
48371
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
46731
48372
|
return void 0;
|
|
46732
48373
|
}
|
|
46733
|
-
const totalAssets = toBigInt12(pooled) ?? totalSupply * exchangeRate /
|
|
48374
|
+
const totalAssets = toBigInt12(pooled) ?? totalSupply * exchangeRate / ONE_E187;
|
|
46734
48375
|
return {
|
|
46735
48376
|
totalAssets,
|
|
46736
48377
|
totalSupply,
|
|
@@ -46768,7 +48409,7 @@ var readerKintsuSMon = (entry) => ({
|
|
|
46768
48409
|
const totalAssets = toBigInt12(pooled);
|
|
46769
48410
|
const totalSupply = toBigInt12(shares);
|
|
46770
48411
|
if (totalAssets === void 0 || totalSupply === void 0) return void 0;
|
|
46771
|
-
const exchangeRate = totalSupply > 0n ? totalAssets *
|
|
48412
|
+
const exchangeRate = totalSupply > 0n ? totalAssets * ONE_E187 / totalSupply : ONE_E187;
|
|
46772
48413
|
return { totalAssets, totalSupply, exchangeRate };
|
|
46773
48414
|
}
|
|
46774
48415
|
});
|
|
@@ -47204,7 +48845,7 @@ var getLstValidators = async (chainId, shareToken) => {
|
|
|
47204
48845
|
};
|
|
47205
48846
|
|
|
47206
48847
|
// src/vaults/lst/fetchPublic.ts
|
|
47207
|
-
var
|
|
48848
|
+
var ONE_E188 = 10n ** 18n;
|
|
47208
48849
|
var ERC20_BALANCE_ABI = parseAbi([
|
|
47209
48850
|
"function balanceOf(address) view returns (uint256)"
|
|
47210
48851
|
]);
|
|
@@ -47319,8 +48960,8 @@ var fetchLstShareTokens = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
47319
48960
|
const underlyingUnit = 10n ** BigInt(underlyingDec);
|
|
47320
48961
|
const totalAssetsFormatted = Number(state.totalAssets) / 10 ** underlyingDec;
|
|
47321
48962
|
const totalAssetsUsd = priceUsd !== void 0 ? totalAssetsFormatted * priceUsd : 0;
|
|
47322
|
-
const convertToAssets = state.exchangeRate * underlyingUnit /
|
|
47323
|
-
const convertToShares = state.exchangeRate > 0n ?
|
|
48963
|
+
const convertToAssets = state.exchangeRate * underlyingUnit / ONE_E188;
|
|
48964
|
+
const convertToShares = state.exchangeRate > 0n ? ONE_E188 * shareUnit / state.exchangeRate : 0n;
|
|
47324
48965
|
let liquidityRaw;
|
|
47325
48966
|
if (state.liquidity !== void 0) {
|
|
47326
48967
|
liquidityRaw = state.liquidity;
|
|
@@ -50335,6 +51976,15 @@ var TotalSupplyAbi2 = [
|
|
|
50335
51976
|
outputs: [{ type: "uint256" }]
|
|
50336
51977
|
}
|
|
50337
51978
|
];
|
|
51979
|
+
var BalanceOfAbi = [
|
|
51980
|
+
{
|
|
51981
|
+
name: "balanceOf",
|
|
51982
|
+
type: "function",
|
|
51983
|
+
stateMutability: "view",
|
|
51984
|
+
inputs: [{ type: "address", name: "account" }],
|
|
51985
|
+
outputs: [{ type: "uint256" }]
|
|
51986
|
+
}
|
|
51987
|
+
];
|
|
50338
51988
|
var Erc4626ReadAbi2 = [
|
|
50339
51989
|
{
|
|
50340
51990
|
name: "totalAssets",
|
|
@@ -50351,9 +52001,24 @@ var Erc4626ReadAbi2 = [
|
|
|
50351
52001
|
outputs: [{ type: "uint256", name: "assets" }]
|
|
50352
52002
|
}
|
|
50353
52003
|
];
|
|
52004
|
+
var NavOracleReadAbi = [
|
|
52005
|
+
{
|
|
52006
|
+
name: "latestRoundData",
|
|
52007
|
+
type: "function",
|
|
52008
|
+
stateMutability: "view",
|
|
52009
|
+
inputs: [],
|
|
52010
|
+
outputs: [
|
|
52011
|
+
{ name: "roundId", type: "uint80" },
|
|
52012
|
+
{ name: "answer", type: "int256" },
|
|
52013
|
+
{ name: "startedAt", type: "uint256" },
|
|
52014
|
+
{ name: "updatedAt", type: "uint256" },
|
|
52015
|
+
{ name: "answeredInRound", type: "uint80" }
|
|
52016
|
+
]
|
|
52017
|
+
}
|
|
52018
|
+
];
|
|
50354
52019
|
|
|
50355
52020
|
// src/vaults/savings/readers/shared.ts
|
|
50356
|
-
var
|
|
52021
|
+
var ONE_E189 = 10n ** 18n;
|
|
50357
52022
|
var toBigInt14 = (v) => {
|
|
50358
52023
|
if (v === void 0 || v === null) return void 0;
|
|
50359
52024
|
if (typeof v === "bigint") return v;
|
|
@@ -50394,20 +52059,221 @@ var readerErc46262 = (entry) => {
|
|
|
50394
52059
|
return {
|
|
50395
52060
|
totalAssets,
|
|
50396
52061
|
totalSupply,
|
|
50397
|
-
exchangeRate: convertToAssetsRaw *
|
|
52062
|
+
exchangeRate: convertToAssetsRaw * ONE_E189 / underlyingUnit
|
|
52063
|
+
};
|
|
52064
|
+
}
|
|
52065
|
+
};
|
|
52066
|
+
};
|
|
52067
|
+
|
|
52068
|
+
// src/vaults/savings/abis/native.ts
|
|
52069
|
+
var NativeWnlpReadAbi = [
|
|
52070
|
+
{
|
|
52071
|
+
// 1e18-scaled underlying-per-share, independent of token decimals:
|
|
52072
|
+
// `getNlpByWnlp(1e18) / 1e18` is the exchange rate (per Native docs).
|
|
52073
|
+
name: "getNlpByWnlp",
|
|
52074
|
+
type: "function",
|
|
52075
|
+
stateMutability: "view",
|
|
52076
|
+
inputs: [{ type: "uint256", name: "wnlpAmount" }],
|
|
52077
|
+
outputs: [{ type: "uint256" }]
|
|
52078
|
+
},
|
|
52079
|
+
{
|
|
52080
|
+
/** Instant-redeem haircut in basis points (0.1 %–2 %, default 1 %). */
|
|
52081
|
+
name: "instantRedeemFeeBips",
|
|
52082
|
+
type: "function",
|
|
52083
|
+
stateMutability: "view",
|
|
52084
|
+
inputs: [],
|
|
52085
|
+
outputs: [{ type: "uint256" }]
|
|
52086
|
+
},
|
|
52087
|
+
{
|
|
52088
|
+
/** Some assets disable the instant leg entirely — queue only. */
|
|
52089
|
+
name: "instantRedeemEnabled",
|
|
52090
|
+
type: "function",
|
|
52091
|
+
stateMutability: "view",
|
|
52092
|
+
inputs: [],
|
|
52093
|
+
outputs: [{ type: "bool" }]
|
|
52094
|
+
},
|
|
52095
|
+
{
|
|
52096
|
+
/** Per-wNLP WithdrawQueue contract (the delayed-redeem leg). */
|
|
52097
|
+
name: "withdrawQueue",
|
|
52098
|
+
type: "function",
|
|
52099
|
+
stateMutability: "view",
|
|
52100
|
+
inputs: [],
|
|
52101
|
+
outputs: [{ type: "address" }]
|
|
52102
|
+
},
|
|
52103
|
+
{
|
|
52104
|
+
/** The rebasing NTLP pool share this wNLP wraps. */
|
|
52105
|
+
name: "nlp",
|
|
52106
|
+
type: "function",
|
|
52107
|
+
stateMutability: "view",
|
|
52108
|
+
inputs: [],
|
|
52109
|
+
outputs: [{ type: "address" }]
|
|
52110
|
+
},
|
|
52111
|
+
{
|
|
52112
|
+
name: "underlying",
|
|
52113
|
+
type: "function",
|
|
52114
|
+
stateMutability: "view",
|
|
52115
|
+
inputs: [],
|
|
52116
|
+
outputs: [{ type: "address" }]
|
|
52117
|
+
}
|
|
52118
|
+
];
|
|
52119
|
+
var NativeWithdrawQueueReadAbi = [
|
|
52120
|
+
{
|
|
52121
|
+
/** Seconds between `requestWithdrawal` and `claimWithdrawal`
|
|
52122
|
+
* (1–8 days depending on the asset; 3 days is the common value). */
|
|
52123
|
+
name: "withdrawalWindow",
|
|
52124
|
+
type: "function",
|
|
52125
|
+
stateMutability: "view",
|
|
52126
|
+
inputs: [],
|
|
52127
|
+
outputs: [{ type: "uint256" }]
|
|
52128
|
+
}
|
|
52129
|
+
];
|
|
52130
|
+
|
|
52131
|
+
// src/vaults/savings/readers/erc4626Idle.ts
|
|
52132
|
+
var readerErc4626Idle = (entry) => {
|
|
52133
|
+
const shareUnit = 10n ** BigInt(entry.decimals);
|
|
52134
|
+
const underlyingUnit = 10n ** BigInt(entry.underlyingDecimals ?? entry.decimals);
|
|
52135
|
+
const inventory = entry.inventoryContract ?? entry.address;
|
|
52136
|
+
return {
|
|
52137
|
+
calls: [
|
|
52138
|
+
{ address: entry.address, name: "totalAssets", params: [] },
|
|
52139
|
+
{ address: entry.address, name: "totalSupply", params: [] },
|
|
52140
|
+
{
|
|
52141
|
+
address: entry.address,
|
|
52142
|
+
name: "convertToAssets",
|
|
52143
|
+
params: [shareUnit]
|
|
52144
|
+
},
|
|
52145
|
+
{ address: entry.underlying, name: "balanceOf", params: [inventory] }
|
|
52146
|
+
],
|
|
52147
|
+
abis: [Erc4626ReadAbi2, TotalSupplyAbi2, Erc4626ReadAbi2, BalanceOfAbi],
|
|
52148
|
+
parse: ([assets, supply, rate, inventoryBalance]) => {
|
|
52149
|
+
const totalAssets = toBigInt14(assets);
|
|
52150
|
+
const totalSupply = toBigInt14(supply);
|
|
52151
|
+
const convertToAssetsRaw = toBigInt14(rate);
|
|
52152
|
+
if (totalAssets === void 0 || totalSupply === void 0 || convertToAssetsRaw === void 0) {
|
|
52153
|
+
return void 0;
|
|
52154
|
+
}
|
|
52155
|
+
const capacity = toBigInt14(inventoryBalance);
|
|
52156
|
+
return {
|
|
52157
|
+
totalAssets,
|
|
52158
|
+
totalSupply,
|
|
52159
|
+
exchangeRate: convertToAssetsRaw * ONE_E189 / underlyingUnit,
|
|
52160
|
+
...capacity !== void 0 ? {
|
|
52161
|
+
instantRedeemCapacity: capacity,
|
|
52162
|
+
instantRedeemEnabled: true,
|
|
52163
|
+
withdrawFeeBps: 0
|
|
52164
|
+
} : {},
|
|
52165
|
+
...entry.withdrawQueue ? { withdrawQueue: entry.withdrawQueue } : {}
|
|
52166
|
+
};
|
|
52167
|
+
}
|
|
52168
|
+
};
|
|
52169
|
+
};
|
|
52170
|
+
|
|
52171
|
+
// src/vaults/savings/readers/navOracle.ts
|
|
52172
|
+
var readerNavOracle = (entry) => {
|
|
52173
|
+
const shareUnit = 10n ** BigInt(entry.decimals);
|
|
52174
|
+
const underlyingUnit = 10n ** BigInt(entry.underlyingDecimals ?? entry.decimals);
|
|
52175
|
+
return {
|
|
52176
|
+
calls: [
|
|
52177
|
+
{ address: entry.address, name: "totalSupply", params: [] },
|
|
52178
|
+
{
|
|
52179
|
+
address: entry.priceOracle ?? entry.address,
|
|
52180
|
+
name: "latestRoundData",
|
|
52181
|
+
params: []
|
|
52182
|
+
}
|
|
52183
|
+
],
|
|
52184
|
+
abis: [TotalSupplyAbi2, NavOracleReadAbi],
|
|
52185
|
+
parse: ([supply, round]) => {
|
|
52186
|
+
const totalSupply = toBigInt14(supply);
|
|
52187
|
+
if (totalSupply === void 0) return void 0;
|
|
52188
|
+
const raw = Array.isArray(round) ? round[1] : round?.answer;
|
|
52189
|
+
const exchangeRate = toBigInt14(raw);
|
|
52190
|
+
if (exchangeRate === void 0 || exchangeRate <= 0n) return void 0;
|
|
52191
|
+
return {
|
|
52192
|
+
totalAssets: totalSupply * exchangeRate * underlyingUnit / (ONE_E189 * shareUnit),
|
|
52193
|
+
totalSupply,
|
|
52194
|
+
exchangeRate
|
|
52195
|
+
};
|
|
52196
|
+
}
|
|
52197
|
+
};
|
|
52198
|
+
};
|
|
52199
|
+
|
|
52200
|
+
// src/vaults/savings/readers/nativeWnlp.ts
|
|
52201
|
+
var readerNativeWnlp = (entry) => {
|
|
52202
|
+
const { address, underlying, inventoryContract, withdrawQueue } = entry;
|
|
52203
|
+
return {
|
|
52204
|
+
calls: [
|
|
52205
|
+
{ address, name: "totalSupply", params: [] },
|
|
52206
|
+
{ address, name: "getNlpByWnlp", params: [ONE_E189] },
|
|
52207
|
+
{ address, name: "instantRedeemFeeBips", params: [] },
|
|
52208
|
+
{ address, name: "instantRedeemEnabled", params: [] },
|
|
52209
|
+
// Falls back to the vault itself when no CreditVault is pinned —
|
|
52210
|
+
// yields a 0 capacity rather than a malformed call.
|
|
52211
|
+
{
|
|
52212
|
+
address: underlying,
|
|
52213
|
+
name: "balanceOf",
|
|
52214
|
+
params: [inventoryContract ?? address]
|
|
52215
|
+
},
|
|
52216
|
+
{
|
|
52217
|
+
address: withdrawQueue ?? address,
|
|
52218
|
+
name: "withdrawalWindow",
|
|
52219
|
+
params: []
|
|
52220
|
+
}
|
|
52221
|
+
],
|
|
52222
|
+
abis: [
|
|
52223
|
+
TotalSupplyAbi2,
|
|
52224
|
+
NativeWnlpReadAbi,
|
|
52225
|
+
NativeWnlpReadAbi,
|
|
52226
|
+
NativeWnlpReadAbi,
|
|
52227
|
+
BalanceOfAbi,
|
|
52228
|
+
NativeWithdrawQueueReadAbi
|
|
52229
|
+
],
|
|
52230
|
+
parse: ([supply, rate, feeBips, instantEnabled, inventory, window]) => {
|
|
52231
|
+
const totalSupply = toBigInt14(supply);
|
|
52232
|
+
const exchangeRate = toBigInt14(rate);
|
|
52233
|
+
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
52234
|
+
return void 0;
|
|
52235
|
+
}
|
|
52236
|
+
const capacity = toBigInt14(inventory);
|
|
52237
|
+
const windowSeconds = toBigInt14(window);
|
|
52238
|
+
const bips = toBigInt14(feeBips);
|
|
52239
|
+
return {
|
|
52240
|
+
totalAssets: totalSupply * exchangeRate / ONE_E189,
|
|
52241
|
+
totalSupply,
|
|
52242
|
+
exchangeRate,
|
|
52243
|
+
// `instantRedeemFeeBips` on-chain is already basis points, so it
|
|
52244
|
+
// maps 1:1 onto the cross-provider `withdrawFeeBps`.
|
|
52245
|
+
withdrawFeeBps: bips !== void 0 ? Number(bips) : void 0,
|
|
52246
|
+
// `instantRedeemEnabled` is a bool; a reverted call reads as
|
|
52247
|
+
// undefined, which we treat as "unknown" rather than "disabled".
|
|
52248
|
+
instantRedeemEnabled: typeof instantEnabled === "boolean" ? instantEnabled : void 0,
|
|
52249
|
+
instantRedeemCapacity: capacity,
|
|
52250
|
+
withdrawalCooldownSeconds: windowSeconds !== void 0 ? Number(windowSeconds) : void 0,
|
|
52251
|
+
withdrawQueue: withdrawQueue?.toLowerCase()
|
|
50398
52252
|
};
|
|
50399
52253
|
}
|
|
50400
52254
|
};
|
|
50401
52255
|
};
|
|
50402
52256
|
|
|
50403
52257
|
// src/vaults/savings/readers/index.ts
|
|
50404
|
-
var buildReader2 = (entry) =>
|
|
52258
|
+
var buildReader2 = (entry) => {
|
|
52259
|
+
switch (entry.reader) {
|
|
52260
|
+
case "native-wnlp":
|
|
52261
|
+
return readerNativeWnlp(entry);
|
|
52262
|
+
case "nav-oracle":
|
|
52263
|
+
return readerNavOracle(entry);
|
|
52264
|
+
case "erc4626-idle":
|
|
52265
|
+
return readerErc4626Idle(entry);
|
|
52266
|
+
case "erc4626":
|
|
52267
|
+
case void 0:
|
|
52268
|
+
return readerErc46262(entry);
|
|
52269
|
+
}
|
|
52270
|
+
};
|
|
50405
52271
|
|
|
50406
52272
|
// src/vaults/savings/yieldBinding.ts
|
|
50407
52273
|
var resolveYieldApr2 = async (entries) => (await resolveEntryApr(entries)).apr;
|
|
50408
52274
|
|
|
50409
52275
|
// src/vaults/savings/fetchPublic.ts
|
|
50410
|
-
var
|
|
52276
|
+
var ONE_E1810 = 10n ** 18n;
|
|
50411
52277
|
var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
|
|
50412
52278
|
const entries = getSavingsRegistry(chainId);
|
|
50413
52279
|
if (entries.length === 0) return {};
|
|
@@ -50445,11 +52311,19 @@ var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
50445
52311
|
const totalAssetsFormatted = Number(state.totalAssets) / 10 ** underlyingDec;
|
|
50446
52312
|
const totalAssetsUsd = priceUsd !== void 0 ? totalAssetsFormatted * priceUsd : 0;
|
|
50447
52313
|
const isInstant = entry.withdrawalMode === "instant";
|
|
50448
|
-
|
|
50449
|
-
|
|
50450
|
-
|
|
50451
|
-
|
|
50452
|
-
const
|
|
52314
|
+
let liquidityAmount = isInstant ? state.totalAssets : 0n;
|
|
52315
|
+
if (!isInstant && state.instantRedeemCapacity !== void 0) {
|
|
52316
|
+
liquidityAmount = state.instantRedeemEnabled === false ? 0n : state.instantRedeemCapacity < state.totalAssets ? state.instantRedeemCapacity : state.totalAssets;
|
|
52317
|
+
}
|
|
52318
|
+
const liquidityRaw = liquidityAmount.toString();
|
|
52319
|
+
const liquidityFormatted = Number(liquidityAmount) / 10 ** underlyingDec;
|
|
52320
|
+
const liquidityUsd = priceUsd !== void 0 ? liquidityFormatted * priceUsd : 0;
|
|
52321
|
+
const instantLiquidityRatio = state.totalAssets > 0n ? Math.min(
|
|
52322
|
+
1,
|
|
52323
|
+
Number(liquidityAmount * 1000000n / state.totalAssets) / 1e6
|
|
52324
|
+
) : 1;
|
|
52325
|
+
const convertToAssets = state.exchangeRate * underlyingUnit / ONE_E1810;
|
|
52326
|
+
const convertToShares = state.exchangeRate > 0n ? ONE_E1810 * shareUnit / state.exchangeRate : 0n;
|
|
50453
52327
|
const displayName = composeVaultDisplayName(
|
|
50454
52328
|
entry.brand,
|
|
50455
52329
|
entry.brand,
|
|
@@ -50477,19 +52351,32 @@ var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
50477
52351
|
supplyRate,
|
|
50478
52352
|
rewardsRate,
|
|
50479
52353
|
depositRate,
|
|
50480
|
-
|
|
52354
|
+
// Opt-IN, not opt-out: a new bespoke reader exists precisely
|
|
52355
|
+
// because its token is not a conforming vault, so the default for
|
|
52356
|
+
// an unlisted reader must be `false`. `erc4626-idle` is the plain
|
|
52357
|
+
// 4626 surface plus an inventory read, so it counts; Native's wNLP
|
|
52358
|
+
// and Re's NAV-oracle tokens revert on `asset()`/`totalAssets()`/
|
|
52359
|
+
// `convertToAssets()` and do not.
|
|
52360
|
+
isErc4626: entry.reader === void 0 || entry.reader === "erc4626" || entry.reader === "erc4626-idle",
|
|
50481
52361
|
isRebasing: entry.isRebasing,
|
|
50482
52362
|
isMintable: entry.isMintable,
|
|
50483
52363
|
mintContract: entry.mintContract?.toLowerCase() ?? addressLc,
|
|
50484
52364
|
withdrawalMode: entry.withdrawalMode,
|
|
50485
|
-
|
|
52365
|
+
// On-chain wins over the registry's pinned fallback — Native's
|
|
52366
|
+
// queue window is per-asset and governance-mutable.
|
|
52367
|
+
withdrawalCooldownSeconds: state.withdrawalCooldownSeconds ?? entry.withdrawalCooldownSeconds,
|
|
52368
|
+
withdrawFeeBps: state.withdrawFeeBps,
|
|
52369
|
+
instantRedeemEnabled: state.instantRedeemEnabled,
|
|
52370
|
+
inventoryContract: entry.inventoryContract?.toLowerCase(),
|
|
52371
|
+
withdrawQueue: state.withdrawQueue ?? entry.withdrawQueue?.toLowerCase(),
|
|
50486
52372
|
asset,
|
|
50487
52373
|
priceUsd,
|
|
50488
52374
|
totalAssetsFormatted,
|
|
50489
52375
|
totalAssetsUsd,
|
|
50490
52376
|
liquidity: liquidityRaw,
|
|
50491
52377
|
liquidityFormatted,
|
|
50492
|
-
liquidityUsd
|
|
52378
|
+
liquidityUsd,
|
|
52379
|
+
instantLiquidityRatio
|
|
50493
52380
|
};
|
|
50494
52381
|
out[addressLc] = vault;
|
|
50495
52382
|
}
|
|
@@ -52766,7 +54653,7 @@ var readVaultSharePrices = async (chainId, addresses, multicallRetry) => {
|
|
|
52766
54653
|
};
|
|
52767
54654
|
|
|
52768
54655
|
// src/vaults/yield/annualize.ts
|
|
52769
|
-
var
|
|
54656
|
+
var YEAR_SECONDS5 = 365 * 24 * 60 * 60;
|
|
52770
54657
|
var SCALE = 10n ** 18n;
|
|
52771
54658
|
var appendSnapshot = (points, snap, options) => {
|
|
52772
54659
|
const maxPoints = options?.maxPoints ?? 90;
|
|
@@ -52795,7 +54682,7 @@ var computeVaultApr = (points, options) => {
|
|
|
52795
54682
|
if (pThen === 0n) return void 0;
|
|
52796
54683
|
const ratioScaled = BigInt(now.p) * SCALE / pThen;
|
|
52797
54684
|
const ratio = Number(ratioScaled) / 1e18;
|
|
52798
|
-
const apr = (ratio - 1) * (
|
|
54685
|
+
const apr = (ratio - 1) * (YEAR_SECONDS5 / windowSeconds);
|
|
52799
54686
|
return {
|
|
52800
54687
|
apr,
|
|
52801
54688
|
sharePriceNow: now.p,
|
|
@@ -53585,6 +55472,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
53585
55472
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
53586
55473
|
}
|
|
53587
55474
|
|
|
53588
|
-
export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_STALE_REJECT_SECONDS, EMPTY_BALANCE, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, HYPERCORE_VAULT_REGISTRY, IDLE_MARKET_ID, INTERFACE_IDS, LAGOON_API_URL, LAGOON_CHAIN_IDS, MORPHO_LENS, MaxParamThresholds, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, TELLER_CALLS_PER_BID, TermSubgraphSource, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, VAULT_SHARE_PRICE_PROBE, VOLATILE_VAULT_OVERRIDES, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildVaultLookup, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, collectFeedObservations, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertExactlyMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyLenderKey, exactlyMarketFromLenderKey, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendlePrices, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedLiquityTroves, getCachedTellerBids, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, getVaultWithdrawalRequests, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasUpshiftVaults, hasYearnVaults, isStablecoinSymbol, isYearnV3, keysFromMaps, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveDerivation, resolveStCeloDepositGroup, riverKeyParts, riverLenderKey, selectAssetGroupPrices, stampVaultClassification, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, tickToAprNumber, tickToPrice, unflattenLenderData, updateFeedStats };
|
|
55475
|
+
export { ApiBookSource, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_STALE_REJECT_SECONDS, EMPTY_BALANCE, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, HYPERCORE_VAULT_REGISTRY, IDLE_MARKET_ID, INTERFACE_IDS, LAGOON_API_URL, LAGOON_CHAIN_IDS, MORPHO_LENS, MaxParamThresholds, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, TELLER_CALLS_PER_BID, TermSubgraphSource, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, VAULT_SHARE_PRICE_PROBE, VOLATILE_VAULT_OVERRIDES, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildVaultLookup, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, collectFeedObservations, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertExactlyMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyLenderKey, exactlyMarketFromLenderKey, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendlePrices, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedLiquityTroves, getCachedTellerBids, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, getVaultWithdrawalRequests, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasUpshiftVaults, hasYearnVaults, isStablecoinSymbol, isYearnV3, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveDerivation, resolveStCeloDepositGroup, riverKeyParts, riverLenderKey, selectAssetGroupPrices, stampVaultClassification, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, tickToAprNumber, tickToPrice, unflattenLenderData, updateFeedStats };
|
|
53589
55476
|
//# sourceMappingURL=index.js.map
|
|
53590
55477
|
//# sourceMappingURL=index.js.map
|