@panoptic-eng/sdk 1.0.70 → 1.0.72
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-sGuN0eas.js → cow-DMLTQhqt.js} +1 -1
- package/dist/{greeks-DNPP24KL.js → greeks-CEv-Uex1.js} +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -23
- package/dist/index.js.map +1 -1
- package/dist/{irm-6RzXXa1_.js → irm-BI9so_9s.js} +192 -15
- package/dist/panoptic/v2/index.d.ts +38 -16
- package/dist/panoptic/v2/index.d.ts.map +1 -1
- package/dist/panoptic/v2/index.js +287 -255
- package/dist/panoptic/v2/index.js.map +1 -1
- package/dist/panoptic/v2/react-public.d.ts +40 -18
- package/dist/panoptic/v2/react-public.d.ts.map +1 -1
- package/dist/panoptic/v2/react-public.js +287 -255
- package/dist/panoptic/v2/react-public.js.map +1 -1
- package/dist/{rates-DDK4ZimJ.js → rates-BOGkyjVy.js} +2 -2
- package/dist/{router-njWsLvZc.js → router-CL6snZVH.js} +30 -4
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/uniswap/index.d.ts +10 -1
- package/dist/uniswap/index.d.ts.map +1 -1
- package/dist/uniswap/index.js +27 -1
- package/dist/uniswap/index.js.map +1 -1
- package/dist/{v2-BrG4T_Gh.js → v2-DIrXTXMw.js} +38 -183
- package/dist/{writes-CI6Haer-.js → writes-BNNd0vjF.js} +2 -2
- package/dist/zodiac/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UniswapV3PoolAbi, getAccountCollateral, getNetLiquidationValue, panopticQueryAbi, readBlockAndAggregate, requireReturnData } from "./irm-
|
|
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$1, parsePanopticError, riskEngineAbi, riskEngineMulticall, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, stateViewAbi, uniswapV3PoolAbi } from "./rates-
|
|
3
|
-
import { MAX_TICK, MAX_TRACKED_CHUNKS, MIN_TICK, NO_LOWER_LIQUIDATION_TICK, NO_UPPER_LIQUIDATION_TICK, WAD, calculatePositionDelta, calculatePositionDeltaDebtOnly, calculatePositionGamma, calculatePositionValue, getLegLiquidityRange, priceToTick, sqrtPriceX96ToTick, tickLimits, tickToPriceDecimalScaled, tickToSqrtPriceX96, toVaultFrameAtTick } from "./greeks-
|
|
4
|
-
import { addLegToTokenId, buildBatchDispatchArgs, buildProtectedSettlePlan, buildSettleSequenceCalls, buildUniqueCredit, buildUniqueLoan, countLegs, createTokenIdBuilder, decodeAllLegs, decodeTokenId, getCurrentPositionSizes, getPoolTokensForSimulation, loadCheckpoint, resolveTokenIndex, simulateDispatch, simulateOpenPosition, simulateWithTokenFlow } from "./writes-
|
|
5
|
-
import { feesFromFeeGrowthDelta, getLpPositionFunding, getMaxLpPositionSize, getPriceHistory, preparePositionGamma, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router } from "./router-
|
|
1
|
+
import { UniswapV3PoolAbi, applyOwedInterest, getAccountBuyingPower, getAccountCollateral, getNetLiquidationValue, panopticQueryAbi$1 as panopticQueryAbi, readBlockAndAggregate, requireReturnData } from "./irm-BI9so_9s.js";
|
|
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, riskEngineMulticall, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, stateViewAbi, uniswapV3PoolAbi } from "./rates-BOGkyjVy.js";
|
|
3
|
+
import { MAX_TICK, MAX_TRACKED_CHUNKS, MIN_TICK, NO_LOWER_LIQUIDATION_TICK, NO_UPPER_LIQUIDATION_TICK, WAD, calculatePositionDelta, calculatePositionDeltaDebtOnly, calculatePositionGamma, calculatePositionValue, getLegLiquidityRange, priceToTick, sqrtPriceX96ToTick, tickLimits, tickToPriceDecimalScaled, tickToSqrtPriceX96, toVaultFrameAtTick } from "./greeks-CEv-Uex1.js";
|
|
4
|
+
import { addLegToTokenId, buildBatchDispatchArgs, buildProtectedSettlePlan, buildSettleSequenceCalls, buildUniqueCredit, buildUniqueLoan, countLegs, createTokenIdBuilder, decodeAllLegs, decodeTokenId, getCurrentPositionSizes, getPoolTokensForSimulation, loadCheckpoint, resolveTokenIndex, simulateDispatch, simulateOpenPosition, simulateWithTokenFlow } from "./writes-BNNd0vjF.js";
|
|
5
|
+
import { feesFromFeeGrowthDelta, getLpPositionFunding, getMaxLpPositionSize, getPriceHistory, preparePositionGamma, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router } from "./router-CL6snZVH.js";
|
|
6
6
|
import { ContractFunctionExecutionError, decodeFunctionResult, encodeAbiParameters, encodeFunctionData, getAddress, hexToString, isAddress, isAddressEqual, isHex, keccak256, parseAbi, parseEventLogs, trim, zeroAddress } from "viem";
|
|
7
7
|
import { multicall } from "viem/actions";
|
|
8
8
|
import Decimal from "decimal.js";
|
|
@@ -165,7 +165,7 @@ async function multicallRead(params) {
|
|
|
165
165
|
|
|
166
166
|
//#endregion
|
|
167
167
|
//#region src/panoptic/v2/utils/priceConvert.ts
|
|
168
|
-
const Q128$
|
|
168
|
+
const Q128$1 = 1n << 128n;
|
|
169
169
|
/**
|
|
170
170
|
* A non-positive price has no meaningful conversion, and `convert1to0` would
|
|
171
171
|
* divide by zero — surface that as a typed SDK error rather than a RangeError
|
|
@@ -175,16 +175,16 @@ function assertPositivePrice(sqrtPriceX96) {
|
|
|
175
175
|
if (sqrtPriceX96 <= 0n) throw new PanopticError(`sqrtPriceX96 must be positive, got ${sqrtPriceX96}`);
|
|
176
176
|
}
|
|
177
177
|
/** Convert a token0 amount to its token1-equivalent at the given sqrtPriceX96. */
|
|
178
|
-
function convert0to1$
|
|
178
|
+
function convert0to1$1(amount, sqrtPriceX96) {
|
|
179
179
|
assertPositivePrice(sqrtPriceX96);
|
|
180
|
-
if (sqrtPriceX96 < Q128$
|
|
180
|
+
if (sqrtPriceX96 < Q128$1) return amount * sqrtPriceX96 * sqrtPriceX96 >> 192n;
|
|
181
181
|
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
182
182
|
return amount * sp2Hi >> 128n;
|
|
183
183
|
}
|
|
184
184
|
/** Convert a token1 amount to its token0-equivalent at the given sqrtPriceX96. */
|
|
185
|
-
function convert1to0$
|
|
185
|
+
function convert1to0$1(amount, sqrtPriceX96) {
|
|
186
186
|
assertPositivePrice(sqrtPriceX96);
|
|
187
|
-
if (sqrtPriceX96 < Q128$
|
|
187
|
+
if (sqrtPriceX96 < Q128$1) {
|
|
188
188
|
const denom = sqrtPriceX96 * sqrtPriceX96;
|
|
189
189
|
return amount * (1n << 192n) / denom;
|
|
190
190
|
}
|
|
@@ -197,13 +197,13 @@ function convert1to0$2(amount, sqrtPriceX96) {
|
|
|
197
197
|
*/
|
|
198
198
|
function convertToTokenIndex(amount, fromTokenIndex, toTokenIndex, sqrtPriceX96) {
|
|
199
199
|
if (fromTokenIndex === toTokenIndex) return amount;
|
|
200
|
-
return fromTokenIndex === 0n ? convert0to1$
|
|
200
|
+
return fromTokenIndex === 0n ? convert0to1$1(amount, sqrtPriceX96) : convert1to0$1(amount, sqrtPriceX96);
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
//#endregion
|
|
204
204
|
//#region src/panoptic/v2/reads/margin.ts
|
|
205
205
|
const FP96$1 = 1n << 96n;
|
|
206
|
-
const Q128
|
|
206
|
+
const Q128 = 1n << 128n;
|
|
207
207
|
/** Cap for a usage ratio with no collateral behind it. */
|
|
208
208
|
const MAX_USAGE_BPS = 1000000n;
|
|
209
209
|
const bigintMax = (a, b) => a > b ? a : b;
|
|
@@ -214,16 +214,16 @@ const bigintMin = (a, b) => a < b ? a : b;
|
|
|
214
214
|
* Matches the on-chain `PanopticMath.convert0to1` truncation, with an
|
|
215
215
|
* overflow-safe branch when `sqrtPriceX96^2` would not fit in uint256.
|
|
216
216
|
*/
|
|
217
|
-
function convert0to1
|
|
218
|
-
if (sqrtPriceX96 < Q128
|
|
217
|
+
function convert0to1(amount, sqrtPriceX96) {
|
|
218
|
+
if (sqrtPriceX96 < Q128) return amount * sqrtPriceX96 * sqrtPriceX96 >> 192n;
|
|
219
219
|
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
220
220
|
return amount * sp2Hi >> 128n;
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
223
223
|
* Convert a token1 amount to its token0-equivalent at the given sqrtPriceX96.
|
|
224
224
|
*/
|
|
225
|
-
function convert1to0
|
|
226
|
-
if (sqrtPriceX96 < Q128
|
|
225
|
+
function convert1to0(amount, sqrtPriceX96) {
|
|
226
|
+
if (sqrtPriceX96 < Q128) {
|
|
227
227
|
const denom = sqrtPriceX96 * sqrtPriceX96;
|
|
228
228
|
return amount * (1n << 192n) / denom;
|
|
229
229
|
}
|
|
@@ -236,7 +236,7 @@ function convert1to0$1(amount, sqrtPriceX96) {
|
|
|
236
236
|
* Reads, all pinned to the same block:
|
|
237
237
|
* - `getCurrentTick` (sequencing dependency for sqrtPrice conversion)
|
|
238
238
|
* - `getFullPositionsData(account, true, tokenIds)` → collateralRequirements
|
|
239
|
-
* - `CollateralTracker.
|
|
239
|
+
* - `CollateralTracker.assetsAndInterest(account)` on both trackers → collateral and owed interest
|
|
240
240
|
* - `PanopticQuery.getLiquidationPrices(...)` → liquidation boundaries
|
|
241
241
|
*
|
|
242
242
|
* @param params - The parameters
|
|
@@ -317,6 +317,14 @@ function requireMulticallResult(results, index, label) {
|
|
|
317
317
|
if (result.status === "failure") throw result.error;
|
|
318
318
|
return result.result;
|
|
319
319
|
}
|
|
320
|
+
function requireAssetsAndInterestResult(results, index, label) {
|
|
321
|
+
const result = requireMulticallResult(results, index, label);
|
|
322
|
+
if (!Array.isArray(result) || result.length < 2 || typeof result[0] !== "bigint" || typeof result[1] !== "bigint") throw new PanopticError(`${label} returned an invalid value`);
|
|
323
|
+
return {
|
|
324
|
+
assets: result[0],
|
|
325
|
+
interest: result[1]
|
|
326
|
+
};
|
|
327
|
+
}
|
|
320
328
|
function requireBigIntResult(results, index, label) {
|
|
321
329
|
const result = requireMulticallResult(results, index, label);
|
|
322
330
|
if (typeof result !== "bigint" && typeof result !== "number") throw new PanopticError(`${label} returned an invalid value`);
|
|
@@ -333,13 +341,13 @@ function prepareMarginBufferRead({ poolAddress, account, tokenIds, queryAddress,
|
|
|
333
341
|
{
|
|
334
342
|
address: collateralAddresses.collateralToken0,
|
|
335
343
|
abi: collateralTrackerV2Abi,
|
|
336
|
-
functionName: "
|
|
344
|
+
functionName: "assetsAndInterest",
|
|
337
345
|
args: [account]
|
|
338
346
|
},
|
|
339
347
|
{
|
|
340
348
|
address: collateralAddresses.collateralToken1,
|
|
341
349
|
abi: collateralTrackerV2Abi,
|
|
342
|
-
functionName: "
|
|
350
|
+
functionName: "assetsAndInterest",
|
|
343
351
|
args: [account]
|
|
344
352
|
}
|
|
345
353
|
];
|
|
@@ -390,8 +398,10 @@ function prepareMarginBufferRead({ poolAddress, account, tokenIds, queryAddress,
|
|
|
390
398
|
}
|
|
391
399
|
function decodeMarginBufferResults({ results, _meta, positionDataIndex, liqPricesIndex, checkCollateralIndex, mintBuffer }) {
|
|
392
400
|
const currentTick = requireBigIntResult(results, 0, "PanopticPool.getCurrentTick");
|
|
393
|
-
const
|
|
394
|
-
const
|
|
401
|
+
const tracker0 = requireAssetsAndInterestResult(results, 1, "CollateralTracker.assetsAndInterest token0");
|
|
402
|
+
const tracker1 = requireAssetsAndInterestResult(results, 2, "CollateralTracker.assetsAndInterest token1");
|
|
403
|
+
const { balance: assets0, requirementExtra: interestDue0 } = applyOwedInterest(tracker0.assets, tracker0.interest);
|
|
404
|
+
const { balance: assets1, requirementExtra: interestDue1 } = applyOwedInterest(tracker1.assets, tracker1.interest);
|
|
395
405
|
const positionDataResult = positionDataIndex === null ? null : requireMulticallResult(results, positionDataIndex, "PanopticPool.getFullPositionsData");
|
|
396
406
|
const liqPricesResult = liqPricesIndex === null ? null : requireMulticallResult(results, liqPricesIndex, "PanopticQuery.getLiquidationPrices");
|
|
397
407
|
const checkCollateralResult = checkCollateralIndex === null ? null : requireMulticallResult(results, checkCollateralIndex, "PanopticQuery.checkCollateral");
|
|
@@ -414,8 +424,8 @@ function decodeMarginBufferResults({ results, _meta, positionDataIndex, liqPrice
|
|
|
414
424
|
const mintable1 = mintable(balances1[0], requireds1[0]);
|
|
415
425
|
if (mintable0 !== null || mintable1 !== null) mintableMarginBinding = mintable0 === null ? mintable1 : mintable1 === null ? mintable0 : bigintMin(mintable0, mintable1);
|
|
416
426
|
}
|
|
417
|
-
let required0Native =
|
|
418
|
-
let required1Native =
|
|
427
|
+
let required0Native = interestDue0;
|
|
428
|
+
let required1Native = interestDue1;
|
|
419
429
|
if (positionDataResult) {
|
|
420
430
|
const collateralRequirements = positionDataResult[3];
|
|
421
431
|
for (const packed of collateralRequirements) {
|
|
@@ -426,10 +436,10 @@ function decodeMarginBufferResults({ results, _meta, positionDataIndex, liqPrice
|
|
|
426
436
|
}
|
|
427
437
|
const sqrtPriceX96 = tickToSqrtPriceX96(currentTick);
|
|
428
438
|
const denominatedInToken = sqrtPriceX96 < FP96$1 ? 0 : 1;
|
|
429
|
-
const currentMargin0 = assets0 + convert1to0
|
|
430
|
-
const requiredMargin0 = required0Native + convert1to0
|
|
431
|
-
const currentMargin1 = assets1 + convert0to1
|
|
432
|
-
const requiredMargin1 = required1Native + convert0to1
|
|
439
|
+
const currentMargin0 = assets0 + convert1to0(assets1, sqrtPriceX96);
|
|
440
|
+
const requiredMargin0 = required0Native + convert1to0(required1Native, sqrtPriceX96);
|
|
441
|
+
const currentMargin1 = assets1 + convert0to1(assets0, sqrtPriceX96);
|
|
442
|
+
const requiredMargin1 = required1Native + convert0to1(required0Native, sqrtPriceX96);
|
|
433
443
|
const buffer0 = currentMargin0 - requiredMargin0;
|
|
434
444
|
const buffer1 = currentMargin1 - requiredMargin1;
|
|
435
445
|
const bufferPercent0 = requiredMargin0 === 0n ? null : buffer0 * 10000n / requiredMargin0;
|
|
@@ -3974,161 +3984,6 @@ async function getCollateralTotalAssetsBatch(client, collateralTrackerAddresses,
|
|
|
3974
3984
|
}
|
|
3975
3985
|
}
|
|
3976
3986
|
|
|
3977
|
-
//#endregion
|
|
3978
|
-
//#region src/panoptic/v2/reads/buyingPower.ts
|
|
3979
|
-
const Q128 = 1n << 128n;
|
|
3980
|
-
/** Immutable collateral tracker addresses, suitable for a pool-scoped cache. */
|
|
3981
|
-
async function getPoolCollateralAddresses(params) {
|
|
3982
|
-
const [collateralToken0, collateralToken1] = await multicall(params.client, {
|
|
3983
|
-
contracts: [{
|
|
3984
|
-
address: params.poolAddress,
|
|
3985
|
-
abi: panopticPoolV2Abi,
|
|
3986
|
-
functionName: "collateralToken0"
|
|
3987
|
-
}, {
|
|
3988
|
-
address: params.poolAddress,
|
|
3989
|
-
abi: panopticPoolV2Abi,
|
|
3990
|
-
functionName: "collateralToken1"
|
|
3991
|
-
}],
|
|
3992
|
-
blockNumber: params.blockNumber,
|
|
3993
|
-
allowFailure: false
|
|
3994
|
-
});
|
|
3995
|
-
return {
|
|
3996
|
-
collateralToken0,
|
|
3997
|
-
collateralToken1
|
|
3998
|
-
};
|
|
3999
|
-
}
|
|
4000
|
-
function convert0to1(amount, sqrtPriceX96) {
|
|
4001
|
-
if (sqrtPriceX96 < Q128) return amount * sqrtPriceX96 * sqrtPriceX96 >> 192n;
|
|
4002
|
-
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
4003
|
-
return amount * sp2Hi >> 128n;
|
|
4004
|
-
}
|
|
4005
|
-
function convert1to0(amount, sqrtPriceX96) {
|
|
4006
|
-
if (sqrtPriceX96 < Q128) {
|
|
4007
|
-
const denom = sqrtPriceX96 * sqrtPriceX96;
|
|
4008
|
-
return amount * (1n << 192n) / denom;
|
|
4009
|
-
}
|
|
4010
|
-
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
4011
|
-
return amount * (1n << 128n) / sp2Hi;
|
|
4012
|
-
}
|
|
4013
|
-
/**
|
|
4014
|
-
* Get account-level buying power.
|
|
4015
|
-
*
|
|
4016
|
-
* Uses {@link https://github.com/panoptic-xyz CollateralTracker.assetsOf} for
|
|
4017
|
-
* gross collateral and `PanopticPool.getFullPositionsData.collateralRequirements[]`
|
|
4018
|
-
* for the per-position required margin — so loan tokenIds (width=0 shorts)
|
|
4019
|
-
* contribute to the requirement instead of being netted out of the balance.
|
|
4020
|
-
*
|
|
4021
|
-
* Accepts a plain viem `Client` (not just `PublicClient`) so it works with wagmi's
|
|
4022
|
-
* `useClient()` without needing a cast.
|
|
4023
|
-
*
|
|
4024
|
-
* @param params - The parameters
|
|
4025
|
-
* @returns Account buying power data with optional block metadata
|
|
4026
|
-
*/
|
|
4027
|
-
async function getAccountBuyingPower(params) {
|
|
4028
|
-
const { client, poolAddress, account, tokenIds } = params;
|
|
4029
|
-
const blockNumber = params.blockNumber ?? params._meta?.blockNumber;
|
|
4030
|
-
let collateralToken0;
|
|
4031
|
-
let collateralToken1;
|
|
4032
|
-
if (params.collateralAddresses) {
|
|
4033
|
-
collateralToken0 = params.collateralAddresses.collateralToken0;
|
|
4034
|
-
collateralToken1 = params.collateralAddresses.collateralToken1;
|
|
4035
|
-
} else {
|
|
4036
|
-
const addresses = await getPoolCollateralAddresses({
|
|
4037
|
-
client,
|
|
4038
|
-
poolAddress,
|
|
4039
|
-
blockNumber
|
|
4040
|
-
});
|
|
4041
|
-
collateralToken0 = addresses.collateralToken0;
|
|
4042
|
-
collateralToken1 = addresses.collateralToken1;
|
|
4043
|
-
}
|
|
4044
|
-
const calls = [
|
|
4045
|
-
{
|
|
4046
|
-
target: poolAddress,
|
|
4047
|
-
callData: encodeFunctionData({
|
|
4048
|
-
abi: panopticPoolV2Abi,
|
|
4049
|
-
functionName: "getCurrentTick"
|
|
4050
|
-
})
|
|
4051
|
-
},
|
|
4052
|
-
{
|
|
4053
|
-
target: collateralToken0,
|
|
4054
|
-
callData: encodeFunctionData({
|
|
4055
|
-
abi: collateralTrackerV2Abi,
|
|
4056
|
-
functionName: "assetsOf",
|
|
4057
|
-
args: [account]
|
|
4058
|
-
})
|
|
4059
|
-
},
|
|
4060
|
-
{
|
|
4061
|
-
target: collateralToken1,
|
|
4062
|
-
callData: encodeFunctionData({
|
|
4063
|
-
abi: collateralTrackerV2Abi,
|
|
4064
|
-
functionName: "assetsOf",
|
|
4065
|
-
args: [account]
|
|
4066
|
-
})
|
|
4067
|
-
}
|
|
4068
|
-
];
|
|
4069
|
-
const positionDataIndex = tokenIds.length > 0 ? calls.length : null;
|
|
4070
|
-
if (positionDataIndex !== null) calls.push({
|
|
4071
|
-
target: poolAddress,
|
|
4072
|
-
callData: encodeFunctionData({
|
|
4073
|
-
abi: panopticPoolV2Abi,
|
|
4074
|
-
functionName: "getFullPositionsData",
|
|
4075
|
-
args: [
|
|
4076
|
-
account,
|
|
4077
|
-
true,
|
|
4078
|
-
tokenIds
|
|
4079
|
-
]
|
|
4080
|
-
})
|
|
4081
|
-
});
|
|
4082
|
-
const { _meta, results } = await readBlockAndAggregate({
|
|
4083
|
-
client,
|
|
4084
|
-
calls,
|
|
4085
|
-
blockNumber
|
|
4086
|
-
});
|
|
4087
|
-
const currentTickResult = decodeFunctionResult({
|
|
4088
|
-
abi: panopticPoolV2Abi,
|
|
4089
|
-
functionName: "getCurrentTick",
|
|
4090
|
-
data: requireReturnData(results, 0, "PanopticPool.getCurrentTick")
|
|
4091
|
-
});
|
|
4092
|
-
const assets0 = decodeFunctionResult({
|
|
4093
|
-
abi: collateralTrackerV2Abi,
|
|
4094
|
-
functionName: "assetsOf",
|
|
4095
|
-
data: requireReturnData(results, 1, "CollateralTracker.assetsOf token0")
|
|
4096
|
-
});
|
|
4097
|
-
const assets1 = decodeFunctionResult({
|
|
4098
|
-
abi: collateralTrackerV2Abi,
|
|
4099
|
-
functionName: "assetsOf",
|
|
4100
|
-
data: requireReturnData(results, 2, "CollateralTracker.assetsOf token1")
|
|
4101
|
-
});
|
|
4102
|
-
const currentTick = BigInt(currentTickResult);
|
|
4103
|
-
const positionDataResult = positionDataIndex === null ? null : decodeFunctionResult({
|
|
4104
|
-
abi: panopticPoolV2Abi,
|
|
4105
|
-
functionName: "getFullPositionsData",
|
|
4106
|
-
data: requireReturnData(results, positionDataIndex, "PanopticPool.getFullPositionsData")
|
|
4107
|
-
});
|
|
4108
|
-
let required0Native = 0n;
|
|
4109
|
-
let required1Native = 0n;
|
|
4110
|
-
if (positionDataResult) {
|
|
4111
|
-
const collateralRequirements = positionDataResult[3];
|
|
4112
|
-
for (const packed of collateralRequirements) {
|
|
4113
|
-
const decoded = decodeLeftRightUnsigned(packed);
|
|
4114
|
-
required0Native += decoded.right;
|
|
4115
|
-
required1Native += decoded.left;
|
|
4116
|
-
}
|
|
4117
|
-
}
|
|
4118
|
-
const sqrtPriceX96 = tickToSqrtPriceX96(currentTick);
|
|
4119
|
-
const collateralBalance0 = assets0 + convert1to0(assets1, sqrtPriceX96);
|
|
4120
|
-
const requiredCollateral0 = required0Native + convert1to0(required1Native, sqrtPriceX96);
|
|
4121
|
-
const collateralBalance1 = assets1 + convert0to1(assets0, sqrtPriceX96);
|
|
4122
|
-
const requiredCollateral1 = required1Native + convert0to1(required0Native, sqrtPriceX96);
|
|
4123
|
-
return {
|
|
4124
|
-
collateralBalance0,
|
|
4125
|
-
requiredCollateral0,
|
|
4126
|
-
collateralBalance1,
|
|
4127
|
-
requiredCollateral1,
|
|
4128
|
-
_meta
|
|
4129
|
-
};
|
|
4130
|
-
}
|
|
4131
|
-
|
|
4132
3987
|
//#endregion
|
|
4133
3988
|
//#region src/panoptic/v2/reads/openPositionPreview.ts
|
|
4134
3989
|
/**
|
|
@@ -10742,4 +10597,4 @@ async function getPositionVolatilityHistory({ client, poolAddress, account, toke
|
|
|
10742
10597
|
}
|
|
10743
10598
|
|
|
10744
10599
|
//#endregion
|
|
10745
|
-
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, estimateCloseZapSwap, estimateCollateralBreakdown, estimateCollateralRequired, failPendingPosition, feeGrowthInsideX128, fetchPoolSwaps, fetchSfpmV3PoolId, fetchUniswapFeeData,
|
|
10600
|
+
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, estimateCloseZapSwap, estimateCollateralBreakdown, estimateCollateralRequired, failPendingPosition, feeGrowthInsideX128, fetchPoolSwaps, fetchSfpmV3PoolId, fetchUniswapFeeData, getAccountGreeks, getAccountHistory, getChunkLiquidities, getChunkSpreads, getClosePositionTransferEstimate, 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, getPoolLiquidities, getPortfolioValue, getPositionChunkData, getPositionEnrichmentData, getPositionMintFunding, getPositionValueCurve, getPositionVolatilityHistory, getRealizedPnL, getRequiredCreditForITM, getSafeMode, getStreamiaHistory, getSyncStatus, getTrackedChunks, getTradeHistory, getUniswapFeeHistory, getUniswapV3PoolFromId, getUniswapV3PoolInfo, getUniswapV3PoolLiquidities, getUniswapV4PoolBasicState, getUniswapV4PoolInfo, getUniswapV4PoolKeyFromId, getUniswapV4PoolLiquidities, interpolateBlocks, isGasError, isNonceError, isRetryableRpcError, isolateGroupTokenId, ladderStrikeSequence, logReturns, marketPnlInQuote, marketRiskFromValues, marketScenario, minePoolAddress, minePoolAddressLocalAsync, multicallRead, netLiquidationValueInQuote, optimizeTokenIdRiskPartners, parseCollateralLog, parsePoolLog, parseStreamedKey, parseStreamedSwap, parseSwapLog, positionValueKey, positionValueTicks, prepareIndicatorCandles, preparePositionValueCurve, previewDeposit, previewMint, previewRedeem, previewWithdraw, quoteLiquidation, quoteOneTokenFlow, quoteSfpmSwap, quoteTemporaryLoanRecovery, quoteTokenShortfallRecovery, quoteTokenShortfallSwap, realizedBeta, removeTrackedChunks, resolveBlockNumbers, resolveLadderStrike, resolvePanopticPoolFromPoolId, resolveUniswapV4PoolKey, saveClosedPosition, scaleCollateralRequired, scanChunks, screenAccountExact, simulateBatchDispatch, simulateClosePosition, simulateClosePremiumProtection, simulateDeployNewPool, simulateDeposit, simulateForceExercise, simulateLiquidate, simulateSFPMBurn, simulateSFPMMint, simulateSwapExactIn, simulateSwapExactOut, simulateWithdraw, slippageBpsToTickDistance, streamPoolSwaps, subscribePoolSwaps, watchEvents, watchPoolSwaps };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BatchValidationError, DEFAULT_VEGOID, InputListFailError, InvalidTickLimitsError, InvalidTokenIdParameterError, LEG_BITS, LEG_LIMITS, LEG_MASKS, LoanSlotExhaustedError, MaxRetriesExceededError, MissingPositionIdsError, NoLoanPositionsError, OracleRateLimitedError, PanopticError, PanopticValidationError, PositionSnapshotNotFoundError, ProviderLagError, STANDARD_TICK_WIDTHS, STRIKE_CONVERSION_FACTOR, SwapTokenMismatchError, SyncTimeoutError, TOKEN_ID_BITS, UnsafePremiumSettlementError, collateralTrackerV2Abi, createTxResult, decodeLeftRightUnsigned, decodeOracleTiming, decodePosition, decodeTickSpacing, formatTokenAmount, getBlockMeta, getOpenPositionIds, getPool, getPoolMetaKey, getPoolMetadata, getPositionMetaKey, getPositions, getPositionsKey, getSyncCheckpointKey, getTrackedPositionIds, jsonSerializer, oracleEpochAt, panopticErrorsAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, parsePanopticError, parseTokenAmount, submitWrite } from "./rates-
|
|
2
|
-
import { MAX_TICK, MIN_TICK, REORG_DEPTH, calculatePositionGreeks, priceToTick, roundToTickSpacing, sqrtPriceX96ToTick, tickLimits, tickToPrice, tickToPriceDecimalScaled, tickToSqrtPriceX96 } from "./greeks-
|
|
1
|
+
import { BatchValidationError, DEFAULT_VEGOID, InputListFailError, InvalidTickLimitsError, InvalidTokenIdParameterError, LEG_BITS, LEG_LIMITS, LEG_MASKS, LoanSlotExhaustedError, MaxRetriesExceededError, MissingPositionIdsError, NoLoanPositionsError, OracleRateLimitedError, PanopticError, PanopticValidationError, PositionSnapshotNotFoundError, ProviderLagError, STANDARD_TICK_WIDTHS, STRIKE_CONVERSION_FACTOR, SwapTokenMismatchError, SyncTimeoutError, TOKEN_ID_BITS, UnsafePremiumSettlementError, collateralTrackerV2Abi, createTxResult, decodeLeftRightUnsigned, decodeOracleTiming, decodePosition, decodeTickSpacing, formatTokenAmount, getBlockMeta, getOpenPositionIds, getPool, getPoolMetaKey, getPoolMetadata, getPositionMetaKey, getPositions, getPositionsKey, getSyncCheckpointKey, getTrackedPositionIds, jsonSerializer, oracleEpochAt, panopticErrorsAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticPoolV2Abi, parsePanopticError, parseTokenAmount, submitWrite } from "./rates-BOGkyjVy.js";
|
|
2
|
+
import { MAX_TICK, MIN_TICK, REORG_DEPTH, calculatePositionGreeks, priceToTick, roundToTickSpacing, sqrtPriceX96ToTick, tickLimits, tickToPrice, tickToPriceDecimalScaled, tickToSqrtPriceX96 } from "./greeks-CEv-Uex1.js";
|
|
3
3
|
import { decodeFunctionResult, encodeFunctionData, erc20Abi, getAbiItem } from "viem";
|
|
4
4
|
|
|
5
5
|
//#region src/panoptic/v2/writes/broadcaster.ts
|
|
@@ -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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"}
|