@panoptic-eng/sdk 1.0.55 → 1.0.56
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/deployments.js +2 -2
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +102 -62
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +270 -50
- package/dist/index.js.map +1 -1
- package/dist/{irm-BsRdsXMS.js → irm-Dwl2er4W.js} +2 -2
- package/dist/panoptic/v2/index.d.ts +147 -1
- package/dist/panoptic/v2/index.d.ts.map +1 -1
- package/dist/panoptic/v2/index.js +266 -22
- package/dist/panoptic/v2/index.js.map +1 -1
- package/dist/panoptic/v2/react-public.d.ts +147 -1
- package/dist/panoptic/v2/react-public.d.ts.map +1 -1
- package/dist/panoptic/v2/react-public.js +266 -22
- package/dist/panoptic/v2/react-public.js.map +1 -1
- package/dist/{router-kAllFA4i.js → router-BDp3WQqI.js} +19 -10
- package/dist/{router-BhJqStSJ.js → router-CJCJkqFo.js} +1 -1
- package/dist/uniswap/index.d.ts +6 -1
- package/dist/uniswap/index.d.ts.map +1 -1
- package/dist/uniswap/index.js +19 -10
- package/dist/uniswap/index.js.map +1 -1
- package/dist/{v2-bpvC_P3W.js → v2-DvrVwC5h.js} +245 -10
- package/dist/zodiac/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StateViewAbi, getAccountCollateral, panopticQueryAbi$1 as panopticQueryAbi, readBlockAndAggregate, requireReturnData } from "./irm-
|
|
1
|
+
import { StateViewAbi, getAccountCollateral, panopticQueryAbi$1 as panopticQueryAbi, readBlockAndAggregate, requireReturnData } from "./irm-Dwl2er4W.js";
|
|
2
2
|
import { AccountInsolventError, ChunkLimitError, DEFAULT_VEGOID, InvalidHistoryRangeError, MulticallResultMissingError, NotEnoughTokensError, PanopticError, PanopticValidationError, SafeModeError, StaleDataError, StorageDataNotFoundError, UnhealthyPoolError, WrongUniswapPoolError, applyMintBufferPerToken, availableToBorrow, collateralTrackerV2Abi, decodeLeftRightSigned, decodeLeftRightUnsigned, decodePositionBalance, getBlockMeta, getClosedPositionsKey, getPendingPositionsKey, getPool, getPoolMetaKey, getPoolMetadata, getPositionMetaKey, getPositionsKey, getTrackedChunksKey, getTrackedPositionIds, isPanopticErrorType, jsonSerializer, mintableAfterBuffer, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticGuardianAbi, panopticLiquidatorAbi, panopticPoolV2Abi, panopticQueryAbi as panopticQueryAbi$1, parsePanopticError, riskEngineAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, stateViewAbi, uniswapV3PoolAbi } from "./rates-B0uPUed1.js";
|
|
3
3
|
import { MAX_TICK, MAX_TRACKED_CHUNKS, MIN_TICK, NO_LOWER_LIQUIDATION_TICK, NO_UPPER_LIQUIDATION_TICK, WAD, calculatePositionDelta, calculatePositionDeltaDebtOnly, calculatePositionGamma, calculatePositionValue, priceToTick, sqrtPriceX96ToTick, tickLimits, tickToPriceDecimalScaled, tickToSqrtPriceX96, toVaultFrameAtTick } from "./greeks-CNi1-cnp.js";
|
|
4
4
|
import { addLegToTokenId, buildBatchDispatchArgs, buildSettleSequenceCalls, buildUniqueCredit, buildUniqueLoan, countLegs, createTokenIdBuilder, decodeAllLegs, decodeTokenId, getPoolTokensForSimulation, loadCheckpoint, resolveTokenIndex, simulateOpenPosition, simulateWithTokenFlow } from "./writes-B4nGIi6h.js";
|
|
5
|
-
import { getLpPositionFunding, getMaxLpPositionSize } from "./router-
|
|
6
|
-
import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, ExecutionRevertedError, decodeFunctionResult, encodeAbiParameters, encodeFunctionData, getAddress, keccak256, toHex, zeroAddress } from "viem";
|
|
5
|
+
import { getLpPositionFunding, getMaxLpPositionSize } from "./router-BDp3WQqI.js";
|
|
6
|
+
import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, ExecutionRevertedError, decodeFunctionResult, encodeAbiParameters, encodeFunctionData, getAddress, keccak256, parseAbi, toHex, zeroAddress } from "viem";
|
|
7
7
|
import { multicall } from "viem/actions";
|
|
8
8
|
import Decimal from "decimal.js";
|
|
9
9
|
|
|
@@ -1605,10 +1605,10 @@ async function getChunkLiquidities(params) {
|
|
|
1605
1605
|
*/
|
|
1606
1606
|
async function getFactoryTokenURI(params) {
|
|
1607
1607
|
const { client, factoryAddress, version, tokenId } = params;
|
|
1608
|
-
const abi = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1608
|
+
const abi$1 = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1609
1609
|
return client.readContract({
|
|
1610
1610
|
address: factoryAddress,
|
|
1611
|
-
abi,
|
|
1611
|
+
abi: abi$1,
|
|
1612
1612
|
functionName: "tokenURI",
|
|
1613
1613
|
args: [tokenId]
|
|
1614
1614
|
});
|
|
@@ -1618,10 +1618,10 @@ async function getFactoryTokenURI(params) {
|
|
|
1618
1618
|
*/
|
|
1619
1619
|
async function getFactoryOwnerOf(params) {
|
|
1620
1620
|
const { client, factoryAddress, version, tokenId } = params;
|
|
1621
|
-
const abi = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1621
|
+
const abi$1 = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1622
1622
|
return client.readContract({
|
|
1623
1623
|
address: factoryAddress,
|
|
1624
|
-
abi,
|
|
1624
|
+
abi: abi$1,
|
|
1625
1625
|
functionName: "ownerOf",
|
|
1626
1626
|
args: [tokenId]
|
|
1627
1627
|
});
|
|
@@ -1631,10 +1631,10 @@ async function getFactoryOwnerOf(params) {
|
|
|
1631
1631
|
*/
|
|
1632
1632
|
async function getFactoryConstructMetadata(params) {
|
|
1633
1633
|
const { client, factoryAddress, version, panopticPoolAddress, symbol0, symbol1, fee } = params;
|
|
1634
|
-
const abi = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1634
|
+
const abi$1 = version === "v3" ? panopticFactoryV3Abi : panopticFactoryV4Abi;
|
|
1635
1635
|
return client.readContract({
|
|
1636
1636
|
address: factoryAddress,
|
|
1637
|
-
abi,
|
|
1637
|
+
abi: abi$1,
|
|
1638
1638
|
functionName: "constructMetadata",
|
|
1639
1639
|
args: [
|
|
1640
1640
|
panopticPoolAddress,
|
|
@@ -4420,6 +4420,8 @@ async function getUniswapFeeHistory(params) {
|
|
|
4420
4420
|
return {
|
|
4421
4421
|
blockNumber: blockMetadata[i].blockNumber,
|
|
4422
4422
|
blockTimestamp: blockMetadata[i].blockTimestamp,
|
|
4423
|
+
currentTick: bd.currentTick,
|
|
4424
|
+
sqrtPriceX96: bd.sqrtPriceX96,
|
|
4423
4425
|
fees: {
|
|
4424
4426
|
token0: total0 - initialFees0,
|
|
4425
4427
|
token1: total1 - initialFees1
|
|
@@ -4519,6 +4521,7 @@ async function fetchV3BlockSnapshot(client, poolAddress, blockNumber, uniqueTick
|
|
|
4519
4521
|
}
|
|
4520
4522
|
return {
|
|
4521
4523
|
currentTick: slot0Result[1],
|
|
4524
|
+
sqrtPriceX96: slot0Result[0],
|
|
4522
4525
|
feeGrowthGlobal0,
|
|
4523
4526
|
feeGrowthGlobal1,
|
|
4524
4527
|
tickData
|
|
@@ -4562,6 +4565,7 @@ async function fetchV4BlockSnapshot(client, stateViewAddress, poolId, blockNumbe
|
|
|
4562
4565
|
}
|
|
4563
4566
|
return {
|
|
4564
4567
|
currentTick: slot0Result[1],
|
|
4568
|
+
sqrtPriceX96: slot0Result[0],
|
|
4565
4569
|
feeGrowthGlobal0: feeGrowthResult[0],
|
|
4566
4570
|
feeGrowthGlobal1: feeGrowthResult[1],
|
|
4567
4571
|
tickData
|
|
@@ -9844,4 +9848,235 @@ function calculateVarianceProfile(candles, isAssetToken0, intervalSeconds = 3600
|
|
|
9844
9848
|
}
|
|
9845
9849
|
|
|
9846
9850
|
//#endregion
|
|
9847
|
-
|
|
9851
|
+
//#region src/panoptic/v2/greeks/marketPnl.ts
|
|
9852
|
+
/** Values and prices use raw token units, matching the net-liquidation-value read. */
|
|
9853
|
+
function netLiquidationValueInQuote(value0, value1, tick, isAssetToken0) {
|
|
9854
|
+
const price = new Decimal("1.0001").pow(tick.toString());
|
|
9855
|
+
return isAssetToken0 ? new Decimal(value1.toString()).plus(new Decimal(value0.toString()).mul(price)) : new Decimal(value0.toString()).plus(new Decimal(value1.toString()).div(price));
|
|
9856
|
+
}
|
|
9857
|
+
/** Apply the accrued-premium offset and optional asset collateral to a relative NLV curve. */
|
|
9858
|
+
function marketPnlInQuote({ relativeValue, premium, assetBalance = 0n, price, baselinePrice }) {
|
|
9859
|
+
return new Decimal(relativeValue).plus(premium).plus(new Decimal(assetBalance.toString()).mul(new Decimal(price).minus(baselinePrice)));
|
|
9860
|
+
}
|
|
9861
|
+
/** Map a common reference-asset shock into a pool tick and quote-token USD multiplier. */
|
|
9862
|
+
function marketScenario({ currentTick, isAssetToken0, assetBeta, quoteBeta, shock }) {
|
|
9863
|
+
const assetFactor = new Decimal(assetBeta).mul(shock).plus(1);
|
|
9864
|
+
const quoteFactor = new Decimal(quoteBeta).mul(shock).plus(1);
|
|
9865
|
+
if (!assetFactor.isFinite() || !quoteFactor.isFinite() || assetFactor.lte(0) || quoteFactor.lte(0)) return null;
|
|
9866
|
+
const shift = assetFactor.div(quoteFactor).ln().div(new Decimal("1.0001").ln());
|
|
9867
|
+
const tick = currentTick + BigInt(shift.mul(isAssetToken0 ? 1 : -1).round().toFixed(0));
|
|
9868
|
+
return tick < -887272n || tick > 887272n ? null : {
|
|
9869
|
+
tick,
|
|
9870
|
+
quoteFactor
|
|
9871
|
+
};
|
|
9872
|
+
}
|
|
9873
|
+
/** Finite-difference risk in raw asset/quote units from three ordered quote prices. */
|
|
9874
|
+
function marketRiskFromValues({ lower, current, upper }) {
|
|
9875
|
+
const left = new Decimal(current.price).minus(lower.price);
|
|
9876
|
+
const right = new Decimal(upper.price).minus(current.price);
|
|
9877
|
+
if (left.lte(0) || right.lte(0)) return null;
|
|
9878
|
+
const leftSlope = new Decimal(current.value).minus(lower.value).div(left);
|
|
9879
|
+
const rightSlope = new Decimal(upper.value).minus(current.value).div(right);
|
|
9880
|
+
const delta = leftSlope.mul(right).plus(rightSlope.mul(left)).div(left.plus(right));
|
|
9881
|
+
const gamma = rightSlope.minus(leftSlope).mul(2).div(left.plus(right)).mul(new Decimal(current.price).pow(2));
|
|
9882
|
+
return {
|
|
9883
|
+
asset: delta,
|
|
9884
|
+
quote: new Decimal(current.value).minus(delta.mul(current.price)),
|
|
9885
|
+
gamma
|
|
9886
|
+
};
|
|
9887
|
+
}
|
|
9888
|
+
|
|
9889
|
+
//#endregion
|
|
9890
|
+
//#region src/panoptic/v2/reads/collateralCurve.ts
|
|
9891
|
+
/** Native-token margin inputs, independent of the tick used to display the curve. */
|
|
9892
|
+
async function getCollateralCurveInputs({ client, poolAddress, account, tokenIds, collateral0, collateral1, blockNumber }) {
|
|
9893
|
+
const ids = [...tokenIds].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
|
|
9894
|
+
const [tracker0, tracker1] = await Promise.all([collateral0 ?? client.readContract({
|
|
9895
|
+
address: poolAddress,
|
|
9896
|
+
abi: panopticPoolV2Abi,
|
|
9897
|
+
functionName: "collateralToken0",
|
|
9898
|
+
blockNumber
|
|
9899
|
+
}), collateral1 ?? client.readContract({
|
|
9900
|
+
address: poolAddress,
|
|
9901
|
+
abi: panopticPoolV2Abi,
|
|
9902
|
+
functionName: "collateralToken1",
|
|
9903
|
+
blockNumber
|
|
9904
|
+
})]);
|
|
9905
|
+
const [positions, balances0, balances1] = await Promise.all([
|
|
9906
|
+
client.readContract({
|
|
9907
|
+
address: poolAddress,
|
|
9908
|
+
abi: panopticPoolV2Abi,
|
|
9909
|
+
functionName: "getFullPositionsData",
|
|
9910
|
+
args: [
|
|
9911
|
+
account,
|
|
9912
|
+
false,
|
|
9913
|
+
ids
|
|
9914
|
+
],
|
|
9915
|
+
blockNumber
|
|
9916
|
+
}),
|
|
9917
|
+
client.readContract({
|
|
9918
|
+
address: tracker0,
|
|
9919
|
+
abi: collateralTrackerV2Abi,
|
|
9920
|
+
functionName: "assetsAndInterest",
|
|
9921
|
+
args: [account],
|
|
9922
|
+
blockNumber
|
|
9923
|
+
}),
|
|
9924
|
+
client.readContract({
|
|
9925
|
+
address: tracker1,
|
|
9926
|
+
abi: collateralTrackerV2Abi,
|
|
9927
|
+
functionName: "assetsAndInterest",
|
|
9928
|
+
args: [account],
|
|
9929
|
+
blockNumber
|
|
9930
|
+
})
|
|
9931
|
+
]);
|
|
9932
|
+
return [
|
|
9933
|
+
positions[0],
|
|
9934
|
+
positions[1],
|
|
9935
|
+
...positions[2],
|
|
9936
|
+
...balances0,
|
|
9937
|
+
...balances1
|
|
9938
|
+
];
|
|
9939
|
+
}
|
|
9940
|
+
/** A spot-independent sampling grid, including exact liquidation boundaries and their neighbours. */
|
|
9941
|
+
function collateralCurveTicks(tokenIds, liquidationTicks) {
|
|
9942
|
+
const strikes = tokenIds.flatMap((id) => decodeTokenId(id).legs.map((leg) => leg.strike));
|
|
9943
|
+
const center = strikes.length === 0 ? 0n : strikes.reduce((a, b) => a + b, 0n) / BigInt(strikes.length);
|
|
9944
|
+
const ticks = new Set([-887272n, 887272n]);
|
|
9945
|
+
for (let i = 0n; i < 250n; i++) {
|
|
9946
|
+
ticks.add(center - 25000n + 50000n * i / 249n);
|
|
9947
|
+
ticks.add(-887272n + 1774544n * i / 249n);
|
|
9948
|
+
}
|
|
9949
|
+
for (const tick of liquidationTicks) {
|
|
9950
|
+
ticks.add(tick - 1n);
|
|
9951
|
+
ticks.add(tick);
|
|
9952
|
+
ticks.add(tick + 1n);
|
|
9953
|
+
}
|
|
9954
|
+
return [...ticks].filter((tick) => tick >= -887272n && tick <= 887272n).sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
|
|
9955
|
+
}
|
|
9956
|
+
/** Collateral requirements and liquidation boundaries evaluated at one block. */
|
|
9957
|
+
async function getCollateralCurve({ client, poolAddress, account, queryAddress, tokenIds, blockNumber: requestedBlockNumber }) {
|
|
9958
|
+
const blockNumber = requestedBlockNumber ?? await client.getBlockNumber();
|
|
9959
|
+
const boundaries = await client.readContract({
|
|
9960
|
+
address: queryAddress,
|
|
9961
|
+
abi: panopticQueryAbi,
|
|
9962
|
+
functionName: "getLiquidationPrices",
|
|
9963
|
+
args: [
|
|
9964
|
+
poolAddress,
|
|
9965
|
+
account,
|
|
9966
|
+
tokenIds
|
|
9967
|
+
],
|
|
9968
|
+
blockNumber
|
|
9969
|
+
});
|
|
9970
|
+
const liquidationTicks = boundaries.map(BigInt).filter((tick) => tick >= -887272n && tick <= 887272n);
|
|
9971
|
+
const ticks = collateralCurveTicks(tokenIds, liquidationTicks);
|
|
9972
|
+
const contracts = ticks.map((tick) => ({
|
|
9973
|
+
address: queryAddress,
|
|
9974
|
+
abi: panopticQueryAbi,
|
|
9975
|
+
functionName: "checkCollateral",
|
|
9976
|
+
args: [
|
|
9977
|
+
poolAddress,
|
|
9978
|
+
account,
|
|
9979
|
+
tokenIds,
|
|
9980
|
+
Number(tick)
|
|
9981
|
+
]
|
|
9982
|
+
}));
|
|
9983
|
+
const chunks = [];
|
|
9984
|
+
for (let i = 0; i < contracts.length; i += 100) chunks.push(contracts.slice(i, i + 100));
|
|
9985
|
+
const results = (await Promise.all(chunks.map((batch) => multicall(client, {
|
|
9986
|
+
contracts: batch,
|
|
9987
|
+
blockNumber,
|
|
9988
|
+
allowFailure: false
|
|
9989
|
+
})))).flat();
|
|
9990
|
+
return {
|
|
9991
|
+
blockNumber,
|
|
9992
|
+
liquidationTicks,
|
|
9993
|
+
points: results.map(([collateral0, required0, collateral1, required1], i) => ({
|
|
9994
|
+
tick: ticks[i],
|
|
9995
|
+
collateral0,
|
|
9996
|
+
required0,
|
|
9997
|
+
collateral1,
|
|
9998
|
+
required1
|
|
9999
|
+
}))
|
|
10000
|
+
};
|
|
10001
|
+
}
|
|
10002
|
+
|
|
10003
|
+
//#endregion
|
|
10004
|
+
//#region src/panoptic/v2/reads/positionValueCurve.ts
|
|
10005
|
+
const abi = parseAbi(["function computeNetLiquidationValue(uint256[] positionIdList, uint256 shortPremium, uint256 longPremium, uint256[] positionBalanceArray, int24[] atTicks) pure returns (int256[] value0, int256[] value1)"]);
|
|
10006
|
+
/** Stable identity for a position-dependent curve; premiums and spot are separate inputs. */
|
|
10007
|
+
function positionValueKey(positions) {
|
|
10008
|
+
return [...positions].sort((a, b) => a.tokenId < b.tokenId ? -1 : a.tokenId > b.tokenId ? 1 : 0).map(({ tokenId, positionSize }) => `${tokenId}:${positionSize}`).join(",");
|
|
10009
|
+
}
|
|
10010
|
+
/** All changes in the curve's active liquidity, independent of the current market tick. */
|
|
10011
|
+
function positionValueTicks(positions) {
|
|
10012
|
+
const ticks = new Set([-887272n, 887272n]);
|
|
10013
|
+
for (const { tokenId, positionSize } of positions) {
|
|
10014
|
+
if (tokenId < 0n || tokenId >= 1n << 256n || positionSize <= 0n || positionSize >= 1n << 128n) throw new RangeError("Invalid position id or size");
|
|
10015
|
+
const { legs, tickSpacing } = decodeTokenId(tokenId);
|
|
10016
|
+
for (const leg of legs) {
|
|
10017
|
+
if (leg.width === 0n) continue;
|
|
10018
|
+
const width = leg.width * tickSpacing;
|
|
10019
|
+
const lower = leg.strike - width / 2n;
|
|
10020
|
+
const upper = leg.strike + (width + 1n) / 2n;
|
|
10021
|
+
if (lower < -887272n || upper > 887272n || lower >= upper) throw new RangeError("Invalid position range");
|
|
10022
|
+
ticks.add(lower);
|
|
10023
|
+
ticks.add(upper);
|
|
10024
|
+
}
|
|
10025
|
+
}
|
|
10026
|
+
return [...ticks].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
|
|
10027
|
+
}
|
|
10028
|
+
/** Read the immutable, premium-free part of NLV from the deployed pure calculation. */
|
|
10029
|
+
async function getPositionValueCurve({ client, queryAddress, positions }) {
|
|
10030
|
+
const ticks = positionValueTicks(positions);
|
|
10031
|
+
const [values0, values1] = await client.readContract({
|
|
10032
|
+
address: queryAddress,
|
|
10033
|
+
abi,
|
|
10034
|
+
functionName: "computeNetLiquidationValue",
|
|
10035
|
+
args: [
|
|
10036
|
+
positions.map((p) => p.tokenId),
|
|
10037
|
+
0n,
|
|
10038
|
+
0n,
|
|
10039
|
+
positions.map((p) => p.positionSize),
|
|
10040
|
+
ticks.map(Number)
|
|
10041
|
+
]
|
|
10042
|
+
});
|
|
10043
|
+
return ticks.map((tick, i) => ({
|
|
10044
|
+
tick,
|
|
10045
|
+
value0: values0[i],
|
|
10046
|
+
value1: values1[i]
|
|
10047
|
+
}));
|
|
10048
|
+
}
|
|
10049
|
+
/**
|
|
10050
|
+
* Between leg boundaries, token0 is affine in inverse sqrt price and token1 in sqrt price.
|
|
10051
|
+
* Endpoint interpolation differs from contract integer rounding by at most a few wei per leg.
|
|
10052
|
+
*/
|
|
10053
|
+
function preparePositionValueCurve(curve) {
|
|
10054
|
+
if (curve.length < 2) throw new RangeError("Incomplete position value curve");
|
|
10055
|
+
for (let i = 0; i < curve.length; i++) if (curve[i].tick < -887272n || curve[i].tick > 887272n || i > 0 && curve[i].tick <= curve[i - 1].tick) throw new RangeError("Invalid position value curve ticks");
|
|
10056
|
+
const points = curve.map((point) => ({
|
|
10057
|
+
...point,
|
|
10058
|
+
sqrt: tickToSqrtPriceX96(point.tick)
|
|
10059
|
+
}));
|
|
10060
|
+
return (tick) => {
|
|
10061
|
+
if (tick < points[0].tick || tick > points[points.length - 1].tick) throw new RangeError("Tick outside position value curve");
|
|
10062
|
+
let lo = 0;
|
|
10063
|
+
let hi = points.length - 1;
|
|
10064
|
+
while (hi - lo > 1) {
|
|
10065
|
+
const mid = Math.floor((lo + hi) / 2);
|
|
10066
|
+
if (points[mid].tick <= tick) lo = mid;
|
|
10067
|
+
else hi = mid;
|
|
10068
|
+
}
|
|
10069
|
+
const left = points[lo];
|
|
10070
|
+
const right = points[hi];
|
|
10071
|
+
const sqrt = tickToSqrtPriceX96(tick);
|
|
10072
|
+
const numerator = sqrt - left.sqrt;
|
|
10073
|
+
const denominator = right.sqrt - left.sqrt;
|
|
10074
|
+
return {
|
|
10075
|
+
value0: left.value0 + (right.value0 - left.value0) * numerator * right.sqrt / (denominator * sqrt),
|
|
10076
|
+
value1: left.value1 + (right.value1 - left.value1) * numerator / denominator
|
|
10077
|
+
};
|
|
10078
|
+
};
|
|
10079
|
+
}
|
|
10080
|
+
|
|
10081
|
+
//#endregion
|
|
10082
|
+
export { DEFAULT_MIN_SWAP_RATIO_BPS, DEFAULT_RECONNECT_CONFIG, MARKET_INDICATOR_PERIODS, REQUIRED_BASE_ERROR_SENTINEL, STRIKE_LADDER_TARGET_STRIKES, VARIANCE_RATIO_LAG, addPendingPosition, addTrackedChunks, apportion, assertCanBurn, assertCanForceExercise, assertCanLiquidate, assertCanMint, assertFresh, assertHealthy, assertLpPositionFunded, assertTradeable, buildCreditWrappedDispatch, buildSfpmSwapCalldata, buildSfpmSwapPlan, buildTemporaryLoanRecoveryDispatch, buildTokenShortfallRecoveryDispatch, calculateAccountGreeksPure, calculateMarketIndicator, calculateSpreadWad, calculateVarianceProfile, checkCollateralAcrossTicks, classifyStrategyGroups, classifyStrike, cleanupStalePendingPositions, clearPendingPositions, clearTrackedChunks, clearTradeHistory, collateralCurveTicks, collateralRuleKindFor, computeV4PoolId, confirmPendingPosition, convertToAssets, convertToShares, createEventPoller, createEventSubscription, createFlowNeutralTokenId, decodePanopticTokenURI, emptyLiquidateParams, encodePoolKeyBytes, encodeV3PoolKeyBytes, ensureSfpmV3PoolInitialized, estimateBlockNumbers, estimateCollateralBreakdown, estimateCollateralRequired, failPendingPosition, feesFromFeeGrowthDelta, fetchSfpmV3PoolId, getAccountBuyingPower, getAccountGreeks, getAccountHistory, getChunkLiquidities, getChunkSpreads, getClosedPositions, getCollateralCurve, getCollateralCurveInputs, getCollateralRequiredBase, getCollateralSharePrices, getCollateralTotalAssetsBatch, getDeltaHedgeParams, getEnforcedTickLimits, getExecutableLpMaxSize, getFactoryConstructMetadata, getFactoryOwnerOf, getFactoryTokenURI, getGuardianUnlockState, getHedgeLimits, getItmAmounts, getMarginBuffer, getMaxPositionSize, getMaxRedeem, getMaxWithdrawable, getNativeTokenPrice, getNotEnoughTokensError, getOpenPositionPreview, getPanopticPoolAddress, getPanopticPoolFromPoolId, getPendingPositions, getPoolCollateralAddresses, getPoolLiquidities, getPortfolioValue, getPositionChunkData, getPositionEnrichmentData, getPositionValueCurve, getPriceHistory, getRealizedPnL, getRequiredCreditForITM, getSafeMode, getStreamiaHistory, getSyncStatus, getTrackedChunks, getTradeHistory, getUniswapFeeHistory, getUniswapV3LpPositionState, getUniswapV3PoolFromId, getUniswapV3PoolInfo, getUniswapV3PoolLiquidities, getUniswapV4LpPositionState, getUniswapV4PoolBasicState, getUniswapV4PoolInfo, getUniswapV4PoolKeyFromId, getUniswapV4PoolLiquidities, interpolateBlocks, isGasError, isNonceError, isRetryableRpcError, isolateGroupTokenId, ladderStrikeSequence, logReturns, marketPnlInQuote, marketRiskFromValues, marketScenario, minePoolAddress, minePoolAddressLocalAsync, multicallRead, netLiquidationValueInQuote, optimizeTokenIdRiskPartners, parseCollateralLog, parsePoolLog, positionValueKey, positionValueTicks, prepareIndicatorCandles, preparePositionValueCurve, previewDeposit, previewMint, previewRedeem, previewWithdraw, quoteLiquidation, quoteOneTokenFlow, quoteSfpmSwap, quoteTemporaryLoanRecovery, quoteTokenShortfallRecovery, realizedBeta, removeTrackedChunks, resolveBlockNumbers, resolveLadderStrike, resolvePanopticPoolFromPoolId, resolveUniswapV4PoolKey, saveClosedPosition, scaleCollateralRequired, scanChunks, screenAccountExact, simulateBatchDispatch, simulateClosePosition, simulateDeployNewPool, simulateDeposit, simulateDispatch, simulateForceExercise, simulateLiquidate, simulateSFPMBurn, simulateSFPMMint, simulateSwapExactIn, simulateSwapExactOut, simulateWithdraw, slippageBpsToTickDistance, watchEvents };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["rolesV2Abi","ContractFunctionArgs","ContractFunctionName","rolesV2Abi","ScopeFunctionName","ScopeStep","Name","ScopeStepsPublicClient","Promise","ScopeStepsWalletClient","applyScopeSteps","Hex","ConditionFlat","addressEqualCompValue","customCompValue","sizeCapExtra","ParameterType","Operator","CANONICAL_ADAPTERS","ExecutionOptions","Hex","ScopeStep","ConditionFlat","DELEVERAGER_ROLE_KEY","buildDeleveragerDispatchConditions","buildDeleveragerRoleSteps","Hex","ScopeStep","ConditionFlat","DISPATCH_SELECTOR","roleKey","buildDispatchCustomConditions","buildDispatchCustomRoleSteps","Address","Hex","ScopeStep","ConditionFlat","LIQUIDATE_SELECTOR","LiquidatorConditionsParams","buildLiquidatorConditions","buildLiquidatorRoleSteps","Hex","ConditionFlat","LOAN_BITMASK_WINDOW_SHIFTS","loanBitmaskCompValueAt","buildLoanOnlyDispatchConditions","WITHDRAW_SELECTOR","DEPOSIT_SELECTOR","EXECUTE_SELECTOR","buildWithdrawConditions","buildDepositConditions","Hex","ScopeStep","ConditionFlat","MAINTENANCE_ROLE_KEY","DISPATCH_FROM_SELECTOR","buildDispatchFromConditions","buildMaintenanceRoleSteps","Hex","ScopeStep","ROLLER_ROLE_KEY","buildRollerRoleSteps","Hex","ScopeStep","ConditionFlat","MULTICALL_SELECTOR","MULTISEND_SELECTOR","WETH_DEPOSIT_SELECTOR","WETH_WITHDRAW_SELECTOR","WITHDRAW_WITH_POSITIONS_SELECTOR","buildWithdrawWithPositionsConditions","sfpmPoolIdPinExtra","buildSfpmSwapConditions","buildSfpmSwapVenueSteps","Hex","ScopeStep","SIZE_ADJUSTER_ROLE_KEY","buildSizeAdjusterRoleSteps","legFieldMask","loanWidthFieldsMask","strikeFieldsMask","optionRatioFieldsMask","isPureLoanTokenId","loanBitmaskCondition"],"sources":["../../src/zodiac/rolesAbi.d.ts","../../src/zodiac/applySteps.d.ts","../../src/zodiac/conditions.d.ts","../../src/zodiac/constants.d.ts","../../src/zodiac/roles/deleverager.d.ts","../../src/zodiac/roles/dispatchCustomRole.d.ts","../../src/zodiac/roles/liquidator.d.ts","../../src/zodiac/roles/loanHedger.d.ts","../../src/zodiac/roles/maintenance.d.ts","../../src/zodiac/roles/roller.d.ts","../../src/zodiac/roles/sfpmSwap.d.ts","../../src/zodiac/roles/sizeAdjuster.d.ts","../../src/zodiac/tokenIdMask.d.ts"],"sourcesContent":null,"mappings":";;;;;cACqBG;;;EAAAA,SAAAA,eA8FnB,EAAA,YAAA;;;;EC7FGC,CAAAA,EAAAA;IAAiB,SAAA,IAAA,EAAA,UAAA;IAA+BD,SAAAA,IAAAA,EAAAA,WAAAA;EAAU,CAAA,EAAtCD;IAAoB,SAAA,IAAA,EAAA,UAAA;;EAEjCyE,CAAAA,CAAAA;EAAS,SAAA,OAAA,EAAA,SAAA,EAAA;CAAA,EAAA;EACS,SAERrE,IAAAA,EAAAA,UAAAA;EAAI,SACgBH,IAAAA,EAAAA,aAAAA;EAAU,SAAgBG,eAAAA,EAAAA,YAAAA;EAAI,SAA1DL,MAAAA,EAAAA,SAAAA,CAAAA;IAEZG,SAAAA,IAAAA,EAAAA,SAAAA;IAAiB,SAAA,IAAA,EAAA,SAAA;;;;;;;EAOFG,SAAAA,IAAAA,EAAAA,UAAsB;EAQtBE,SAAAA,IAAAA,EAAAA,eAAsB;EAAA,SAAA,eAAA,EAAA,YAAA;EAAA,SAGnBN,MAAAA,EAAAA,SAAAA,CAAAA;IACEwE,SAAAA,IAAAA,EAAAA,SAAAA;IAIdnE,SAAAA,IAAAA,EAAAA,SAAAA;EAAO,CAAA,EAAA;;;;;;EAOSE,CAAAA,EAAAA;IAAe,SAAA,IAAA,EAAA,YAAA;IACrBH,SAAAA,IAAAA,EAAAA,SAAAA;IACAE,SAAAA,UAAAA,EAAAA,SAAAA,CAAAA;MAEPkE,SAAAA,IAAAA,EAAAA,QAAAA;MAaPnE,SAAAA,IAAAA,EAAAA,OAAAA;IAAO,CAAA,EAAA;;;;;MCvDMwD,SAAa,IAAA,EAAA,OAIZ;;MAGMnD,SAAAA,IAAAA,EAAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["rolesV2Abi","ContractFunctionArgs","ContractFunctionName","rolesV2Abi","ScopeFunctionName","ScopeStep","Name","ScopeStepsPublicClient","Promise","ScopeStepsWalletClient","applyScopeSteps","Hex","ConditionFlat","addressEqualCompValue","customCompValue","sizeCapExtra","ParameterType","Operator","CANONICAL_ADAPTERS","ExecutionOptions","Hex","ScopeStep","ConditionFlat","DELEVERAGER_ROLE_KEY","buildDeleveragerDispatchConditions","buildDeleveragerRoleSteps","Hex","ScopeStep","ConditionFlat","DISPATCH_SELECTOR","roleKey","buildDispatchCustomConditions","buildDispatchCustomRoleSteps","Address","Hex","ScopeStep","ConditionFlat","LIQUIDATE_SELECTOR","LiquidatorConditionsParams","buildLiquidatorConditions","buildLiquidatorRoleSteps","Hex","ConditionFlat","LOAN_BITMASK_WINDOW_SHIFTS","loanBitmaskCompValueAt","buildLoanOnlyDispatchConditions","WITHDRAW_SELECTOR","DEPOSIT_SELECTOR","EXECUTE_SELECTOR","buildWithdrawConditions","buildDepositConditions","Hex","ScopeStep","ConditionFlat","MAINTENANCE_ROLE_KEY","DISPATCH_FROM_SELECTOR","buildDispatchFromConditions","buildMaintenanceRoleSteps","Hex","ScopeStep","ROLLER_ROLE_KEY","buildRollerRoleSteps","Hex","ScopeStep","ConditionFlat","MULTICALL_SELECTOR","MULTISEND_SELECTOR","WETH_DEPOSIT_SELECTOR","WETH_WITHDRAW_SELECTOR","WITHDRAW_WITH_POSITIONS_SELECTOR","buildWithdrawWithPositionsConditions","sfpmPoolIdPinExtra","buildSfpmSwapConditions","buildSfpmSwapVenueSteps","Hex","ScopeStep","SIZE_ADJUSTER_ROLE_KEY","buildSizeAdjusterRoleSteps","legFieldMask","loanWidthFieldsMask","strikeFieldsMask","optionRatioFieldsMask","isPureLoanTokenId","loanBitmaskCondition"],"sources":["../../src/zodiac/rolesAbi.d.ts","../../src/zodiac/applySteps.d.ts","../../src/zodiac/conditions.d.ts","../../src/zodiac/constants.d.ts","../../src/zodiac/roles/deleverager.d.ts","../../src/zodiac/roles/dispatchCustomRole.d.ts","../../src/zodiac/roles/liquidator.d.ts","../../src/zodiac/roles/loanHedger.d.ts","../../src/zodiac/roles/maintenance.d.ts","../../src/zodiac/roles/roller.d.ts","../../src/zodiac/roles/sfpmSwap.d.ts","../../src/zodiac/roles/sizeAdjuster.d.ts","../../src/zodiac/tokenIdMask.d.ts"],"sourcesContent":null,"mappings":"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"}
|