@panoptic-eng/sdk 1.0.37 → 1.0.38
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/cow/index.d.ts +4 -5
- package/dist/cow/index.js +3 -3
- package/dist/cow/types.d.ts +3 -2
- package/dist/{cow-aX6of9TS.js → cow-DB8siv6M.js} +2 -2
- package/dist/{cow-aX6of9TS.js.map → cow-DB8siv6M.js.map} +1 -1
- package/dist/deployments.d.ts +3 -2
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +4 -0
- package/dist/deployments.js.map +1 -1
- package/dist/{position-C8rkkKhi.js → getTrackedPositionIds-zYPIs5dt.js} +1086 -34
- package/dist/getTrackedPositionIds-zYPIs5dt.js.map +1 -0
- package/dist/hypoVault/vaultDisplayNames.d.ts +2 -0
- package/dist/hypoVault/vaultDisplayNames.js +4 -0
- package/dist/{index-CURXeKNy.d.ts → index-BhEBx83X.d.ts} +405 -351
- package/dist/index-BhEBx83X.d.ts.map +1 -0
- package/dist/index-Bo9tHtD7.d.ts +1901 -0
- package/dist/index-Bo9tHtD7.d.ts.map +1 -0
- package/dist/{index-Cp-nCeV2.d.ts → index-CttjEZ-S.d.ts} +3 -4
- package/dist/index-CttjEZ-S.d.ts.map +1 -0
- package/dist/{index-Zvu-rJpV.d.ts → index-DktZq9Kb.d.ts} +2 -2
- package/dist/{index-Zvu-rJpV.d.ts.map → index-DktZq9Kb.d.ts.map} +1 -1
- package/dist/index.d.ts +159 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +319 -66
- package/dist/index.js.map +1 -1
- package/dist/{irm-DnM96-X4.js → irm-ChkvYphK.js} +3 -318
- package/dist/irm-ChkvYphK.js.map +1 -0
- package/dist/{irm-CmgC1Mqi.d.ts → irm-D2WTHtuo.d.ts} +3 -30
- package/dist/{irm-CmgC1Mqi.d.ts.map → irm-D2WTHtuo.d.ts.map} +1 -1
- package/dist/irm-D5plRhpB.d.ts +32 -0
- package/dist/irm-D5plRhpB.d.ts.map +1 -0
- package/dist/panoptic/v2/greeks/index.d.ts +3 -2
- package/dist/panoptic/v2/index.d.ts +7 -8
- package/dist/panoptic/v2/index.js +7 -6
- package/dist/panoptic/v2/react-public.d.ts +27 -11
- package/dist/panoptic/v2/react-public.d.ts.map +1 -1
- package/dist/panoptic/v2/react-public.js +48 -8
- package/dist/panoptic/v2/react-public.js.map +1 -1
- package/dist/panoptic/v2/types/index.d.ts +3 -0
- package/dist/panoptic/v2/types/index.js +0 -0
- package/dist/quote-DeHNUR0Z.d.ts +52 -0
- package/dist/quote-DeHNUR0Z.d.ts.map +1 -0
- package/dist/{router-CS86ptMu.js → router-BCUJkY8j.js} +3 -3
- package/dist/{router-CS86ptMu.js.map → router-BCUJkY8j.js.map} +1 -1
- package/dist/{router-DcoU2KmV.js → router-tCRa0ekE.js} +2 -2
- package/dist/{router-DcoU2KmV.js.map → router-tCRa0ekE.js.map} +1 -1
- package/dist/src-CRAtPwWk.js +321 -0
- package/dist/src-CRAtPwWk.js.map +1 -0
- package/dist/test/index.d.ts +2 -2
- package/dist/test/index.d.ts.map +1 -1
- package/dist/transactionFees-CVi2TrJh.js +175 -0
- package/dist/transactionFees-CVi2TrJh.js.map +1 -0
- package/dist/transactionFees-DzDyt50k.d.ts +63 -0
- package/dist/transactionFees-DzDyt50k.d.ts.map +1 -0
- package/dist/{types-D_jcYss-.d.ts → types-Cad5m4Td.d.ts} +3 -5
- package/dist/types-Cad5m4Td.d.ts.map +1 -0
- package/dist/{types-BHdnurYr.d.ts → types-DM0nxlZr.d.ts} +2 -2
- package/dist/{types-BHdnurYr.d.ts.map → types-DM0nxlZr.d.ts.map} +1 -1
- package/dist/uniswap/index.d.ts +4 -5
- package/dist/uniswap/index.d.ts.map +1 -1
- package/dist/uniswap/index.js +4 -4
- package/dist/{v2-D0dEatKb.js → v2-BxtzpUnV.js} +3267 -2675
- package/dist/v2-BxtzpUnV.js.map +1 -0
- package/dist/vault-transaction-fees.d.ts +2 -0
- package/dist/vault-transaction-fees.js +3 -0
- package/dist/vaultDisplayNames-CKpz51Hu.js +0 -0
- package/dist/vaultDisplayNames-Q6htUcch.d.ts +2 -0
- package/dist/{writes-AupZCK4M.js → writes-D3bj1wth.js} +326 -1292
- package/dist/writes-D3bj1wth.js.map +1 -0
- package/package.json +5 -1
- package/dist/index-CURXeKNy.d.ts.map +0 -1
- package/dist/index-Cp-nCeV2.d.ts.map +0 -1
- package/dist/irm-DnM96-X4.js.map +0 -1
- package/dist/position-BqIgubs5.d.ts +0 -199
- package/dist/position-BqIgubs5.d.ts.map +0 -1
- package/dist/position-C8rkkKhi.js.map +0 -1
- package/dist/quote-BxQkPBRg.d.ts +0 -718
- package/dist/quote-BxQkPBRg.d.ts.map +0 -1
- package/dist/simulation-zM6-YUaw.d.ts +0 -258
- package/dist/simulation-zM6-YUaw.d.ts.map +0 -1
- package/dist/tx-CbDQ58Io.d.ts +0 -367
- package/dist/tx-CbDQ58Io.d.ts.map +0 -1
- package/dist/types-D_jcYss-.d.ts.map +0 -1
- package/dist/v2-D0dEatKb.js.map +0 -1
- package/dist/writes-AupZCK4M.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { collateralTrackerV2Abi, getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi
|
|
1
|
+
import { BORROW_INDEX_BITS, BPS_SCALE, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, Multicall3Abi, RATE_AT_TARGET_BITS, SECONDS_PER_YEAR, StateViewAbi, UNREALIZED_INTEREST_BITS, WAD$2 as WAD, annualizePerSecondRateWad, deriveSupplyRatePerSecWad, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, getAccountCollateral$1 as getAccountCollateral, getCollateralData$1 as getCollateralData, getIrmCurrent, getIrmCurve, packMarketState, ratePerSecWadToAprPct, utilizationBpsToWad, utilizationPctToWad } from "./irm-ChkvYphK.js";
|
|
2
|
+
import { collateralTrackerV2Abi, getOpenPositionIds$1 as getOpenPositionIds, getPoolMetadata$1 as getPoolMetadata, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, panopticQueryAbi, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi } from "./getTrackedPositionIds-zYPIs5dt.js";
|
|
3
3
|
import { tickToSqrtPriceX96 } from "./greeks-GysWXct-.js";
|
|
4
|
+
import { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, CHAIN_DEPLOYMENTS, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, VAULT_DISPLAY_NAMES_PER_CHAIN$1 as VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN$1 as VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, getChainDeployment, getEthUsdcMarket, isSupportedChain, requireChainDeployment, resolveVaultDisplayName$1 as resolveVaultDisplayName } from "./src-CRAtPwWk.js";
|
|
5
|
+
import { MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, getVaultTransactionFeeQuote, validateVaultSignedTransactionFeeCaps } from "./transactionFees-CVi2TrJh.js";
|
|
6
|
+
import "./vaultDisplayNames-CKpz51Hu.js";
|
|
4
7
|
import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, concat, encodeAbiParameters, encodeFunctionData, encodePacked, getAddress, keccak256, maxUint256, parseAbi, toBytes, zeroAddress } from "viem";
|
|
5
8
|
import { getBlockNumber, readContract, simulateContract, writeContract } from "viem/actions";
|
|
6
9
|
import Decimal from "decimal.js";
|
|
@@ -15158,7 +15161,7 @@ const BASE_PANOPTIC_POOL_ADDRESSES$2 = BASE_DEPLOYMENT$3.panoptic.pool;
|
|
|
15158
15161
|
const UsdcPlpVaultBaseProdConfig = {
|
|
15159
15162
|
deployment: "prod",
|
|
15160
15163
|
vaultAssetIndex: 0n,
|
|
15161
|
-
manageCycleIntervalMs:
|
|
15164
|
+
manageCycleIntervalMs: 864e5,
|
|
15162
15165
|
vaultCapInUnderlying: 300000000n,
|
|
15163
15166
|
vaultCapInShares: 3000000000000000n,
|
|
15164
15167
|
allowUnlimitedDepositRequestIfCapNotReached: true,
|
|
@@ -15173,6 +15176,10 @@ const UsdcPlpVaultBaseProdConfig = {
|
|
|
15173
15176
|
hypoVault: BASE_HYPOVAULT_ADDRESSES$2.usdcPlpVault,
|
|
15174
15177
|
underlyingToken: BASE_ETH_USDC_5BPS_MARKET$1.currency1
|
|
15175
15178
|
},
|
|
15179
|
+
automation: {
|
|
15180
|
+
primaryPool: BASE_PANOPTIC_POOL_ADDRESSES$2.panopticPool,
|
|
15181
|
+
windDownPools: []
|
|
15182
|
+
},
|
|
15176
15183
|
manualTxDefaults: { collateralAllocations: [{
|
|
15177
15184
|
trackerAddress: BASE_PANOPTIC_POOL_ADDRESSES$2.collateralTracker1,
|
|
15178
15185
|
allocationBps: 1e4
|
|
@@ -15196,6 +15203,8 @@ const MAINNET_ETH_USDC_MARKET = getEthUsdcMarket(MAINNET_DEPLOYMENT$6);
|
|
|
15196
15203
|
const MAINNET_HYPOVAULT_ADDRESSES$1 = MAINNET_DEPLOYMENT$6.hypovault.vaults;
|
|
15197
15204
|
const MAINNET_HYPOVAULT_MANAGER_ADDRESSES$1 = MAINNET_DEPLOYMENT$6.hypovault.managers;
|
|
15198
15205
|
const MAINNET_PANOPTIC_POOL_ADDRESSES$1 = MAINNET_DEPLOYMENT$6.panoptic.pool;
|
|
15206
|
+
const MAINNET_V3_POOL_ADDRESSES$1 = MAINNET_DEPLOYMENT$6.panoptic.additionalPools?.ethUsdc5bpsV3;
|
|
15207
|
+
if (MAINNET_V3_POOL_ADDRESSES$1 === void 0) throw new Error("Missing mainnet ETH/USDC 5bps v3 Panoptic pool deployment");
|
|
15199
15208
|
const MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1 = {
|
|
15200
15209
|
panopticPool: "0x000000007588B488d180899cDEa2080a886D2441",
|
|
15201
15210
|
collateralTracker0: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9",
|
|
@@ -15220,8 +15229,12 @@ const UsdcPlpVaultMainnetProdConfig = {
|
|
|
15220
15229
|
hypoVault: MAINNET_HYPOVAULT_ADDRESSES$1.usdcPlpVault,
|
|
15221
15230
|
underlyingToken: MAINNET_ETH_USDC_MARKET.currency1
|
|
15222
15231
|
},
|
|
15232
|
+
automation: {
|
|
15233
|
+
primaryPool: MAINNET_V3_POOL_ADDRESSES$1.panopticPool,
|
|
15234
|
+
windDownPools: [MAINNET_PANOPTIC_POOL_ADDRESSES$1.panopticPool]
|
|
15235
|
+
},
|
|
15223
15236
|
manualTxDefaults: { collateralAllocations: [{
|
|
15224
|
-
trackerAddress:
|
|
15237
|
+
trackerAddress: MAINNET_V3_POOL_ADDRESSES$1.collateralTracker0,
|
|
15225
15238
|
allocationBps: 1e4
|
|
15226
15239
|
}] },
|
|
15227
15240
|
deltaHedge: {
|
|
@@ -15253,6 +15266,10 @@ const UsdcPlpVaultMainnetLegacyConfig = {
|
|
|
15253
15266
|
hypoVaultManagerWithMerkleVerification: "0xf42EED8F0d3326ad59fc1f5d4c4009B5F6B4D87c",
|
|
15254
15267
|
hypoVault: "0x963Fe9c93bc353602656ee4051A75114bA74d6c5"
|
|
15255
15268
|
},
|
|
15269
|
+
automation: {
|
|
15270
|
+
primaryPool: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.panopticPool,
|
|
15271
|
+
windDownPools: []
|
|
15272
|
+
},
|
|
15256
15273
|
manualTxDefaults: { collateralAllocations: [{
|
|
15257
15274
|
trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES$1.collateralTracker0,
|
|
15258
15275
|
allocationBps: 1e4
|
|
@@ -15282,6 +15299,10 @@ const UsdcPlpVaultSepoliaDevConfig = {
|
|
|
15282
15299
|
hypoVault: SEPOLIA_HYPOVAULT_ADDRESSES$4.usdcPlpVault,
|
|
15283
15300
|
underlyingToken: SEPOLIA_ETH_USDC_5BPS_MARKET$2.currency1
|
|
15284
15301
|
},
|
|
15302
|
+
automation: {
|
|
15303
|
+
primaryPool: SEPOLIA_PANOPTIC_POOL_ADDRESSES$4.panopticPool,
|
|
15304
|
+
windDownPools: []
|
|
15305
|
+
},
|
|
15285
15306
|
manualTxDefaults: { collateralAllocations: [{
|
|
15286
15307
|
trackerAddress: SEPOLIA_PANOPTIC_POOL_ADDRESSES$4.collateralTracker1,
|
|
15287
15308
|
allocationBps: 1e4
|
|
@@ -15312,6 +15333,10 @@ const UsdcPlpVaultSepoliaProdConfig = {
|
|
|
15312
15333
|
hypoVault: SEPOLIA_HYPOVAULT_ADDRESSES$3.usdcPlpVault,
|
|
15313
15334
|
underlyingToken: SEPOLIA_ETH_USDC_5BPS_MARKET$1.currency1
|
|
15314
15335
|
},
|
|
15336
|
+
automation: {
|
|
15337
|
+
primaryPool: SEPOLIA_PANOPTIC_POOL_ADDRESSES$3.panopticPool,
|
|
15338
|
+
windDownPools: []
|
|
15339
|
+
},
|
|
15315
15340
|
manualTxDefaults: { collateralAllocations: [{
|
|
15316
15341
|
trackerAddress: SEPOLIA_PANOPTIC_POOL_ADDRESSES$3.collateralTracker1,
|
|
15317
15342
|
allocationBps: 1e4
|
|
@@ -15328,7 +15353,7 @@ const BASE_PANOPTIC_POOL_ADDRESSES$1 = BASE_DEPLOYMENT$2.panoptic.pool;
|
|
|
15328
15353
|
const WethPlpVaultBaseProdConfig = {
|
|
15329
15354
|
deployment: "prod",
|
|
15330
15355
|
vaultAssetIndex: 1n,
|
|
15331
|
-
manageCycleIntervalMs:
|
|
15356
|
+
manageCycleIntervalMs: 864e5,
|
|
15332
15357
|
vaultCapInUnderlying: 1000000000000000000n,
|
|
15333
15358
|
vaultCapInShares: 1000000000000000000000000n,
|
|
15334
15359
|
allowUnlimitedDepositRequestIfCapNotReached: true,
|
|
@@ -15343,6 +15368,10 @@ const WethPlpVaultBaseProdConfig = {
|
|
|
15343
15368
|
hypoVault: BASE_HYPOVAULT_ADDRESSES$1.wethPlpVault,
|
|
15344
15369
|
underlyingToken: "0x4200000000000000000000000000000000000006"
|
|
15345
15370
|
},
|
|
15371
|
+
automation: {
|
|
15372
|
+
primaryPool: BASE_PANOPTIC_POOL_ADDRESSES$1.panopticPool,
|
|
15373
|
+
windDownPools: []
|
|
15374
|
+
},
|
|
15346
15375
|
manualTxDefaults: { collateralAllocations: [{
|
|
15347
15376
|
trackerAddress: BASE_PANOPTIC_POOL_ADDRESSES$1.collateralTracker0,
|
|
15348
15377
|
allocationBps: 1e4
|
|
@@ -15357,6 +15386,8 @@ const MAINNET_DEPLOYMENT$5 = requireChainDeployment(MAINNET_CHAIN_ID);
|
|
|
15357
15386
|
const MAINNET_HYPOVAULT_ADDRESSES = MAINNET_DEPLOYMENT$5.hypovault.vaults;
|
|
15358
15387
|
const MAINNET_HYPOVAULT_MANAGER_ADDRESSES = MAINNET_DEPLOYMENT$5.hypovault.managers;
|
|
15359
15388
|
const MAINNET_PANOPTIC_POOL_ADDRESSES = MAINNET_DEPLOYMENT$5.panoptic.pool;
|
|
15389
|
+
const MAINNET_V3_POOL_ADDRESSES = MAINNET_DEPLOYMENT$5.panoptic.additionalPools?.ethUsdc5bpsV3;
|
|
15390
|
+
if (MAINNET_V3_POOL_ADDRESSES === void 0) throw new Error("Missing mainnet ETH/USDC 5bps v3 Panoptic pool deployment");
|
|
15360
15391
|
const MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES = {
|
|
15361
15392
|
panopticPool: "0x000000007588B488d180899cDEa2080a886D2441",
|
|
15362
15393
|
collateralTracker0: "0x6cd0186Fb4c32B6fD23279bBE0022506958216f9",
|
|
@@ -15381,8 +15412,12 @@ const WethPlpVaultMainnetProdConfig = {
|
|
|
15381
15412
|
hypoVault: MAINNET_HYPOVAULT_ADDRESSES.wethPlpVault,
|
|
15382
15413
|
underlyingToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
|
|
15383
15414
|
},
|
|
15415
|
+
automation: {
|
|
15416
|
+
primaryPool: MAINNET_V3_POOL_ADDRESSES.panopticPool,
|
|
15417
|
+
windDownPools: [MAINNET_PANOPTIC_POOL_ADDRESSES.panopticPool]
|
|
15418
|
+
},
|
|
15384
15419
|
manualTxDefaults: { collateralAllocations: [{
|
|
15385
|
-
trackerAddress:
|
|
15420
|
+
trackerAddress: MAINNET_V3_POOL_ADDRESSES.collateralTracker1,
|
|
15386
15421
|
allocationBps: 1e4
|
|
15387
15422
|
}] },
|
|
15388
15423
|
deltaHedge: {
|
|
@@ -15405,6 +15440,10 @@ const WethPlpVaultMainnetLegacyConfig = {
|
|
|
15405
15440
|
hypoVaultManagerWithMerkleVerification: "0xcc80f113298DdF9D399323D5288aE5Eeaed20D44",
|
|
15406
15441
|
hypoVault: "0x779a2aa634A004b3a3f3b322083744869BBC6D66"
|
|
15407
15442
|
},
|
|
15443
|
+
automation: {
|
|
15444
|
+
primaryPool: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.panopticPool,
|
|
15445
|
+
windDownPools: []
|
|
15446
|
+
},
|
|
15408
15447
|
manualTxDefaults: { collateralAllocations: [{
|
|
15409
15448
|
trackerAddress: MAINNET_LEGACY_PANOPTIC_POOL_ADDRESSES.collateralTracker1,
|
|
15410
15449
|
allocationBps: 1e4
|
|
@@ -15433,6 +15472,10 @@ const WethPlpVaultSepoliaDevConfig = {
|
|
|
15433
15472
|
hypoVault: SEPOLIA_HYPOVAULT_ADDRESSES$2.wethPlpVault,
|
|
15434
15473
|
underlyingToken: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"
|
|
15435
15474
|
},
|
|
15475
|
+
automation: {
|
|
15476
|
+
primaryPool: SEPOLIA_PANOPTIC_POOL_ADDRESSES$2.panopticPool,
|
|
15477
|
+
windDownPools: []
|
|
15478
|
+
},
|
|
15436
15479
|
manualTxDefaults: { collateralAllocations: [{
|
|
15437
15480
|
trackerAddress: SEPOLIA_PANOPTIC_POOL_ADDRESSES$2.collateralTracker0,
|
|
15438
15481
|
allocationBps: 1e4
|
|
@@ -15462,6 +15505,10 @@ const WethPlpVaultSepoliaProdConfig = {
|
|
|
15462
15505
|
hypoVault: SEPOLIA_HYPOVAULT_ADDRESSES$1.wethPlpVault,
|
|
15463
15506
|
underlyingToken: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"
|
|
15464
15507
|
},
|
|
15508
|
+
automation: {
|
|
15509
|
+
primaryPool: SEPOLIA_PANOPTIC_POOL_ADDRESSES$1.panopticPool,
|
|
15510
|
+
windDownPools: []
|
|
15511
|
+
},
|
|
15465
15512
|
manualTxDefaults: { collateralAllocations: [{
|
|
15466
15513
|
trackerAddress: SEPOLIA_PANOPTIC_POOL_ADDRESSES$1.collateralTracker0,
|
|
15467
15514
|
allocationBps: 1e4
|
|
@@ -15507,13 +15554,14 @@ const MAINNET_DEPLOYMENT$4 = requireChainDeployment(MAINNET_CHAIN_ID);
|
|
|
15507
15554
|
const MAX_PRICE_DEVIATION = 100;
|
|
15508
15555
|
const WSPCXX_USDC_MAX_PRICE_DEVIATION = 1e4;
|
|
15509
15556
|
const DEFAULT_TRIGGER_TICK = 150;
|
|
15510
|
-
const
|
|
15511
|
-
if (
|
|
15512
|
-
const
|
|
15557
|
+
const MAINNET_USDC_WETH_5BPS_V3_POOL = MAINNET_DEPLOYMENT$4.panoptic.additionalPools?.ethUsdc5bpsV3;
|
|
15558
|
+
if (MAINNET_USDC_WETH_5BPS_V3_POOL === void 0) throw new Error("Missing mainnet USDC/WETH 5bps v3 Panoptic pool deployment");
|
|
15559
|
+
const MAINNET_USDC_WETH_5BPS_V3_POOL_INFO = {
|
|
15513
15560
|
maxPriceDeviation: MAX_PRICE_DEVIATION,
|
|
15514
|
-
pool:
|
|
15561
|
+
pool: MAINNET_USDC_WETH_5BPS_V3_POOL.panopticPool,
|
|
15515
15562
|
token0: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
15516
|
-
token1: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
|
|
15563
|
+
token1: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
15564
|
+
positionScanFromBlock: 25631480n
|
|
15517
15565
|
};
|
|
15518
15566
|
const SEPOLIA_DEFAULT_POOL_INFOS = [{
|
|
15519
15567
|
maxPriceDeviation: MAX_PRICE_DEVIATION,
|
|
@@ -15526,30 +15574,34 @@ const BASE_DEFAULT_POOL_INFOS = [{
|
|
|
15526
15574
|
maxPriceDeviation: MAX_PRICE_DEVIATION,
|
|
15527
15575
|
pool: BASE_DEPLOYMENT$1.panoptic.pool.panopticPool,
|
|
15528
15576
|
token0: getEthUsdcMarket(BASE_DEPLOYMENT$1).currency0,
|
|
15529
|
-
token1: getEthUsdcMarket(BASE_DEPLOYMENT$1).currency1
|
|
15577
|
+
token1: getEthUsdcMarket(BASE_DEPLOYMENT$1).currency1,
|
|
15578
|
+
positionScanFromBlock: 43000000n
|
|
15530
15579
|
}];
|
|
15531
15580
|
const BASE_VAULT_ADDRESSES = BASE_DEPLOYMENT$1.hypovault.vaults;
|
|
15532
15581
|
const MAINNET_DEFAULT_POOL_INFOS = [{
|
|
15533
15582
|
maxPriceDeviation: MAX_PRICE_DEVIATION,
|
|
15534
15583
|
pool: MAINNET_DEPLOYMENT$4.panoptic.pool.panopticPool,
|
|
15535
15584
|
token0: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency0,
|
|
15536
|
-
token1: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency1
|
|
15537
|
-
|
|
15585
|
+
token1: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency1,
|
|
15586
|
+
positionScanFromBlock: 25302077n
|
|
15587
|
+
}, MAINNET_USDC_WETH_5BPS_V3_POOL_INFO];
|
|
15538
15588
|
const MAINNET_USDC_PLP_POOL_INFOS = [
|
|
15539
15589
|
MAINNET_DEFAULT_POOL_INFOS[0],
|
|
15540
15590
|
{
|
|
15541
15591
|
maxPriceDeviation: WSPCXX_USDC_MAX_PRICE_DEVIATION,
|
|
15542
15592
|
pool: "0x0f34e6fCda264349Db10d445BD95f529cbe88090",
|
|
15543
15593
|
token0: "0x8e2eeD8b8B5E13Ea7BF38e50d7821d2C57309072",
|
|
15544
|
-
token1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
15594
|
+
token1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
15595
|
+
positionScanFromBlock: 25302077n
|
|
15545
15596
|
},
|
|
15546
|
-
|
|
15597
|
+
MAINNET_USDC_WETH_5BPS_V3_POOL_INFO
|
|
15547
15598
|
];
|
|
15548
15599
|
const MAINNET_LEGACY_DEFAULT_POOL_INFOS = [{
|
|
15549
15600
|
maxPriceDeviation: MAX_PRICE_DEVIATION,
|
|
15550
15601
|
pool: "0x000000007588B488d180899cDEa2080a886D2441",
|
|
15551
15602
|
token0: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency0,
|
|
15552
|
-
token1: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency1
|
|
15603
|
+
token1: getEthUsdcMarket(MAINNET_DEPLOYMENT$4).currency1,
|
|
15604
|
+
positionScanFromBlock: 24822309n
|
|
15553
15605
|
}];
|
|
15554
15606
|
const MAINNET_VAULT_ADDRESSES = MAINNET_DEPLOYMENT$4.hypovault.vaults;
|
|
15555
15607
|
const MAINNET_LEGACY_VAULT_ADDRESSES = {
|
|
@@ -15589,7 +15641,7 @@ const MainnetUSDCPLPVaultPoolInfos = {
|
|
|
15589
15641
|
/** Production accountant input before the ETH/USDC 5bps v3 pool authorization executes. */
|
|
15590
15642
|
const MainnetUSDCPLPPreviousVaultPoolInfos = {
|
|
15591
15643
|
vaultAddress: MAINNET_VAULT_ADDRESSES.usdcPlpVault,
|
|
15592
|
-
poolInfos: MAINNET_USDC_PLP_POOL_INFOS.filter((poolInfo) => poolInfo.pool !==
|
|
15644
|
+
poolInfos: MAINNET_USDC_PLP_POOL_INFOS.filter((poolInfo) => poolInfo.pool !== MAINNET_USDC_WETH_5BPS_V3_POOL_INFO.pool).map((poolInfo) => ({
|
|
15593
15645
|
...poolInfo,
|
|
15594
15646
|
triggerTick: DEFAULT_TRIGGER_TICK
|
|
15595
15647
|
}))
|
|
@@ -15799,6 +15851,10 @@ function getMainnetVaultManagerRootHistory({ chainId, vaultAddress }) {
|
|
|
15799
15851
|
|
|
15800
15852
|
//#endregion
|
|
15801
15853
|
//#region src/hypoVault/utils/buildManagerInput.ts
|
|
15854
|
+
function resolvePositionScanFromBlock(poolInfo, fallbackPoolDeploymentBlock) {
|
|
15855
|
+
if (poolInfo.positionScanFromBlock !== void 0) return poolInfo.positionScanFromBlock;
|
|
15856
|
+
return fallbackPoolDeploymentBlock === void 0 ? void 0 : BigInt(fallbackPoolDeploymentBlock);
|
|
15857
|
+
}
|
|
15802
15858
|
const NATIVE_ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
15803
15859
|
const NATIVE_ETH_ALIAS_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
15804
15860
|
function isUnderlyingEquivalentToken({ token, underlyingToken, wethAddress }) {
|
|
@@ -16134,6 +16190,42 @@ function getVaultPoolInfos(vaultAddress, chainId) {
|
|
|
16134
16190
|
return artifact?.poolInfos ?? [];
|
|
16135
16191
|
}
|
|
16136
16192
|
/**
|
|
16193
|
+
* Enrich a cached subgraph candidate superset with the authoritative position
|
|
16194
|
+
* list recovered from Panoptic dispatch history at `blockNumber`.
|
|
16195
|
+
*
|
|
16196
|
+
* This is the repair path for subgraph lag: `getOpenPositionIds` decodes the
|
|
16197
|
+
* most recent position-changing dispatch in the requested range and returns
|
|
16198
|
+
* the complete on-chain-validated list. Recovered IDs are merged into the
|
|
16199
|
+
* all-time candidate cache; closed IDs remain harmless because the normal
|
|
16200
|
+
* per-block verifier filters them out.
|
|
16201
|
+
*/
|
|
16202
|
+
async function recoverVaultCandidateTokenIdsByPool({ viemClient, chainId, vaultAddress, candidatesByPool, poolInfos, blockNumber, fromBlock }) {
|
|
16203
|
+
return Promise.all(poolInfos.map(async (poolInfo) => {
|
|
16204
|
+
const cached = candidatesByPool.find((candidate) => candidate.poolAddress.toLowerCase() === poolInfo.pool.toLowerCase());
|
|
16205
|
+
const cachedIds = cached?.candidates ?? [];
|
|
16206
|
+
const scanFromBlock = fromBlock ?? poolInfo.positionScanFromBlock;
|
|
16207
|
+
if (scanFromBlock === void 0) throw new Error(`Cannot recover positions for pool ${poolInfo.pool}: no recovery lower bound configured`);
|
|
16208
|
+
if (scanFromBlock > blockNumber) return {
|
|
16209
|
+
poolAddress: poolInfo.pool,
|
|
16210
|
+
candidates: [...cachedIds]
|
|
16211
|
+
};
|
|
16212
|
+
const recoveredIds = await getOpenPositionIds({
|
|
16213
|
+
client: viemClient,
|
|
16214
|
+
chainId: BigInt(chainId),
|
|
16215
|
+
poolAddress: poolInfo.pool,
|
|
16216
|
+
account: vaultAddress,
|
|
16217
|
+
fromBlock: scanFromBlock,
|
|
16218
|
+
toBlock: blockNumber
|
|
16219
|
+
});
|
|
16220
|
+
if (recoveredIds === null) throw new Error(`Could not recover an authoritative position list for vault ${vaultAddress} in pool ${poolInfo.pool} between blocks ${scanFromBlock} and ${blockNumber}`);
|
|
16221
|
+
const candidates = sortBigintsAscending(new Set([...cachedIds, ...recoveredIds]));
|
|
16222
|
+
return {
|
|
16223
|
+
poolAddress: poolInfo.pool,
|
|
16224
|
+
candidates
|
|
16225
|
+
};
|
|
16226
|
+
}));
|
|
16227
|
+
}
|
|
16228
|
+
/**
|
|
16137
16229
|
* Resolve the block-INDEPENDENT candidate tokenIds per pool for a vault — i.e. the
|
|
16138
16230
|
* two subgraph paging queries only, with no on-chain verification. Pair with
|
|
16139
16231
|
* {@link verifyVaultOpenTokenIdsAtBlock} to narrow to positions open at a given
|
|
@@ -19095,6 +19187,10 @@ const HypoVaultManagerConfigSchema = z.object({
|
|
|
19095
19187
|
hypoVault: addressSchema.optional(),
|
|
19096
19188
|
underlyingToken: addressSchema.optional()
|
|
19097
19189
|
}).optional(),
|
|
19190
|
+
automation: z.object({
|
|
19191
|
+
primaryPool: addressSchema,
|
|
19192
|
+
windDownPools: z.array(addressSchema)
|
|
19193
|
+
}),
|
|
19098
19194
|
manualTxDefaults: z.object({ collateralAllocations: z.array(z.object({
|
|
19099
19195
|
trackerAddress: addressSchema,
|
|
19100
19196
|
allocationBps: z.number().int().positive().max(1e4)
|
|
@@ -19931,6 +20027,30 @@ function getVaultApyErrorMessage(error) {
|
|
|
19931
20027
|
if (typeof error === "string") return error;
|
|
19932
20028
|
return "unknown error";
|
|
19933
20029
|
}
|
|
20030
|
+
function errorChainIncludes(error, marker) {
|
|
20031
|
+
const visited = new Set();
|
|
20032
|
+
let current = error;
|
|
20033
|
+
while (typeof current === "object" && current !== null && !visited.has(current)) {
|
|
20034
|
+
visited.add(current);
|
|
20035
|
+
const record = current;
|
|
20036
|
+
for (const key of [
|
|
20037
|
+
"message",
|
|
20038
|
+
"shortMessage",
|
|
20039
|
+
"details",
|
|
20040
|
+
"errorName"
|
|
20041
|
+
]) {
|
|
20042
|
+
const value = record[key];
|
|
20043
|
+
if (typeof value === "string" && value.includes(marker)) return true;
|
|
20044
|
+
}
|
|
20045
|
+
const data = record.data;
|
|
20046
|
+
if (typeof data === "object" && data !== null) {
|
|
20047
|
+
const errorName = data.errorName;
|
|
20048
|
+
if (typeof errorName === "string" && errorName.includes(marker)) return true;
|
|
20049
|
+
}
|
|
20050
|
+
current = record.cause;
|
|
20051
|
+
}
|
|
20052
|
+
return false;
|
|
20053
|
+
}
|
|
19934
20054
|
function isExpectedHistoricalReadMiss(error) {
|
|
19935
20055
|
const message = getVaultApyErrorMessage(error);
|
|
19936
20056
|
return error instanceof VaultApyPreInceptionBlockError || message.includes("returned no data (\"0x\")") || message.includes("InvalidPools()") || message.includes("[computeNAV]") || message.includes("The contract function \"computeNAV\" reverted");
|
|
@@ -19942,6 +20062,13 @@ function isStaleOraclePriceError(error) {
|
|
|
19942
20062
|
function isStaleOraclePriceReadError(error) {
|
|
19943
20063
|
return isStaleOraclePriceError(error);
|
|
19944
20064
|
}
|
|
20065
|
+
function isIncorrectPositionListReadError(error) {
|
|
20066
|
+
return errorChainIncludes(error, "IncorrectPositionList");
|
|
20067
|
+
}
|
|
20068
|
+
const TRUSTED_VAULT_SHARE_PRICE_STATUSES = ["ok", "stale_oracle_override"];
|
|
20069
|
+
function isTrustedVaultSharePriceStatus(status) {
|
|
20070
|
+
return TRUSTED_VAULT_SHARE_PRICE_STATUSES.some((trustedStatus) => trustedStatus === status);
|
|
20071
|
+
}
|
|
19945
20072
|
|
|
19946
20073
|
//#endregion
|
|
19947
20074
|
//#region src/graphql/hypoVault-sdk.generated.ts
|
|
@@ -20429,6 +20556,24 @@ function calculateAnnualizedApyPct({ currentSharePrice, previousSharePrice, days
|
|
|
20429
20556
|
//#endregion
|
|
20430
20557
|
//#region src/hypoVault/staleOracleOverride.ts
|
|
20431
20558
|
const PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = "0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80638da5cb5b116100635780638da5cb5b14610135578063995cac6d14610145578063a519c19814610158578063d597b7361461016b578063f2fde38b1461017e575f5ffd5b8063016ff32e1461009457806328d6ae4a146100cb5780634f0e0ef3146100ec578063715018a61461012b575b5f5ffd5b6100b66100a236600461274b565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100de6100d9366004612766565b610191565b6040519081526020016100c2565b6101137f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b6101336101b3565b005b5f546001600160a01b0316610113565b6101336101533660046127d0565b6101c6565b61013361016636600461274b565b610598565b6100de610179366004612881565b6105c3565b61013361018c36600461274b565b611865565b6001602052815f5260405f2081600281106101aa575f80fd5b01549150829050565b6101bb6118a7565b6101c45f6118d3565b565b6101ce6118a7565b6001600160a01b0385165f9081526002602052604090205460ff1615610207576040516372b89e9760e11b815260040160405180910390fd5b5f5b838110156102ac575f5b818110156102a35785858281811061022d5761022d61290d565b610243926020608090920201908101915061274b565b6001600160a01b031686868481811061025e5761025e61290d565b610274926020608090920201908101915061274b565b6001600160a01b03160361029b57604051635c1523a360e11b815260040160405180910390fd5b600101610213565b50600101610209565b505f5b8181101561050a575f5b81811015610347578383828181106102d3576102d361290d565b90506020020160208101906102e8919061274b565b6001600160a01b03168484848181106103035761030361290d565b9050602002016020810190610318919061274b565b6001600160a01b03160361033f57604051637542915f60e11b815260040160405180910390fd5b6001016102b9565b505f5b84811015610501578585828181106103645761036461290d565b61037a926020608090920201908101915061274b565b6001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190612921565b6001600160a01b03168484848181106103f4576103f461290d565b9050602002016020810190610409919061274b565b6001600160a01b031614806104db575085858281811061042b5761042b61290d565b610441926020608090920201908101915061274b565b6001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a09190612921565b6001600160a01b03168484848181106104bb576104bb61290d565b90506020020160208101906104d0919061274b565b6001600160a01b0316145b156104f957604051637542915f60e11b815260040160405180910390fd5b60010161034a565b506001016102af565b50838360405160200161051e92919061294a565b60408051808303601f1901815282825280516020918201206001600160a01b0389165f90815260018352929092209190915561055e9184918491016129e4565b60408051808303601f1901815291815281516020928301206001600160a01b03979097165f90815260019283905220019490945550505050565b6105a06118a7565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f8080806105d385870187612cd2565b506001600160a01b038b165f90815260016020526040812093965091945092500154826040516020016106069190612e29565b604051602081830303815290604052805190602001201461063a576040516395241ae360e01b815260040160405180910390fd5b5f825160026106499190612eb8565b6001600160401b0381111561066057610660612a26565b604051908082528060200260200182016040528015610689578160200160208202803683370190505b509050885f5b8451811015611537575f5f5f8784815181106106ad576106ad61290d565b60200260200101515f01516001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107179190612ecf565b905087848151811061072b5761072b61290d565b60200260200101516060015160020b61076d828b87815181106107505761075061290d565b60200260200101515f01516107659190612eea565b60020b611922565b131561078c57604051631510fe5b60e31b815260040160405180910390fd5b60605f5f8a87815181106107a2576107a261290d565b60200260200101515f01516001600160a01b031663011492288960018d8b815181106107d0576107d061290d565b60200260200101516040518463ffffffff1660e01b81526004016107f693929190612f0f565b5f60405180830381865afa158015610810573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108379190810190612fca565b50909550919350915061085890506001600160801b038083169084166130c2565b95506108648160801c90565b6001600160801b03166108778360801c90565b6001600160801b031661088a91906130c2565b945050505f8986815181106108a1576108a161290d565b60200260200101515f01516001600160a01b03166353aad1d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090b9190612ecf565b90505f805b8a88815181106109225761092261290d565b602002602001015151811015610aa8575f8482815181106109455761094561290d565b60200260200101519050806001600160801b03165f0361097857604051632276762d60e11b815260040160405180910390fd5b5f8c8a8151811061098b5761098b61290d565b602002602001015183815181106109a4576109a461290d565b602002602001015190505f6109b882611940565b90505f5b81811015610a24576109ce838261197a565b60020b15610a1c575f5f6109ec896109e787868a611991565b6119fa565b90925090506109fb8584611a79565b5f03610a0e579b81019b9a8b019a610a19565b818d039c50808c039b505b50505b6001016109bc565b505f5f610a3384866001611a8b565b91509150610a3e8190565b600f0b82600f0b610a4f91906130c2565b610a59908d6130e8565b9b50610a658160801d90565b600f0b610a728360801d90565b600f0b610a7f91906130c2565b610a89908c6130e8565b9a50610a95838861310f565b9650506001909401935061091092505050565b508a8781518110610abb57610abb61290d565b60209081029190910101515160405163c79ee60d60e01b81526001600160a01b038a811660048301529091169063c79ee60d90602401602060405180830381865afa158015610b0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b309190613122565b8114610b4f57604051632276762d60e11b815260040160405180910390fd5b5050505f6001600160a01b0316888581518110610b6e57610b6e61290d565b6020026020010151602001516001600160a01b031603610bca5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee888581518110610baf57610baf61290d565b6020908102919091018101516001600160a01b039092169101525b5f808080805b8a51811015610d86578c8981518110610beb57610beb61290d565b6020026020010151602001516001600160a01b03168b8281518110610c1257610c1261290d565b60200260200101516001600160a01b031603610c2d57600192505b8c8981518110610c3f57610c3f61290d565b6020026020010151604001516001600160a01b03168b8281518110610c6657610c6661290d565b60200260200101516001600160a01b031603610c8157600191505b5f6001600160a01b03168b8281518110610c9d57610c9d61290d565b60200260200101516001600160a01b031603610d7e5782610d09578c8981518110610cca57610cca61290d565b6020026020010151602001518b8281518110610ce857610ce861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b81610d79578c8981518110610d2057610d2061290d565b6020026020010151604001518b84610d39576001610d3b565b5f5b610d489060ff168461310f565b81518110610d5857610d5861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b610d86565b600101610bd0565b5081610e735773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168c8981518110610dbc57610dbc61290d565b6020026020010151602001516001600160a01b031614610e64578b8881518110610de857610de861290d565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038b81166004830152909116906370a0823190602401602060405180830381865afa158015610e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f9190613122565b610e70565b886001600160a01b0316315b93505b80610f12578b8881518110610e8a57610e8a61290d565b6020026020010151604001516001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610ed091906001600160a01b0391909116815260200190565b602060405180830381865afa158015610eeb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190613122565b92505b5f8c8981518110610f2557610f2561290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015610fd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff99190613122565b90508c898151811061100d5761100d61290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611053573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110779190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016110a491815260200190565b602060405180830381865afa1580156110bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e39190613122565b6110ed90896130e8565b97508c89815181106111015761110161290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116b9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa1580156111b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d59190613122565b90508c89815181106111e9576111e961290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112539190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161128091815260200190565b602060405180830381865afa15801561129b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190613122565b6112c990886130e8565b96505050508e6001600160a01b03168a87815181106112ea576112ea61290d565b6020026020010151602001516001600160a01b0316146114245773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a87815181106113345761133461290d565b6020026020010151602001516001600160a01b031614801561138757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f6001600160a01b0316145b6114245789868151811061139d5761139d61290d565b60200260200101516060015160020b6113d88c88815181106113c1576113c161290d565b602002602001015160200151856107659190612eea565b13156113f757604051631510fe5b60e31b815260040160405180910390fd5b5f61140184611ae4565b905061140d8682611dff565b955082156114225761141f8382611dff565b92505b505b8e6001600160a01b03168a87815181106114405761144061290d565b6020026020010151604001516001600160a01b0316146114f35789868151811061146c5761146c61290d565b60200260200101516060015160020b6114a78c88815181106114905761149061290d565b602002602001015160400151856107659190612eea565b13156114c657604051631510fe5b60e31b815260040160405180910390fd5b5f6114d084611ae4565b90506114dc8582611e82565b945081156114f1576114ee8282611e82565b91505b505b61150661150085876130e8565b5f611eef565b611510828461310f565b61151a919061310f565b611524908d61310f565b9b50506001909401935061068f92505050565b505f611545888a018a612cd2565b6001600160a01b0386165f908152600160208190526040909120919550909350915061156e9050565b0154816040516020016115819190613139565b60405160208183030381529060405280519060200120146115b557604051637560978b60e11b815260040160405180910390fd5b5f5b815181101561178e578a6001600160a01b03168282815181106115dc576115dc61290d565b60200260200101516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116439190612921565b6001600160a01b03161461166a57604051635de194d760e01b815260040160405180910390fd5b5f82828151811061167d5761167d61290d565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f19190613122565b90508282815181106117055761170561290d565b60200260200101516001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865afa158015611755573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117799190613122565b611783908a61310f565b9850506001016115b7565b505f9050805b83518110156117dc578a6001600160a01b03168482815181106117b9576117b961290d565b60200260200101516001600160a01b0316036117d457600191505b600101611794565b5080611857576040516370a0823160e01b81526001600160a01b0383811660048301528b16906370a0823190602401602060405180830381865afa158015611826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184a9190613122565b611854908861310f565b96505b505050505050949350505050565b61186d6118a7565b6001600160a01b03811661189b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6118a4816118d3565b50565b5f546001600160a01b031633146101c45760405163118cdaa760e01b8152336004820152602401611892565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f82136119385761193382613179565b61193a565b815b92915050565b5f72fe0000000000fe0000000000fe0000000000fe604083901c165b6001603083021b81106119745781600101915061195c565b50919050565b5f6110006064603084020184901c5b069392505050565b5f808061199e8686611f04565b90925090505f6119ae8787611f3b565b6119c1906001600160801b038716612eb8565b90506119cd8787611f4d565b5f036119e8576119de838383611f5f565b93505050506119f3565b6119de838383612008565b9392505050565b5f5f611a068360e81c90565b60020b8460020b1215611a2357611a1c8361203c565b9150611a72565b611a2d8360d01c90565b60020b8460020b12611a4957611a42836120ae565b9050611a72565b611a5b611a5684866120f5565b61203c565b9150611a6f611a6a8486612115565b6120ae565b90505b9250929050565b5f60026048603084020184901c611989565b5f5f5f611a9786611940565b90505f5b818114611ada575f5f611ab08989858a612133565b9092509050611abf86836121d9565b9550611acb85826121d9565b94508260010192505050611a9b565b5050935093915050565b5f5f5f8360020b12611af9578260020b611b00565b8260020b5f035b9050620d89e8811115611b26576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03611b3b57600160801b611b4d565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611b81576ffff97272373d413259a46990580e213a0260801c5b6004821615611ba0576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611bbf576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611bde576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611bfd576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611c1c576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611c3b576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611c5b576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611c7b576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611c9b576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611cbb576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611cdb576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611cfb576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611d1b576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611d3b576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611d5c576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611d7c576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611d9b576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611db8576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611dd757805f1981611dd357611dd3613193565b0490505b640100000000810615611deb576001611ded565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0383161015611e5a575f611e3f611e3a611e288661225f565b6002866001600160a01b03160a61226f565b6122cd565b90505f8412611e4e5780611e52565b805f035b91505061193a565b5f611e3f611e3a611e6a8661225f565b611e7d6001600160a01b038716806122f6565b612354565b5f6001600160801b036001600160a01b0383161015611ec2575f611e3f611e3a611eab8661225f565b600160c01b6002876001600160a01b03160a6123b2565b5f611e3f611e3a611ed28661225f565b600160801b611eea6001600160a01b038816806122f6565b6123b2565b5f818313611efd57816119f3565b5090919050565b5f80611f30611f188585603002604c011c90565b611f22868661197a565b603087901c61ffff1661245c565b909590945092505050565b5f60806041603084020184901c611989565b5f60026040603084020184901c611989565b5f5f611f6a85611ae4565b90505f611f7685611ae4565b90505f611faa85611f99846001600160a01b0316866001600160a01b031661247a565b8585036001600160a01b03166123b2565b90506001600160801b03811115611fd45760405163528073f560e11b815260040160405180910390fd5b6001600160801b03811660d087901b62ffffff60d01b1660e889901b6001600160e81b03191601015b979650505050505050565b5f5f61201385611ae4565b90505f61201f85611ae4565b90505f611faa85600160601b8585036001600160a01b03166123b2565b5f5f61205061204b8460e81c90565b611ae4565b90505f61206061204b8560d01c90565b90506001600160a01b0382166120986060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166123b2565b816120a5576120a5613193565b04949350505050565b5f5f6120bd61204b8460e81c90565b90505f6120cd61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b031661247a565b949350505050565b5f6119f36001600160e81b0384168360e81b6001600160e81b0319160190565b5f6119f362ffffff60d01b1984168360d01b62ffffff60d01b160190565b5f5f5f612142878787876124d8565b90505f61214f8887611a79565b15905061215c88876125ab565b5f0361219f57801561218c57612185612179836125bd565b6125bd565b6001600160801b031690565b92506121ce565b612198612179836125bd565b93506121ce565b80156121bb576121856121b56121748460801c90565b60801b90565b6121cb6121b56121748460801c90565b93505b505094509492505050565b5f5f6121e58360801d90565b600f0b6121f28560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061221e57508181600f0b14155b1561223c57604051633486405d60e21b815260040160405180910390fd5b608083901b6001600160801b03828701166001600160801b031987160101611ffd565b5f5f821361193857815f0361193a565b5f80805f19848609848602925082811083820303915050805f03612298575060c01c905061193a565b80600160c01b116122a7575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f6001600160ff1b038211156119385760405163b668004560e01b815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361231f575060401c905061193a565b80600160401b1161232e575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f0361237d575060801c905061193a565b80600160801b1161238c575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f036123e6575f84116123db575f5ffd5b5082900490506119f3565b8084116123f1575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f5f5f61246a86866125e8565b9088039897019695505050505050565b5f80805f19848609848602925082811083820303915050805f036124a3575060601c905061193a565b80600160601b116124b2575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f8080806124e6888761197a565b60020b1515905080612501576002606460308802011b880197505b5f61250d89888a611991565b90506125198988611a79565b1580156125235750855b8061253f57506125338988611a79565b1580159061253f575085155b80612548575081155b15612568576125568161262a565b93506125618161268b565b925061257f565b6125718161203c565b935061257c816120ae565b92505b61259e6001600160801b0385168460801b6001600160801b0319160190565b9998505050505050505050565b5f60026049603084020184901c611989565b805f600f82900b12156125e35760405163b668004560e01b815260040160405180910390fd5b919050565b5f8060026125f684866131a7565b61260091906131c6565b61261f61260d858761320a565b62ffffff166002808204910615150190565b915091509250929050565b5f5f61263961204b8460e81c90565b90505f61264961204b8560d01c90565b90506120ed61267a6060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166126ca565b6001846001600160a01b03166126ca565b5f5f61269a61204b8460e81c90565b90505f6126aa61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b0316612706565b5f6126d68484846123b2565b90505f82806126e7576126e7613193565b84860911156119f3575f1981106126fc575f5ffd5b6001019392505050565b5f612711838361247a565b90505f600160601b838509111561193a575f19811061272e575f5ffd5b60010192915050565b6001600160a01b03811681146118a4575f5ffd5b5f6020828403121561275b575f5ffd5b81356119f381612737565b5f5f60408385031215612777575f5ffd5b823561278281612737565b946020939093013593505050565b5f5f83601f8401126127a0575f5ffd5b5081356001600160401b038111156127b6575f5ffd5b6020830191508360208260051b8501011115611a72575f5ffd5b5f5f5f5f5f606086880312156127e4575f5ffd5b85356127ef81612737565b945060208601356001600160401b03811115612809575f5ffd5b8601601f81018813612819575f5ffd5b80356001600160401b0381111561282e575f5ffd5b8860208260071b8401011115612842575f5ffd5b6020919091019450925060408601356001600160401b03811115612864575f5ffd5b61287088828901612790565b969995985093965092949392505050565b5f5f5f5f60608587031215612894575f5ffd5b843561289f81612737565b935060208501356128af81612737565b925060408501356001600160401b038111156128c9575f5ffd5b8501601f810187136128d9575f5ffd5b80356001600160401b038111156128ee575f5ffd5b8760208284010111156128ff575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612931575f5ffd5b81516119f381612737565b8060020b81146118a4575f5ffd5b602080825281018290525f8360408301825b858110156129da57823561296f81612737565b6001600160a01b03168252602083013561298881612737565b6001600160a01b0316602083015260408301356129a481612737565b6001600160a01b0316604083015260608301356129c08161293c565b60020b60608301526080928301929091019060010161295c565b5095945050505050565b602080825281018290525f8360408301825b858110156129da578235612a0981612737565b6001600160a01b03168252602092830192909101906001016129f6565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612a5c57612a5c612a26565b60405290565b604051606081016001600160401b0381118282101715612a5c57612a5c612a26565b604051601f8201601f191681016001600160401b0381118282101715612aac57612aac612a26565b604052919050565b5f6001600160401b03821115612acc57612acc612a26565b5060051b60200190565b5f82601f830112612ae5575f5ffd5b8135612af8612af382612ab4565b612a84565b8082825260208201915060208360071b860101925085831115612b19575f5ffd5b602085015b838110156129da5760808188031215612b35575f5ffd5b612b3d612a3a565b8135612b4881612737565b81526020820135612b5881612737565b60208201526040820135612b6b81612737565b60408201526060820135612b7e8161293c565b60608201528352602090920191608001612b1e565b5f82601f830112612ba2575f5ffd5b8135612bb0612af382612ab4565b8082825260208201915060208360051b860101925085831115612bd1575f5ffd5b602085015b838110156129da5780356001600160401b03811115612bf3575f5ffd5b8601603f81018813612c03575f5ffd5b6020810135612c14612af382612ab4565b808282526020820191506020808460051b8601010192508a831115612c37575f5ffd5b6040840193505b82841015612c59578335825260209384019390910190612c3e565b86525050602093840193919091019050612bd6565b5f82601f830112612c7d575f5ffd5b8135612c8b612af382612ab4565b8082825260208201915060208360051b860101925085831115612cac575f5ffd5b602085015b838110156129da578035612cc481612737565b835260209283019201612cb1565b5f5f5f5f60808587031215612ce5575f5ffd5b84356001600160401b03811115612cfa575f5ffd5b8501601f81018713612d0a575f5ffd5b8035612d18612af382612ab4565b80828252602082019150602060608402850101925089831115612d39575f5ffd5b6020840193505b82841015612da6576060848b031215612d57575f5ffd5b612d5f612a62565b8435612d6a8161293c565b81526020850135612d7a8161293c565b60208201526040850135612d8d8161293c565b6040820152825260609390930192602090910190612d40565b965050505060208501356001600160401b03811115612dc3575f5ffd5b612dcf87828801612ad6565b93505060408501356001600160401b03811115612dea575f5ffd5b612df687828801612b93565b92505060608501356001600160401b03811115612e11575f5ffd5b612e1d87828801612c6e565b91505092959194509250565b602080825282518282018190525f918401906040840190835b81811015612e9957835180516001600160a01b0390811685526020808301518216818701526040808401519092169186019190915260609182015160020b9185019190915290930192608090920191600101612e42565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761193a5761193a612ea4565b5f60208284031215612edf575f5ffd5b81516119f38161293c565b600282810b9082900b03627fffff198112627fffff8213171561193a5761193a612ea4565b6001600160a01b038416815282151560208083019190915260606040830181905283519083018190525f918401906080840190835b81811015612f62578351835260209384019390920191600101612f44565b5090979650505050505050565b5f82601f830112612f7e575f5ffd5b8151612f8c612af382612ab4565b8082825260208201915060208360051b860101925085831115612fad575f5ffd5b602085015b838110156129da578051835260209283019201612fb2565b5f5f5f5f5f60a08688031215612fde575f5ffd5b85516020870151604088015191965094506001600160401b03811115613002575f5ffd5b8601601f81018813613012575f5ffd5b8051613020612af382612ab4565b8082825260208201915060208360051b85010192508a831115613041575f5ffd5b6020840193505b82841015613063578351825260209384019390910190613048565b8096505050505060608601516001600160401b03811115613082575f5ffd5b61308e88828901612f6f565b92505060808601516001600160401b038111156130a9575f5ffd5b6130b588828901612f6f565b9150509295509295909350565b8181035f8312801583831316838312821617156130e1576130e1612ea4565b5092915050565b8082018281125f83128015821682158216171561310757613107612ea4565b505092915050565b8082018082111561193a5761193a612ea4565b5f60208284031215613132575f5ffd5b5051919050565b602080825282518282018190525f918401906040840190835b81811015612e995783516001600160a01b0316835260209384019390920191600101613152565b5f600160ff1b820161318d5761318d612ea4565b505f0390565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b8260020b028060020b91508082146130e1576130e1612ea4565b5f8160020b8360020b806131e857634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f198214161561320157613201612ea4565b90059392505050565b62ffffff81811683821602908116908181146130e1576130e1612ea456";
|
|
20559
|
+
const STALE_ORACLE_GUARD_PATTERN = /131561([0-9a-f]{4})57604051631510fe5b60e31b/g;
|
|
20560
|
+
const STALE_ORACLE_GUARD_COUNT = 3;
|
|
20561
|
+
/**
|
|
20562
|
+
* Builds a read-only accountant runtime that preserves NAV calculation and all
|
|
20563
|
+
* structural checks while bypassing the three manager-price freshness guards.
|
|
20564
|
+
* The stale manager prices are validation inputs only; NAV continues to use
|
|
20565
|
+
* the pools' current TWAP/current tick values.
|
|
20566
|
+
*/
|
|
20567
|
+
function bypassStaleOraclePriceGuards(bytecode) {
|
|
20568
|
+
let replacements = 0;
|
|
20569
|
+
const patchedBytecode = bytecode.replace(STALE_ORACLE_GUARD_PATTERN, (_match, jumpDestination) => {
|
|
20570
|
+
replacements += 1;
|
|
20571
|
+
return `135061${jumpDestination}56604051631510fe5b60e31b`;
|
|
20572
|
+
});
|
|
20573
|
+
if (replacements !== STALE_ORACLE_GUARD_COUNT) throw new Error(`Unexpected PanopticVaultAccountant runtime: found ${replacements} stale-oracle guards.`);
|
|
20574
|
+
return patchedBytecode;
|
|
20575
|
+
}
|
|
20576
|
+
const READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE);
|
|
20432
20577
|
const BASE_ACCOUNTANT_ADDRESS = "0x345cA3407942f9d175c9eA8B90e83A36F570f852";
|
|
20433
20578
|
const MAINNET_ACCOUNTANT_ADDRESS = "0x65aA902AE3135658587FFC36ED51B61c927114e1";
|
|
20434
20579
|
const LEGACY_MAINNET_ACCOUNTANT_ADDRESS = "0xCCAA8adC2776786Fd0A14Fb1f22D6089E0637a49";
|
|
@@ -20458,23 +20603,23 @@ function hydrateWethImmutables({ bytecode, wethAddress }) {
|
|
|
20458
20603
|
}
|
|
20459
20604
|
const STALE_ORACLE_OVERRIDE_BYTECODE_BY_ACCOUNTANT = {
|
|
20460
20605
|
[normalizeAddressLower(BASE_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
20461
|
-
bytecode:
|
|
20606
|
+
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
20462
20607
|
wethAddress: BASE_WETH_ADDRESS
|
|
20463
20608
|
}),
|
|
20464
20609
|
[normalizeAddressLower(MAINNET_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
20465
|
-
bytecode:
|
|
20610
|
+
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
20466
20611
|
wethAddress: MAINNET_WETH_ADDRESS
|
|
20467
20612
|
}),
|
|
20468
20613
|
[normalizeAddressLower(LEGACY_MAINNET_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
20469
|
-
bytecode:
|
|
20614
|
+
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
20470
20615
|
wethAddress: MAINNET_WETH_ADDRESS
|
|
20471
20616
|
}),
|
|
20472
20617
|
[normalizeAddressLower(SEPOLIA_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
20473
|
-
bytecode:
|
|
20618
|
+
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
20474
20619
|
wethAddress: SEPOLIA_WETH_ADDRESS
|
|
20475
20620
|
}),
|
|
20476
20621
|
[normalizeAddressLower(TEST_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
20477
|
-
bytecode:
|
|
20622
|
+
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
20478
20623
|
wethAddress: SEPOLIA_WETH_ADDRESS
|
|
20479
20624
|
})
|
|
20480
20625
|
};
|
|
@@ -20509,6 +20654,13 @@ function resolveChainWethAddress(chainId) {
|
|
|
20509
20654
|
function getPlpManagerAddress(chainId, vaultAddress) {
|
|
20510
20655
|
return getHypoVaultConfigForVault(vaultAddress, chainId)?.addresses?.hypoVaultManagerWithMerkleVerification ?? null;
|
|
20511
20656
|
}
|
|
20657
|
+
function getPlpPoolInfosAtBlock({ chainId, vaultAddress, blockNumber }) {
|
|
20658
|
+
return getMainnetVaultPoolConfigurationAtBlock({
|
|
20659
|
+
chainId,
|
|
20660
|
+
vaultAddress,
|
|
20661
|
+
blockNumber
|
|
20662
|
+
})?.poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
|
|
20663
|
+
}
|
|
20512
20664
|
function createPlpManagerInputStrategy(minBlock) {
|
|
20513
20665
|
return {
|
|
20514
20666
|
enabledMetrics: ["nav"],
|
|
@@ -20523,6 +20675,22 @@ function createPlpManagerInputStrategy(minBlock) {
|
|
|
20523
20675
|
poolInfos
|
|
20524
20676
|
});
|
|
20525
20677
|
},
|
|
20678
|
+
recoverCandidates: async ({ chainId, client, vault, blockNumber, fromBlock, candidates }) => {
|
|
20679
|
+
const vaultAddress = vault.id;
|
|
20680
|
+
return recoverVaultCandidateTokenIdsByPool({
|
|
20681
|
+
viemClient: client,
|
|
20682
|
+
chainId,
|
|
20683
|
+
vaultAddress,
|
|
20684
|
+
candidatesByPool: candidates,
|
|
20685
|
+
poolInfos: getPlpPoolInfosAtBlock({
|
|
20686
|
+
chainId,
|
|
20687
|
+
vaultAddress,
|
|
20688
|
+
blockNumber
|
|
20689
|
+
}),
|
|
20690
|
+
blockNumber,
|
|
20691
|
+
fromBlock
|
|
20692
|
+
});
|
|
20693
|
+
},
|
|
20526
20694
|
managerInputProvider: async ({ chainId, client, vault, blockNumber, candidates }) => {
|
|
20527
20695
|
const vaultAddress = vault.id;
|
|
20528
20696
|
if (minBlock !== void 0 && blockNumber < minBlock) throw new VaultApyPreInceptionBlockError({
|
|
@@ -20530,12 +20698,11 @@ function createPlpManagerInputStrategy(minBlock) {
|
|
|
20530
20698
|
minBlockNumber: minBlock,
|
|
20531
20699
|
context: `PLP manager input for vault ${vault.id}`
|
|
20532
20700
|
});
|
|
20533
|
-
const
|
|
20701
|
+
const poolInfos = getPlpPoolInfosAtBlock({
|
|
20534
20702
|
chainId,
|
|
20535
20703
|
vaultAddress,
|
|
20536
20704
|
blockNumber
|
|
20537
20705
|
});
|
|
20538
|
-
const poolInfos = historicalPoolConfiguration?.poolInfos ?? getVaultPoolInfos(vaultAddress, chainId);
|
|
20539
20706
|
if (poolInfos.length === 0) return DEFAULT_MANAGER_INPUT;
|
|
20540
20707
|
const tokenIds = candidates === void 0 ? await resolveVaultTokenIdsByPool({
|
|
20541
20708
|
viemClient: client,
|
|
@@ -20597,6 +20764,10 @@ function setVaultApyStrategyOverride({ chainId, vaultAddress, strategy }) {
|
|
|
20597
20764
|
const key = buildVaultStrategyKey(chainId, vaultAddress);
|
|
20598
20765
|
strategyOverridesByVaultKey[key] = strategy;
|
|
20599
20766
|
}
|
|
20767
|
+
function clearVaultApyStrategyOverride({ chainId, vaultAddress }) {
|
|
20768
|
+
const key = buildVaultStrategyKey(chainId, vaultAddress);
|
|
20769
|
+
delete strategyOverridesByVaultKey[key];
|
|
20770
|
+
}
|
|
20600
20771
|
|
|
20601
20772
|
//#endregion
|
|
20602
20773
|
//#region src/hypoVault/sharePrice/snapshot.ts
|
|
@@ -20613,22 +20784,6 @@ function getAssetsDepositedFromDepositEpochState(value) {
|
|
|
20613
20784
|
}
|
|
20614
20785
|
return null;
|
|
20615
20786
|
}
|
|
20616
|
-
async function estimateNavOffchainFromPoolState({ client, chainId, vaultAddress, underlyingTokenAddress, blockNumber, assetsDeposited }) {
|
|
20617
|
-
try {
|
|
20618
|
-
const allocationRows = await fetchVaultLendingAllocation({
|
|
20619
|
-
client,
|
|
20620
|
-
chainId,
|
|
20621
|
-
vaultAddress,
|
|
20622
|
-
underlyingTokenAddress,
|
|
20623
|
-
blockNumber
|
|
20624
|
-
});
|
|
20625
|
-
const totalUnderlying = allocationRows.reduce((sum, row) => sum + row.allocationUnderlying, 0n);
|
|
20626
|
-
const totalAssetsEstimate = totalUnderlying + assetsDeposited;
|
|
20627
|
-
return totalAssetsEstimate === 0n ? 0n : totalAssetsEstimate - 1n;
|
|
20628
|
-
} catch {
|
|
20629
|
-
return null;
|
|
20630
|
-
}
|
|
20631
|
-
}
|
|
20632
20787
|
async function fetchVaultSharePriceSnapshot({ client, vault, chainId, windowLabel, blockNumber, readContractFn, candidates, includeTokenIdsInDiagnostics = false }) {
|
|
20633
20788
|
const vaultAddress = vault.id;
|
|
20634
20789
|
const accountantAddress = vault.accountant;
|
|
@@ -20660,7 +20815,7 @@ async function fetchVaultSharePriceSnapshot({ client, vault, chainId, windowLabe
|
|
|
20660
20815
|
return await readContractFn(client, request);
|
|
20661
20816
|
} catch (error) {
|
|
20662
20817
|
const details = error instanceof Error ? error.message : typeof error === "string" ? error : "unknown error";
|
|
20663
|
-
throw new Error(`[${callName}] ${details}`);
|
|
20818
|
+
throw Object.assign(new Error(`[${callName}] ${details}`), { cause: error });
|
|
20664
20819
|
}
|
|
20665
20820
|
};
|
|
20666
20821
|
const [depositEpochRaw, reservedWithdrawalAssetsRaw, sharesRaw] = await Promise.all([
|
|
@@ -20731,29 +20886,16 @@ async function fetchVaultSharePriceSnapshot({ client, vault, chainId, windowLabe
|
|
|
20731
20886
|
navSource = "computeNAV";
|
|
20732
20887
|
} catch (error) {
|
|
20733
20888
|
if (!isStaleOraclePriceReadError(error)) throw error;
|
|
20734
|
-
if (staleOracleStateOverride
|
|
20735
|
-
|
|
20736
|
-
|
|
20737
|
-
|
|
20738
|
-
|
|
20739
|
-
|
|
20740
|
-
|
|
20741
|
-
|
|
20742
|
-
|
|
20743
|
-
|
|
20744
|
-
} catch {}
|
|
20745
|
-
if (nav === null) {
|
|
20746
|
-
nav = await estimateNavOffchainFromPoolState({
|
|
20747
|
-
client,
|
|
20748
|
-
chainId,
|
|
20749
|
-
vaultAddress,
|
|
20750
|
-
underlyingTokenAddress,
|
|
20751
|
-
blockNumber,
|
|
20752
|
-
assetsDeposited
|
|
20753
|
-
});
|
|
20754
|
-
if (nav === null) throw error;
|
|
20755
|
-
navSource = "offchainLendingEstimate";
|
|
20756
|
-
}
|
|
20889
|
+
if (staleOracleStateOverride === void 0) throw error;
|
|
20890
|
+
const navRawWithOverride = await readWithContext({
|
|
20891
|
+
callName: "computeNAV",
|
|
20892
|
+
request: {
|
|
20893
|
+
...navRequest,
|
|
20894
|
+
stateOverride: staleOracleStateOverride
|
|
20895
|
+
}
|
|
20896
|
+
});
|
|
20897
|
+
nav = toBigInt(navRawWithOverride);
|
|
20898
|
+
navSource = "computeNAVStateOverride";
|
|
20757
20899
|
}
|
|
20758
20900
|
if (nav === null) throw new Error(`Unexpected computeNAV output type for vault ${vault.id}`);
|
|
20759
20901
|
const sharePrice = computeSharePriceFromNavSnapshot({
|
|
@@ -20777,6 +20919,103 @@ async function fetchVaultSharePriceSnapshot({ client, vault, chainId, windowLabe
|
|
|
20777
20919
|
tokenIdsByPool
|
|
20778
20920
|
};
|
|
20779
20921
|
}
|
|
20922
|
+
async function fetchVaultSharePriceSnapshotWithCandidateRecovery({ recoveryFromBlock,...params }) {
|
|
20923
|
+
try {
|
|
20924
|
+
return {
|
|
20925
|
+
snapshot: await fetchVaultSharePriceSnapshot(params),
|
|
20926
|
+
candidates: params.candidates
|
|
20927
|
+
};
|
|
20928
|
+
} catch (error) {
|
|
20929
|
+
const strategy = getVaultApyStrategy({
|
|
20930
|
+
chainId: params.chainId,
|
|
20931
|
+
vaultAddress: params.vault.id
|
|
20932
|
+
});
|
|
20933
|
+
if (!isIncorrectPositionListReadError(error) || strategy.recoverCandidates === void 0 || params.candidates === void 0) throw error;
|
|
20934
|
+
const recoveredCandidates = await strategy.recoverCandidates({
|
|
20935
|
+
chainId: params.chainId,
|
|
20936
|
+
vault: params.vault,
|
|
20937
|
+
client: params.client,
|
|
20938
|
+
blockNumber: params.blockNumber,
|
|
20939
|
+
fromBlock: recoveryFromBlock,
|
|
20940
|
+
candidates: params.candidates
|
|
20941
|
+
});
|
|
20942
|
+
return {
|
|
20943
|
+
snapshot: await fetchVaultSharePriceSnapshot({
|
|
20944
|
+
...params,
|
|
20945
|
+
candidates: recoveredCandidates
|
|
20946
|
+
}),
|
|
20947
|
+
candidates: recoveredCandidates
|
|
20948
|
+
};
|
|
20949
|
+
}
|
|
20950
|
+
}
|
|
20951
|
+
|
|
20952
|
+
//#endregion
|
|
20953
|
+
//#region src/hypoVault/sharePrice/processor.ts
|
|
20954
|
+
const DEFAULT_CANDIDATE_REFRESH_SECONDS = 3600n;
|
|
20955
|
+
function statusForVaultSharePriceSnapshot(snapshot) {
|
|
20956
|
+
if (snapshot.sharePrice === null) return snapshot.shares <= 0n ? "zero_supply" : "nonpositive_nav";
|
|
20957
|
+
return snapshot.navSource === "computeNAVStateOverride" ? "stale_oracle_override" : "ok";
|
|
20958
|
+
}
|
|
20959
|
+
function createVaultSharePriceProcessor({ chainId, client, candidateRefreshSeconds = DEFAULT_CANDIDATE_REFRESH_SECONDS }) {
|
|
20960
|
+
const candidateCache = new Map();
|
|
20961
|
+
const lastTrustedBlockByVault = new Map();
|
|
20962
|
+
const seededVaults = new Set();
|
|
20963
|
+
async function getCandidates({ strategy, vault, blockTimestamp }) {
|
|
20964
|
+
if (strategy.resolveCandidates === void 0) return void 0;
|
|
20965
|
+
const cached = candidateCache.get(vault.id);
|
|
20966
|
+
if (cached !== void 0 && blockTimestamp - cached.fetchedAtChainTime < candidateRefreshSeconds) return cached.candidates;
|
|
20967
|
+
const candidates = await strategy.resolveCandidates({
|
|
20968
|
+
chainId,
|
|
20969
|
+
vault,
|
|
20970
|
+
client
|
|
20971
|
+
});
|
|
20972
|
+
candidateCache.set(vault.id, {
|
|
20973
|
+
candidates,
|
|
20974
|
+
fetchedAtChainTime: blockTimestamp
|
|
20975
|
+
});
|
|
20976
|
+
return candidates;
|
|
20977
|
+
}
|
|
20978
|
+
async function getRecoveryFromBlock({ vault, recoveryFallbackBlock, loadLastTrustedBlock }) {
|
|
20979
|
+
if (!seededVaults.has(vault.id)) {
|
|
20980
|
+
const persistedBlock = await loadLastTrustedBlock();
|
|
20981
|
+
if (persistedBlock !== void 0) lastTrustedBlockByVault.set(vault.id, persistedBlock);
|
|
20982
|
+
seededVaults.add(vault.id);
|
|
20983
|
+
}
|
|
20984
|
+
return lastTrustedBlockByVault.get(vault.id) ?? recoveryFallbackBlock;
|
|
20985
|
+
}
|
|
20986
|
+
return { async process({ vault, strategy, blockNumber, blockTimestamp, recoveryFallbackBlock, loadLastTrustedBlock, readContractFn, windowLabel = "series" }) {
|
|
20987
|
+
const candidates = await getCandidates({
|
|
20988
|
+
strategy,
|
|
20989
|
+
vault,
|
|
20990
|
+
blockTimestamp
|
|
20991
|
+
});
|
|
20992
|
+
const recoveryFromBlock = await getRecoveryFromBlock({
|
|
20993
|
+
vault,
|
|
20994
|
+
recoveryFallbackBlock,
|
|
20995
|
+
loadLastTrustedBlock
|
|
20996
|
+
});
|
|
20997
|
+
const result = await fetchVaultSharePriceSnapshotWithCandidateRecovery({
|
|
20998
|
+
client,
|
|
20999
|
+
vault,
|
|
21000
|
+
chainId,
|
|
21001
|
+
windowLabel,
|
|
21002
|
+
blockNumber,
|
|
21003
|
+
readContractFn,
|
|
21004
|
+
candidates,
|
|
21005
|
+
recoveryFromBlock
|
|
21006
|
+
});
|
|
21007
|
+
if (result.candidates !== void 0 && result.candidates !== candidates) candidateCache.set(vault.id, {
|
|
21008
|
+
candidates: result.candidates,
|
|
21009
|
+
fetchedAtChainTime: blockTimestamp
|
|
21010
|
+
});
|
|
21011
|
+
const status = statusForVaultSharePriceSnapshot(result.snapshot);
|
|
21012
|
+
if (isTrustedVaultSharePriceStatus(status)) lastTrustedBlockByVault.set(vault.id, blockNumber);
|
|
21013
|
+
return {
|
|
21014
|
+
snapshot: result.snapshot,
|
|
21015
|
+
status
|
|
21016
|
+
};
|
|
21017
|
+
} };
|
|
21018
|
+
}
|
|
20780
21019
|
|
|
20781
21020
|
//#endregion
|
|
20782
21021
|
//#region src/hypoVault/sharePrice/timeseries.ts
|
|
@@ -20936,6 +21175,20 @@ function findLeafForTarget(artifact, description, target) {
|
|
|
20936
21175
|
return leaf;
|
|
20937
21176
|
}
|
|
20938
21177
|
/**
|
|
21178
|
+
* Finds one authorization leaf by execution semantics rather than its human
|
|
21179
|
+
* description. Address arguments disambiguate calls such as ERC-20 approvals
|
|
21180
|
+
* where one token target can authorize multiple spenders.
|
|
21181
|
+
*/
|
|
21182
|
+
function findLeafForTargetAndSignature(artifact, target, functionSignature, addressArguments = []) {
|
|
21183
|
+
const normalizedTarget = target.toLowerCase();
|
|
21184
|
+
const normalizedArguments = addressArguments.map((address) => address.toLowerCase());
|
|
21185
|
+
const matches = artifact.leafs.filter((candidate) => candidate.TargetAddress.toLowerCase() === normalizedTarget && candidate.FunctionSignature === functionSignature && candidate.AddressArguments.length === normalizedArguments.length && candidate.AddressArguments.every((address, index) => address.toLowerCase() === normalizedArguments[index]));
|
|
21186
|
+
if (matches.length !== 1) throw new Error(`Expected exactly one leaf for target ${target}, signature ${functionSignature}, and address arguments [${addressArguments.join(", ")}]; found ${matches.length}`);
|
|
21187
|
+
const [leaf] = matches;
|
|
21188
|
+
if (leaf === void 0) throw new Error("Leaf resolution invariant failed");
|
|
21189
|
+
return leaf;
|
|
21190
|
+
}
|
|
21191
|
+
/**
|
|
20939
21192
|
* Transforms an array of ManageActions into the argument tuple required by
|
|
20940
21193
|
* manageVaultWithMerkleVerification.
|
|
20941
21194
|
*
|
|
@@ -21034,5 +21287,5 @@ function getAlchemyWsRpcUrl(chainId, alchemyApiKey) {
|
|
|
21034
21287
|
}
|
|
21035
21288
|
|
|
21036
21289
|
//#endregion
|
|
21037
|
-
export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_V3_AUTHORIZATION_BLOCK, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, findLeaf, findLeafForTarget, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultPoolInfos, isExpectedHistoricalReadMiss, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, verifyVaultOpenTokenIdsAtBlock };
|
|
21290
|
+
export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_V3_AUTHORIZATION_BLOCK, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, RescueDistributorAbi, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, clearVaultApyStrategyOverride, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, createVaultSharePriceProcessor, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, fetchVaultSharePriceSnapshotWithCandidateRecovery, findLeaf, findLeafForTarget, findLeafForTargetAndSignature, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultPoolInfos, getVaultTransactionFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
|
|
21038
21291
|
//# sourceMappingURL=index.js.map
|