timelock-sdk 0.0.196 → 0.0.198
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/abis.cjs +1 -1
- package/dist/abis.d.cts +1 -1
- package/dist/abis.d.ts +1 -1
- package/dist/abis.js +1 -1
- package/dist/{client-3oF5mDiF.d.ts → client-BPfSSNYu.d.cts} +1125 -715
- package/dist/{client-BLs46E49.d.cts → client-DL7bGEe_.d.ts} +1145 -735
- package/dist/client.cjs +2 -2
- package/dist/client.d.cts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +2 -2
- package/dist/{optionUtils-DerSn_Ua.cjs → optionUtils-DnlZztx2.cjs} +19 -50
- package/dist/optionUtils-DnlZztx2.cjs.map +1 -0
- package/dist/{optionUtils-CR8qGvTh.js → optionUtils-Xu6KDjhk.js} +20 -27
- package/dist/optionUtils-Xu6KDjhk.js.map +1 -0
- package/dist/{optionsMarket-BVrCBIJQ.d.cts → optionsMarket-BVeFBAO9.d.ts} +10 -2
- package/dist/{optionsMarket-MkvkHTLL.d.ts → optionsMarket-jE1scXOT.d.cts} +10 -2
- package/dist/package.cjs +1 -5
- package/dist/package.d.cts +2 -2
- package/dist/package.d.ts +2 -2
- package/dist/package.js +2 -2
- package/dist/{statelessStateView-WNW62g3Q.cjs → statelessStateView-BdEzGGOS.cjs} +12 -2
- package/dist/statelessStateView-BdEzGGOS.cjs.map +1 -0
- package/dist/{statelessStateView-DW9FOpWt.js → statelessStateView-UwLGcATc.js} +12 -2
- package/dist/statelessStateView-UwLGcATc.js.map +1 -0
- package/package.json +1 -1
- package/dist/optionUtils-CR8qGvTh.js.map +0 -1
- package/dist/optionUtils-DerSn_Ua.cjs.map +0 -1
- package/dist/statelessStateView-DW9FOpWt.js.map +0 -1
- package/dist/statelessStateView-WNW62g3Q.cjs.map +0 -1
package/dist/client.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
const require_optionUtils = require('./optionUtils-
|
|
4
|
-
const require_statelessStateView = require('./statelessStateView-
|
|
3
|
+
const require_optionUtils = require('./optionUtils-DnlZztx2.cjs');
|
|
4
|
+
const require_statelessStateView = require('./statelessStateView-BdEzGGOS.cjs');
|
|
5
5
|
const require_factory = require('./factory-BieDxxUI.cjs');
|
|
6
6
|
let viem = require("viem");
|
|
7
7
|
let react = require("react");
|
package/dist/client.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as useCurrentPrice, Bt as
|
|
1
|
+
import { A as useCurrentPrice, Bt as useTimelockConfig, C as useLiquidityBlocks, Ct as useMintOption, D as usePriceAtSqrtPriceX96, E as usePriceHistory, Ft as useMarketVolume, It as useMarketState, Lt as useMarketData, M as UniswapPoolData, N as usePoolData, O as usePriceAtTick, Rt as TimelockProvider, S as LiquidityBlockData, St as useClosedUserOptions, T as useMarketPriceHistory, _ as useTokenData, _t as useOptionPremium, a as OptionPricingParams, at as useActiveUserPerps, b as batchGetAmountsFromLiquidity, bt as OptionData, c as usePricingParams, ct as usePerpsOperator, d as usePauseMarketTrading, dt as ExerciseOptionEvent, f as usePauseGlobalTrading, ft as ExtendEvent, g as TokenData, gt as useExtendOption, h as useTokenBalance, ht as useOptionTimeline, i as useOptionPricingParams, it as useOperatorPerms, j as PoolKey, k as useCurrentTick, l as useUpdateMarketFees, lt as useClosePerp, m as useApproval, mt as OptionEvent, n as useUpdateMarketPricing, nt as useSetOperatorPerms, o as PricingParams, ot as useClosedUserPerps, p as useGuardianGlobalState, pt as MintOptionEvent, r as useStaticPricingParams, rt as useUserOperators, s as StaticPricingParams, st as useUserPerps, t as useLens, u as useFeeRates, ut as useMintPerp, v as useVaultTVL, vt as useOptionPnl, w as useBurnLiquidity, wt as useMaxPositionSize, x as useMintLiquidity, xt as useActiveUserOptions, y as useVaultData, yt as useExerciseOption, zt as useCurrentMarket } from "./client-BPfSSNYu.cjs";
|
|
2
2
|
export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, OptionPricingParams, PoolKey, PricingParams, StaticPricingParams, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useFeeRates, useGuardianGlobalState, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketState, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionPricingParams, useOptionTimeline, usePauseGlobalTrading, usePauseMarketTrading, usePerpsOperator, usePoolData, usePriceAtSqrtPriceX96, usePriceAtTick, usePriceHistory, usePricingParams, useSetOperatorPerms, useStaticPricingParams, useTimelockConfig, useTokenBalance, useTokenData, useUpdateMarketFees, useUpdateMarketPricing, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as useCurrentPrice, Bt as
|
|
1
|
+
import { A as useCurrentPrice, Bt as useTimelockConfig, C as useLiquidityBlocks, Ct as useMintOption, D as usePriceAtSqrtPriceX96, E as usePriceHistory, Ft as useMarketVolume, It as useMarketState, Lt as useMarketData, M as UniswapPoolData, N as usePoolData, O as usePriceAtTick, Rt as TimelockProvider, S as LiquidityBlockData, St as useClosedUserOptions, T as useMarketPriceHistory, _ as useTokenData, _t as useOptionPremium, a as OptionPricingParams, at as useActiveUserPerps, b as batchGetAmountsFromLiquidity, bt as OptionData, c as usePricingParams, ct as usePerpsOperator, d as usePauseMarketTrading, dt as ExerciseOptionEvent, f as usePauseGlobalTrading, ft as ExtendEvent, g as TokenData, gt as useExtendOption, h as useTokenBalance, ht as useOptionTimeline, i as useOptionPricingParams, it as useOperatorPerms, j as PoolKey, k as useCurrentTick, l as useUpdateMarketFees, lt as useClosePerp, m as useApproval, mt as OptionEvent, n as useUpdateMarketPricing, nt as useSetOperatorPerms, o as PricingParams, ot as useClosedUserPerps, p as useGuardianGlobalState, pt as MintOptionEvent, r as useStaticPricingParams, rt as useUserOperators, s as StaticPricingParams, st as useUserPerps, t as useLens, u as useFeeRates, ut as useMintPerp, v as useVaultTVL, vt as useOptionPnl, w as useBurnLiquidity, wt as useMaxPositionSize, x as useMintLiquidity, xt as useActiveUserOptions, y as useVaultData, yt as useExerciseOption, zt as useCurrentMarket } from "./client-DL7bGEe_.js";
|
|
2
2
|
export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, OptionPricingParams, PoolKey, PricingParams, StaticPricingParams, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useFeeRates, useGuardianGlobalState, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketState, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionPricingParams, useOptionTimeline, usePauseGlobalTrading, usePauseMarketTrading, usePerpsOperator, usePoolData, usePriceAtSqrtPriceX96, usePriceAtTick, usePriceHistory, usePricingParams, useSetOperatorPerms, useStaticPricingParams, useTimelockConfig, useTokenBalance, useTokenData, useUpdateMarketFees, useUpdateMarketPricing, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { i as erc20Abi$1, n as optionsMarketAbi, r as lensAbi, t as statelessStateViewAbi } from "./statelessStateView-
|
|
4
|
-
import { A as
|
|
3
|
+
import { i as erc20Abi$1, n as optionsMarketAbi, r as lensAbi, t as statelessStateViewAbi } from "./statelessStateView-UwLGcATc.js";
|
|
4
|
+
import { A as getStateView, C as token0ToToken1, E as token1ToToken0AtTick, F as swappers, I as timelockFactories, M as getTimelockMarket, O as getPriceHistory, S as roundTick, T as token1ToToken0, g as getPriceAtTick, h as getPriceAtSqrtPriceX96, j as getTimelockLens, k as getErc20, l as wrapPrice, m as getNearestValidStrikeTick, p as getAmountsFromLiquidity, s as wrapAmount, t as getPayoutAtPrice, w as token0ToToken1AtTick } from "./optionUtils-Xu6KDjhk.js";
|
|
5
5
|
import { n as guardianAbi, r as singleOwnerVaultAbi, t as factoryAbi } from "./factory-DvHmRBSB.js";
|
|
6
6
|
import { decodeAbiParameters, decodeEventLog, encodeAbiParameters, encodeFunctionData, erc20Abi, maxInt256, maxUint256, minInt256, zeroAddress } from "viem";
|
|
7
7
|
import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
@@ -25,7 +25,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
|
|
27
27
|
//#endregion
|
|
28
|
-
const require_statelessStateView = require('./statelessStateView-
|
|
28
|
+
const require_statelessStateView = require('./statelessStateView-BdEzGGOS.cjs');
|
|
29
29
|
let viem = require("viem");
|
|
30
30
|
let viem_chains = require("viem/chains");
|
|
31
31
|
let __uniswap_v3_sdk = require("@uniswap/v3-sdk");
|
|
@@ -72,7 +72,7 @@ const getTimelockLens = async (client, address) => {
|
|
|
72
72
|
});
|
|
73
73
|
};
|
|
74
74
|
const swappers = { [viem_chains.baseSepolia.id]: "0xA16412db5c1Fc7e81574077913f5760d6c368Bd9" };
|
|
75
|
-
const timelockLenses = { [viem_chains.baseSepolia.id]: "
|
|
75
|
+
const timelockLenses = { [viem_chains.baseSepolia.id]: "0x3A33750F18fAF30abc7A773eA1C225AA85B63e46" };
|
|
76
76
|
const timelockFactories = { [viem_chains.baseSepolia.id]: "0xea78d1869f78e301A18ab064b4287563974ab977" };
|
|
77
77
|
const swapRouters = { [viem_chains.baseSepolia.id]: "0x1a005FE3C05F076983F0d66a5F80CB9C61561a5b" };
|
|
78
78
|
const stateViews = { [viem_chains.baseSepolia.id]: "0x06AF24d39b8cb2100958EAAF279707Bec11160C8" };
|
|
@@ -197,8 +197,7 @@ const getPriceAtTick = (tick) => {
|
|
|
197
197
|
return sqrtRatioX96 * sqrtRatioX96 * PRICE_PRECISION / BigInt(2 ** 192);
|
|
198
198
|
};
|
|
199
199
|
const getTickAtPrice = (price) => {
|
|
200
|
-
const
|
|
201
|
-
const sqrtPriceX96 = jsbi.default.BigInt(new big_js.default(priceX192.toString()).sqrt().toFixed(0));
|
|
200
|
+
const sqrtPriceX96 = getSqrtPriceX96AtPrice(price);
|
|
202
201
|
return __uniswap_v3_sdk.TickMath.getTickAtSqrtRatio(sqrtPriceX96);
|
|
203
202
|
};
|
|
204
203
|
const getNearestValidStrikeTick = (optionType, optionAssetIsToken0, tickSpacing, currentTick, strikeTick) => {
|
|
@@ -304,12 +303,18 @@ const liquiditiesToAmounts = (liquidities, startTick, price, tickSpacing) => {
|
|
|
304
303
|
const zero = {
|
|
305
304
|
scaled: 0n,
|
|
306
305
|
unscaled: (0, big_js.default)(0),
|
|
307
|
-
scalingFactor:
|
|
306
|
+
scalingFactor: (0, big_js.default)(0xde0b6b3a7640000),
|
|
308
307
|
formatted: "0"
|
|
309
308
|
};
|
|
309
|
+
const scale = (amount, scalingFactor) => {
|
|
310
|
+
return BigInt((0, big_js.default)(amount).mul(scalingFactor).toFixed(0));
|
|
311
|
+
};
|
|
312
|
+
const unscale = (amount, scalingFactor) => {
|
|
313
|
+
return (0, big_js.default)(amount.toString()).div(scalingFactor);
|
|
314
|
+
};
|
|
310
315
|
const wrapAmount = (scaled, decimals) => {
|
|
311
|
-
const scalingFactor =
|
|
312
|
-
const unscaled =
|
|
316
|
+
const scalingFactor = (0, big_js.default)(10).pow(decimals);
|
|
317
|
+
const unscaled = unscale(scaled, scalingFactor);
|
|
313
318
|
return {
|
|
314
319
|
scaled,
|
|
315
320
|
unscaled,
|
|
@@ -319,8 +324,8 @@ const wrapAmount = (scaled, decimals) => {
|
|
|
319
324
|
};
|
|
320
325
|
const wrapAmountUnscaled = (unscaled, decimals) => {
|
|
321
326
|
unscaled = (0, big_js.default)(unscaled);
|
|
322
|
-
const scalingFactor =
|
|
323
|
-
const scaled =
|
|
327
|
+
const scalingFactor = (0, big_js.default)(10).pow(decimals);
|
|
328
|
+
const scaled = scale(unscaled, scalingFactor);
|
|
324
329
|
const formatted = formatAmount(unscaled);
|
|
325
330
|
return {
|
|
326
331
|
scaled,
|
|
@@ -330,8 +335,8 @@ const wrapAmountUnscaled = (unscaled, decimals) => {
|
|
|
330
335
|
};
|
|
331
336
|
};
|
|
332
337
|
const wrapPrice = (scaled, decimals0, decimals1) => {
|
|
333
|
-
const scalingFactor =
|
|
334
|
-
const unscaled =
|
|
338
|
+
const scalingFactor = (0, big_js.default)(PRICE_PRECISION.toString()).mul((0, big_js.default)(10).pow(decimals1)).div((0, big_js.default)(10).pow(decimals0));
|
|
339
|
+
const unscaled = unscale(scaled, scalingFactor);
|
|
335
340
|
return {
|
|
336
341
|
scaled,
|
|
337
342
|
unscaled,
|
|
@@ -341,8 +346,8 @@ const wrapPrice = (scaled, decimals0, decimals1) => {
|
|
|
341
346
|
};
|
|
342
347
|
const wrapPriceUnscaled = (unscaled, decimals0, decimals1) => {
|
|
343
348
|
unscaled = (0, big_js.default)(unscaled);
|
|
344
|
-
const scalingFactor =
|
|
345
|
-
const scaled =
|
|
349
|
+
const scalingFactor = (0, big_js.default)(PRICE_PRECISION.toString()).mul((0, big_js.default)(10).pow(decimals1)).div((0, big_js.default)(10).pow(decimals0));
|
|
350
|
+
const scaled = scale(unscaled, scalingFactor);
|
|
346
351
|
const formatted = formatAmount(unscaled);
|
|
347
352
|
return {
|
|
348
353
|
scaled,
|
|
@@ -351,18 +356,6 @@ const wrapPriceUnscaled = (unscaled, decimals0, decimals1) => {
|
|
|
351
356
|
formatted
|
|
352
357
|
};
|
|
353
358
|
};
|
|
354
|
-
const unscaleAmount = (scaled, decimals) => {
|
|
355
|
-
return new big_js.default(scaled.toString()).div(new big_js.default(10).pow(decimals));
|
|
356
|
-
};
|
|
357
|
-
const scaleAmount = (unscaled, decimals) => {
|
|
358
|
-
return BigInt((0, big_js.default)(unscaled).mul(new big_js.default(10).pow(decimals)).round().toFixed(0));
|
|
359
|
-
};
|
|
360
|
-
const unscalePrice = (scaled, decimals0, decimals1) => {
|
|
361
|
-
return new big_js.default(scaled.toString()).mul(new big_js.default(10).pow(decimals0)).div(new big_js.default(10).pow(decimals1)).div(PRICE_PRECISION.toString());
|
|
362
|
-
};
|
|
363
|
-
const scalePrice = (unscaled, decimals0, decimals1, precision = 18) => {
|
|
364
|
-
return BigInt((0, big_js.default)(unscaled).mul(new big_js.default(10).pow(precision)).mul(new big_js.default(10).pow(decimals1)).div(new big_js.default(10).pow(decimals0)).round().toFixed(0));
|
|
365
|
-
};
|
|
366
359
|
const formatAmount = (value) => {
|
|
367
360
|
if (!value) return "-";
|
|
368
361
|
value = new big_js.default(value);
|
|
@@ -553,18 +546,6 @@ Object.defineProperty(exports, 'roundTick', {
|
|
|
553
546
|
return roundTick;
|
|
554
547
|
}
|
|
555
548
|
});
|
|
556
|
-
Object.defineProperty(exports, 'scaleAmount', {
|
|
557
|
-
enumerable: true,
|
|
558
|
-
get: function () {
|
|
559
|
-
return scaleAmount;
|
|
560
|
-
}
|
|
561
|
-
});
|
|
562
|
-
Object.defineProperty(exports, 'scalePrice', {
|
|
563
|
-
enumerable: true,
|
|
564
|
-
get: function () {
|
|
565
|
-
return scalePrice;
|
|
566
|
-
}
|
|
567
|
-
});
|
|
568
549
|
Object.defineProperty(exports, 'stateViews', {
|
|
569
550
|
enumerable: true,
|
|
570
551
|
get: function () {
|
|
@@ -619,18 +600,6 @@ Object.defineProperty(exports, 'token1ToToken0AtTick', {
|
|
|
619
600
|
return token1ToToken0AtTick;
|
|
620
601
|
}
|
|
621
602
|
});
|
|
622
|
-
Object.defineProperty(exports, 'unscaleAmount', {
|
|
623
|
-
enumerable: true,
|
|
624
|
-
get: function () {
|
|
625
|
-
return unscaleAmount;
|
|
626
|
-
}
|
|
627
|
-
});
|
|
628
|
-
Object.defineProperty(exports, 'unscalePrice', {
|
|
629
|
-
enumerable: true,
|
|
630
|
-
get: function () {
|
|
631
|
-
return unscalePrice;
|
|
632
|
-
}
|
|
633
|
-
});
|
|
634
603
|
Object.defineProperty(exports, 'wrapAmount', {
|
|
635
604
|
enumerable: true,
|
|
636
605
|
get: function () {
|
|
@@ -661,4 +630,4 @@ Object.defineProperty(exports, 'zero', {
|
|
|
661
630
|
return zero;
|
|
662
631
|
}
|
|
663
632
|
});
|
|
664
|
-
//# sourceMappingURL=optionUtils-
|
|
633
|
+
//# sourceMappingURL=optionUtils-DnlZztx2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionUtils-DnlZztx2.cjs","names":["erc20Abi","optionsMarketAbi","statelessStateViewAbi","lensAbi","swappers: Record<number, Address>","baseSepolia","timelockLenses: Record<number, Address>","timelockFactories: Record<number, Address>","swapRouters: Record<number, Address>","stateViews: Record<number, Address>","filled: PriceDataPoint[]","lastKnownPrice: PriceDataPoint | null","Big","JSBI","TickMath","SqrtPriceMath","zero: Amount","Big"],"sources":["../src/lib/contracts.ts","../src/lib/price.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts","../src/lib/optionUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {baseSepolia} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {statelessStateViewAbi} from '~/abis/statelessStateView';\n\nexport type TimelockMarket = GetContractReturnType<\n typeof optionsMarketAbi,\n Client,\n Address\n>;\nexport type TimelockLens = GetContractReturnType<\n typeof lensAbi,\n Client,\n Address\n>;\n\nexport type TimelockMarketData = Awaited<\n ReturnType<TimelockLens['read']['getMarketData']>\n> & {address: Address};\n\nexport const getErc20 = (address: Address, client: Client) =>\n getContract({abi: erc20Abi, address, client});\n\nexport const getTimelockMarket = (\n address: Address,\n client: Client,\n): TimelockMarket => {\n return getContract({abi: optionsMarketAbi, address, client});\n};\n\nexport const getStateView = async (client: PublicClient, address?: Address) => {\n if (!address) {\n const chainId = await client.getChainId();\n address = stateViews[chainId];\n if (!address) throw new Error(`No state view found for ${chainId}`);\n }\n return getContract({abi: statelessStateViewAbi, address, client});\n};\n\nexport const getTimelockLens = async (\n client: PublicClient,\n address?: Address,\n) => {\n if (!address) {\n const chainId = await client.getChainId();\n address = timelockLenses[chainId];\n if (!address) throw new Error(`No timelock lens found for ${chainId}`);\n }\n return getContract({abi: lensAbi, address, client});\n};\n\nexport const swappers: Record<number, Address> = {\n [baseSepolia.id]: '0xA16412db5c1Fc7e81574077913f5760d6c368Bd9',\n};\nexport const timelockLenses: Record<number, Address> = {\n [baseSepolia.id]: '0x3A33750F18fAF30abc7A773eA1C225AA85B63e46',\n};\nexport const timelockFactories: Record<number, Address> = {\n [baseSepolia.id]: '0xea78d1869f78e301A18ab064b4287563974ab977',\n};\nexport const swapRouters: Record<number, Address> = {\n [baseSepolia.id]: '0x1a005FE3C05F076983F0d66a5F80CB9C61561a5b',\n};\nexport const stateViews: Record<number, Address> = {\n [baseSepolia.id]: '0x06AF24d39b8cb2100958EAAF279707Bec11160C8',\n};\n","import type {Address} from 'viem';\n\nexport interface PriceData {\n currentPrice: number;\n percentChange: number;\n poolAddr: string;\n timestamp: number;\n}\n\nexport interface PriceDataPoint {\n timestamp: Date;\n price: number;\n}\n\nexport type PriceResolution = '1m' | '5m' | '15m' | '1h' | '4h' | '1d';\n\nconst getResolutionConfig = (resolution: PriceResolution) => {\n const resolutionMap = {\n '1m': {timeframe: 'minute', aggregate: '1', seconds: 60},\n '5m': {timeframe: 'minute', aggregate: '5', seconds: 300},\n '15m': {timeframe: 'minute', aggregate: '15', seconds: 900},\n '1h': {timeframe: 'hour', aggregate: '1', seconds: 3600},\n '4h': {timeframe: 'hour', aggregate: '4', seconds: 14400},\n '1d': {timeframe: 'day', aggregate: '1', seconds: 86400},\n };\n return resolutionMap[resolution];\n};\n\nconst fillGaps = (\n prices: PriceDataPoint[],\n start: Date,\n end: Date,\n intervalMs: number,\n): PriceDataPoint[] => {\n if (prices.length === 0) return [];\n\n const priceMap = new Map<number, PriceDataPoint>();\n\n for (const point of prices) {\n const alignedTime =\n Math.floor(point.timestamp.getTime() / intervalMs) * intervalMs;\n priceMap.set(alignedTime, point);\n }\n const filled: PriceDataPoint[] = [];\n\n const actualStart =\n Math.floor(prices[0].timestamp.getTime() / intervalMs) * intervalMs;\n\n let currentTime = actualStart;\n let lastKnownPrice: PriceDataPoint | null = null;\n\n while (currentTime <= end.getTime()) {\n const existing = priceMap.get(currentTime);\n\n if (existing) {\n filled.push(existing);\n lastKnownPrice = existing;\n } else if (lastKnownPrice) {\n filled.push({\n timestamp: new Date(currentTime),\n price: lastKnownPrice.price,\n });\n }\n currentTime += intervalMs;\n }\n return filled;\n};\n\nexport const getPriceHistory = async (\n pool: Address,\n token: 0 | 1,\n resolution: PriceResolution,\n start: Date,\n end: Date,\n): Promise<PriceDataPoint[]> => {\n const network = 'monad-testnet';\n const {timeframe, aggregate, seconds} = getResolutionConfig(resolution);\n\n if (end.getTime() > Date.now()) {\n end = new Date(Date.now());\n }\n const startSecs = Math.floor(start.getTime() / 1000);\n const endSecs = Math.floor(end.getTime() / 1000);\n const diffSeconds = endSecs - startSecs;\n\n const limit = Math.min(Math.ceil(diffSeconds / seconds), 1000);\n\n const url =\n `https://api.geckoterminal.com/api/v2/networks/${network}/pools/${pool}/ohlcv/${timeframe}` +\n `?aggregate=${aggregate}` +\n `&limit=${limit}` +\n `&token=${token === 0 ? 'base' : 'quote'}` +\n '¤cy=usd' +\n `&before_timestamp=${endSecs}`;\n\n const res = await fetch(url, {headers: {Accept: 'application/json'}});\n\n if (!res.ok) {\n throw new Error(`Failed to fetch price history: ${res.statusText}`);\n }\n const data = (await res.json()) as {\n data: {\n attributes: {\n ohlcv_list: [number, number, number, number, number, number][];\n };\n };\n };\n const prices: PriceDataPoint[] = data.data.attributes.ohlcv_list\n .map(([timestamp, , , , close]) => ({\n timestamp: new Date(timestamp * 1000),\n price: close,\n }))\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());\n\n return fillGaps(prices, start, end, seconds * 1000).filter(\n point =>\n point.timestamp.getTime() / 1000 >= startSecs &&\n point.timestamp.getTime() / 1000 <= endSecs,\n );\n};\n\nexport const getCurrentPrice = async (\n poolAddr: Address,\n tokenAddr: Address,\n): Promise<PriceData> => {\n const network = 'monad-testnet';\n const geckoUrl = `https://api.geckoterminal.com/api/v2/networks/${network}/pools/${poolAddr.toLowerCase()}`;\n\n const response = await fetch(geckoUrl, {\n method: 'GET',\n headers: {Accept: 'application/json', 'User-Agent': 'TimelockTrade/1.0'},\n cache: 'no-store', // Keep no-store for real-time data\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch price data for pool ${poolAddr}`);\n }\n const data = (await response.json()) as {\n data: {\n attributes: {\n base_token_price_quote_token: string;\n quote_token_price_base_token: string;\n price_change_percentage: {h24: string};\n };\n relationships: {\n base_token: {data: {id: string; type: string}};\n quote_token: {data: {id: string; type: string}};\n };\n };\n };\n const pool = data.data.attributes;\n const relationships = data.data.relationships;\n\n const baseTokenAddr = relationships.base_token.data.id\n .split('_')[1]\n .toLowerCase();\n const quoteTokenAddr = relationships.quote_token.data.id\n .split('_')[1]\n .toLowerCase();\n\n const isBaseToken = tokenAddr.toLowerCase() === baseTokenAddr.toLowerCase();\n const isQuoteToken = tokenAddr.toLowerCase() === quoteTokenAddr.toLowerCase();\n\n if (!isBaseToken && !isQuoteToken) {\n throw new Error(`Token ${tokenAddr} is not part of pool ${poolAddr}`);\n }\n const price = isBaseToken\n ? pool.base_token_price_quote_token\n : pool.quote_token_price_base_token;\n const priceChange = pool.price_change_percentage?.h24;\n\n return {\n currentPrice: parseFloat(price || '0'),\n percentChange: parseFloat(priceChange || '0'),\n poolAddr: poolAddr,\n timestamp: Date.now(),\n };\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\nimport type {Amount} from './numberUtils';\n\n// Set Big.js precision to handle 512-bit arithmetic\n// 155 decimal places provides ~515 bits of precision (log2(10^155) ≈ 515)\nBig.DP = 155; // Decimal places for division and sqrt operations\nBig.RM = Big.roundDown; // Round down to match Solidity's integer division behavior\n\nexport const PRICE_PRECISION = BigInt(2) ** BigInt(128);\n\nexport const getPriceAtSqrtPriceX96 = (sqrtPriceX96: bigint) => {\n const priceX192 = sqrtPriceX96 * sqrtPriceX96;\n const price = (priceX192 * PRICE_PRECISION) / BigInt(2 ** 192);\n\n return price;\n};\n\nexport const getSqrtPriceX96AtPrice = (price: bigint) => {\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(price.toString())\n .mul(2 ** 192)\n .div(PRICE_PRECISION.toString())\n .sqrt()\n .toFixed(0),\n );\n return sqrtPriceX96;\n};\n\nexport const getPriceAtTick = (tick: number) => {\n const sqrtRatioX96 = BigInt(TickMath.getSqrtRatioAtTick(tick).toString());\n\n const priceX192 = sqrtRatioX96 * sqrtRatioX96;\n const price = (priceX192 * PRICE_PRECISION) / BigInt(2 ** 192);\n\n return price;\n};\n\nexport const getTickAtPrice = (price: bigint) => {\n const sqrtPriceX96 = getSqrtPriceX96AtPrice(price);\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const getNearestValidStrikeTick = (\n optionType: 'CALL' | 'PUT',\n optionAssetIsToken0: boolean,\n tickSpacing: number,\n currentTick: number,\n strikeTick?: number,\n) => {\n strikeTick = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTick += tickSpacing;\n }\n return strikeTick;\n};\n\nexport const roundTick = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem >= 0) return tick - rem;\n return tick - rem - spacing;\n};\n\nexport const token0ToToken1 = (amount0: bigint, price: bigint | Amount) => {\n price = typeof price === 'bigint' ? price : price.scaled;\n return (amount0 * price) / PRICE_PRECISION;\n};\nexport const token1ToToken0 = (amount1: bigint, price: bigint | Amount) => {\n price = typeof price === 'bigint' ? price : price.scaled;\n return (amount1 * PRICE_PRECISION) / price;\n};\n\nexport const token0ToToken1AtTick = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\nexport const token1ToToken0AtTick = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\n};\n\nexport const getAmountsFromLiquidity = (\n tickLower: number,\n tickUpper: number,\n liquidity: bigint,\n currentTick: number,\n): [bigint, bigint] => {\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n let delta0 = JSBI.BigInt(0);\n let delta1 = JSBI.BigInt(0);\n\n if (currentTick < tickLower) {\n delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n } else if (currentTick >= tickUpper) {\n delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n } else {\n delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioX96,\n liquidityJSBI,\n false,\n );\n }\n return [BigInt(delta0.toString()), BigInt(delta1.toString())];\n};\n\nexport const liquiditiesToAmount0 = (\n liquidities: bigint[],\n startTick: number,\n tickSpacing: number,\n) => {\n let amount0 = BigInt(0);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n const amount0Delta = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(amount0Delta.toString());\n }\n return amount0;\n};\n\nexport const liquiditiesToAmount1 = (\n liquidities: bigint[],\n startTick: number,\n tickSpacing: number,\n) => {\n let amount1 = BigInt(0);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n const amount1Delta = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(amount1Delta.toString());\n }\n return amount1;\n};\n\nexport const liquiditiesToAmounts = (\n liquidities: bigint[],\n startTick: number,\n price: bigint,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = getSqrtPriceX96AtPrice(price);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n if (JSBI.lessThanOrEqual(sqrtRatioX96, sqrtRatioAX96)) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (JSBI.lessThan(sqrtRatioX96, sqrtRatioBX96)) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n amount1 += BigInt(delta1.toString());\n } else {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\nimport {PRICE_PRECISION} from './liquidityUtils';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n scalingFactor: Big;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n scalingFactor: Big(1e18),\n formatted: '0',\n};\n\nconst scale = (amount: Big | number | string, scalingFactor: Big): bigint => {\n return BigInt(Big(amount).mul(scalingFactor).toFixed(0));\n};\nconst unscale = (amount: bigint, scalingFactor: Big): Big => {\n return Big(amount.toString()).div(scalingFactor);\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const scalingFactor = Big(10).pow(decimals);\n const unscaled = unscale(scaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scalingFactor = Big(10).pow(decimals);\n const scaled = scale(unscaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const scalingFactor = Big(PRICE_PRECISION.toString())\n .mul(Big(10).pow(decimals1))\n .div(Big(10).pow(decimals0));\n\n const unscaled = unscale(scaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n\n const scalingFactor = Big(PRICE_PRECISION.toString())\n .mul(Big(10).pow(decimals1))\n .div(Big(10).pow(decimals0));\n\n const scaled = scale(unscaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (!value) return '-';\n value = new Big(value);\n\n if (value.gte(1e8)) return formatVagueAmount(value, 2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (\n value: Big | number | bigint | string,\n fractionDigits = 2,\n) => {\n value = Number(value);\n if (value === 0) return '0';\n\n const formatted = value.toExponential(fractionDigits);\n return formatted.replace(/\\.?0+e/, 'e').replace(/e\\+/, 'e');\n};\n\nexport const formatCondensed = (\n input: string | number,\n decimals = 2,\n): string => {\n const str = (typeof input === 'number' ? input.toFixed(20) : input)\n .replace(/(\\.\\d*?)0+$/, '$1')\n .replace(/\\.$/, '');\n\n const [whole, decimal] = str.split('.');\n\n const formattedWhole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n if (!decimal) return formattedWhole;\n\n const leadingZeroMatch = decimal.match(/^(0{3,})/);\n\n if (leadingZeroMatch) {\n const zeroCount = leadingZeroMatch[1].length;\n const subscript = toSubscript(zeroCount.toString());\n const remaining = decimal.slice(zeroCount);\n\n const twoDigits = remaining.slice(0, decimals);\n return `${formattedWhole}.0${subscript}${twoDigits}`;\n } else {\n // No subscript needed, find first 2 significant digits\n const nonZeroStart = decimal.search(/[1-9]/); // Find first non-zero digit\n\n if (nonZeroStart === -1) {\n return formattedWhole; // All zeros\n }\n const significantPart = decimal.slice(nonZeroStart);\n const twoDigits = significantPart.slice(0, decimals);\n const leadingZeros = decimal.slice(0, nonZeroStart);\n\n return `${formattedWhole}.${leadingZeros}${twoDigits}`;\n }\n};\n\nconst toSubscript = (input: string) => {\n return input.replace(/[0-9]/g, m => '₀₁₂₃₄₅₆₇₈₉'[+m]);\n};\n\nexport const formatUSD = (value: Big | string | number): string => {\n return '$' + formatAmount(value);\n};\n","import type {OptionData} from '~/package/client';\nimport {\n getPriceAtTick,\n liquiditiesToAmounts,\n token0ToToken1,\n token1ToToken0,\n} from './liquidityUtils';\n\nexport const getPayoutAtTick = (\n option: OptionData,\n liquidities: bigint[],\n tick: number,\n tickSpacing: number,\n optionAssetIsToken0: boolean,\n) => {\n return getPayoutAtPrice(\n option,\n liquidities,\n getPriceAtTick(tick),\n tickSpacing,\n optionAssetIsToken0,\n );\n};\n\nexport const getPayoutAtPrice = (\n option: OptionData,\n liquidities: bigint[],\n price: bigint,\n tickSpacing: number,\n optionAssetIsToken0: boolean,\n) => {\n const [borrowedAmount0, borrowedAmount1] = liquiditiesToAmounts(\n liquidities,\n option.startTick,\n option.entryPrice,\n tickSpacing,\n );\n const [repayAmount0, repayAmount1] = liquiditiesToAmounts(\n liquidities,\n option.startTick,\n price,\n tickSpacing,\n );\n const totalAmount = optionAssetIsToken0\n ? borrowedAmount1 + token0ToToken1(borrowedAmount0, price)\n : borrowedAmount0 + token1ToToken0(borrowedAmount1, price);\n\n const repayAmount = optionAssetIsToken0\n ? repayAmount1 + token0ToToken1(repayAmount0, price)\n : repayAmount0 + token1ToToken0(repayAmount1, price);\n\n const delta = totalAmount - repayAmount;\n const payout = delta < 0n ? 0n : delta;\n\n return payout;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as erc20Abi$1, n as optionsMarketAbi, r as lensAbi, t as statelessStateViewAbi } from "./statelessStateView-
|
|
1
|
+
import { i as erc20Abi$1, n as optionsMarketAbi, r as lensAbi, t as statelessStateViewAbi } from "./statelessStateView-UwLGcATc.js";
|
|
2
2
|
import { getContract } from "viem";
|
|
3
3
|
import { baseSepolia } from "viem/chains";
|
|
4
4
|
import { SqrtPriceMath, TickMath } from "@uniswap/v3-sdk";
|
|
@@ -43,7 +43,7 @@ const getTimelockLens = async (client, address) => {
|
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
45
|
const swappers = { [baseSepolia.id]: "0xA16412db5c1Fc7e81574077913f5760d6c368Bd9" };
|
|
46
|
-
const timelockLenses = { [baseSepolia.id]: "
|
|
46
|
+
const timelockLenses = { [baseSepolia.id]: "0x3A33750F18fAF30abc7A773eA1C225AA85B63e46" };
|
|
47
47
|
const timelockFactories = { [baseSepolia.id]: "0xea78d1869f78e301A18ab064b4287563974ab977" };
|
|
48
48
|
const swapRouters = { [baseSepolia.id]: "0x1a005FE3C05F076983F0d66a5F80CB9C61561a5b" };
|
|
49
49
|
const stateViews = { [baseSepolia.id]: "0x06AF24d39b8cb2100958EAAF279707Bec11160C8" };
|
|
@@ -168,8 +168,7 @@ const getPriceAtTick = (tick) => {
|
|
|
168
168
|
return sqrtRatioX96 * sqrtRatioX96 * PRICE_PRECISION / BigInt(2 ** 192);
|
|
169
169
|
};
|
|
170
170
|
const getTickAtPrice = (price) => {
|
|
171
|
-
const
|
|
172
|
-
const sqrtPriceX96 = JSBI.BigInt(new Big(priceX192.toString()).sqrt().toFixed(0));
|
|
171
|
+
const sqrtPriceX96 = getSqrtPriceX96AtPrice(price);
|
|
173
172
|
return TickMath.getTickAtSqrtRatio(sqrtPriceX96);
|
|
174
173
|
};
|
|
175
174
|
const getNearestValidStrikeTick = (optionType, optionAssetIsToken0, tickSpacing, currentTick, strikeTick) => {
|
|
@@ -275,12 +274,18 @@ const liquiditiesToAmounts = (liquidities, startTick, price, tickSpacing) => {
|
|
|
275
274
|
const zero = {
|
|
276
275
|
scaled: 0n,
|
|
277
276
|
unscaled: Big(0),
|
|
278
|
-
scalingFactor:
|
|
277
|
+
scalingFactor: Big(0xde0b6b3a7640000),
|
|
279
278
|
formatted: "0"
|
|
280
279
|
};
|
|
280
|
+
const scale = (amount, scalingFactor) => {
|
|
281
|
+
return BigInt(Big(amount).mul(scalingFactor).toFixed(0));
|
|
282
|
+
};
|
|
283
|
+
const unscale = (amount, scalingFactor) => {
|
|
284
|
+
return Big(amount.toString()).div(scalingFactor);
|
|
285
|
+
};
|
|
281
286
|
const wrapAmount = (scaled, decimals) => {
|
|
282
|
-
const scalingFactor =
|
|
283
|
-
const unscaled =
|
|
287
|
+
const scalingFactor = Big(10).pow(decimals);
|
|
288
|
+
const unscaled = unscale(scaled, scalingFactor);
|
|
284
289
|
return {
|
|
285
290
|
scaled,
|
|
286
291
|
unscaled,
|
|
@@ -290,8 +295,8 @@ const wrapAmount = (scaled, decimals) => {
|
|
|
290
295
|
};
|
|
291
296
|
const wrapAmountUnscaled = (unscaled, decimals) => {
|
|
292
297
|
unscaled = Big(unscaled);
|
|
293
|
-
const scalingFactor =
|
|
294
|
-
const scaled =
|
|
298
|
+
const scalingFactor = Big(10).pow(decimals);
|
|
299
|
+
const scaled = scale(unscaled, scalingFactor);
|
|
295
300
|
const formatted = formatAmount(unscaled);
|
|
296
301
|
return {
|
|
297
302
|
scaled,
|
|
@@ -301,8 +306,8 @@ const wrapAmountUnscaled = (unscaled, decimals) => {
|
|
|
301
306
|
};
|
|
302
307
|
};
|
|
303
308
|
const wrapPrice = (scaled, decimals0, decimals1) => {
|
|
304
|
-
const scalingFactor =
|
|
305
|
-
const unscaled =
|
|
309
|
+
const scalingFactor = Big(PRICE_PRECISION.toString()).mul(Big(10).pow(decimals1)).div(Big(10).pow(decimals0));
|
|
310
|
+
const unscaled = unscale(scaled, scalingFactor);
|
|
306
311
|
return {
|
|
307
312
|
scaled,
|
|
308
313
|
unscaled,
|
|
@@ -312,8 +317,8 @@ const wrapPrice = (scaled, decimals0, decimals1) => {
|
|
|
312
317
|
};
|
|
313
318
|
const wrapPriceUnscaled = (unscaled, decimals0, decimals1) => {
|
|
314
319
|
unscaled = Big(unscaled);
|
|
315
|
-
const scalingFactor =
|
|
316
|
-
const scaled =
|
|
320
|
+
const scalingFactor = Big(PRICE_PRECISION.toString()).mul(Big(10).pow(decimals1)).div(Big(10).pow(decimals0));
|
|
321
|
+
const scaled = scale(unscaled, scalingFactor);
|
|
317
322
|
const formatted = formatAmount(unscaled);
|
|
318
323
|
return {
|
|
319
324
|
scaled,
|
|
@@ -322,18 +327,6 @@ const wrapPriceUnscaled = (unscaled, decimals0, decimals1) => {
|
|
|
322
327
|
formatted
|
|
323
328
|
};
|
|
324
329
|
};
|
|
325
|
-
const unscaleAmount = (scaled, decimals) => {
|
|
326
|
-
return new Big(scaled.toString()).div(new Big(10).pow(decimals));
|
|
327
|
-
};
|
|
328
|
-
const scaleAmount = (unscaled, decimals) => {
|
|
329
|
-
return BigInt(Big(unscaled).mul(new Big(10).pow(decimals)).round().toFixed(0));
|
|
330
|
-
};
|
|
331
|
-
const unscalePrice = (scaled, decimals0, decimals1) => {
|
|
332
|
-
return new Big(scaled.toString()).mul(new Big(10).pow(decimals0)).div(new Big(10).pow(decimals1)).div(PRICE_PRECISION.toString());
|
|
333
|
-
};
|
|
334
|
-
const scalePrice = (unscaled, decimals0, decimals1, precision = 18) => {
|
|
335
|
-
return BigInt(Big(unscaled).mul(new Big(10).pow(precision)).mul(new Big(10).pow(decimals1)).div(new Big(10).pow(decimals0)).round().toFixed(0));
|
|
336
|
-
};
|
|
337
330
|
const formatAmount = (value) => {
|
|
338
331
|
if (!value) return "-";
|
|
339
332
|
value = new Big(value);
|
|
@@ -380,5 +373,5 @@ const getPayoutAtPrice = (option, liquidities, price, tickSpacing, optionAssetIs
|
|
|
380
373
|
};
|
|
381
374
|
|
|
382
375
|
//#endregion
|
|
383
|
-
export {
|
|
384
|
-
//# sourceMappingURL=optionUtils-
|
|
376
|
+
export { getStateView as A, token0ToToken1 as C, getCurrentPrice as D, token1ToToken0AtTick as E, swappers as F, timelockFactories as I, timelockLenses as L, getTimelockMarket as M, stateViews as N, getPriceHistory as O, swapRouters as P, roundTick as S, token1ToToken0 as T, getSqrtPriceX96AtPrice as _, formatUSD as a, liquiditiesToAmount1 as b, wrapAmountUnscaled as c, zero as d, PRICE_PRECISION as f, getPriceAtTick as g, getPriceAtSqrtPriceX96 as h, formatCondensed as i, getTimelockLens as j, getErc20 as k, wrapPrice as l, getNearestValidStrikeTick as m, getPayoutAtTick as n, formatVagueAmount as o, getAmountsFromLiquidity as p, formatAmount as r, wrapAmount as s, getPayoutAtPrice as t, wrapPriceUnscaled as u, getTickAtPrice as v, token0ToToken1AtTick as w, liquiditiesToAmounts as x, liquiditiesToAmount0 as y };
|
|
377
|
+
//# sourceMappingURL=optionUtils-Xu6KDjhk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionUtils-Xu6KDjhk.js","names":["erc20Abi","swappers: Record<number, Address>","timelockLenses: Record<number, Address>","timelockFactories: Record<number, Address>","swapRouters: Record<number, Address>","stateViews: Record<number, Address>","filled: PriceDataPoint[]","lastKnownPrice: PriceDataPoint | null","zero: Amount"],"sources":["../src/lib/contracts.ts","../src/lib/price.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts","../src/lib/optionUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {baseSepolia} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {statelessStateViewAbi} from '~/abis/statelessStateView';\n\nexport type TimelockMarket = GetContractReturnType<\n typeof optionsMarketAbi,\n Client,\n Address\n>;\nexport type TimelockLens = GetContractReturnType<\n typeof lensAbi,\n Client,\n Address\n>;\n\nexport type TimelockMarketData = Awaited<\n ReturnType<TimelockLens['read']['getMarketData']>\n> & {address: Address};\n\nexport const getErc20 = (address: Address, client: Client) =>\n getContract({abi: erc20Abi, address, client});\n\nexport const getTimelockMarket = (\n address: Address,\n client: Client,\n): TimelockMarket => {\n return getContract({abi: optionsMarketAbi, address, client});\n};\n\nexport const getStateView = async (client: PublicClient, address?: Address) => {\n if (!address) {\n const chainId = await client.getChainId();\n address = stateViews[chainId];\n if (!address) throw new Error(`No state view found for ${chainId}`);\n }\n return getContract({abi: statelessStateViewAbi, address, client});\n};\n\nexport const getTimelockLens = async (\n client: PublicClient,\n address?: Address,\n) => {\n if (!address) {\n const chainId = await client.getChainId();\n address = timelockLenses[chainId];\n if (!address) throw new Error(`No timelock lens found for ${chainId}`);\n }\n return getContract({abi: lensAbi, address, client});\n};\n\nexport const swappers: Record<number, Address> = {\n [baseSepolia.id]: '0xA16412db5c1Fc7e81574077913f5760d6c368Bd9',\n};\nexport const timelockLenses: Record<number, Address> = {\n [baseSepolia.id]: '0x3A33750F18fAF30abc7A773eA1C225AA85B63e46',\n};\nexport const timelockFactories: Record<number, Address> = {\n [baseSepolia.id]: '0xea78d1869f78e301A18ab064b4287563974ab977',\n};\nexport const swapRouters: Record<number, Address> = {\n [baseSepolia.id]: '0x1a005FE3C05F076983F0d66a5F80CB9C61561a5b',\n};\nexport const stateViews: Record<number, Address> = {\n [baseSepolia.id]: '0x06AF24d39b8cb2100958EAAF279707Bec11160C8',\n};\n","import type {Address} from 'viem';\n\nexport interface PriceData {\n currentPrice: number;\n percentChange: number;\n poolAddr: string;\n timestamp: number;\n}\n\nexport interface PriceDataPoint {\n timestamp: Date;\n price: number;\n}\n\nexport type PriceResolution = '1m' | '5m' | '15m' | '1h' | '4h' | '1d';\n\nconst getResolutionConfig = (resolution: PriceResolution) => {\n const resolutionMap = {\n '1m': {timeframe: 'minute', aggregate: '1', seconds: 60},\n '5m': {timeframe: 'minute', aggregate: '5', seconds: 300},\n '15m': {timeframe: 'minute', aggregate: '15', seconds: 900},\n '1h': {timeframe: 'hour', aggregate: '1', seconds: 3600},\n '4h': {timeframe: 'hour', aggregate: '4', seconds: 14400},\n '1d': {timeframe: 'day', aggregate: '1', seconds: 86400},\n };\n return resolutionMap[resolution];\n};\n\nconst fillGaps = (\n prices: PriceDataPoint[],\n start: Date,\n end: Date,\n intervalMs: number,\n): PriceDataPoint[] => {\n if (prices.length === 0) return [];\n\n const priceMap = new Map<number, PriceDataPoint>();\n\n for (const point of prices) {\n const alignedTime =\n Math.floor(point.timestamp.getTime() / intervalMs) * intervalMs;\n priceMap.set(alignedTime, point);\n }\n const filled: PriceDataPoint[] = [];\n\n const actualStart =\n Math.floor(prices[0].timestamp.getTime() / intervalMs) * intervalMs;\n\n let currentTime = actualStart;\n let lastKnownPrice: PriceDataPoint | null = null;\n\n while (currentTime <= end.getTime()) {\n const existing = priceMap.get(currentTime);\n\n if (existing) {\n filled.push(existing);\n lastKnownPrice = existing;\n } else if (lastKnownPrice) {\n filled.push({\n timestamp: new Date(currentTime),\n price: lastKnownPrice.price,\n });\n }\n currentTime += intervalMs;\n }\n return filled;\n};\n\nexport const getPriceHistory = async (\n pool: Address,\n token: 0 | 1,\n resolution: PriceResolution,\n start: Date,\n end: Date,\n): Promise<PriceDataPoint[]> => {\n const network = 'monad-testnet';\n const {timeframe, aggregate, seconds} = getResolutionConfig(resolution);\n\n if (end.getTime() > Date.now()) {\n end = new Date(Date.now());\n }\n const startSecs = Math.floor(start.getTime() / 1000);\n const endSecs = Math.floor(end.getTime() / 1000);\n const diffSeconds = endSecs - startSecs;\n\n const limit = Math.min(Math.ceil(diffSeconds / seconds), 1000);\n\n const url =\n `https://api.geckoterminal.com/api/v2/networks/${network}/pools/${pool}/ohlcv/${timeframe}` +\n `?aggregate=${aggregate}` +\n `&limit=${limit}` +\n `&token=${token === 0 ? 'base' : 'quote'}` +\n '¤cy=usd' +\n `&before_timestamp=${endSecs}`;\n\n const res = await fetch(url, {headers: {Accept: 'application/json'}});\n\n if (!res.ok) {\n throw new Error(`Failed to fetch price history: ${res.statusText}`);\n }\n const data = (await res.json()) as {\n data: {\n attributes: {\n ohlcv_list: [number, number, number, number, number, number][];\n };\n };\n };\n const prices: PriceDataPoint[] = data.data.attributes.ohlcv_list\n .map(([timestamp, , , , close]) => ({\n timestamp: new Date(timestamp * 1000),\n price: close,\n }))\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());\n\n return fillGaps(prices, start, end, seconds * 1000).filter(\n point =>\n point.timestamp.getTime() / 1000 >= startSecs &&\n point.timestamp.getTime() / 1000 <= endSecs,\n );\n};\n\nexport const getCurrentPrice = async (\n poolAddr: Address,\n tokenAddr: Address,\n): Promise<PriceData> => {\n const network = 'monad-testnet';\n const geckoUrl = `https://api.geckoterminal.com/api/v2/networks/${network}/pools/${poolAddr.toLowerCase()}`;\n\n const response = await fetch(geckoUrl, {\n method: 'GET',\n headers: {Accept: 'application/json', 'User-Agent': 'TimelockTrade/1.0'},\n cache: 'no-store', // Keep no-store for real-time data\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch price data for pool ${poolAddr}`);\n }\n const data = (await response.json()) as {\n data: {\n attributes: {\n base_token_price_quote_token: string;\n quote_token_price_base_token: string;\n price_change_percentage: {h24: string};\n };\n relationships: {\n base_token: {data: {id: string; type: string}};\n quote_token: {data: {id: string; type: string}};\n };\n };\n };\n const pool = data.data.attributes;\n const relationships = data.data.relationships;\n\n const baseTokenAddr = relationships.base_token.data.id\n .split('_')[1]\n .toLowerCase();\n const quoteTokenAddr = relationships.quote_token.data.id\n .split('_')[1]\n .toLowerCase();\n\n const isBaseToken = tokenAddr.toLowerCase() === baseTokenAddr.toLowerCase();\n const isQuoteToken = tokenAddr.toLowerCase() === quoteTokenAddr.toLowerCase();\n\n if (!isBaseToken && !isQuoteToken) {\n throw new Error(`Token ${tokenAddr} is not part of pool ${poolAddr}`);\n }\n const price = isBaseToken\n ? pool.base_token_price_quote_token\n : pool.quote_token_price_base_token;\n const priceChange = pool.price_change_percentage?.h24;\n\n return {\n currentPrice: parseFloat(price || '0'),\n percentChange: parseFloat(priceChange || '0'),\n poolAddr: poolAddr,\n timestamp: Date.now(),\n };\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\nimport type {Amount} from './numberUtils';\n\n// Set Big.js precision to handle 512-bit arithmetic\n// 155 decimal places provides ~515 bits of precision (log2(10^155) ≈ 515)\nBig.DP = 155; // Decimal places for division and sqrt operations\nBig.RM = Big.roundDown; // Round down to match Solidity's integer division behavior\n\nexport const PRICE_PRECISION = BigInt(2) ** BigInt(128);\n\nexport const getPriceAtSqrtPriceX96 = (sqrtPriceX96: bigint) => {\n const priceX192 = sqrtPriceX96 * sqrtPriceX96;\n const price = (priceX192 * PRICE_PRECISION) / BigInt(2 ** 192);\n\n return price;\n};\n\nexport const getSqrtPriceX96AtPrice = (price: bigint) => {\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(price.toString())\n .mul(2 ** 192)\n .div(PRICE_PRECISION.toString())\n .sqrt()\n .toFixed(0),\n );\n return sqrtPriceX96;\n};\n\nexport const getPriceAtTick = (tick: number) => {\n const sqrtRatioX96 = BigInt(TickMath.getSqrtRatioAtTick(tick).toString());\n\n const priceX192 = sqrtRatioX96 * sqrtRatioX96;\n const price = (priceX192 * PRICE_PRECISION) / BigInt(2 ** 192);\n\n return price;\n};\n\nexport const getTickAtPrice = (price: bigint) => {\n const sqrtPriceX96 = getSqrtPriceX96AtPrice(price);\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const getNearestValidStrikeTick = (\n optionType: 'CALL' | 'PUT',\n optionAssetIsToken0: boolean,\n tickSpacing: number,\n currentTick: number,\n strikeTick?: number,\n) => {\n strikeTick = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTick += tickSpacing;\n }\n return strikeTick;\n};\n\nexport const roundTick = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem >= 0) return tick - rem;\n return tick - rem - spacing;\n};\n\nexport const token0ToToken1 = (amount0: bigint, price: bigint | Amount) => {\n price = typeof price === 'bigint' ? price : price.scaled;\n return (amount0 * price) / PRICE_PRECISION;\n};\nexport const token1ToToken0 = (amount1: bigint, price: bigint | Amount) => {\n price = typeof price === 'bigint' ? price : price.scaled;\n return (amount1 * PRICE_PRECISION) / price;\n};\n\nexport const token0ToToken1AtTick = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\nexport const token1ToToken0AtTick = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\n};\n\nexport const getAmountsFromLiquidity = (\n tickLower: number,\n tickUpper: number,\n liquidity: bigint,\n currentTick: number,\n): [bigint, bigint] => {\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n let delta0 = JSBI.BigInt(0);\n let delta1 = JSBI.BigInt(0);\n\n if (currentTick < tickLower) {\n delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n } else if (currentTick >= tickUpper) {\n delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n } else {\n delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioX96,\n liquidityJSBI,\n false,\n );\n }\n return [BigInt(delta0.toString()), BigInt(delta1.toString())];\n};\n\nexport const liquiditiesToAmount0 = (\n liquidities: bigint[],\n startTick: number,\n tickSpacing: number,\n) => {\n let amount0 = BigInt(0);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n const amount0Delta = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(amount0Delta.toString());\n }\n return amount0;\n};\n\nexport const liquiditiesToAmount1 = (\n liquidities: bigint[],\n startTick: number,\n tickSpacing: number,\n) => {\n let amount1 = BigInt(0);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n const amount1Delta = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(amount1Delta.toString());\n }\n return amount1;\n};\n\nexport const liquiditiesToAmounts = (\n liquidities: bigint[],\n startTick: number,\n price: bigint,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = getSqrtPriceX96AtPrice(price);\n\n for (let i = 0; i < liquidities.length; i++) {\n const liquidity = liquidities[i];\n if (liquidity === BigInt(0)) continue;\n\n const tickLower = startTick + tickSpacing * i;\n const tickUpper = tickLower + tickSpacing;\n\n const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);\n const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);\n const liquidityJSBI = JSBI.BigInt(liquidity.toString());\n\n if (JSBI.lessThanOrEqual(sqrtRatioX96, sqrtRatioAX96)) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (JSBI.lessThan(sqrtRatioX96, sqrtRatioBX96)) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n amount1 += BigInt(delta1.toString());\n } else {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\nimport {PRICE_PRECISION} from './liquidityUtils';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n scalingFactor: Big;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n scalingFactor: Big(1e18),\n formatted: '0',\n};\n\nconst scale = (amount: Big | number | string, scalingFactor: Big): bigint => {\n return BigInt(Big(amount).mul(scalingFactor).toFixed(0));\n};\nconst unscale = (amount: bigint, scalingFactor: Big): Big => {\n return Big(amount.toString()).div(scalingFactor);\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const scalingFactor = Big(10).pow(decimals);\n const unscaled = unscale(scaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scalingFactor = Big(10).pow(decimals);\n const scaled = scale(unscaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const scalingFactor = Big(PRICE_PRECISION.toString())\n .mul(Big(10).pow(decimals1))\n .div(Big(10).pow(decimals0));\n\n const unscaled = unscale(scaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n\n const scalingFactor = Big(PRICE_PRECISION.toString())\n .mul(Big(10).pow(decimals1))\n .div(Big(10).pow(decimals0));\n\n const scaled = scale(unscaled, scalingFactor);\n const formatted = formatAmount(unscaled);\n\n return {scaled, unscaled, scalingFactor, formatted};\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (!value) return '-';\n value = new Big(value);\n\n if (value.gte(1e8)) return formatVagueAmount(value, 2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (\n value: Big | number | bigint | string,\n fractionDigits = 2,\n) => {\n value = Number(value);\n if (value === 0) return '0';\n\n const formatted = value.toExponential(fractionDigits);\n return formatted.replace(/\\.?0+e/, 'e').replace(/e\\+/, 'e');\n};\n\nexport const formatCondensed = (\n input: string | number,\n decimals = 2,\n): string => {\n const str = (typeof input === 'number' ? input.toFixed(20) : input)\n .replace(/(\\.\\d*?)0+$/, '$1')\n .replace(/\\.$/, '');\n\n const [whole, decimal] = str.split('.');\n\n const formattedWhole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n if (!decimal) return formattedWhole;\n\n const leadingZeroMatch = decimal.match(/^(0{3,})/);\n\n if (leadingZeroMatch) {\n const zeroCount = leadingZeroMatch[1].length;\n const subscript = toSubscript(zeroCount.toString());\n const remaining = decimal.slice(zeroCount);\n\n const twoDigits = remaining.slice(0, decimals);\n return `${formattedWhole}.0${subscript}${twoDigits}`;\n } else {\n // No subscript needed, find first 2 significant digits\n const nonZeroStart = decimal.search(/[1-9]/); // Find first non-zero digit\n\n if (nonZeroStart === -1) {\n return formattedWhole; // All zeros\n }\n const significantPart = decimal.slice(nonZeroStart);\n const twoDigits = significantPart.slice(0, decimals);\n const leadingZeros = decimal.slice(0, nonZeroStart);\n\n return `${formattedWhole}.${leadingZeros}${twoDigits}`;\n }\n};\n\nconst toSubscript = (input: string) => {\n return input.replace(/[0-9]/g, m => '₀₁₂₃₄₅₆₇₈₉'[+m]);\n};\n\nexport const formatUSD = (value: Big | string | number): string => {\n return '$' + formatAmount(value);\n};\n","import type {OptionData} from '~/package/client';\nimport {\n getPriceAtTick,\n liquiditiesToAmounts,\n token0ToToken1,\n token1ToToken0,\n} from './liquidityUtils';\n\nexport const getPayoutAtTick = (\n option: OptionData,\n liquidities: bigint[],\n tick: number,\n tickSpacing: number,\n optionAssetIsToken0: boolean,\n) => {\n return getPayoutAtPrice(\n option,\n liquidities,\n getPriceAtTick(tick),\n tickSpacing,\n optionAssetIsToken0,\n );\n};\n\nexport const getPayoutAtPrice = (\n option: OptionData,\n liquidities: bigint[],\n price: bigint,\n tickSpacing: number,\n optionAssetIsToken0: boolean,\n) => {\n const [borrowedAmount0, borrowedAmount1] = liquiditiesToAmounts(\n liquidities,\n option.startTick,\n option.entryPrice,\n tickSpacing,\n );\n const [repayAmount0, repayAmount1] = liquiditiesToAmounts(\n liquidities,\n option.startTick,\n price,\n tickSpacing,\n );\n const totalAmount = optionAssetIsToken0\n ? borrowedAmount1 + token0ToToken1(borrowedAmount0, price)\n : borrowedAmount0 + token1ToToken0(borrowedAmount1, price);\n\n const repayAmount = optionAssetIsToken0\n ? repayAmount1 + token0ToToken1(repayAmount0, price)\n : repayAmount0 + token1ToToken0(repayAmount1, price);\n\n const delta = totalAmount - repayAmount;\n const payout = delta < 0n ? 0n : delta;\n\n return payout;\n};\n"],"mappings":"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"}
|
|
@@ -626,7 +626,7 @@ declare const lensAbi: readonly [{
|
|
|
626
626
|
readonly type: "function";
|
|
627
627
|
readonly name: "getPoolData";
|
|
628
628
|
readonly inputs: readonly [{
|
|
629
|
-
readonly name: "
|
|
629
|
+
readonly name: "";
|
|
630
630
|
readonly type: "address";
|
|
631
631
|
readonly internalType: "contract IPoolManager";
|
|
632
632
|
}, {
|
|
@@ -904,6 +904,14 @@ declare const lensAbi: readonly [{
|
|
|
904
904
|
readonly name: "poolId";
|
|
905
905
|
readonly type: "bytes32";
|
|
906
906
|
readonly internalType: "PoolId";
|
|
907
|
+
}, {
|
|
908
|
+
readonly name: "lowestTick";
|
|
909
|
+
readonly type: "int24";
|
|
910
|
+
readonly internalType: "int24";
|
|
911
|
+
}, {
|
|
912
|
+
readonly name: "highestTick";
|
|
913
|
+
readonly type: "int24";
|
|
914
|
+
readonly internalType: "int24";
|
|
907
915
|
}];
|
|
908
916
|
}];
|
|
909
917
|
readonly stateMutability: "view";
|
|
@@ -2004,4 +2012,4 @@ declare const optionsMarketAbi: readonly [{
|
|
|
2004
2012
|
}];
|
|
2005
2013
|
//#endregion
|
|
2006
2014
|
export { lensAbi as n, optionsMarketAbi as t };
|
|
2007
|
-
//# sourceMappingURL=optionsMarket-
|
|
2015
|
+
//# sourceMappingURL=optionsMarket-BVeFBAO9.d.ts.map
|
|
@@ -626,7 +626,7 @@ declare const lensAbi: readonly [{
|
|
|
626
626
|
readonly type: "function";
|
|
627
627
|
readonly name: "getPoolData";
|
|
628
628
|
readonly inputs: readonly [{
|
|
629
|
-
readonly name: "
|
|
629
|
+
readonly name: "";
|
|
630
630
|
readonly type: "address";
|
|
631
631
|
readonly internalType: "contract IPoolManager";
|
|
632
632
|
}, {
|
|
@@ -904,6 +904,14 @@ declare const lensAbi: readonly [{
|
|
|
904
904
|
readonly name: "poolId";
|
|
905
905
|
readonly type: "bytes32";
|
|
906
906
|
readonly internalType: "PoolId";
|
|
907
|
+
}, {
|
|
908
|
+
readonly name: "lowestTick";
|
|
909
|
+
readonly type: "int24";
|
|
910
|
+
readonly internalType: "int24";
|
|
911
|
+
}, {
|
|
912
|
+
readonly name: "highestTick";
|
|
913
|
+
readonly type: "int24";
|
|
914
|
+
readonly internalType: "int24";
|
|
907
915
|
}];
|
|
908
916
|
}];
|
|
909
917
|
readonly stateMutability: "view";
|
|
@@ -2004,4 +2012,4 @@ declare const optionsMarketAbi: readonly [{
|
|
|
2004
2012
|
}];
|
|
2005
2013
|
//#endregion
|
|
2006
2014
|
export { lensAbi as n, optionsMarketAbi as t };
|
|
2007
|
-
//# sourceMappingURL=optionsMarket-
|
|
2015
|
+
//# sourceMappingURL=optionsMarket-jE1scXOT.d.cts.map
|
package/dist/package.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_optionUtils = require('./optionUtils-
|
|
1
|
+
const require_optionUtils = require('./optionUtils-DnlZztx2.cjs');
|
|
2
2
|
|
|
3
3
|
exports.PRICE_PRECISION = require_optionUtils.PRICE_PRECISION;
|
|
4
4
|
exports.formatAmount = require_optionUtils.formatAmount;
|
|
@@ -23,8 +23,6 @@ exports.liquiditiesToAmount0 = require_optionUtils.liquiditiesToAmount0;
|
|
|
23
23
|
exports.liquiditiesToAmount1 = require_optionUtils.liquiditiesToAmount1;
|
|
24
24
|
exports.liquiditiesToAmounts = require_optionUtils.liquiditiesToAmounts;
|
|
25
25
|
exports.roundTick = require_optionUtils.roundTick;
|
|
26
|
-
exports.scaleAmount = require_optionUtils.scaleAmount;
|
|
27
|
-
exports.scalePrice = require_optionUtils.scalePrice;
|
|
28
26
|
exports.stateViews = require_optionUtils.stateViews;
|
|
29
27
|
exports.swapRouters = require_optionUtils.swapRouters;
|
|
30
28
|
exports.swappers = require_optionUtils.swappers;
|
|
@@ -34,8 +32,6 @@ exports.token0ToToken1 = require_optionUtils.token0ToToken1;
|
|
|
34
32
|
exports.token0ToToken1AtTick = require_optionUtils.token0ToToken1AtTick;
|
|
35
33
|
exports.token1ToToken0 = require_optionUtils.token1ToToken0;
|
|
36
34
|
exports.token1ToToken0AtTick = require_optionUtils.token1ToToken0AtTick;
|
|
37
|
-
exports.unscaleAmount = require_optionUtils.unscaleAmount;
|
|
38
|
-
exports.unscalePrice = require_optionUtils.unscalePrice;
|
|
39
35
|
exports.wrapAmount = require_optionUtils.wrapAmount;
|
|
40
36
|
exports.wrapAmountUnscaled = require_optionUtils.wrapAmountUnscaled;
|
|
41
37
|
exports.wrapPrice = require_optionUtils.wrapPrice;
|
package/dist/package.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as PriceResolution,
|
|
2
|
-
export { Amount, PRICE_PRECISION, PriceData, PriceDataPoint, PriceResolution, TimelockLens, TimelockMarket, TimelockMarketData, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick,
|
|
1
|
+
import { $ as PriceResolution, At as wrapAmount, B as getPriceAtTick, Dt as formatCondensed, Et as formatAmount, F as getPayoutAtTick, G as liquiditiesToAmounts, Gt as getStateView, H as getTickAtPrice, Ht as TimelockMarket, I as PRICE_PRECISION, J as token0ToToken1AtTick, Jt as stateViews, K as roundTick, Kt as getTimelockLens, L as getAmountsFromLiquidity, Mt as wrapPrice, Nt as wrapPriceUnscaled, Ot as formatUSD, P as getPayoutAtPrice, Pt as zero, Q as PriceDataPoint, Qt as timelockLenses, R as getNearestValidStrikeTick, Tt as Amount, U as liquiditiesToAmount0, Ut as TimelockMarketData, V as getSqrtPriceX96AtPrice, Vt as TimelockLens, W as liquiditiesToAmount1, Wt as getErc20, X as token1ToToken0AtTick, Xt as swappers, Y as token1ToToken0, Yt as swapRouters, Z as PriceData, Zt as timelockFactories, et as getCurrentPrice, jt as wrapAmountUnscaled, kt as formatVagueAmount, q as token0ToToken1, qt as getTimelockMarket, tt as getPriceHistory, z as getPriceAtSqrtPriceX96 } from "./client-BPfSSNYu.cjs";
|
|
2
|
+
export { Amount, PRICE_PRECISION, PriceData, PriceDataPoint, PriceResolution, TimelockLens, TimelockMarket, TimelockMarketData, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick, stateViews, swapRouters, swappers, timelockFactories, timelockLenses, token0ToToken1, token0ToToken1AtTick, token1ToToken0, token1ToToken0AtTick, wrapAmount, wrapAmountUnscaled, wrapPrice, wrapPriceUnscaled, zero };
|
package/dist/package.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as PriceResolution,
|
|
2
|
-
export { Amount, PRICE_PRECISION, PriceData, PriceDataPoint, PriceResolution, TimelockLens, TimelockMarket, TimelockMarketData, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick,
|
|
1
|
+
import { $ as PriceResolution, At as wrapAmount, B as getPriceAtTick, Dt as formatCondensed, Et as formatAmount, F as getPayoutAtTick, G as liquiditiesToAmounts, Gt as getStateView, H as getTickAtPrice, Ht as TimelockMarket, I as PRICE_PRECISION, J as token0ToToken1AtTick, Jt as stateViews, K as roundTick, Kt as getTimelockLens, L as getAmountsFromLiquidity, Mt as wrapPrice, Nt as wrapPriceUnscaled, Ot as formatUSD, P as getPayoutAtPrice, Pt as zero, Q as PriceDataPoint, Qt as timelockLenses, R as getNearestValidStrikeTick, Tt as Amount, U as liquiditiesToAmount0, Ut as TimelockMarketData, V as getSqrtPriceX96AtPrice, Vt as TimelockLens, W as liquiditiesToAmount1, Wt as getErc20, X as token1ToToken0AtTick, Xt as swappers, Y as token1ToToken0, Yt as swapRouters, Z as PriceData, Zt as timelockFactories, et as getCurrentPrice, jt as wrapAmountUnscaled, kt as formatVagueAmount, q as token0ToToken1, qt as getTimelockMarket, tt as getPriceHistory, z as getPriceAtSqrtPriceX96 } from "./client-DL7bGEe_.js";
|
|
2
|
+
export { Amount, PRICE_PRECISION, PriceData, PriceDataPoint, PriceResolution, TimelockLens, TimelockMarket, TimelockMarketData, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick, stateViews, swapRouters, swappers, timelockFactories, timelockLenses, token0ToToken1, token0ToToken1AtTick, token1ToToken0, token1ToToken0AtTick, wrapAmount, wrapAmountUnscaled, wrapPrice, wrapPriceUnscaled, zero };
|
package/dist/package.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as getStateView, C as token0ToToken1, D as getCurrentPrice, E as token1ToToken0AtTick, F as swappers, I as timelockFactories, L as timelockLenses, M as getTimelockMarket, N as stateViews, O as getPriceHistory, P as swapRouters, S as roundTick, T as token1ToToken0, _ as getSqrtPriceX96AtPrice, a as formatUSD, b as liquiditiesToAmount1, c as wrapAmountUnscaled, d as zero, f as PRICE_PRECISION, g as getPriceAtTick, h as getPriceAtSqrtPriceX96, i as formatCondensed, j as getTimelockLens, k as getErc20, l as wrapPrice, m as getNearestValidStrikeTick, n as getPayoutAtTick, o as formatVagueAmount, p as getAmountsFromLiquidity, r as formatAmount, s as wrapAmount, t as getPayoutAtPrice, u as wrapPriceUnscaled, v as getTickAtPrice, w as token0ToToken1AtTick, x as liquiditiesToAmounts, y as liquiditiesToAmount0 } from "./optionUtils-Xu6KDjhk.js";
|
|
2
2
|
|
|
3
|
-
export { PRICE_PRECISION, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick,
|
|
3
|
+
export { PRICE_PRECISION, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getAmountsFromLiquidity, getCurrentPrice, getErc20, getNearestValidStrikeTick, getPayoutAtPrice, getPayoutAtTick, getPriceAtSqrtPriceX96, getPriceAtTick, getPriceHistory, getSqrtPriceX96AtPrice, getStateView, getTickAtPrice, getTimelockLens, getTimelockMarket, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTick, stateViews, swapRouters, swappers, timelockFactories, timelockLenses, token0ToToken1, token0ToToken1AtTick, token1ToToken0, token1ToToken0AtTick, wrapAmount, wrapAmountUnscaled, wrapPrice, wrapPriceUnscaled, zero };
|
|
@@ -946,7 +946,7 @@ const lensAbi = [
|
|
|
946
946
|
type: "function",
|
|
947
947
|
name: "getPoolData",
|
|
948
948
|
inputs: [{
|
|
949
|
-
name: "
|
|
949
|
+
name: "",
|
|
950
950
|
type: "address",
|
|
951
951
|
internalType: "contract IPoolManager"
|
|
952
952
|
}, {
|
|
@@ -1279,6 +1279,16 @@ const lensAbi = [
|
|
|
1279
1279
|
name: "poolId",
|
|
1280
1280
|
type: "bytes32",
|
|
1281
1281
|
internalType: "PoolId"
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
name: "lowestTick",
|
|
1285
|
+
type: "int24",
|
|
1286
|
+
internalType: "int24"
|
|
1287
|
+
},
|
|
1288
|
+
{
|
|
1289
|
+
name: "highestTick",
|
|
1290
|
+
type: "int24",
|
|
1291
|
+
internalType: "int24"
|
|
1282
1292
|
}
|
|
1283
1293
|
]
|
|
1284
1294
|
}],
|
|
@@ -3640,4 +3650,4 @@ Object.defineProperty(exports, 'statelessStateViewAbi', {
|
|
|
3640
3650
|
return statelessStateViewAbi;
|
|
3641
3651
|
}
|
|
3642
3652
|
});
|
|
3643
|
-
//# sourceMappingURL=statelessStateView-
|
|
3653
|
+
//# sourceMappingURL=statelessStateView-BdEzGGOS.cjs.map
|