@1delta/margin-fetcher 5.0.45 → 5.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +274 -87
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -27679,13 +27679,13 @@ var REPAIR_BACKOFF_JITTER_MS = 60;
|
|
|
27679
27679
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
27680
27680
|
var backoffForRound = (round) => REPAIR_BACKOFF_BASE_MS * 2 ** round + Math.random() * REPAIR_BACKOFF_JITTER_MS;
|
|
27681
27681
|
var endpointUrl = (client, rpcId) => client?.transport?.url ?? `rpc#${rpcId}`;
|
|
27682
|
-
var resolveEndpoint = (chainId,
|
|
27682
|
+
var resolveEndpoint = (chainId, getEvmClient17, startRpcId, tried, maxProbe = 12) => {
|
|
27683
27683
|
let fallback = null;
|
|
27684
27684
|
for (let probe = 0; probe < maxProbe; probe++) {
|
|
27685
27685
|
const rpcId = startRpcId + probe;
|
|
27686
27686
|
let client;
|
|
27687
27687
|
try {
|
|
27688
|
-
client =
|
|
27688
|
+
client = getEvmClient17(chainId, rpcId);
|
|
27689
27689
|
} catch {
|
|
27690
27690
|
break;
|
|
27691
27691
|
}
|
|
@@ -27715,7 +27715,7 @@ var recordPermanentFailures = (slots, offset, collector) => {
|
|
|
27715
27715
|
if (slots[i].permanent) collector.add(offset + i);
|
|
27716
27716
|
}
|
|
27717
27717
|
};
|
|
27718
|
-
var repairFailedSlots = async (chainId, contracts, slots,
|
|
27718
|
+
var repairFailedSlots = async (chainId, contracts, slots, getEvmClient17, nextRpcId, batchSize, logs, rounds = MULTICALL_REPAIR_ROUNDS, options) => {
|
|
27719
27719
|
let searchFrom = nextRpcId;
|
|
27720
27720
|
for (let round = 0; round < rounds; round++) {
|
|
27721
27721
|
const failedIdx = [];
|
|
@@ -27725,7 +27725,7 @@ var repairFailedSlots = async (chainId, contracts, slots, getEvmClient16, nextRp
|
|
|
27725
27725
|
if (failedIdx.length === 0) return slots;
|
|
27726
27726
|
const endpoint = resolveEndpoint(
|
|
27727
27727
|
chainId,
|
|
27728
|
-
|
|
27728
|
+
getEvmClient17,
|
|
27729
27729
|
searchFrom,
|
|
27730
27730
|
options?.tried
|
|
27731
27731
|
);
|
|
@@ -27777,9 +27777,9 @@ var repairFailedSlots = async (chainId, contracts, slots, getEvmClient16, nextRp
|
|
|
27777
27777
|
}
|
|
27778
27778
|
return slots;
|
|
27779
27779
|
};
|
|
27780
|
-
var multicallViemAbiArray = async (chainId, abi, calls,
|
|
27780
|
+
var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient17, retry = true, providerId = 0, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false, retryFailed = false, permanentFailures, options) => {
|
|
27781
27781
|
const tried = options?.tried ?? /* @__PURE__ */ new Set();
|
|
27782
|
-
const endpoint = resolveEndpoint(chainId,
|
|
27782
|
+
const endpoint = resolveEndpoint(chainId, getEvmClient17, providerId, tried);
|
|
27783
27783
|
if (!endpoint) throw new Error("No usable RPC endpoint for " + chainId);
|
|
27784
27784
|
const endpointOptions = {
|
|
27785
27785
|
tried,
|
|
@@ -27816,7 +27816,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient16, retry =
|
|
|
27816
27816
|
chainId,
|
|
27817
27817
|
abi,
|
|
27818
27818
|
calls,
|
|
27819
|
-
|
|
27819
|
+
getEvmClient17,
|
|
27820
27820
|
retry,
|
|
27821
27821
|
endpoint.rpcId + 1,
|
|
27822
27822
|
retries - 1,
|
|
@@ -27832,7 +27832,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient16, retry =
|
|
|
27832
27832
|
chainId,
|
|
27833
27833
|
contracts,
|
|
27834
27834
|
slots,
|
|
27835
|
-
|
|
27835
|
+
getEvmClient17,
|
|
27836
27836
|
endpoint.rpcId + 1,
|
|
27837
27837
|
batchSize,
|
|
27838
27838
|
logs,
|
|
@@ -27856,7 +27856,7 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient16, retry =
|
|
|
27856
27856
|
chainId,
|
|
27857
27857
|
abi,
|
|
27858
27858
|
calls,
|
|
27859
|
-
|
|
27859
|
+
getEvmClient17,
|
|
27860
27860
|
retry,
|
|
27861
27861
|
endpoint.rpcId + 1,
|
|
27862
27862
|
retries,
|
|
@@ -27869,13 +27869,13 @@ var multicallViemAbiArray = async (chainId, abi, calls, getEvmClient16, retry =
|
|
|
27869
27869
|
);
|
|
27870
27870
|
}
|
|
27871
27871
|
};
|
|
27872
|
-
var multicallShardedAbiArray = async (chainId, abi, calls,
|
|
27872
|
+
var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient17, poolSize, retries = maxRetries, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, logs = false, retryFailed = false, permanentFailures, options) => {
|
|
27873
27873
|
if (poolSize <= 1) {
|
|
27874
27874
|
return multicallViemAbiArray(
|
|
27875
27875
|
chainId,
|
|
27876
27876
|
abi,
|
|
27877
27877
|
calls,
|
|
27878
|
-
|
|
27878
|
+
getEvmClient17,
|
|
27879
27879
|
true,
|
|
27880
27880
|
0,
|
|
27881
27881
|
retries,
|
|
@@ -27904,7 +27904,7 @@ var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient16, poolS
|
|
|
27904
27904
|
}
|
|
27905
27905
|
const results = new Array(contracts.length);
|
|
27906
27906
|
const runBatch = async (batch, rpcId, attemptsLeft, size, tried) => {
|
|
27907
|
-
const endpoint = resolveEndpoint(chainId,
|
|
27907
|
+
const endpoint = resolveEndpoint(chainId, getEvmClient17, rpcId, tried);
|
|
27908
27908
|
if (!endpoint) {
|
|
27909
27909
|
if (logs)
|
|
27910
27910
|
console.log(
|
|
@@ -27948,7 +27948,7 @@ var multicallShardedAbiArray = async (chainId, abi, calls, getEvmClient16, poolS
|
|
|
27948
27948
|
chainId,
|
|
27949
27949
|
batch.items,
|
|
27950
27950
|
slots,
|
|
27951
|
-
|
|
27951
|
+
getEvmClient17,
|
|
27952
27952
|
endpoint.rpcId + 1,
|
|
27953
27953
|
size,
|
|
27954
27954
|
logs,
|
|
@@ -38778,7 +38778,7 @@ function unflattenLenderData(pools) {
|
|
|
38778
38778
|
}
|
|
38779
38779
|
return result;
|
|
38780
38780
|
}
|
|
38781
|
-
var getLenderUserDataResult = async (chainId, queriesRaw,
|
|
38781
|
+
var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient17, allowFailure = true, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, retries = 3, logs = false, concurrency = 1, permanentFailures, onEndpointFailure) => {
|
|
38782
38782
|
const queries = organizeUserQueries(queriesRaw);
|
|
38783
38783
|
const builtCalls = await Promise.all(
|
|
38784
38784
|
queries.map(async (query3) => {
|
|
@@ -38788,7 +38788,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient16, allowF
|
|
|
38788
38788
|
query3.lender,
|
|
38789
38789
|
query3.account,
|
|
38790
38790
|
query3.params,
|
|
38791
|
-
|
|
38791
|
+
getEvmClient17
|
|
38792
38792
|
);
|
|
38793
38793
|
return callData.map((call) => ({ call, abi: call.abi ?? abi }));
|
|
38794
38794
|
})
|
|
@@ -38798,7 +38798,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient16, allowF
|
|
|
38798
38798
|
chainId,
|
|
38799
38799
|
calls.map((call) => call.abi),
|
|
38800
38800
|
calls.map((call) => call.call),
|
|
38801
|
-
|
|
38801
|
+
getEvmClient17,
|
|
38802
38802
|
concurrency,
|
|
38803
38803
|
retries,
|
|
38804
38804
|
allowFailure,
|
|
@@ -44118,13 +44118,87 @@ var capFetcher = {
|
|
|
44118
44118
|
return { [STCUSD_KEY]: apr, [STCUSD_BRIDGED_GROUP_KEY]: apr };
|
|
44119
44119
|
}
|
|
44120
44120
|
};
|
|
44121
|
-
var CHAIN_ID10 =
|
|
44121
|
+
var CHAIN_ID10 = "1";
|
|
44122
|
+
var WSTGBP = "0x57c3571f10767e49c9d7b60feb6c67804783b7ae";
|
|
44123
|
+
var WREN_NAV_GROWTH_URL = "https://wstgbp.com/api/nav-growth";
|
|
44124
|
+
var ONE_E189 = 10n ** 18n;
|
|
44125
|
+
var WINDOW_SECONDS6 = 90 * 24 * 60 * 60;
|
|
44126
|
+
var BLOCK_TIME_SECONDS5 = 12;
|
|
44127
|
+
var WINDOW_BLOCKS5 = BigInt(Math.floor(WINDOW_SECONDS6 / BLOCK_TIME_SECONDS5));
|
|
44128
|
+
var MAX_RPC_TRIES5 = 2;
|
|
44129
|
+
var ONCHAIN_DEADLINE_MS = 12e3;
|
|
44130
|
+
var WSTGBP_KEY = "WSTGBP";
|
|
44131
|
+
var WSTGBP_GROUP_KEY = "Wren Staked tGBP::wstGBP";
|
|
44132
|
+
var NAVPRICE_ABI = [
|
|
44133
|
+
{
|
|
44134
|
+
name: "navprice",
|
|
44135
|
+
type: "function",
|
|
44136
|
+
stateMutability: "view",
|
|
44137
|
+
inputs: [],
|
|
44138
|
+
outputs: [{ type: "uint256" }]
|
|
44139
|
+
}
|
|
44140
|
+
];
|
|
44141
|
+
var fetchWrenAprPercent = async () => {
|
|
44142
|
+
const res = await fetch(WREN_NAV_GROWTH_URL, {
|
|
44143
|
+
headers: { accept: "application/json" },
|
|
44144
|
+
signal: AbortSignal.timeout(8e3)
|
|
44145
|
+
});
|
|
44146
|
+
if (!res.ok) throw new Error(`Wren HTTP ${res.status}`);
|
|
44147
|
+
const json = await res.json();
|
|
44148
|
+
const apr = Number(json?.aprWad) / 1e16;
|
|
44149
|
+
if (!Number.isFinite(apr) || apr <= 0) throw new Error("aprWad missing");
|
|
44150
|
+
return apr;
|
|
44151
|
+
};
|
|
44152
|
+
var readNavAt = (client, blockNumber) => client.readContract({
|
|
44153
|
+
address: WSTGBP,
|
|
44154
|
+
abi: NAVPRICE_ABI,
|
|
44155
|
+
functionName: "navprice",
|
|
44156
|
+
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
44157
|
+
});
|
|
44158
|
+
var computeAprOnChain = async () => {
|
|
44159
|
+
let lastErr;
|
|
44160
|
+
const deadline = Date.now() + ONCHAIN_DEADLINE_MS;
|
|
44161
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES5; rpcId++) {
|
|
44162
|
+
if (Date.now() > deadline) break;
|
|
44163
|
+
try {
|
|
44164
|
+
const client = getEvmClient(CHAIN_ID10, rpcId);
|
|
44165
|
+
const head = await client.getBlockNumber();
|
|
44166
|
+
const pastBlock = head > WINDOW_BLOCKS5 ? head - WINDOW_BLOCKS5 : 0n;
|
|
44167
|
+
const [navNow, navThen, headBlock, thenBlock] = await Promise.all([
|
|
44168
|
+
readNavAt(client),
|
|
44169
|
+
readNavAt(client, pastBlock),
|
|
44170
|
+
client.getBlock({ blockNumber: head }),
|
|
44171
|
+
client.getBlock({ blockNumber: pastBlock })
|
|
44172
|
+
]);
|
|
44173
|
+
if (navNow < ONE_E189 || navThen < ONE_E189) {
|
|
44174
|
+
throw new Error("wstGBP: navprice below par \u2014 pruned or bad read");
|
|
44175
|
+
}
|
|
44176
|
+
if (navNow < navThen) {
|
|
44177
|
+
throw new Error("wstGBP: navprice decreased \u2014 non-archival RPC");
|
|
44178
|
+
}
|
|
44179
|
+
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
44180
|
+
if (elapsed <= 0) throw new Error("wstGBP: non-positive window");
|
|
44181
|
+
return annualizeRateDeltaPercent(navNow, navThen, elapsed);
|
|
44182
|
+
} catch (e) {
|
|
44183
|
+
lastErr = e;
|
|
44184
|
+
}
|
|
44185
|
+
}
|
|
44186
|
+
throw lastErr ?? new Error("wstGBP: no RPC served archive state");
|
|
44187
|
+
};
|
|
44188
|
+
var wrenFetcher = {
|
|
44189
|
+
label: "WREN",
|
|
44190
|
+
fetch: async () => {
|
|
44191
|
+
const apr = await fetchWrenAprPercent().catch(() => computeAprOnChain()).catch(() => 0);
|
|
44192
|
+
return { [WSTGBP_KEY]: apr, [WSTGBP_GROUP_KEY]: apr };
|
|
44193
|
+
}
|
|
44194
|
+
};
|
|
44195
|
+
var CHAIN_ID11 = Chain.ETHEREUM_MAINNET;
|
|
44122
44196
|
var APYUSD = "0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a";
|
|
44123
44197
|
var APYX_LINEAR_VEST = "0x0d62b4cc02b4b51ed19ddf41d7a7979cf394c99f";
|
|
44124
44198
|
var APYX_DISCOVER_URL = "https://api.apyx.fi/v1/rewards/seasons/2/discover";
|
|
44125
44199
|
var APYX_DEFILLAMA_POOL = "cb6139f9-4a68-4efd-8245-0312a92aee55";
|
|
44126
44200
|
var YEAR_SECONDS10 = 31536000n;
|
|
44127
|
-
var
|
|
44201
|
+
var ONE_E1810 = 10n ** 18n;
|
|
44128
44202
|
var APYUSD_KEY = "APYUSD";
|
|
44129
44203
|
var APYUSD_GROUP_KEY = "apyUSD::APYUSD";
|
|
44130
44204
|
var APYUSD_LEGACY_GROUP_KEY = "apyUSD::apyUSD";
|
|
@@ -44153,7 +44227,7 @@ var APYX_READ_ABI = [
|
|
|
44153
44227
|
];
|
|
44154
44228
|
var fetchApyusdAprOnChain = async () => {
|
|
44155
44229
|
const [totalAssets, unvested, periodRemaining] = await multicallRetryUniversal({
|
|
44156
|
-
chain:
|
|
44230
|
+
chain: CHAIN_ID11,
|
|
44157
44231
|
abi: APYX_READ_ABI,
|
|
44158
44232
|
calls: [
|
|
44159
44233
|
{ address: APYUSD, name: "totalAssets", params: [] },
|
|
@@ -44170,7 +44244,7 @@ var fetchApyusdAprOnChain = async () => {
|
|
|
44170
44244
|
throw new Error("apyx vesting state empty");
|
|
44171
44245
|
}
|
|
44172
44246
|
const perSecond = unvested / periodRemaining;
|
|
44173
|
-
return Number(perSecond * YEAR_SECONDS10 *
|
|
44247
|
+
return Number(perSecond * YEAR_SECONDS10 * ONE_E1810 / totalAssets) / 1e16;
|
|
44174
44248
|
};
|
|
44175
44249
|
var fetchApyusdApyFromApi = async () => {
|
|
44176
44250
|
const res = await fetch(APYX_DISCOVER_URL, {
|
|
@@ -46266,6 +46340,55 @@ var SINGLE_CHAIN_ENTRIES = {
|
|
|
46266
46340
|
yieldFetcher: capFetcher,
|
|
46267
46341
|
yieldKey: STCUSD_KEY
|
|
46268
46342
|
},
|
|
46343
|
+
{
|
|
46344
|
+
// Wren wstGBP — a value-accruing wrapper over tGBP, the FCA-registered
|
|
46345
|
+
// GBP stablecoin issued by BCP Technologies (cash + short-dated gilts,
|
|
46346
|
+
// 1:1 redeemable, listed on Coinbase and Kraken). **The second non-USD
|
|
46347
|
+
// row on this surface after Brix's wiTRY** — see the lira note there:
|
|
46348
|
+
// `supplyRate` is asset-denominated, so a GBP rate belongs beside a
|
|
46349
|
+
// dollar one only with the currency stated, which is why it is in the
|
|
46350
|
+
// description and in `props.savings.base: 'GBP'`. The FX exposure is far
|
|
46351
|
+
// milder than the lira's, but it is the same axis.
|
|
46352
|
+
//
|
|
46353
|
+
// NOT ERC-4626 in any part — `asset()`, `totalAssets()`,
|
|
46354
|
+
// `convertToAssets()` and every `max*` view revert. The token prices
|
|
46355
|
+
// ITSELF through `navprice()`, a figure the issuer restates roughly
|
|
46356
|
+
// weekly in ~6.7 bps steps, hence the `wren-nav` reader.
|
|
46357
|
+
//
|
|
46358
|
+
// Fork-verified 2026-08-14 on the live contract:
|
|
46359
|
+
// - `mint(uint256)` is PERMISSIONLESS and settles at NAV with no entry
|
|
46360
|
+
// fee (`mintcost() == navprice()`): 100 tGBP → 99.1355 wstGBP from a
|
|
46361
|
+
// fresh address. tGBP itself transfers freely (the iTRY check).
|
|
46362
|
+
// - `redeem(uint256)` is the instant exit and pays `burncost()`, which
|
|
46363
|
+
// is ~25 bps BELOW the NAV — 10 wstGBP returned exactly
|
|
46364
|
+
// 10.061984858035600520 tGBP. That gap is reported as the signed
|
|
46365
|
+
// `redemptionDiscountBps`, not smoothed into the share price.
|
|
46366
|
+
// - **`smelt(uint256)` burns shares and pays NOTHING immediately**,
|
|
46367
|
+
// booking a record under `redemptions(i)` for later settlement. It is
|
|
46368
|
+
// a distinct, uncharacterised path — never route an exit to it.
|
|
46369
|
+
// `exit(uint256)` reverts `0x9b604d0b` for an ordinary caller.
|
|
46370
|
+
//
|
|
46371
|
+
// Small: ~83.3k wstGBP over ~84.0k tGBP (≈ $114k at 1.352 GBP/USD).
|
|
46372
|
+
// Ethereum only — no other chain carries the contract, though tGBP
|
|
46373
|
+
// itself is a LayerZero OFT on six.
|
|
46374
|
+
reader: "wren-nav",
|
|
46375
|
+
address: "0x57c3571f10767e49c9d7b60feb6c67804783b7ae",
|
|
46376
|
+
underlying: "0x27f6c8289550fce67f6b50bed1f519966afe5287",
|
|
46377
|
+
// tGBP
|
|
46378
|
+
symbol: "wstGBP",
|
|
46379
|
+
brand: "Wren",
|
|
46380
|
+
// The backing is an FCA-registered issuer's segregated cash and gilt
|
|
46381
|
+
// reserves, and the share price is a NAV the issuer restates — attested,
|
|
46382
|
+
// not verifiable on-chain. Same class as Apyx and Brix.
|
|
46383
|
+
solvency: "nav-attested",
|
|
46384
|
+
description: "tGBP is a pound-sterling stablecoin from BCP Technologies, an FCA-registered issuer, backed 1:1 by cash and short-dated UK gilts held in segregated accounts. wstGBP wraps it and accrues the gilt yield through a NAV the issuer restates weekly \u2014 so the rate is earned in POUNDS, and a dollar-based holder keeps only what is left after the GBP/USD move. Minting is permissionless and free; redeeming is instant but settles ~25 bps below NAV.",
|
|
46385
|
+
decimals: 18,
|
|
46386
|
+
isRebasing: false,
|
|
46387
|
+
isMintable: true,
|
|
46388
|
+
withdrawalMode: "instant",
|
|
46389
|
+
yieldFetcher: wrenFetcher,
|
|
46390
|
+
yieldKey: WSTGBP_KEY
|
|
46391
|
+
},
|
|
46269
46392
|
{
|
|
46270
46393
|
// Apyx apyUSD — ERC-4626 over apxUSD, the "Dividend-Backed
|
|
46271
46394
|
// Dollar" (variable-rate perpetual preferred stock of DAT
|
|
@@ -56548,7 +56671,7 @@ var Erc4626PreviewRedeemAbi = [
|
|
|
56548
56671
|
];
|
|
56549
56672
|
|
|
56550
56673
|
// src/vaults/lst/readers/shared.ts
|
|
56551
|
-
var
|
|
56674
|
+
var ONE_E1811 = 10n ** 18n;
|
|
56552
56675
|
var rescaleDecimals = (v, fromDec, toDec) => toDec >= fromDec ? v * 10n ** BigInt(toDec - fromDec) : v / 10n ** BigInt(fromDec - toDec);
|
|
56553
56676
|
var MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
56554
56677
|
var Multicall3BalanceAbi = [
|
|
@@ -56591,7 +56714,7 @@ var readerBeetsStS = (entry) => ({
|
|
|
56591
56714
|
}
|
|
56592
56715
|
const liquidity = toBigInt14(pool);
|
|
56593
56716
|
return {
|
|
56594
|
-
totalAssets: totalSupply * exchangeRate /
|
|
56717
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56595
56718
|
totalSupply,
|
|
56596
56719
|
exchangeRate,
|
|
56597
56720
|
liquidity
|
|
@@ -56624,7 +56747,7 @@ var readerBenqiSavax = (entry) => ({
|
|
|
56624
56747
|
{
|
|
56625
56748
|
address: entry.address,
|
|
56626
56749
|
name: "getPooledAvaxByShares",
|
|
56627
|
-
params: [
|
|
56750
|
+
params: [ONE_E1811]
|
|
56628
56751
|
},
|
|
56629
56752
|
{ address: entry.address, name: "totalPooledAvax", params: [] }
|
|
56630
56753
|
],
|
|
@@ -56635,7 +56758,7 @@ var readerBenqiSavax = (entry) => ({
|
|
|
56635
56758
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
56636
56759
|
return void 0;
|
|
56637
56760
|
}
|
|
56638
|
-
const totalAssets = toBigInt14(totalPooled) ?? totalSupply * exchangeRate /
|
|
56761
|
+
const totalAssets = toBigInt14(totalPooled) ?? totalSupply * exchangeRate / ONE_E1811;
|
|
56639
56762
|
return {
|
|
56640
56763
|
totalAssets,
|
|
56641
56764
|
totalSupply,
|
|
@@ -56654,7 +56777,7 @@ var readerBgtWrapper1to1 = (entry) => ({
|
|
|
56654
56777
|
return {
|
|
56655
56778
|
totalAssets: totalSupply,
|
|
56656
56779
|
totalSupply,
|
|
56657
|
-
exchangeRate:
|
|
56780
|
+
exchangeRate: ONE_E1811
|
|
56658
56781
|
};
|
|
56659
56782
|
}
|
|
56660
56783
|
});
|
|
@@ -56684,7 +56807,7 @@ var readerDineroBeraEth = (entry) => ({
|
|
|
56684
56807
|
return void 0;
|
|
56685
56808
|
}
|
|
56686
56809
|
return {
|
|
56687
|
-
totalAssets: totalSupply * exchangeRate /
|
|
56810
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56688
56811
|
totalSupply,
|
|
56689
56812
|
exchangeRate
|
|
56690
56813
|
};
|
|
@@ -56696,7 +56819,7 @@ var readerErc4626 = (entry) => ({
|
|
|
56696
56819
|
calls: [
|
|
56697
56820
|
{ address: entry.address, name: "totalAssets", params: [] },
|
|
56698
56821
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
56699
|
-
{ address: entry.address, name: "convertToAssets", params: [
|
|
56822
|
+
{ address: entry.address, name: "convertToAssets", params: [ONE_E1811] }
|
|
56700
56823
|
],
|
|
56701
56824
|
abis: [Erc4626ReadAbi, TotalSupplyAbi, Erc4626ReadAbi],
|
|
56702
56825
|
parse: ([assets, supply, rate]) => {
|
|
@@ -56713,7 +56836,7 @@ var readerErc4626PreviewRedeem = (entry) => ({
|
|
|
56713
56836
|
calls: [
|
|
56714
56837
|
{ address: entry.address, name: "totalAssets", params: [] },
|
|
56715
56838
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
56716
|
-
{ address: entry.address, name: "previewRedeem", params: [
|
|
56839
|
+
{ address: entry.address, name: "previewRedeem", params: [ONE_E1811] }
|
|
56717
56840
|
],
|
|
56718
56841
|
abis: [Erc4626PreviewRedeemAbi, TotalSupplyAbi, Erc4626PreviewRedeemAbi],
|
|
56719
56842
|
parse: ([assets, supply, rate]) => {
|
|
@@ -56793,7 +56916,7 @@ var readerEtherFiWeEth = (entry) => {
|
|
|
56793
56916
|
}
|
|
56794
56917
|
}
|
|
56795
56918
|
return {
|
|
56796
|
-
totalAssets: totalSupply * exchangeRate /
|
|
56919
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56797
56920
|
totalSupply,
|
|
56798
56921
|
exchangeRate,
|
|
56799
56922
|
liquidity
|
|
@@ -56826,7 +56949,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
56826
56949
|
return {
|
|
56827
56950
|
totalAssets: totalSupply,
|
|
56828
56951
|
totalSupply,
|
|
56829
|
-
exchangeRate:
|
|
56952
|
+
exchangeRate: ONE_E1811
|
|
56830
56953
|
};
|
|
56831
56954
|
}
|
|
56832
56955
|
};
|
|
@@ -56834,7 +56957,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
56834
56957
|
return {
|
|
56835
56958
|
calls: [
|
|
56836
56959
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
56837
|
-
{ address: stakingCore, name: "BeHYPEToHYPE", params: [
|
|
56960
|
+
{ address: stakingCore, name: "BeHYPEToHYPE", params: [ONE_E1811] }
|
|
56838
56961
|
],
|
|
56839
56962
|
abis: [TotalSupplyAbi, HyperbeatStakingCoreAbi],
|
|
56840
56963
|
parse: ([supply, rate]) => {
|
|
@@ -56844,7 +56967,7 @@ var readerHyperbeatBeHype = (entry) => {
|
|
|
56844
56967
|
return void 0;
|
|
56845
56968
|
}
|
|
56846
56969
|
return {
|
|
56847
|
-
totalAssets: totalSupply * exchangeRate /
|
|
56970
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56848
56971
|
totalSupply,
|
|
56849
56972
|
exchangeRate
|
|
56850
56973
|
};
|
|
@@ -56876,7 +56999,7 @@ var readerKelpRsEth = (entry) => {
|
|
|
56876
56999
|
return {
|
|
56877
57000
|
totalAssets: totalSupply,
|
|
56878
57001
|
totalSupply,
|
|
56879
|
-
exchangeRate:
|
|
57002
|
+
exchangeRate: ONE_E1811
|
|
56880
57003
|
};
|
|
56881
57004
|
}
|
|
56882
57005
|
};
|
|
@@ -56894,7 +57017,7 @@ var readerKelpRsEth = (entry) => {
|
|
|
56894
57017
|
return void 0;
|
|
56895
57018
|
}
|
|
56896
57019
|
return {
|
|
56897
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57020
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56898
57021
|
totalSupply,
|
|
56899
57022
|
exchangeRate
|
|
56900
57023
|
};
|
|
@@ -56926,7 +57049,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
56926
57049
|
return {
|
|
56927
57050
|
totalAssets: totalSupply,
|
|
56928
57051
|
totalSupply,
|
|
56929
|
-
exchangeRate:
|
|
57052
|
+
exchangeRate: ONE_E1811
|
|
56930
57053
|
};
|
|
56931
57054
|
}
|
|
56932
57055
|
};
|
|
@@ -56934,7 +57057,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
56934
57057
|
return {
|
|
56935
57058
|
calls: [
|
|
56936
57059
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
56937
|
-
{ address: accountant, name: "kHYPEToHYPE", params: [
|
|
57060
|
+
{ address: accountant, name: "kHYPEToHYPE", params: [ONE_E1811] }
|
|
56938
57061
|
],
|
|
56939
57062
|
abis: [TotalSupplyAbi, KinetiqStakingAccountantAbi],
|
|
56940
57063
|
parse: ([supply, rate]) => {
|
|
@@ -56944,7 +57067,7 @@ var readerKinetiqKHype = (entry) => {
|
|
|
56944
57067
|
return void 0;
|
|
56945
57068
|
}
|
|
56946
57069
|
return {
|
|
56947
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57070
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
56948
57071
|
totalSupply,
|
|
56949
57072
|
exchangeRate
|
|
56950
57073
|
};
|
|
@@ -56984,7 +57107,7 @@ var readerLairStKaia = (entry) => ({
|
|
|
56984
57107
|
if (totalSupply === void 0 || exchangeRate === void 0) {
|
|
56985
57108
|
return void 0;
|
|
56986
57109
|
}
|
|
56987
|
-
const totalAssets = toBigInt14(totalStaking) ?? totalSupply * exchangeRate /
|
|
57110
|
+
const totalAssets = toBigInt14(totalStaking) ?? totalSupply * exchangeRate / ONE_E1811;
|
|
56988
57111
|
return {
|
|
56989
57112
|
totalAssets,
|
|
56990
57113
|
totalSupply,
|
|
@@ -57018,7 +57141,7 @@ var readerLidoWstEth = (entry) => ({
|
|
|
57018
57141
|
return void 0;
|
|
57019
57142
|
}
|
|
57020
57143
|
return {
|
|
57021
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57144
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57022
57145
|
totalSupply,
|
|
57023
57146
|
exchangeRate
|
|
57024
57147
|
};
|
|
@@ -57056,7 +57179,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
57056
57179
|
return {
|
|
57057
57180
|
totalAssets: totalSupply,
|
|
57058
57181
|
totalSupply,
|
|
57059
|
-
exchangeRate:
|
|
57182
|
+
exchangeRate: ONE_E1811
|
|
57060
57183
|
};
|
|
57061
57184
|
}
|
|
57062
57185
|
};
|
|
@@ -57064,7 +57187,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
57064
57187
|
return {
|
|
57065
57188
|
calls: [
|
|
57066
57189
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
57067
|
-
{ address: manager, name: "convertSnBnbToBnb", params: [
|
|
57190
|
+
{ address: manager, name: "convertSnBnbToBnb", params: [ONE_E1811] },
|
|
57068
57191
|
{ address: manager, name: "getTotalPooledBnb", params: [] }
|
|
57069
57192
|
],
|
|
57070
57193
|
abis: [TotalSupplyAbi, ListaStakeManagerReadAbi, ListaStakeManagerReadAbi],
|
|
@@ -57075,7 +57198,7 @@ var readerListaSlisBnb = (entry) => {
|
|
|
57075
57198
|
return void 0;
|
|
57076
57199
|
}
|
|
57077
57200
|
const pooledBnb = toBigInt14(pooled);
|
|
57078
|
-
const totalAssets = pooledBnb ?? totalSupply * exchangeRate /
|
|
57201
|
+
const totalAssets = pooledBnb ?? totalSupply * exchangeRate / ONE_E1811;
|
|
57079
57202
|
return { totalAssets, totalSupply, exchangeRate };
|
|
57080
57203
|
}
|
|
57081
57204
|
};
|
|
@@ -57105,7 +57228,7 @@ var readerMantleMEth = (entry) => {
|
|
|
57105
57228
|
return {
|
|
57106
57229
|
totalAssets: totalSupply,
|
|
57107
57230
|
totalSupply,
|
|
57108
|
-
exchangeRate:
|
|
57231
|
+
exchangeRate: ONE_E1811
|
|
57109
57232
|
};
|
|
57110
57233
|
}
|
|
57111
57234
|
};
|
|
@@ -57113,7 +57236,7 @@ var readerMantleMEth = (entry) => {
|
|
|
57113
57236
|
return {
|
|
57114
57237
|
calls: [
|
|
57115
57238
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
57116
|
-
{ address: staking, name: "mETHToETH", params: [
|
|
57239
|
+
{ address: staking, name: "mETHToETH", params: [ONE_E1811] }
|
|
57117
57240
|
],
|
|
57118
57241
|
abis: [TotalSupplyAbi, MantleStakingAbi],
|
|
57119
57242
|
parse: ([supply, rate]) => {
|
|
@@ -57123,7 +57246,7 @@ var readerMantleMEth = (entry) => {
|
|
|
57123
57246
|
return void 0;
|
|
57124
57247
|
}
|
|
57125
57248
|
return {
|
|
57126
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57249
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57127
57250
|
totalSupply,
|
|
57128
57251
|
exchangeRate
|
|
57129
57252
|
};
|
|
@@ -57144,7 +57267,7 @@ var readerOffChain = (entry) => {
|
|
|
57144
57267
|
return {
|
|
57145
57268
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
57146
57269
|
totalSupply,
|
|
57147
|
-
exchangeRate:
|
|
57270
|
+
exchangeRate: ONE_E1811
|
|
57148
57271
|
};
|
|
57149
57272
|
}
|
|
57150
57273
|
};
|
|
@@ -57178,7 +57301,7 @@ var readerRenzoEzEth = (entry) => {
|
|
|
57178
57301
|
return {
|
|
57179
57302
|
totalAssets: totalSupply,
|
|
57180
57303
|
totalSupply,
|
|
57181
|
-
exchangeRate:
|
|
57304
|
+
exchangeRate: ONE_E1811
|
|
57182
57305
|
};
|
|
57183
57306
|
}
|
|
57184
57307
|
};
|
|
@@ -57197,7 +57320,7 @@ var readerRenzoEzEth = (entry) => {
|
|
|
57197
57320
|
return {
|
|
57198
57321
|
totalAssets: totalTvl,
|
|
57199
57322
|
totalSupply,
|
|
57200
|
-
exchangeRate: totalTvl *
|
|
57323
|
+
exchangeRate: totalTvl * ONE_E1811 / totalSupply
|
|
57201
57324
|
};
|
|
57202
57325
|
}
|
|
57203
57326
|
};
|
|
@@ -57253,7 +57376,7 @@ var readerRocketReth = (entry) => {
|
|
|
57253
57376
|
}
|
|
57254
57377
|
const liquidity = depositPool ? toBigInt14(slice2[2]) : void 0;
|
|
57255
57378
|
return {
|
|
57256
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57379
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57257
57380
|
totalSupply,
|
|
57258
57381
|
exchangeRate,
|
|
57259
57382
|
liquidity
|
|
@@ -57295,7 +57418,7 @@ var readerStaderEthx = (entry) => {
|
|
|
57295
57418
|
return {
|
|
57296
57419
|
totalAssets: totalSupply,
|
|
57297
57420
|
totalSupply,
|
|
57298
|
-
exchangeRate:
|
|
57421
|
+
exchangeRate: ONE_E1811
|
|
57299
57422
|
};
|
|
57300
57423
|
}
|
|
57301
57424
|
};
|
|
@@ -57313,7 +57436,7 @@ var readerStaderEthx = (entry) => {
|
|
|
57313
57436
|
return void 0;
|
|
57314
57437
|
}
|
|
57315
57438
|
return {
|
|
57316
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57439
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57317
57440
|
totalSupply,
|
|
57318
57441
|
exchangeRate
|
|
57319
57442
|
};
|
|
@@ -57330,7 +57453,7 @@ var readerStaderMaticX = (entry) => {
|
|
|
57330
57453
|
{
|
|
57331
57454
|
address: rateAddress,
|
|
57332
57455
|
name: "convertMaticXToMatic",
|
|
57333
|
-
params: [
|
|
57456
|
+
params: [ONE_E1811],
|
|
57334
57457
|
chainId: homeChainId
|
|
57335
57458
|
}
|
|
57336
57459
|
],
|
|
@@ -57345,7 +57468,7 @@ var readerStaderMaticX = (entry) => {
|
|
|
57345
57468
|
}
|
|
57346
57469
|
const isCrossChain = homeContract !== void 0;
|
|
57347
57470
|
return {
|
|
57348
|
-
totalAssets: isCrossChain ? totalSupply * amountInMatic /
|
|
57471
|
+
totalAssets: isCrossChain ? totalSupply * amountInMatic / ONE_E1811 : totalPooledMatic ?? totalSupply * amountInMatic / ONE_E1811,
|
|
57349
57472
|
totalSupply,
|
|
57350
57473
|
exchangeRate: amountInMatic
|
|
57351
57474
|
};
|
|
@@ -57377,7 +57500,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
57377
57500
|
return {
|
|
57378
57501
|
totalAssets: totalSupply,
|
|
57379
57502
|
totalSupply,
|
|
57380
|
-
exchangeRate:
|
|
57503
|
+
exchangeRate: ONE_E1811
|
|
57381
57504
|
};
|
|
57382
57505
|
}
|
|
57383
57506
|
};
|
|
@@ -57385,7 +57508,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
57385
57508
|
return {
|
|
57386
57509
|
calls: [
|
|
57387
57510
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
57388
|
-
{ address: controller, name: "convertToAssets", params: [
|
|
57511
|
+
{ address: controller, name: "convertToAssets", params: [ONE_E1811] }
|
|
57389
57512
|
],
|
|
57390
57513
|
abis: [TotalSupplyAbi, StakeWiseOsTokenAbi],
|
|
57391
57514
|
parse: ([supply, rate]) => {
|
|
@@ -57395,7 +57518,7 @@ var readerStakeWiseOsEth = (entry) => {
|
|
|
57395
57518
|
return void 0;
|
|
57396
57519
|
}
|
|
57397
57520
|
return {
|
|
57398
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57521
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57399
57522
|
totalSupply,
|
|
57400
57523
|
exchangeRate
|
|
57401
57524
|
};
|
|
@@ -57427,7 +57550,7 @@ var readerStCelo = (entry) => {
|
|
|
57427
57550
|
return {
|
|
57428
57551
|
totalAssets: totalSupply,
|
|
57429
57552
|
totalSupply,
|
|
57430
|
-
exchangeRate:
|
|
57553
|
+
exchangeRate: ONE_E1811
|
|
57431
57554
|
};
|
|
57432
57555
|
}
|
|
57433
57556
|
};
|
|
@@ -57435,7 +57558,7 @@ var readerStCelo = (entry) => {
|
|
|
57435
57558
|
return {
|
|
57436
57559
|
calls: [
|
|
57437
57560
|
{ address: entry.address, name: "totalSupply", params: [] },
|
|
57438
|
-
{ address: manager, name: "toCelo", params: [
|
|
57561
|
+
{ address: manager, name: "toCelo", params: [ONE_E1811] }
|
|
57439
57562
|
],
|
|
57440
57563
|
abis: [TotalSupplyAbi, StCeloManagerAbi],
|
|
57441
57564
|
parse: ([supply, rate]) => {
|
|
@@ -57445,7 +57568,7 @@ var readerStCelo = (entry) => {
|
|
|
57445
57568
|
return void 0;
|
|
57446
57569
|
}
|
|
57447
57570
|
return {
|
|
57448
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57571
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57449
57572
|
totalSupply,
|
|
57450
57573
|
exchangeRate
|
|
57451
57574
|
};
|
|
@@ -57478,7 +57601,7 @@ var readerSwellGetRate = (entry) => ({
|
|
|
57478
57601
|
return void 0;
|
|
57479
57602
|
}
|
|
57480
57603
|
return {
|
|
57481
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57604
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57482
57605
|
totalSupply,
|
|
57483
57606
|
exchangeRate
|
|
57484
57607
|
};
|
|
@@ -57509,7 +57632,7 @@ var readerValantisWstHype = (entry) => {
|
|
|
57509
57632
|
return {
|
|
57510
57633
|
totalAssets: totalSupply,
|
|
57511
57634
|
totalSupply,
|
|
57512
|
-
exchangeRate:
|
|
57635
|
+
exchangeRate: ONE_E1811
|
|
57513
57636
|
};
|
|
57514
57637
|
}
|
|
57515
57638
|
};
|
|
@@ -57527,7 +57650,7 @@ var readerValantisWstHype = (entry) => {
|
|
|
57527
57650
|
return void 0;
|
|
57528
57651
|
}
|
|
57529
57652
|
return {
|
|
57530
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57653
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57531
57654
|
totalSupply,
|
|
57532
57655
|
exchangeRate
|
|
57533
57656
|
};
|
|
@@ -57561,7 +57684,7 @@ var readerVedaAccountant = (entry) => {
|
|
|
57561
57684
|
return {
|
|
57562
57685
|
totalAssets: rescaleDecimals(totalSupply, shareDec, underlyingDec),
|
|
57563
57686
|
totalSupply,
|
|
57564
|
-
exchangeRate:
|
|
57687
|
+
exchangeRate: ONE_E1811
|
|
57565
57688
|
};
|
|
57566
57689
|
}
|
|
57567
57690
|
};
|
|
@@ -57580,7 +57703,7 @@ var readerVedaAccountant = (entry) => {
|
|
|
57580
57703
|
const exchangeRate = rawRate * scale3;
|
|
57581
57704
|
return {
|
|
57582
57705
|
totalAssets: rescaleDecimals(
|
|
57583
|
-
totalSupply * exchangeRate /
|
|
57706
|
+
totalSupply * exchangeRate / ONE_E1811,
|
|
57584
57707
|
shareDec,
|
|
57585
57708
|
underlyingDec
|
|
57586
57709
|
),
|
|
@@ -57616,9 +57739,9 @@ var readerAnkrRatio = (entry) => ({
|
|
|
57616
57739
|
return void 0;
|
|
57617
57740
|
}
|
|
57618
57741
|
return {
|
|
57619
|
-
totalAssets: totalSupply *
|
|
57742
|
+
totalAssets: totalSupply * ONE_E1811 / r,
|
|
57620
57743
|
totalSupply,
|
|
57621
|
-
exchangeRate:
|
|
57744
|
+
exchangeRate: ONE_E1811 * ONE_E1811 / r
|
|
57622
57745
|
};
|
|
57623
57746
|
}
|
|
57624
57747
|
});
|
|
@@ -57648,7 +57771,7 @@ var readerBinanceWbeth = (entry) => ({
|
|
|
57648
57771
|
return void 0;
|
|
57649
57772
|
}
|
|
57650
57773
|
return {
|
|
57651
|
-
totalAssets: totalSupply * exchangeRate /
|
|
57774
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1811,
|
|
57652
57775
|
totalSupply,
|
|
57653
57776
|
exchangeRate
|
|
57654
57777
|
};
|
|
@@ -57694,7 +57817,7 @@ var readerCoreEarnRate = (entry) => {
|
|
|
57694
57817
|
return {
|
|
57695
57818
|
totalAssets: totalSupply * r / CORE_RATE_DENOM,
|
|
57696
57819
|
totalSupply,
|
|
57697
|
-
exchangeRate: r *
|
|
57820
|
+
exchangeRate: r * ONE_E1811 / CORE_RATE_DENOM
|
|
57698
57821
|
};
|
|
57699
57822
|
}
|
|
57700
57823
|
};
|
|
@@ -57716,7 +57839,7 @@ var readerCoreStakedRatio = (entry) => {
|
|
|
57716
57839
|
return {
|
|
57717
57840
|
totalAssets: totalStaked,
|
|
57718
57841
|
totalSupply,
|
|
57719
|
-
exchangeRate: totalStaked *
|
|
57842
|
+
exchangeRate: totalStaked * ONE_E1811 / totalSupply
|
|
57720
57843
|
};
|
|
57721
57844
|
}
|
|
57722
57845
|
};
|
|
@@ -57751,7 +57874,7 @@ var readerKintsuSMon = (entry) => ({
|
|
|
57751
57874
|
const totalAssets = toBigInt14(pooled);
|
|
57752
57875
|
const totalSupply = toBigInt14(shares);
|
|
57753
57876
|
if (totalAssets === void 0 || totalSupply === void 0) return void 0;
|
|
57754
|
-
const exchangeRate = totalSupply > 0n ? totalAssets *
|
|
57877
|
+
const exchangeRate = totalSupply > 0n ? totalAssets * ONE_E1811 / totalSupply : ONE_E1811;
|
|
57755
57878
|
return { totalAssets, totalSupply, exchangeRate };
|
|
57756
57879
|
}
|
|
57757
57880
|
});
|
|
@@ -58187,7 +58310,7 @@ var getLstValidators = async (chainId, shareToken) => {
|
|
|
58187
58310
|
};
|
|
58188
58311
|
|
|
58189
58312
|
// src/vaults/lst/fetchPublic.ts
|
|
58190
|
-
var
|
|
58313
|
+
var ONE_E1812 = 10n ** 18n;
|
|
58191
58314
|
var ERC20_BALANCE_ABI = parseAbi([
|
|
58192
58315
|
"function balanceOf(address) view returns (uint256)"
|
|
58193
58316
|
]);
|
|
@@ -58302,8 +58425,8 @@ var fetchLstShareTokens = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
58302
58425
|
const underlyingUnit = 10n ** BigInt(underlyingDec);
|
|
58303
58426
|
const totalAssetsFormatted = Number(state.totalAssets) / 10 ** underlyingDec;
|
|
58304
58427
|
const totalAssetsUsd = priceUsd !== void 0 ? totalAssetsFormatted * priceUsd : 0;
|
|
58305
|
-
const convertToAssets = state.exchangeRate * underlyingUnit /
|
|
58306
|
-
const convertToShares = state.exchangeRate > 0n ?
|
|
58428
|
+
const convertToAssets = state.exchangeRate * underlyingUnit / ONE_E1812;
|
|
58429
|
+
const convertToShares = state.exchangeRate > 0n ? ONE_E1812 * shareUnit / state.exchangeRate : 0n;
|
|
58307
58430
|
let liquidityRaw;
|
|
58308
58431
|
if (state.liquidity !== void 0) {
|
|
58309
58432
|
liquidityRaw = state.liquidity;
|
|
@@ -61755,6 +61878,29 @@ var CooldownDurationAbi = [
|
|
|
61755
61878
|
outputs: [{ type: "uint24" }]
|
|
61756
61879
|
}
|
|
61757
61880
|
];
|
|
61881
|
+
var WrenNavReadAbi = [
|
|
61882
|
+
{
|
|
61883
|
+
name: "navprice",
|
|
61884
|
+
type: "function",
|
|
61885
|
+
stateMutability: "view",
|
|
61886
|
+
inputs: [],
|
|
61887
|
+
outputs: [{ type: "uint256" }]
|
|
61888
|
+
},
|
|
61889
|
+
{
|
|
61890
|
+
name: "burncost",
|
|
61891
|
+
type: "function",
|
|
61892
|
+
stateMutability: "view",
|
|
61893
|
+
inputs: [],
|
|
61894
|
+
outputs: [{ type: "uint256" }]
|
|
61895
|
+
},
|
|
61896
|
+
{
|
|
61897
|
+
name: "burnable",
|
|
61898
|
+
type: "function",
|
|
61899
|
+
stateMutability: "view",
|
|
61900
|
+
inputs: [],
|
|
61901
|
+
outputs: [{ type: "uint256" }]
|
|
61902
|
+
}
|
|
61903
|
+
];
|
|
61758
61904
|
var NavOracleReadAbi = [
|
|
61759
61905
|
{
|
|
61760
61906
|
name: "latestRoundData",
|
|
@@ -61772,7 +61918,7 @@ var NavOracleReadAbi = [
|
|
|
61772
61918
|
];
|
|
61773
61919
|
|
|
61774
61920
|
// src/vaults/savings/readers/shared.ts
|
|
61775
|
-
var
|
|
61921
|
+
var ONE_E1813 = 10n ** 18n;
|
|
61776
61922
|
var toBigInt16 = (v) => {
|
|
61777
61923
|
if (v === void 0 || v === null) return void 0;
|
|
61778
61924
|
if (typeof v === "bigint") return v;
|
|
@@ -61813,7 +61959,7 @@ var readerErc46262 = (entry) => {
|
|
|
61813
61959
|
return {
|
|
61814
61960
|
totalAssets,
|
|
61815
61961
|
totalSupply,
|
|
61816
|
-
exchangeRate: convertToAssetsRaw *
|
|
61962
|
+
exchangeRate: convertToAssetsRaw * ONE_E1813 / underlyingUnit
|
|
61817
61963
|
};
|
|
61818
61964
|
}
|
|
61819
61965
|
};
|
|
@@ -61842,7 +61988,7 @@ var readerErc4626Cooldown = (entry) => {
|
|
|
61842
61988
|
return {
|
|
61843
61989
|
totalAssets,
|
|
61844
61990
|
totalSupply,
|
|
61845
|
-
exchangeRate: convertToAssetsRaw *
|
|
61991
|
+
exchangeRate: convertToAssetsRaw * ONE_E1813 / underlyingUnit,
|
|
61846
61992
|
withdrawalCooldownSeconds: cooldownSecs === void 0 ? void 0 : Number(cooldownSecs)
|
|
61847
61993
|
};
|
|
61848
61994
|
}
|
|
@@ -62032,7 +62178,7 @@ var readerErc4626Idle = (entry) => {
|
|
|
62032
62178
|
return {
|
|
62033
62179
|
totalAssets,
|
|
62034
62180
|
totalSupply,
|
|
62035
|
-
exchangeRate: convertToAssetsRaw *
|
|
62181
|
+
exchangeRate: convertToAssetsRaw * ONE_E1813 / underlyingUnit,
|
|
62036
62182
|
...capacity !== void 0 ? {
|
|
62037
62183
|
instantRedeemCapacity: capacity,
|
|
62038
62184
|
instantRedeemEnabled: true,
|
|
@@ -62081,7 +62227,7 @@ var readerErc4626WithdrawLimit = (entry) => {
|
|
|
62081
62227
|
return {
|
|
62082
62228
|
totalAssets,
|
|
62083
62229
|
totalSupply,
|
|
62084
|
-
exchangeRate: convertToAssetsRaw *
|
|
62230
|
+
exchangeRate: convertToAssetsRaw * ONE_E1813 / underlyingUnit,
|
|
62085
62231
|
...capacity !== void 0 ? {
|
|
62086
62232
|
instantRedeemCapacity: capacity,
|
|
62087
62233
|
instantRedeemEnabled: true,
|
|
@@ -62110,7 +62256,7 @@ var readerFrankencoinSavings = (entry) => ({
|
|
|
62110
62256
|
// `fetchPublic` derives `convertToAssets` / `convertToShares` from
|
|
62111
62257
|
// `exchangeRate`, and 1e18 makes them the identity.
|
|
62112
62258
|
totalSupply: deposits,
|
|
62113
|
-
exchangeRate:
|
|
62259
|
+
exchangeRate: ONE_E1813
|
|
62114
62260
|
};
|
|
62115
62261
|
}
|
|
62116
62262
|
});
|
|
@@ -62136,7 +62282,7 @@ var readerNavOracle = (entry) => {
|
|
|
62136
62282
|
const exchangeRate = toBigInt16(raw);
|
|
62137
62283
|
if (exchangeRate === void 0 || exchangeRate <= 0n) return void 0;
|
|
62138
62284
|
return {
|
|
62139
|
-
totalAssets: totalSupply * exchangeRate * underlyingUnit / (
|
|
62285
|
+
totalAssets: totalSupply * exchangeRate * underlyingUnit / (ONE_E1813 * shareUnit),
|
|
62140
62286
|
totalSupply,
|
|
62141
62287
|
exchangeRate
|
|
62142
62288
|
};
|
|
@@ -62150,7 +62296,7 @@ var readerNativeWnlp = (entry) => {
|
|
|
62150
62296
|
return {
|
|
62151
62297
|
calls: [
|
|
62152
62298
|
{ address, name: "totalSupply", params: [] },
|
|
62153
|
-
{ address, name: "getNlpByWnlp", params: [
|
|
62299
|
+
{ address, name: "getNlpByWnlp", params: [ONE_E1813] },
|
|
62154
62300
|
{ address, name: "instantRedeemFeeBips", params: [] },
|
|
62155
62301
|
{ address, name: "instantRedeemEnabled", params: [] },
|
|
62156
62302
|
// Falls back to the vault itself when no CreditVault is pinned —
|
|
@@ -62184,7 +62330,7 @@ var readerNativeWnlp = (entry) => {
|
|
|
62184
62330
|
const windowSeconds = toBigInt16(window);
|
|
62185
62331
|
const bips = toBigInt16(feeBips);
|
|
62186
62332
|
return {
|
|
62187
|
-
totalAssets: totalSupply * exchangeRate /
|
|
62333
|
+
totalAssets: totalSupply * exchangeRate / ONE_E1813,
|
|
62188
62334
|
totalSupply,
|
|
62189
62335
|
exchangeRate,
|
|
62190
62336
|
// `instantRedeemFeeBips` on-chain is already basis points, so it
|
|
@@ -62201,8 +62347,42 @@ var readerNativeWnlp = (entry) => {
|
|
|
62201
62347
|
};
|
|
62202
62348
|
};
|
|
62203
62349
|
|
|
62350
|
+
// src/vaults/savings/readers/wrenNav.ts
|
|
62351
|
+
var readerWrenNav = (entry) => {
|
|
62352
|
+
const shareUnit = 10n ** BigInt(entry.decimals);
|
|
62353
|
+
const underlyingUnit = 10n ** BigInt(entry.underlyingDecimals ?? entry.decimals);
|
|
62354
|
+
return {
|
|
62355
|
+
calls: [
|
|
62356
|
+
{ address: entry.address, name: "totalSupply", params: [] },
|
|
62357
|
+
{ address: entry.address, name: "burncost", params: [] },
|
|
62358
|
+
{ address: entry.address, name: "navprice", params: [] },
|
|
62359
|
+
{ address: entry.address, name: "burnable", params: [] }
|
|
62360
|
+
],
|
|
62361
|
+
abis: [TotalSupplyAbi2, WrenNavReadAbi, WrenNavReadAbi, WrenNavReadAbi],
|
|
62362
|
+
parse: ([supply, burn, nav, burnable]) => {
|
|
62363
|
+
const totalSupply = toBigInt16(supply);
|
|
62364
|
+
const navPrice = toBigInt16(nav);
|
|
62365
|
+
if (totalSupply === void 0) return void 0;
|
|
62366
|
+
if (navPrice === void 0 || navPrice <= 0n) return void 0;
|
|
62367
|
+
const burncost = toBigInt16(burn);
|
|
62368
|
+
const hasBurncost = burncost !== void 0 && burncost > 0n;
|
|
62369
|
+
const exchangeRate = hasBurncost ? burncost : navPrice;
|
|
62370
|
+
const totalAssets = totalSupply * exchangeRate * underlyingUnit / (ONE_E1813 * shareUnit);
|
|
62371
|
+
const burnFlag = toBigInt16(burnable);
|
|
62372
|
+
const instantRedeemEnabled = burnFlag === void 0 ? true : burnFlag > 0n;
|
|
62373
|
+
return {
|
|
62374
|
+
totalAssets,
|
|
62375
|
+
totalSupply,
|
|
62376
|
+
exchangeRate,
|
|
62377
|
+
fundamentalExchangeRate: hasBurncost ? navPrice : void 0,
|
|
62378
|
+
instantRedeemEnabled
|
|
62379
|
+
};
|
|
62380
|
+
}
|
|
62381
|
+
};
|
|
62382
|
+
};
|
|
62383
|
+
|
|
62204
62384
|
// src/vaults/savings/readers/yieldBasisLt.ts
|
|
62205
|
-
var ONE_SHARE =
|
|
62385
|
+
var ONE_SHARE = ONE_E1813;
|
|
62206
62386
|
var readerYieldBasisLt = (entry) => {
|
|
62207
62387
|
const underlyingUnit = 10n ** BigInt(entry.underlyingDecimals ?? entry.decimals);
|
|
62208
62388
|
const amm = entry.capacityContract ?? entry.address;
|
|
@@ -62230,7 +62410,7 @@ var readerYieldBasisLt = (entry) => {
|
|
|
62230
62410
|
}
|
|
62231
62411
|
if (totalSupply === 0n || redeemRaw === 0n) return void 0;
|
|
62232
62412
|
const totalAssets = totalSupply * redeemRaw / ONE_SHARE;
|
|
62233
|
-
const exchangeRate = redeemRaw *
|
|
62413
|
+
const exchangeRate = redeemRaw * ONE_E1813 / underlyingUnit;
|
|
62234
62414
|
const equity = Array.isArray(valueOracle) ? toBigInt16(valueOracle[1]) : toBigInt16(valueOracle?.value);
|
|
62235
62415
|
const cap = toBigInt16(maxDebt);
|
|
62236
62416
|
let depositCapacity;
|
|
@@ -62260,6 +62440,8 @@ var buildReader2 = (entry) => {
|
|
|
62260
62440
|
return readerFrankencoinSavings(entry);
|
|
62261
62441
|
case "yieldbasis-lt":
|
|
62262
62442
|
return readerYieldBasisLt(entry);
|
|
62443
|
+
case "wren-nav":
|
|
62444
|
+
return readerWrenNav(entry);
|
|
62263
62445
|
case "erc4626-cooldown":
|
|
62264
62446
|
return readerErc4626Cooldown(entry);
|
|
62265
62447
|
case "erc4626-idle":
|
|
@@ -62276,7 +62458,7 @@ var buildReader2 = (entry) => {
|
|
|
62276
62458
|
var resolveYieldApr2 = async (entries) => (await resolveEntryApr(entries)).apr;
|
|
62277
62459
|
|
|
62278
62460
|
// src/vaults/savings/fetchPublic.ts
|
|
62279
|
-
var
|
|
62461
|
+
var ONE_E1814 = 10n ** 18n;
|
|
62280
62462
|
var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
|
|
62281
62463
|
const entries = getSavingsRegistry(chainId);
|
|
62282
62464
|
if (entries.length === 0) return {};
|
|
@@ -62325,8 +62507,8 @@ var fetchSavingsVaults = async (chainId, multicallRetry, prices = {}, tokenList
|
|
|
62325
62507
|
1,
|
|
62326
62508
|
Number(liquidityAmount * 1000000n / state.totalAssets) / 1e6
|
|
62327
62509
|
) : 1;
|
|
62328
|
-
const convertToAssets = state.exchangeRate * underlyingUnit /
|
|
62329
|
-
const convertToShares = state.exchangeRate > 0n ?
|
|
62510
|
+
const convertToAssets = state.exchangeRate * underlyingUnit / ONE_E1814;
|
|
62511
|
+
const convertToShares = state.exchangeRate > 0n ? ONE_E1814 * shareUnit / state.exchangeRate : 0n;
|
|
62330
62512
|
const depositCapacity = state.depositCapacity?.toString();
|
|
62331
62513
|
const depositCapacityFormatted = state.depositCapacity !== void 0 ? Number(state.depositCapacity) / 10 ** underlyingDec : void 0;
|
|
62332
62514
|
const depositCapacityUsd = depositCapacityFormatted !== void 0 && priceUsd !== void 0 ? depositCapacityFormatted * priceUsd : void 0;
|
|
@@ -63477,6 +63659,11 @@ var STABLECOIN_SYMBOLS = /* @__PURE__ */ new Set([
|
|
|
63477
63659
|
"ZCHF",
|
|
63478
63660
|
"JPYC",
|
|
63479
63661
|
"GBPT",
|
|
63662
|
+
// BCP Technologies' Tokenised GBP — cash + short-dated gilts, 1:1
|
|
63663
|
+
// redeemable. Drives `denomination` for Wren's wstGBP row, whose underlying
|
|
63664
|
+
// this is. NB `TGBP` is also TrueGBP's ticker; both are GBP stablecoins, so
|
|
63665
|
+
// the classification is right either way.
|
|
63666
|
+
"TGBP",
|
|
63480
63667
|
"XSGD",
|
|
63481
63668
|
"TRYB",
|
|
63482
63669
|
// Brix iTRY — lira-pegged, backed by a regulated basket of Turkish
|