@panoptic-eng/sdk 1.0.65 → 1.0.67
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/{chainDeployments-Do4NaZA_.js → chainDeployments-CwnYHCg7.js} +16 -10
- package/dist/cow/index.js +40 -0
- package/dist/cow/index.js.map +1 -1
- package/dist/{cow-BU9YOHkh.js → cow-CGgPXhY6.js} +1 -1
- package/dist/deployments.js +16 -10
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +34 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -10
- package/dist/index.js.map +1 -1
- package/dist/{irm-DGyKOQXz.js → irm-BDxwCFDm.js} +2 -2
- package/dist/panoptic/v2/index.d.ts +38 -2
- package/dist/panoptic/v2/index.d.ts.map +1 -1
- package/dist/panoptic/v2/index.js +161 -16
- package/dist/panoptic/v2/index.js.map +1 -1
- package/dist/panoptic/v2/react-public.d.ts +38 -2
- package/dist/panoptic/v2/react-public.d.ts.map +1 -1
- package/dist/panoptic/v2/react-public.js +161 -16
- package/dist/panoptic/v2/react-public.js.map +1 -1
- package/dist/{rates-Y0Pbv1_x.js → rates-BHS-Qiu7.js} +75 -5
- package/dist/{router-DxE-iwYF.js → router-BW6TqwOO.js} +2 -2
- package/dist/{router-CheXbrfz.js → router-IDtCENST.js} +2 -2
- package/dist/{transactionFees-BF033Mob.js → transactionFees-B4jz-v7d.js} +1 -1
- package/dist/uniswap/index.js +71 -1
- package/dist/uniswap/index.js.map +1 -1
- package/dist/{v2-QFSAShVj.js → v2-Dgh6JxG_.js} +75 -6
- package/dist/vault-transaction-fees.js +16 -10
- package/dist/vault-transaction-fees.js.map +1 -1
- package/dist/{writes-BA21eyGF.js → writes-CG612Vuk.js} +2 -2
- package/dist/zodiac/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9723,6 +9723,76 @@ function mintableAfterBuffer(balance, required, buffer = DEFAULT_MINT_BUFFER) {
|
|
|
9723
9723
|
return balance > requiredAtMint ? balance - requiredAtMint : 0n;
|
|
9724
9724
|
}
|
|
9725
9725
|
|
|
9726
|
+
//#endregion
|
|
9727
|
+
//#region src/panoptic/v2/reads/riskEngineDeployment.ts
|
|
9728
|
+
const IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
|
|
9729
|
+
const PROXIES = new Set(["0x000000000000ffe5efdb5ae76b9200263c58b4c0", "0x000000000000ffada7c641e2ad6b13b51b50cc94"]);
|
|
9730
|
+
const BLUE_CHIP = {
|
|
9731
|
+
DECIMALS: 10000000n,
|
|
9732
|
+
VEGOID: 8,
|
|
9733
|
+
CROSS_BUFFER_0: 9000000n,
|
|
9734
|
+
CROSS_BUFFER_1: 9000000n,
|
|
9735
|
+
EMA_PERIODS: 4533471891108855828971580n,
|
|
9736
|
+
MAX_TICKS_DELTA: 724n,
|
|
9737
|
+
MAX_CLAMP_DELTA: 149,
|
|
9738
|
+
MAX_TWAP_DELTA_DISPATCH: 513,
|
|
9739
|
+
MAX_SPREAD: 9e4,
|
|
9740
|
+
BP_DECREASE_BUFFER: 1075e4,
|
|
9741
|
+
SELLER_COLLATERAL_RATIO: 2000000n,
|
|
9742
|
+
BUYER_COLLATERAL_RATIO: 100000n,
|
|
9743
|
+
MAINT_MARGIN_RATE: 1000000n,
|
|
9744
|
+
LOAN_MARGIN_DIVISOR: 4n,
|
|
9745
|
+
FORCE_EXERCISE_COST: 5000000n,
|
|
9746
|
+
TARGET_POOL_UTIL: 6666667n,
|
|
9747
|
+
SATURATED_POOL_UTIL: 9000000n,
|
|
9748
|
+
MAX_OPEN_LEGS: 26n,
|
|
9749
|
+
MAX_BONUS: 2000000n,
|
|
9750
|
+
NOTIONAL_FEE: 3,
|
|
9751
|
+
PREMIUM_FEE: 250,
|
|
9752
|
+
PROTOCOL_SPLIT: 5e3,
|
|
9753
|
+
BUILDER_SPLIT: 4e3,
|
|
9754
|
+
MIN_RATE_AT_TARGET: 634195839n
|
|
9755
|
+
};
|
|
9756
|
+
const IMPLEMENTATIONS = {
|
|
9757
|
+
"0x000000000000f0b287c19f606bc3a471f260c502": BLUE_CHIP,
|
|
9758
|
+
"0x000000000000f4901018445c697e1e358dab8dad": {
|
|
9759
|
+
...BLUE_CHIP,
|
|
9760
|
+
CROSS_BUFFER_0: 7500000n,
|
|
9761
|
+
CROSS_BUFFER_1: 7500000n,
|
|
9762
|
+
EMA_PERIODS: 9066943782217711657943160n,
|
|
9763
|
+
MAX_TICKS_DELTA: 953n,
|
|
9764
|
+
MAINT_MARGIN_RATE: 2500000n
|
|
9765
|
+
}
|
|
9766
|
+
};
|
|
9767
|
+
/** Resolve immutable getters from the implementation manifest and read dynamic state at the same block. */
|
|
9768
|
+
async function riskEngineMulticall(client, parameters) {
|
|
9769
|
+
const calls = parameters.contracts;
|
|
9770
|
+
const proxies = [...new Set(calls.map((call) => call.address.toLowerCase()))].filter((address) => PROXIES.has(address));
|
|
9771
|
+
if (proxies.length === 0) return client.multicall(parameters);
|
|
9772
|
+
const manifests = new Map(await Promise.all(proxies.map(async (address) => {
|
|
9773
|
+
const slot = await client.getStorageAt({
|
|
9774
|
+
address,
|
|
9775
|
+
slot: IMPLEMENTATION_SLOT,
|
|
9776
|
+
blockNumber: parameters.blockNumber
|
|
9777
|
+
});
|
|
9778
|
+
const implementation = slot?.length === 66 ? `0x${slot.slice(-40)}`.toLowerCase() : "";
|
|
9779
|
+
const manifest = IMPLEMENTATIONS[implementation];
|
|
9780
|
+
if (!manifest) throw new Error(`Unknown RiskEngine implementation ${implementation || "(missing)"} for ${address}; update the SDK deployment parameters`);
|
|
9781
|
+
return [address, manifest];
|
|
9782
|
+
})));
|
|
9783
|
+
const values = calls.map((call) => call.args?.length ? void 0 : manifests.get(call.address.toLowerCase())?.[call.functionName]);
|
|
9784
|
+
const liveCalls = calls.filter((_, index) => values[index] === void 0);
|
|
9785
|
+
const liveResults = liveCalls.length === 0 ? [] : await client.multicall({
|
|
9786
|
+
...parameters,
|
|
9787
|
+
contracts: liveCalls
|
|
9788
|
+
});
|
|
9789
|
+
let liveIndex = 0;
|
|
9790
|
+
return values.map((value) => value === void 0 ? liveResults[liveIndex++] : parameters.allowFailure === false ? value : {
|
|
9791
|
+
status: "success",
|
|
9792
|
+
result: value
|
|
9793
|
+
});
|
|
9794
|
+
}
|
|
9795
|
+
|
|
9726
9796
|
//#endregion
|
|
9727
9797
|
//#region src/panoptic/v2/reads/pool.ts
|
|
9728
9798
|
const erc20Abi$1 = [
|
|
@@ -9936,7 +10006,7 @@ async function getPool(params) {
|
|
|
9936
10006
|
abi: uniswapV3PoolAbi,
|
|
9937
10007
|
functionName: "liquidity"
|
|
9938
10008
|
} : null;
|
|
9939
|
-
const [dynamicResults, _meta] = await Promise.all([client
|
|
10009
|
+
const [dynamicResults, _meta] = await Promise.all([riskEngineMulticall(client, {
|
|
9940
10010
|
contracts: [
|
|
9941
10011
|
{
|
|
9942
10012
|
address: poolAddress,
|
|
@@ -10229,10 +10299,10 @@ async function getOracleState(params) {
|
|
|
10229
10299
|
_meta
|
|
10230
10300
|
};
|
|
10231
10301
|
}
|
|
10232
|
-
/**
|
|
10302
|
+
/** Resolve the oracle constants for a specific deployed RiskEngine at the target block. */
|
|
10233
10303
|
async function getOracleRiskParameters(params) {
|
|
10234
10304
|
const targetBlockNumber = params.blockNumber ?? await params.client.getBlockNumber();
|
|
10235
|
-
const [[emaPeriods, maxTicksDelta, maxClampDelta], _meta] = await Promise.all([params.client
|
|
10305
|
+
const [[emaPeriods, maxTicksDelta, maxClampDelta], _meta] = await Promise.all([riskEngineMulticall(params.client, {
|
|
10236
10306
|
contracts: [
|
|
10237
10307
|
{
|
|
10238
10308
|
address: params.riskEngineAddress,
|
|
@@ -10279,7 +10349,7 @@ async function getRiskParameters(params) {
|
|
|
10279
10349
|
abi: panopticPoolV2Abi,
|
|
10280
10350
|
functionName: "riskEngine"
|
|
10281
10351
|
});
|
|
10282
|
-
const [riskEngineResults, _meta] = await Promise.all([client
|
|
10352
|
+
const [riskEngineResults, _meta] = await Promise.all([riskEngineMulticall(client, {
|
|
10283
10353
|
contracts: [
|
|
10284
10354
|
{
|
|
10285
10355
|
address: riskEngineAddress,
|
|
@@ -11964,4 +12034,4 @@ function formatPerSecondRateWadAsAprPct(ratePerSecondWad, precision) {
|
|
|
11964
12034
|
}
|
|
11965
12035
|
|
|
11966
12036
|
//#endregion
|
|
11967
|
-
export { AccountInsolventError, AlreadyInitializedError, BatchValidationError, BelowMinimumRedemptionError, CastingError, ChunkHasZeroLiquidityError, ChunkLimitError, CrossPoolError, DEFAULT_MAX_SPREAD, DEFAULT_MINT_BUFFER, DEFAULT_VEGOID, DepositTooLargeError, DuplicateTokenIdError, EffectiveLiquidityAboveThresholdError, ExceedsMaximumRedemptionError, InputListFailError, InsufficientCreditLiquidityError, InvalidBuilderCodeError, InvalidHistoryRangeError, InvalidTickBoundError, InvalidTickError, InvalidTickLimitsError, InvalidTokenIdParameterError, InvalidUniswapCallbackError, LEG_BITS, LEG_LIMITS, LEG_MASKS, LengthMismatchError, LiquidityTooHighError, LoanSlotExhaustedError, MINT_BUFFER, MINT_BUFFER_DENOMINATOR, MaxRetriesExceededError, MissingPositionIdsError, MulticallNoDataError, MulticallResultFailedError, MulticallResultMissingError, NetLiquidityZeroError, NetworkMismatchError, NoLegsExercisableError, NoLoanPositionsError, NotALongLegError, NotBuilderError, NotEnoughLiquidityInChunkError, NotEnoughTokensError, NotGuardianError, NotMarginCalledError, NotPanopticPoolError, OracleRateLimitedError, PanopticError, PanopticHelperNotDeployedError, PanopticValidationError, PoolNotInitializedError, PositionCountNotZeroError, PositionNotOwnedError, PositionSnapshotNotFoundError, PositionTooLargeError, PriceBoundFailError, PriceImpactTooLargeError, ProviderLagError, ReentrancyError, RpcError, RpcResponseError, STANDARD_TICK_WIDTHS, STRIKE_CONVERSION_FACTOR, SafeModeError, StaleDataError, StaleOracleError, StorageDataNotFoundError, SwapTokenMismatchError, SyncTimeoutError, TOKEN_ID_BITS, TokenIdHasZeroLegsError, TooManyLegsOpenError, TransferFailedError, UnauthorizedUniswapCallbackError, UnderOverFlowError, UnhealthyPoolError, UnsafePremiumSettlementError, WrongPoolIdError, WrongUniswapPoolError, ZeroAddressError, ZeroCollateralRequirementError, annualizePerSecondRateWad, applyMintBuffer, applyMintBufferPerToken, availableToBorrow, clearTrackedPositions, collateralTrackerV2Abi, createFileStorage, createMemoryStorage, createTxResult, decodeAllDispatchCalldata, decodeDispatchCalldata, decodeLeftRightSigned, decodeLeftRightUnsigned, decodeOraclePack, decodeOracleRiskParameters, decodeOracleTiming, decodePosition, decodePositionBalance$1 as decodePositionBalance, decodeTickSpacing, diagnoseOracleSafeMode, fetchPoolId, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, formatRateWad, formatTokenAmount, formatTokenAmountSigned, formatTokenDelta, formatTokenFlow, formatWad, formatWadPercent, formatWadSigned, getBlockMeta, getClosedPositionsKey, getOpenPositionIds, getOracleRiskParameters, getOracleState, getPendingPositionsKey, getPool, getPoolCurrentTick, getPoolMetaKey, getPoolMetadata, getPoolPrefix, getPosition, getPositionGreeks, getPositionMetaKey, getPositions, getPositionsKey, getRiskParameters, getSchemaVersionKey, getSyncCheckpointKey, getTrackedChunksKey, getTrackedPositionIds, getUtilization, isPanopticErrorType, isPositionTracked, jsonSerializer, mintableAfterBuffer, oracleEpochAt, panopticErrorsAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticGuardianAbi, panopticLiquidatorAbi, panopticPoolV2Abi, panopticQueryAbi, parsePanopticError, parseTokenAmount, parseWad, recoverSnapshot, recoverSnapshotFromTx, riskEngineAbi, selectDispatchForAccount, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, stateViewAbi, submitWrite, uniswapV3PoolAbi, validateBuilderCode };
|
|
12037
|
+
export { AccountInsolventError, AlreadyInitializedError, BatchValidationError, BelowMinimumRedemptionError, CastingError, ChunkHasZeroLiquidityError, ChunkLimitError, CrossPoolError, DEFAULT_MAX_SPREAD, DEFAULT_MINT_BUFFER, DEFAULT_VEGOID, DepositTooLargeError, DuplicateTokenIdError, EffectiveLiquidityAboveThresholdError, ExceedsMaximumRedemptionError, InputListFailError, InsufficientCreditLiquidityError, InvalidBuilderCodeError, InvalidHistoryRangeError, InvalidTickBoundError, InvalidTickError, InvalidTickLimitsError, InvalidTokenIdParameterError, InvalidUniswapCallbackError, LEG_BITS, LEG_LIMITS, LEG_MASKS, LengthMismatchError, LiquidityTooHighError, LoanSlotExhaustedError, MINT_BUFFER, MINT_BUFFER_DENOMINATOR, MaxRetriesExceededError, MissingPositionIdsError, MulticallNoDataError, MulticallResultFailedError, MulticallResultMissingError, NetLiquidityZeroError, NetworkMismatchError, NoLegsExercisableError, NoLoanPositionsError, NotALongLegError, NotBuilderError, NotEnoughLiquidityInChunkError, NotEnoughTokensError, NotGuardianError, NotMarginCalledError, NotPanopticPoolError, OracleRateLimitedError, PanopticError, PanopticHelperNotDeployedError, PanopticValidationError, PoolNotInitializedError, PositionCountNotZeroError, PositionNotOwnedError, PositionSnapshotNotFoundError, PositionTooLargeError, PriceBoundFailError, PriceImpactTooLargeError, ProviderLagError, ReentrancyError, RpcError, RpcResponseError, STANDARD_TICK_WIDTHS, STRIKE_CONVERSION_FACTOR, SafeModeError, StaleDataError, StaleOracleError, StorageDataNotFoundError, SwapTokenMismatchError, SyncTimeoutError, TOKEN_ID_BITS, TokenIdHasZeroLegsError, TooManyLegsOpenError, TransferFailedError, UnauthorizedUniswapCallbackError, UnderOverFlowError, UnhealthyPoolError, UnsafePremiumSettlementError, WrongPoolIdError, WrongUniswapPoolError, ZeroAddressError, ZeroCollateralRequirementError, annualizePerSecondRateWad, applyMintBuffer, applyMintBufferPerToken, availableToBorrow, clearTrackedPositions, collateralTrackerV2Abi, createFileStorage, createMemoryStorage, createTxResult, decodeAllDispatchCalldata, decodeDispatchCalldata, decodeLeftRightSigned, decodeLeftRightUnsigned, decodeOraclePack, decodeOracleRiskParameters, decodeOracleTiming, decodePosition, decodePositionBalance$1 as decodePositionBalance, decodeTickSpacing, diagnoseOracleSafeMode, fetchPoolId, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, formatRateWad, formatTokenAmount, formatTokenAmountSigned, formatTokenDelta, formatTokenFlow, formatWad, formatWadPercent, formatWadSigned, getBlockMeta, getClosedPositionsKey, getOpenPositionIds, getOracleRiskParameters, getOracleState, getPendingPositionsKey, getPool, getPoolCurrentTick, getPoolMetaKey, getPoolMetadata, getPoolPrefix, getPosition, getPositionGreeks, getPositionMetaKey, getPositions, getPositionsKey, getRiskParameters, getSchemaVersionKey, getSyncCheckpointKey, getTrackedChunksKey, getTrackedPositionIds, getUtilization, isPanopticErrorType, isPositionTracked, jsonSerializer, mintableAfterBuffer, oracleEpochAt, panopticErrorsAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticGuardianAbi, panopticLiquidatorAbi, panopticPoolV2Abi, panopticQueryAbi as panopticQueryAbi$1, parsePanopticError, parseTokenAmount, parseWad, recoverSnapshot, recoverSnapshotFromTx, riskEngineAbi, riskEngineMulticall, selectDispatchForAccount, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, stateViewAbi, submitWrite, uniswapV3PoolAbi, validateBuilderCode };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StateViewAbi } from "./StateView-q4yMpBY6.js";
|
|
2
|
-
import { PanopticError, getBlockMeta, getPoolMetadata, stateViewAbi, submitWrite, uniswapV3PoolAbi } from "./rates-
|
|
2
|
+
import { PanopticError, getBlockMeta, getPoolMetadata, stateViewAbi, submitWrite, uniswapV3PoolAbi } from "./rates-BHS-Qiu7.js";
|
|
3
3
|
import { tickToSqrtPriceX96 } from "./greeks-CGtgLUyh.js";
|
|
4
|
-
import { decodeAllLegs, decodeTokenId } from "./writes-
|
|
4
|
+
import { decodeAllLegs, decodeTokenId } from "./writes-CG612Vuk.js";
|
|
5
5
|
import { BaseError, ContractFunctionRevertedError, ExecutionRevertedError, encodeAbiParameters, encodeFunctionData, encodePacked, isAddressEqual, toHex, zeroAddress } from "viem";
|
|
6
6
|
import Decimal from "decimal.js";
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PanopticError, getBlockMeta, getPool, submitWrite } from "./rates-
|
|
2
|
-
import { AmountExceedsUint128Error, InvalidSwapTokenError, MissingSweepRecipientError, QuoterUnavailableError, getUniswapV4Addresses, universalRouterAbi } from "./router-
|
|
1
|
+
import { PanopticError, getBlockMeta, getPool, submitWrite } from "./rates-BHS-Qiu7.js";
|
|
2
|
+
import { AmountExceedsUint128Error, InvalidSwapTokenError, MissingSweepRecipientError, QuoterUnavailableError, getUniswapV4Addresses, universalRouterAbi } from "./router-BW6TqwOO.js";
|
|
3
3
|
import { BaseError, ContractFunctionRevertedError, encodeAbiParameters, encodeFunctionData, encodePacked, erc20Abi, isAddressEqual, maxUint256, zeroAddress } from "viem";
|
|
4
4
|
|
|
5
5
|
//#region src/uniswap/v4/router/encodeSwap.ts
|
package/dist/uniswap/index.js
CHANGED
|
@@ -6355,6 +6355,76 @@ const ORACLE_TICK_MASK = (1n << 22n) - 1n;
|
|
|
6355
6355
|
//#region src/panoptic/v2/utils/oracleSafeMode.ts
|
|
6356
6356
|
const UINT24_MASK = (1n << 24n) - 1n;
|
|
6357
6357
|
|
|
6358
|
+
//#endregion
|
|
6359
|
+
//#region src/panoptic/v2/reads/riskEngineDeployment.ts
|
|
6360
|
+
const IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
|
|
6361
|
+
const PROXIES = new Set(["0x000000000000ffe5efdb5ae76b9200263c58b4c0", "0x000000000000ffada7c641e2ad6b13b51b50cc94"]);
|
|
6362
|
+
const BLUE_CHIP = {
|
|
6363
|
+
DECIMALS: 10000000n,
|
|
6364
|
+
VEGOID: 8,
|
|
6365
|
+
CROSS_BUFFER_0: 9000000n,
|
|
6366
|
+
CROSS_BUFFER_1: 9000000n,
|
|
6367
|
+
EMA_PERIODS: 4533471891108855828971580n,
|
|
6368
|
+
MAX_TICKS_DELTA: 724n,
|
|
6369
|
+
MAX_CLAMP_DELTA: 149,
|
|
6370
|
+
MAX_TWAP_DELTA_DISPATCH: 513,
|
|
6371
|
+
MAX_SPREAD: 9e4,
|
|
6372
|
+
BP_DECREASE_BUFFER: 1075e4,
|
|
6373
|
+
SELLER_COLLATERAL_RATIO: 2000000n,
|
|
6374
|
+
BUYER_COLLATERAL_RATIO: 100000n,
|
|
6375
|
+
MAINT_MARGIN_RATE: 1000000n,
|
|
6376
|
+
LOAN_MARGIN_DIVISOR: 4n,
|
|
6377
|
+
FORCE_EXERCISE_COST: 5000000n,
|
|
6378
|
+
TARGET_POOL_UTIL: 6666667n,
|
|
6379
|
+
SATURATED_POOL_UTIL: 9000000n,
|
|
6380
|
+
MAX_OPEN_LEGS: 26n,
|
|
6381
|
+
MAX_BONUS: 2000000n,
|
|
6382
|
+
NOTIONAL_FEE: 3,
|
|
6383
|
+
PREMIUM_FEE: 250,
|
|
6384
|
+
PROTOCOL_SPLIT: 5e3,
|
|
6385
|
+
BUILDER_SPLIT: 4e3,
|
|
6386
|
+
MIN_RATE_AT_TARGET: 634195839n
|
|
6387
|
+
};
|
|
6388
|
+
const IMPLEMENTATIONS = {
|
|
6389
|
+
"0x000000000000f0b287c19f606bc3a471f260c502": BLUE_CHIP,
|
|
6390
|
+
"0x000000000000f4901018445c697e1e358dab8dad": {
|
|
6391
|
+
...BLUE_CHIP,
|
|
6392
|
+
CROSS_BUFFER_0: 7500000n,
|
|
6393
|
+
CROSS_BUFFER_1: 7500000n,
|
|
6394
|
+
EMA_PERIODS: 9066943782217711657943160n,
|
|
6395
|
+
MAX_TICKS_DELTA: 953n,
|
|
6396
|
+
MAINT_MARGIN_RATE: 2500000n
|
|
6397
|
+
}
|
|
6398
|
+
};
|
|
6399
|
+
/** Resolve immutable getters from the implementation manifest and read dynamic state at the same block. */
|
|
6400
|
+
async function riskEngineMulticall(client, parameters) {
|
|
6401
|
+
const calls = parameters.contracts;
|
|
6402
|
+
const proxies = [...new Set(calls.map((call) => call.address.toLowerCase()))].filter((address) => PROXIES.has(address));
|
|
6403
|
+
if (proxies.length === 0) return client.multicall(parameters);
|
|
6404
|
+
const manifests = new Map(await Promise.all(proxies.map(async (address) => {
|
|
6405
|
+
const slot = await client.getStorageAt({
|
|
6406
|
+
address,
|
|
6407
|
+
slot: IMPLEMENTATION_SLOT,
|
|
6408
|
+
blockNumber: parameters.blockNumber
|
|
6409
|
+
});
|
|
6410
|
+
const implementation = slot?.length === 66 ? `0x${slot.slice(-40)}`.toLowerCase() : "";
|
|
6411
|
+
const manifest = IMPLEMENTATIONS[implementation];
|
|
6412
|
+
if (!manifest) throw new Error(`Unknown RiskEngine implementation ${implementation || "(missing)"} for ${address}; update the SDK deployment parameters`);
|
|
6413
|
+
return [address, manifest];
|
|
6414
|
+
})));
|
|
6415
|
+
const values = calls.map((call) => call.args?.length ? void 0 : manifests.get(call.address.toLowerCase())?.[call.functionName]);
|
|
6416
|
+
const liveCalls = calls.filter((_, index) => values[index] === void 0);
|
|
6417
|
+
const liveResults = liveCalls.length === 0 ? [] : await client.multicall({
|
|
6418
|
+
...parameters,
|
|
6419
|
+
contracts: liveCalls
|
|
6420
|
+
});
|
|
6421
|
+
let liveIndex = 0;
|
|
6422
|
+
return values.map((value) => value === void 0 ? liveResults[liveIndex++] : parameters.allowFailure === false ? value : {
|
|
6423
|
+
status: "success",
|
|
6424
|
+
result: value
|
|
6425
|
+
});
|
|
6426
|
+
}
|
|
6427
|
+
|
|
6358
6428
|
//#endregion
|
|
6359
6429
|
//#region src/panoptic/v2/reads/pool.ts
|
|
6360
6430
|
const erc20Abi$1 = [
|
|
@@ -6568,7 +6638,7 @@ async function getPool(params) {
|
|
|
6568
6638
|
abi: uniswapV3PoolAbi,
|
|
6569
6639
|
functionName: "liquidity"
|
|
6570
6640
|
} : null;
|
|
6571
|
-
const [dynamicResults, _meta] = await Promise.all([client
|
|
6641
|
+
const [dynamicResults, _meta] = await Promise.all([riskEngineMulticall(client, {
|
|
6572
6642
|
contracts: [
|
|
6573
6643
|
{
|
|
6574
6644
|
address: poolAddress,
|