timelock-sdk 0.0.20 → 0.0.21

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.
@@ -1,4 +1,4 @@
1
- import { erc20Abi as erc20Abi$1, lensAbi, optionsMarketAbi, uniswapMathLensAbi } from "./optionsMarket-BsJTpwtl.js";
1
+ import { erc20Abi as erc20Abi$1, lensAbi, optionsMarketAbi, uniswapMathLensAbi } from "./optionsMarket-DyBxHplR.js";
2
2
  import { getContract } from "viem";
3
3
  import { monadTestnet } from "viem/chains";
4
4
  import { SqrtPriceMath, TickMath } from "@uniswap/v3-sdk";
@@ -28,7 +28,7 @@ const getTimelockLens = (client) => getContract({
28
28
  address: timelockLenses[client.chain.id],
29
29
  client
30
30
  });
31
- const timelockLenses = { [monadTestnet.id]: "0x97558b2ccb55F88118989BC19FCEa7AFa13F71b9" };
31
+ const timelockLenses = { [monadTestnet.id]: "0xe9021c9130bE6651357E23b89EB1b69cbadB5Db7" };
32
32
  const uniswapMathLenses = { [monadTestnet.id]: "0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95" };
33
33
 
34
34
  //#endregion
@@ -217,4 +217,4 @@ const formatUSD = (value) => {
217
217
 
218
218
  //#endregion
219
219
  export { PRICE_PRECISION, formatAmount, formatCondensed, formatUSD, formatVagueAmount, getErc20, getPriceAtTick, getTickAtPrice, getTimelockLens, getTimelockMarket, getUniswapMathLens, liquiditiesToAmount0, liquiditiesToAmount1, liquiditiesToAmounts, roundTickDown, roundTickUp, scaleAmount, scalePrice, timelockLenses, token0ToToken1, token1ToToken0, uniswapMathLenses, unscaleAmount, unscalePrice, wrapAmount, wrapAmountUnscaled, wrapPrice, wrapPriceUnscaled, zero };
220
- //# sourceMappingURL=numberUtils-DP-pDRRs.js.map
220
+ //# sourceMappingURL=numberUtils-CAMznXR5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numberUtils-DP-pDRRs.js","names":["erc20Abi","timelockLenses: Record<number, Address>","uniswapMathLenses: Record<number, Address>","zero: Amount"],"sources":["../src/lib/contracts.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\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>;\nexport type UniswapMathLens = GetContractReturnType<\n typeof uniswapMathLensAbi,\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 getUniswapMathLens = (client: Client | PublicClient) =>\n getContract({\n abi: uniswapMathLensAbi,\n address: uniswapMathLenses[client.chain!.id],\n client,\n });\n\nexport const getTimelockLens = (client: Client | PublicClient) =>\n getContract({\n abi: lensAbi,\n address: timelockLenses[client.chain!.id],\n client,\n });\n\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x97558b2ccb55F88118989BC19FCEa7AFa13F71b9',\n};\nexport const uniswapMathLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95',\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\n\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().toFixed(0),\n );\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const roundTickDown = (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 roundTickUp = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem === 0) return tick;\n if (rem > 0) return tick - rem + spacing;\n return tick - rem;\n};\n\nexport const token0ToToken1 = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\n\nexport const token1ToToken0 = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\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 currentTick: number,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\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 (currentTick < tickLower) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (currentTick >= tickUpper) {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n } else {\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 }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n decimals: number;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n decimals: 18,\n formatted: '0',\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const unscaled = unscaleAmount(scaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scaleAmount(unscaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const unscaled = unscalePrice(scaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scalePrice(unscaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const unscaleAmount = (scaled: bigint, decimals: number) => {\n return new Big(scaled.toString()).div(new Big(10).pow(decimals));\n};\n\nexport const scaleAmount = (\n unscaled: Big | number | string,\n decimals: number,\n) => {\n return BigInt(\n Big(unscaled).mul(new Big(10).pow(decimals)).round().toFixed(0),\n );\n};\n\nexport const unscalePrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return new Big(scaled.toString())\n .mul(new Big(10).pow(decimals0))\n .div(new Big(10).pow(decimals1))\n .div(new Big(10).pow(precision));\n};\n\nexport const scalePrice = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return BigInt(\n Big(unscaled)\n .mul(new Big(10).pow(precision))\n .mul(new Big(10).pow(decimals1))\n .div(new Big(10).pow(decimals0))\n .round()\n .toFixed(0),\n );\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (value === undefined) return '-';\n // return value < 1 ? value.toPrecision(2) : value.toFixed(2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (value: number | bigint) => {\n value = Number(value);\n\n if (value >= 1e12) {\n return `${(value / 1e12).toFixed(2)}T`;\n } else if (value >= 1e9) {\n return `${(value / 1e9).toFixed(2)}B`;\n } else if (value >= 1e6) {\n return `${(value / 1e6).toFixed(2)}M`;\n } else if (value >= 1000) {\n return `${(value / 1000).toFixed(2)}K`;\n } else if (value < 1) {\n return value.toPrecision(2);\n } else {\n return value.toFixed(2);\n }\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"],"mappings":"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"}
1
+ {"version":3,"file":"numberUtils-CAMznXR5.js","names":["erc20Abi","timelockLenses: Record<number, Address>","uniswapMathLenses: Record<number, Address>","zero: Amount"],"sources":["../src/lib/contracts.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\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>;\nexport type UniswapMathLens = GetContractReturnType<\n typeof uniswapMathLensAbi,\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 getUniswapMathLens = (client: Client | PublicClient) =>\n getContract({\n abi: uniswapMathLensAbi,\n address: uniswapMathLenses[client.chain!.id],\n client,\n });\n\nexport const getTimelockLens = (client: Client | PublicClient) =>\n getContract({\n abi: lensAbi,\n address: timelockLenses[client.chain!.id],\n client,\n });\n\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0xe9021c9130bE6651357E23b89EB1b69cbadB5Db7',\n};\nexport const uniswapMathLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95',\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\n\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().toFixed(0),\n );\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const roundTickDown = (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 roundTickUp = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem === 0) return tick;\n if (rem > 0) return tick - rem + spacing;\n return tick - rem;\n};\n\nexport const token0ToToken1 = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\n\nexport const token1ToToken0 = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\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 currentTick: number,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\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 (currentTick < tickLower) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (currentTick >= tickUpper) {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n } else {\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 }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n decimals: number;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n decimals: 18,\n formatted: '0',\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const unscaled = unscaleAmount(scaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scaleAmount(unscaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const unscaled = unscalePrice(scaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scalePrice(unscaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const unscaleAmount = (scaled: bigint, decimals: number) => {\n return new Big(scaled.toString()).div(new Big(10).pow(decimals));\n};\n\nexport const scaleAmount = (\n unscaled: Big | number | string,\n decimals: number,\n) => {\n return BigInt(\n Big(unscaled).mul(new Big(10).pow(decimals)).round().toFixed(0),\n );\n};\n\nexport const unscalePrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return new Big(scaled.toString())\n .mul(new Big(10).pow(decimals0))\n .div(new Big(10).pow(decimals1))\n .div(new Big(10).pow(precision));\n};\n\nexport const scalePrice = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return BigInt(\n Big(unscaled)\n .mul(new Big(10).pow(precision))\n .mul(new Big(10).pow(decimals1))\n .div(new Big(10).pow(decimals0))\n .round()\n .toFixed(0),\n );\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (value === undefined) return '-';\n // return value < 1 ? value.toPrecision(2) : value.toFixed(2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (value: number | bigint) => {\n value = Number(value);\n\n if (value >= 1e12) {\n return `${(value / 1e12).toFixed(2)}T`;\n } else if (value >= 1e9) {\n return `${(value / 1e9).toFixed(2)}B`;\n } else if (value >= 1e6) {\n return `${(value / 1e6).toFixed(2)}M`;\n } else if (value >= 1000) {\n return `${(value / 1000).toFixed(2)}K`;\n } else if (value < 1) {\n return value.toPrecision(2);\n } else {\n return value.toFixed(2);\n }\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"],"mappings":"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"}
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  }) : target, mod));
22
22
 
23
23
  //#endregion
24
- const require_optionsMarket = require('./optionsMarket-BsK9z8z4.cjs');
24
+ const require_optionsMarket = require('./optionsMarket-Br-bjuSA.cjs');
25
25
  let viem = require("viem");
26
26
  viem = __toESM(viem);
27
27
  let viem_chains = require("viem/chains");
@@ -56,7 +56,7 @@ const getTimelockLens = (client) => (0, viem.getContract)({
56
56
  address: timelockLenses[client.chain.id],
57
57
  client
58
58
  });
59
- const timelockLenses = { [viem_chains.monadTestnet.id]: "0x97558b2ccb55F88118989BC19FCEa7AFa13F71b9" };
59
+ const timelockLenses = { [viem_chains.monadTestnet.id]: "0xe9021c9130bE6651357E23b89EB1b69cbadB5Db7" };
60
60
  const uniswapMathLenses = { [viem_chains.monadTestnet.id]: "0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95" };
61
61
 
62
62
  //#endregion
@@ -424,4 +424,4 @@ Object.defineProperty(exports, 'zero', {
424
424
  return zero;
425
425
  }
426
426
  });
427
- //# sourceMappingURL=numberUtils-B7BwWYfb.cjs.map
427
+ //# sourceMappingURL=numberUtils-DOUvJfQD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"numberUtils-B7BwWYfb.cjs","names":["erc20Abi","optionsMarketAbi","uniswapMathLensAbi","lensAbi","timelockLenses: Record<number, Address>","monadTestnet","uniswapMathLenses: Record<number, Address>","TickMath","JSBI","Big","SqrtPriceMath","zero: Amount","Big"],"sources":["../src/lib/contracts.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\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>;\nexport type UniswapMathLens = GetContractReturnType<\n typeof uniswapMathLensAbi,\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 getUniswapMathLens = (client: Client | PublicClient) =>\n getContract({\n abi: uniswapMathLensAbi,\n address: uniswapMathLenses[client.chain!.id],\n client,\n });\n\nexport const getTimelockLens = (client: Client | PublicClient) =>\n getContract({\n abi: lensAbi,\n address: timelockLenses[client.chain!.id],\n client,\n });\n\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x97558b2ccb55F88118989BC19FCEa7AFa13F71b9',\n};\nexport const uniswapMathLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95',\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\n\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().toFixed(0),\n );\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const roundTickDown = (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 roundTickUp = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem === 0) return tick;\n if (rem > 0) return tick - rem + spacing;\n return tick - rem;\n};\n\nexport const token0ToToken1 = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\n\nexport const token1ToToken0 = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\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 currentTick: number,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\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 (currentTick < tickLower) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (currentTick >= tickUpper) {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n } else {\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 }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n decimals: number;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n decimals: 18,\n formatted: '0',\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const unscaled = unscaleAmount(scaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scaleAmount(unscaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const unscaled = unscalePrice(scaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scalePrice(unscaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const unscaleAmount = (scaled: bigint, decimals: number) => {\n return new Big(scaled.toString()).div(new Big(10).pow(decimals));\n};\n\nexport const scaleAmount = (\n unscaled: Big | number | string,\n decimals: number,\n) => {\n return BigInt(\n Big(unscaled).mul(new Big(10).pow(decimals)).round().toFixed(0),\n );\n};\n\nexport const unscalePrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return new Big(scaled.toString())\n .mul(new Big(10).pow(decimals0))\n .div(new Big(10).pow(decimals1))\n .div(new Big(10).pow(precision));\n};\n\nexport const scalePrice = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return BigInt(\n Big(unscaled)\n .mul(new Big(10).pow(precision))\n .mul(new Big(10).pow(decimals1))\n .div(new Big(10).pow(decimals0))\n .round()\n .toFixed(0),\n );\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (value === undefined) return '-';\n // return value < 1 ? value.toPrecision(2) : value.toFixed(2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (value: number | bigint) => {\n value = Number(value);\n\n if (value >= 1e12) {\n return `${(value / 1e12).toFixed(2)}T`;\n } else if (value >= 1e9) {\n return `${(value / 1e9).toFixed(2)}B`;\n } else if (value >= 1e6) {\n return `${(value / 1e6).toFixed(2)}M`;\n } else if (value >= 1000) {\n return `${(value / 1000).toFixed(2)}K`;\n } else if (value < 1) {\n return value.toPrecision(2);\n } else {\n return value.toFixed(2);\n }\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,YAAY,SAAkB,iCAC7B;CAAC,KAAKA;CAAU;CAAS;CAAO,CAAC;AAE/C,MAAa,qBACX,SACA,WACmB;AACnB,8BAAmB;EAAC,KAAKC;EAAkB;EAAS;EAAO,CAAC;;AAG9D,MAAa,sBAAsB,iCACrB;CACV,KAAKC;CACL,SAAS,kBAAkB,OAAO,MAAO;CACzC;CACD,CAAC;AAEJ,MAAa,mBAAmB,iCAClB;CACV,KAAKC;CACL,SAAS,eAAe,OAAO,MAAO;CACtC;CACD,CAAC;AAEJ,MAAaC,iBAA0C,GACpDC,yBAAa,KAAK,8CACpB;AACD,MAAaC,oBAA6C,GACvDD,yBAAa,KAAK,8CACpB;;;;ACtDD,MAAa,kBAAkB,OAAO,kBAAK;AAE3C,MAAa,kBAAkB,SAAiB;CAC9C,MAAM,eAAe,OAAOE,0BAAS,mBAAmB,KAAK,CAAC,UAAU,CAAC;AAKzE,QAHkB,eAAe,eACN,kBAAmB,OAAO,KAAK,IAAI;;AAKhE,MAAa,kBAAkB,UAAkB;CAC/C,MAAM,YAAa,QAAQ,OAAO,KAAK,IAAI,GAAI;CAC/C,MAAM,eAAeC,aAAK,OACxB,IAAIC,eAAI,UAAU,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChD;AACD,QAAOF,0BAAS,mBAAmB,aAAa;;AAGlD,MAAa,iBAAiB,MAAc,YAAoB;CAC9D,MAAM,MAAM,OAAO;AACnB,KAAI,OAAO,EAAG,QAAO,OAAO;AAC5B,QAAO,OAAO,MAAM;;AAGtB,MAAa,eAAe,MAAc,YAAoB;CAC5D,MAAM,MAAM,OAAO;AACnB,KAAI,QAAQ,EAAG,QAAO;AACtB,KAAI,MAAM,EAAG,QAAO,OAAO,MAAM;AACjC,QAAO,OAAO;;AAGhB,MAAa,kBAAkB,SAAiB,SAAiB;AAE/D,QAAQ,UADM,eAAe,KAAK,GACP;;AAG7B,MAAa,kBAAkB,SAAiB,SAAiB;CAC/D,MAAM,QAAQ,eAAe,KAAK;AAClC,QAAQ,UAAU,kBAAmB;;AAGvC,MAAa,wBACX,aACA,WACA,gBACG;CACH,IAAI,UAAU,OAAO,EAAE;AAEvB,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,YAAY,YAAY;AAC9B,MAAI,cAAc,OAAO,EAAE,CAAE;EAE7B,MAAM,YAAY,YAAY,cAAc;EAC5C,MAAM,YAAY,YAAY;EAE9B,MAAM,gBAAgBA,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBA,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBC,aAAK,OAAO,UAAU,UAAU,CAAC;EAEvD,MAAM,eAAeE,+BAAc,gBACjC,eACA,eACA,eACA,MACD;AACD,aAAW,OAAO,aAAa,UAAU,CAAC;;AAE5C,QAAO;;AAGT,MAAa,wBACX,aACA,WACA,gBACG;CACH,IAAI,UAAU,OAAO,EAAE;AAEvB,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,YAAY,YAAY;AAC9B,MAAI,cAAc,OAAO,EAAE,CAAE;EAE7B,MAAM,YAAY,YAAY,cAAc;EAC5C,MAAM,YAAY,YAAY;EAE9B,MAAM,gBAAgBH,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBA,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBC,aAAK,OAAO,UAAU,UAAU,CAAC;EAEvD,MAAM,eAAeE,+BAAc,gBACjC,eACA,eACA,eACA,MACD;AACD,aAAW,OAAO,aAAa,UAAU,CAAC;;AAE5C,QAAO;;AAGT,MAAa,wBACX,aACA,WACA,aACA,gBACG;CACH,IAAI,UAAU;CACd,IAAI,UAAU;CAEd,MAAM,eAAeH,0BAAS,mBAAmB,YAAY;AAE7D,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,YAAY,YAAY;AAC9B,MAAI,cAAc,OAAO,EAAE,CAAE;EAE7B,MAAM,YAAY,YAAY,cAAc;EAC5C,MAAM,YAAY,YAAY;EAE9B,MAAM,gBAAgBA,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBA,0BAAS,mBAAmB,UAAU;EAC5D,MAAM,gBAAgBC,aAAK,OAAO,UAAU,UAAU,CAAC;AAEvD,MAAI,cAAc,WAAW;GAC3B,MAAM,SAASE,+BAAc,gBAC3B,eACA,eACA,eACA,MACD;AACD,cAAW,OAAO,OAAO,UAAU,CAAC;aAC3B,eAAe,WAAW;GACnC,MAAM,SAASA,+BAAc,gBAC3B,eACA,eACA,eACA,MACD;AACD,cAAW,OAAO,OAAO,UAAU,CAAC;SAC/B;GACL,MAAM,SAASA,+BAAc,gBAC3B,cACA,eACA,eACA,MACD;GACD,MAAM,SAASA,+BAAc,gBAC3B,eACA,cACA,eACA,MACD;AACD,cAAW,OAAO,OAAO,UAAU,CAAC;AACpC,cAAW,OAAO,OAAO,UAAU,CAAC;;;AAGxC,QAAO,CAAC,SAAS,QAAQ;;;;;ACtJ3B,MAAaC,OAAe;CAC1B,QAAQ;CACR,8BAAc,EAAE;CAChB,UAAU;CACV,WAAW;CACZ;AAED,MAAa,cAAc,QAAgB,aAA6B;CACtE,MAAM,WAAW,cAAc,QAAQ,SAAS;AAEhD,QAAO;EAAC;EAAQ;EAAU;EAAU,WADlB,aAAa,SAAS;EACM;;AAGhD,MAAa,sBACX,UACA,aACW;AACX,gCAAe,SAAS;CACxB,MAAM,SAAS,YAAY,UAAU,SAAS;CAC9C,MAAM,YAAY,aAAa,SAAS;AACxC,QAAO;EAAC;EAAQ;EAAU;EAAU;EAAU;;AAGhD,MAAa,aACX,QACA,WACA,cACW;CACX,MAAM,WAAW,aAAa,QAAQ,WAAW,UAAU;CAC3D,MAAM,YAAY,aAAa,SAAS;AACxC,QAAO;EAAC;EAAQ;EAAU,UAAU,KAAK,YAAY;EAAW;EAAU;;AAG5E,MAAa,qBACX,UACA,WACA,cACW;AACX,gCAAe,SAAS;CACxB,MAAM,SAAS,WAAW,UAAU,WAAW,UAAU;CACzD,MAAM,YAAY,aAAa,SAAS;AACxC,QAAO;EAAC;EAAQ;EAAU,UAAU,KAAK,YAAY;EAAW;EAAU;;AAG5E,MAAa,iBAAiB,QAAgB,aAAqB;AACjE,QAAO,IAAIC,eAAI,OAAO,UAAU,CAAC,CAAC,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,SAAS,CAAC;;AAGlE,MAAa,eACX,UACA,aACG;AACH,QAAO,2BACD,SAAS,CAAC,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAChE;;AAGH,MAAa,gBACX,QACA,WACA,WACA,YAAY,OACT;AACH,QAAO,IAAIA,eAAI,OAAO,UAAU,CAAC,CAC9B,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAC/B,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAC/B,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC;;AAGpC,MAAa,cACX,UACA,WACA,WACA,YAAY,OACT;AACH,QAAO,2BACD,SAAS,CACV,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAC/B,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAC/B,IAAI,IAAIA,eAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAC/B,OAAO,CACP,QAAQ,EAAE,CACd;;AAGH,MAAa,gBAAgB,UAAkC;AAC7D,KAAI,UAAU,OAAW,QAAO;AAEhC,QAAO,oCAAoB,MAAM,CAAC,QAAQ,IAAI,CAAC;;AAGjD,MAAa,qBAAqB,UAA2B;AAC3D,SAAQ,OAAO,MAAM;AAErB,KAAI,SAAS,aACX,QAAO,IAAI,QAAQ,cAAM,QAAQ,EAAE,CAAC;UAC3B,SAAS,IAClB,QAAO,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;UAC1B,SAAS,IAClB,QAAO,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;UAC1B,SAAS,IAClB,QAAO,IAAI,QAAQ,KAAM,QAAQ,EAAE,CAAC;UAC3B,QAAQ,EACjB,QAAO,MAAM,YAAY,EAAE;KAE3B,QAAO,MAAM,QAAQ,EAAE;;AAI3B,MAAa,mBACX,OACA,WAAW,MACA;CAKX,MAAM,CAAC,OAAO,YAJD,OAAO,UAAU,WAAW,MAAM,QAAQ,GAAG,GAAG,OAC1D,QAAQ,eAAe,KAAK,CAC5B,QAAQ,OAAO,GAAG,CAEQ,MAAM,IAAI;CAEvC,MAAM,iBAAiB,MAAM,QAAQ,yBAAyB,IAAI;AAClE,KAAI,CAAC,QAAS,QAAO;CAErB,MAAM,mBAAmB,QAAQ,MAAM,WAAW;AAElD,KAAI,kBAAkB;EACpB,MAAM,YAAY,iBAAiB,GAAG;AAKtC,SAAO,GAAG,eAAe,IAJP,YAAY,UAAU,UAAU,CAAC,GACjC,QAAQ,MAAM,UAAU,CAEd,MAAM,GAAG,SAAS;QAEzC;EAEL,MAAM,eAAe,QAAQ,OAAO,QAAQ;AAE5C,MAAI,iBAAiB,GACnB,QAAO;EAGT,MAAM,YADkB,QAAQ,MAAM,aAAa,CACjB,MAAM,GAAG,SAAS;AAGpD,SAAO,GAAG,eAAe,GAFJ,QAAQ,MAAM,GAAG,aAAa,GAER;;;AAI/C,MAAM,eAAe,UAAkB;AACrC,QAAO,MAAM,QAAQ,WAAU,MAAK,aAAa,CAAC,GAAG;;AAGvD,MAAa,aAAa,UAAyC;AACjE,QAAO,MAAM,aAAa,MAAM"}
1
+ {"version":3,"file":"numberUtils-DOUvJfQD.cjs","names":["erc20Abi","optionsMarketAbi","uniswapMathLensAbi","lensAbi","timelockLenses: Record<number, Address>","monadTestnet","uniswapMathLenses: Record<number, Address>","TickMath","JSBI","Big","SqrtPriceMath","zero: Amount","Big"],"sources":["../src/lib/contracts.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts"],"sourcesContent":["import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\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>;\nexport type UniswapMathLens = GetContractReturnType<\n typeof uniswapMathLensAbi,\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 getUniswapMathLens = (client: Client | PublicClient) =>\n getContract({\n abi: uniswapMathLensAbi,\n address: uniswapMathLenses[client.chain!.id],\n client,\n });\n\nexport const getTimelockLens = (client: Client | PublicClient) =>\n getContract({\n abi: lensAbi,\n address: timelockLenses[client.chain!.id],\n client,\n });\n\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0xe9021c9130bE6651357E23b89EB1b69cbadB5Db7',\n};\nexport const uniswapMathLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x4C8375D1F6D5F452e92e211C1D3E7a44F78dFc95',\n};\n","import {SqrtPriceMath, TickMath} from '@uniswap/v3-sdk';\nimport Big from 'big.js';\nimport JSBI from 'jsbi';\n\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().toFixed(0),\n );\n return TickMath.getTickAtSqrtRatio(sqrtPriceX96);\n};\n\nexport const roundTickDown = (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 roundTickUp = (tick: number, spacing: number) => {\n const rem = tick % spacing;\n if (rem === 0) return tick;\n if (rem > 0) return tick - rem + spacing;\n return tick - rem;\n};\n\nexport const token0ToToken1 = (amount0: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount0 * price) / PRICE_PRECISION;\n};\n\nexport const token1ToToken0 = (amount1: bigint, tick: number) => {\n const price = getPriceAtTick(tick);\n return (amount1 * PRICE_PRECISION) / price;\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 currentTick: number,\n tickSpacing: number,\n) => {\n let amount0 = 0n;\n let amount1 = 0n;\n\n const sqrtRatioX96 = TickMath.getSqrtRatioAtTick(currentTick);\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 (currentTick < tickLower) {\n const delta0 = SqrtPriceMath.getAmount0Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount0 += BigInt(delta0.toString());\n } else if (currentTick >= tickUpper) {\n const delta1 = SqrtPriceMath.getAmount1Delta(\n sqrtRatioAX96,\n sqrtRatioBX96,\n liquidityJSBI,\n false,\n );\n amount1 += BigInt(delta1.toString());\n } else {\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 }\n }\n return [amount0, amount1];\n};\n","import Big from 'big.js';\n\nexport type Amount = {\n scaled: bigint;\n unscaled: Big;\n decimals: number;\n formatted: string;\n};\n\nexport const zero: Amount = {\n scaled: 0n,\n unscaled: Big(0),\n decimals: 18,\n formatted: '0',\n};\n\nexport const wrapAmount = (scaled: bigint, decimals: number): Amount => {\n const unscaled = unscaleAmount(scaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapAmountUnscaled = (\n unscaled: Big | number | string,\n decimals: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scaleAmount(unscaled, decimals);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals, formatted};\n};\n\nexport const wrapPrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n): Amount => {\n const unscaled = unscalePrice(scaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const wrapPriceUnscaled = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n): Amount => {\n unscaled = Big(unscaled);\n const scaled = scalePrice(unscaled, decimals0, decimals1);\n const formatted = formatAmount(unscaled);\n return {scaled, unscaled, decimals: 36 + decimals1 - decimals0, formatted};\n};\n\nexport const unscaleAmount = (scaled: bigint, decimals: number) => {\n return new Big(scaled.toString()).div(new Big(10).pow(decimals));\n};\n\nexport const scaleAmount = (\n unscaled: Big | number | string,\n decimals: number,\n) => {\n return BigInt(\n Big(unscaled).mul(new Big(10).pow(decimals)).round().toFixed(0),\n );\n};\n\nexport const unscalePrice = (\n scaled: bigint,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return new Big(scaled.toString())\n .mul(new Big(10).pow(decimals0))\n .div(new Big(10).pow(decimals1))\n .div(new Big(10).pow(precision));\n};\n\nexport const scalePrice = (\n unscaled: Big | number | string,\n decimals0: number,\n decimals1: number,\n precision = 18,\n) => {\n return BigInt(\n Big(unscaled)\n .mul(new Big(10).pow(precision))\n .mul(new Big(10).pow(decimals1))\n .div(new Big(10).pow(decimals0))\n .round()\n .toFixed(0),\n );\n};\n\nexport const formatAmount = (value?: Big | number | string) => {\n if (value === undefined) return '-';\n // return value < 1 ? value.toPrecision(2) : value.toFixed(2);\n return formatCondensed(Big(value).toFixed(100));\n};\n\nexport const formatVagueAmount = (value: number | bigint) => {\n value = Number(value);\n\n if (value >= 1e12) {\n return `${(value / 1e12).toFixed(2)}T`;\n } else if (value >= 1e9) {\n return `${(value / 1e9).toFixed(2)}B`;\n } else if (value >= 1e6) {\n return `${(value / 1e6).toFixed(2)}M`;\n } else if (value >= 1000) {\n return `${(value / 1000).toFixed(2)}K`;\n } else if (value < 1) {\n return value.toPrecision(2);\n } else {\n return value.toFixed(2);\n }\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"],"mappings":"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"}
@@ -1048,6 +1048,11 @@ const lensAbi = [
1048
1048
  name: "tvl1",
1049
1049
  type: "uint256",
1050
1050
  internalType: "uint256"
1051
+ },
1052
+ {
1053
+ name: "blocksCount",
1054
+ type: "uint256",
1055
+ internalType: "uint256"
1051
1056
  }
1052
1057
  ],
1053
1058
  stateMutability: "view"
@@ -2399,4 +2404,4 @@ Object.defineProperty(exports, 'uniswapMathLensAbi', {
2399
2404
  return uniswapMathLensAbi;
2400
2405
  }
2401
2406
  });
2402
- //# sourceMappingURL=optionsMarket-BsK9z8z4.cjs.map
2407
+ //# sourceMappingURL=optionsMarket-Br-bjuSA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionsMarket-Br-bjuSA.cjs","names":[],"sources":["../src/abis/erc20.ts","../src/abis/lens.ts","../src/abis/uniswapMathLens.ts","../src/abis/optionsMarket.ts"],"sourcesContent":["export const erc20Abi = [\n {\n type: 'constructor',\n inputs: [\n {name: 'name_', type: 'string', internalType: 'string'},\n {name: 'symbol_', type: 'string', internalType: 'string'},\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowance',\n inputs: [\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'spender', type: 'address', internalType: 'address'},\n ],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'approve',\n inputs: [\n {name: 'spender', type: 'address', internalType: 'address'},\n {name: 'amount', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'balanceOf',\n inputs: [{name: 'account', type: 'address', internalType: 'address'}],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'decimals',\n inputs: [],\n outputs: [{name: '', type: 'uint8', internalType: 'uint8'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'decreaseAllowance',\n inputs: [\n {name: 'spender', type: 'address', internalType: 'address'},\n {\n name: 'subtractedValue',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'increaseAllowance',\n inputs: [\n {name: 'spender', type: 'address', internalType: 'address'},\n {name: 'addedValue', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'name',\n inputs: [],\n outputs: [{name: '', type: 'string', internalType: 'string'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'symbol',\n inputs: [],\n outputs: [{name: '', type: 'string', internalType: 'string'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'totalSupply',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'transfer',\n inputs: [\n {name: 'to', type: 'address', internalType: 'address'},\n {name: 'amount', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'transferFrom',\n inputs: [\n {name: 'from', type: 'address', internalType: 'address'},\n {name: 'to', type: 'address', internalType: 'address'},\n {name: 'amount', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'nonpayable',\n },\n] as const;\n","export const lensAbi = [\n {\n type: 'function',\n name: 'batchGetRefTick',\n inputs: [\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract TimelockSingleOwnerVault',\n },\n {name: 'tickLower', type: 'int24[]', internalType: 'int24[]'},\n ],\n outputs: [{name: 'refTicks', type: 'int24[]', internalType: 'int24[]'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getAllBlocks',\n inputs: [\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract TimelockVaultCore',\n },\n ],\n outputs: [\n {\n name: 'blocks',\n type: 'tuple[]',\n internalType: 'struct TimelockLens.LiquidityBlockData[]',\n components: [\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n {\n name: 'prevTickLower',\n type: 'int24',\n internalType: 'int24',\n },\n {\n name: 'totalLiquidity',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'borrowedLiquidity',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'totalAmount0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'totalAmount1',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'borrowedAmount0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'borrowedAmount1',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getExpiredOptions',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {name: 'startId', type: 'uint256', internalType: 'uint256'},\n {name: 'limit', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [\n {\n name: 'expiredOptions',\n type: 'tuple[]',\n internalType: 'struct TimelockLens.OptionData[]',\n components: [\n {\n name: 'optionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'leftTick', type: 'int24', internalType: 'int24'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'entryTick', type: 'int24', internalType: 'int24'},\n {\n name: 'strikePrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'entryPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'positionSize',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'netOptionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'premiumPaid',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'expiresAt', type: 'uint64', internalType: 'uint64'},\n {name: 'createdAt', type: 'uint64', internalType: 'uint64'},\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n },\n {name: 'nextStartId', type: 'uint256', internalType: 'uint256'},\n {name: 'hasMore', type: 'bool', internalType: 'bool'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLiquidityAtTick',\n inputs: [\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract TimelockSingleOwnerVault',\n },\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'totalLiquidity',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'borrowedLiquidity',\n type: 'uint128',\n internalType: 'uint128',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getMarketData',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n ],\n outputs: [\n {\n name: 'marketData',\n type: 'tuple',\n internalType: 'struct TimelockLens.TimelockMarketData',\n components: [\n {\n name: 'optionAssetIsToken0',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract ITimelockVault',\n },\n {\n name: 'pool',\n type: 'address',\n internalType: 'contract IUniswapV3Pool',\n },\n {\n name: 'optionAsset',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payoutAsset',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'optionAssetDecimals',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'payoutAssetDecimals',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'optionAssetSymbol',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'payoutAssetSymbol',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'optionAssetName',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'payoutAssetName',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'optionsCount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getMaxPositionSize',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {\n name: 'maxBorrowableRange',\n type: 'int24',\n internalType: 'int24',\n },\n ],\n outputs: [\n {name: 'maxCallSize', type: 'uint256', internalType: 'uint256'},\n {name: 'maxPutSize', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getMaxPositionSizeAtCurrentTick',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {\n name: 'maxBorrowableRange',\n type: 'int24',\n internalType: 'int24',\n },\n ],\n outputs: [\n {name: 'maxCallSize', type: 'uint256', internalType: 'uint256'},\n {name: 'maxPutSize', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getOptionData',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {name: 'optionId', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct TimelockLens.OptionData',\n components: [\n {\n name: 'optionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'leftTick', type: 'int24', internalType: 'int24'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'entryTick', type: 'int24', internalType: 'int24'},\n {\n name: 'strikePrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'entryPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'positionSize',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'netOptionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'premiumPaid',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'expiresAt', type: 'uint64', internalType: 'uint64'},\n {name: 'createdAt', type: 'uint64', internalType: 'uint64'},\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getOptionsData',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {\n name: 'optionIds',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [\n {\n name: 'optionsData',\n type: 'tuple[]',\n internalType: 'struct TimelockLens.OptionData[]',\n components: [\n {\n name: 'optionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'leftTick', type: 'int24', internalType: 'int24'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'entryTick', type: 'int24', internalType: 'int24'},\n {\n name: 'strikePrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'entryPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'positionSize',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'netOptionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'premiumPaid',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'expiresAt', type: 'uint64', internalType: 'uint64'},\n {name: 'createdAt', type: 'uint64', internalType: 'uint64'},\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPoolData',\n inputs: [\n {\n name: 'pool',\n type: 'address',\n internalType: 'contract IUniswapV3Pool',\n },\n ],\n outputs: [\n {\n name: 'poolData',\n type: 'tuple',\n internalType: 'struct TimelockLens.UniswapPoolData',\n components: [\n {name: 'token0', type: 'address', internalType: 'address'},\n {name: 'token1', type: 'address', internalType: 'address'},\n {\n name: 'token0Decimals',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'token1Decimals',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'token0Symbol',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'token1Symbol',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'token0Name',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'token1Name',\n type: 'string',\n internalType: 'string',\n },\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getRefTick',\n inputs: [\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract TimelockSingleOwnerVault',\n },\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n ],\n outputs: [{name: 'refTick', type: 'int24', internalType: 'int24'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getUserOptions',\n inputs: [\n {\n name: 'market',\n type: 'address',\n internalType: 'contract TimelockOptionsMarket',\n },\n {name: 'user', type: 'address', internalType: 'address'},\n {name: 'startId', type: 'uint256', internalType: 'uint256'},\n {name: 'limit', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [\n {\n name: 'userOptions',\n type: 'tuple[]',\n internalType: 'struct TimelockLens.OptionData[]',\n components: [\n {\n name: 'optionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'leftTick', type: 'int24', internalType: 'int24'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'entryTick', type: 'int24', internalType: 'int24'},\n {\n name: 'strikePrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'entryPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetBorrowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'optionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payoutAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'positionSize',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'netOptionAssetToRepay',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'premiumPaid',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'expiresAt', type: 'uint64', internalType: 'uint64'},\n {name: 'createdAt', type: 'uint64', internalType: 'uint64'},\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n },\n {name: 'nextStartId', type: 'uint256', internalType: 'uint256'},\n {name: 'hasMore', type: 'bool', internalType: 'bool'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getVaultTVL',\n inputs: [\n {\n name: 'vault',\n type: 'address',\n internalType: 'contract TimelockVaultCore',\n },\n ],\n outputs: [\n {\n name: 'totalAmount0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'totalAmount1',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'borrowedAmount0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'borrowedAmount1',\n type: 'uint256',\n internalType: 'uint256',\n },\n {name: 'tvl0', type: 'uint256', internalType: 'uint256'},\n {name: 'tvl1', type: 'uint256', internalType: 'uint256'},\n {name: 'blocksCount', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'view',\n },\n] as const;\n","export const uniswapMathLensAbi = [\n {\n type: 'function',\n name: 'batchGetAmount0ForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [{name: 'amounts0', type: 'uint256[]', internalType: 'uint256[]'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetAmount0ForLiquidityTicks',\n inputs: [\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [{name: 'amounts0', type: 'uint256[]', internalType: 'uint256[]'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetAmount1ForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [{name: 'amounts1', type: 'uint256[]', internalType: 'uint256[]'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetAmount1ForLiquidityTicks',\n inputs: [\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [{name: 'amounts1', type: 'uint256[]', internalType: 'uint256[]'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetAmountsForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [\n {\n name: 'amounts0',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {name: 'amounts1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetAmountsForLiquidityTicks',\n inputs: [\n {name: 'tick', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {\n name: 'liquidity',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n outputs: [\n {\n name: 'amounts0',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {name: 'amounts1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmount0',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {name: 'amount0', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmount0Ticks',\n inputs: [\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {name: 'amount0', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmount1',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {name: 'amount1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmount1Ticks',\n inputs: [\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {name: 'amount1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmounts',\n inputs: [\n {\n name: 'sqrtRatioX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioAX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160[]',\n internalType: 'uint160[]',\n },\n {name: 'amount0', type: 'uint256[]', internalType: 'uint256[]'},\n {name: 'amount1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetLiquidityForAmountsTicks',\n inputs: [\n {name: 'tick', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickA', type: 'int24[]', internalType: 'int24[]'},\n {name: 'tickB', type: 'int24[]', internalType: 'int24[]'},\n {name: 'amount0', type: 'uint256[]', internalType: 'uint256[]'},\n {name: 'amount1', type: 'uint256[]', internalType: 'uint256[]'},\n ],\n outputs: [\n {\n name: 'liquidities',\n type: 'uint128[]',\n internalType: 'uint128[]',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'batchGetPriceAtTick',\n inputs: [{name: 'ticks', type: 'int24[]', internalType: 'int24[]'}],\n outputs: [{name: 'prices', type: 'uint256[]', internalType: 'uint256[]'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmount0ForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [{name: 'amount0', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmount0ForLiquidityTicks',\n inputs: [\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [{name: 'amount0', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmount1ForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [{name: 'amount1', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmount1ForLiquidityTicks',\n inputs: [\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [{name: 'amount1', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmountsForLiquidity',\n inputs: [\n {\n name: 'sqrtRatioX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getAmountsForLiquidityTicks',\n inputs: [\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n ],\n outputs: [\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmount0',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmount0Ticks',\n inputs: [\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmount1',\n inputs: [\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmount1Ticks',\n inputs: [\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmounts',\n inputs: [\n {\n name: 'sqrtRatioX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioAX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'sqrtRatioBX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getLiquidityForAmountsTicks',\n inputs: [\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'tickA', type: 'int24', internalType: 'int24'},\n {name: 'tickB', type: 'int24', internalType: 'int24'},\n {name: 'amount0', type: 'uint256', internalType: 'uint256'},\n {name: 'amount1', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getPriceAtTick',\n inputs: [{name: 'tick', type: 'int24', internalType: 'int24'}],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'pure',\n },\n] as const;\n","export const optionsMarketAbi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: '_vault',\n type: 'address',\n internalType: 'contract ITimelockVault',\n },\n {\n name: '_optionPricing',\n type: 'address',\n internalType: 'contract IOptionPricing',\n },\n {name: '_optionAssetIsToken0', type: 'bool', internalType: 'bool'},\n {\n name: '_swapRouter',\n type: 'address',\n internalType: 'contract ISwapRouter',\n },\n {name: '_quoter', type: 'address', internalType: 'contract IQuoter'},\n {name: '_owner', type: 'address', internalType: 'address'},\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'BASIS_POINTS',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'DUST_THRESHOLD',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MAX_STEPS',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'OPTION_FEE_PERCENT',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'calculatePremium',\n inputs: [\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'optionAmount', type: 'uint256', internalType: 'uint256'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'duration', type: 'uint64', internalType: 'uint64'},\n ],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exerciseOption',\n inputs: [\n {name: 'optionId', type: 'uint256', internalType: 'uint256'},\n {name: 'liquidities', type: 'uint128[]', internalType: 'uint128[]'},\n {name: 'minPayout', type: 'uint256', internalType: 'uint256'},\n {name: 'refTick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [{name: 'payout', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'getOption',\n inputs: [{name: 'optionId', type: 'uint256', internalType: 'uint256'}],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct TimelockOptionsMarket.OptionData',\n components: [\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'entryTick', type: 'int24', internalType: 'int24'},\n {name: 'expiresAt', type: 'uint64', internalType: 'uint64'},\n {name: 'createdAt', type: 'uint64', internalType: 'uint64'},\n {name: 'premiumPaid', type: 'uint128', internalType: 'uint128'},\n {name: 'liquidities', type: 'uint128[]', internalType: 'uint128[]'},\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'liquiditiesToAmounts',\n inputs: [\n {name: 'leftTick', type: 'int24', internalType: 'int24'},\n {name: 'liquidities', type: 'uint128[]', internalType: 'uint128[]'},\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n ],\n outputs: [\n {name: 'optionAssetToRepay', type: 'uint256', internalType: 'uint256'},\n {name: 'payoutAssetToRepay', type: 'uint256', internalType: 'uint256'},\n {name: 'optionAssetBorrowed', type: 'uint256', internalType: 'uint256'},\n {name: 'payoutAssetBorrowed', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'maxDuration',\n inputs: [],\n outputs: [{name: '', type: 'uint64', internalType: 'uint64'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'maxOptionAmount',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'minDuration',\n inputs: [],\n outputs: [{name: '', type: 'uint64', internalType: 'uint64'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'minOptionAmount',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mintOption',\n inputs: [\n {name: 'optionType', type: 'uint8', internalType: 'uint8'},\n {name: 'amount', type: 'uint256', internalType: 'uint256'},\n {name: 'strikeTick', type: 'int24', internalType: 'int24'},\n {name: 'duration', type: 'uint64', internalType: 'uint64'},\n {name: 'maxPremium', type: 'uint256', internalType: 'uint256'},\n {name: 'refTick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {name: 'optionId', type: 'uint256', internalType: 'uint256'},\n {name: 'finalAmount', type: 'uint256', internalType: 'uint256'},\n {name: 'totalPremium', type: 'uint256', internalType: 'uint256'},\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'nextOptionId',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'optionAsset',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'contract IERC20'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'optionAssetIsToken0',\n inputs: [],\n outputs: [{name: '', type: 'bool', internalType: 'bool'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'optionPricing',\n inputs: [],\n outputs: [\n {name: '', type: 'address', internalType: 'contract IOptionPricing'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'address'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'payoutAsset',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'contract IERC20'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'pool',\n inputs: [],\n outputs: [\n {name: '', type: 'address', internalType: 'contract IUniswapV3Pool'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'protocolFees',\n inputs: [],\n outputs: [{name: '', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'quoter',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'contract IQuoter'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'renounceOwnership',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'swapRouter',\n inputs: [],\n outputs: [\n {name: '', type: 'address', internalType: 'contract ISwapRouter'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'tickSpacing',\n inputs: [],\n outputs: [{name: '', type: 'int24', internalType: 'int24'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'token0',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'contract IERC20'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'token1',\n inputs: [],\n outputs: [{name: '', type: 'address', internalType: 'contract IERC20'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'transferOwnership',\n inputs: [{name: 'newOwner', type: 'address', internalType: 'address'}],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'updateDurationBounds',\n inputs: [\n {name: '_minDuration', type: 'uint64', internalType: 'uint64'},\n {name: '_maxDuration', type: 'uint64', internalType: 'uint64'},\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'updateOptionAmountBounds',\n inputs: [\n {name: '_minOptionAmount', type: 'uint256', internalType: 'uint256'},\n {name: '_maxOptionAmount', type: 'uint256', internalType: 'uint256'},\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'vault',\n inputs: [],\n outputs: [\n {name: '', type: 'address', internalType: 'contract ITimelockVault'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'withdrawTokens',\n inputs: [\n {name: 'tokens', type: 'address[]', internalType: 'contract IERC20[]'},\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n] as const;\n"],"mappings":"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AM;MAAa,MAAM;MAAU,cAAc;MAAS;KAC3D;MACE,MAAM;MACN,MAAM;MACN,cAAc;MACf;KACF;IACF;GACD;IAAC,MAAM;IAAe,MAAM;IAAW,cAAc;IAAU;GAC/D;IAAC,MAAM;IAAW,MAAM;IAAQ,cAAc;IAAO;GACtD;EACD,iBAAiB;EAClB;CACD;EACE,MAAM;EACN,MAAM;EACN,QAAQ,CACN;GACE,MAAM;GACN,MAAM;GACN,cAAc;GACf,EACD;GAAC,MAAM;GAAa,MAAM;GAAS,cAAc;GAAQ,CAC1D;EACD,SAAS,CACP;GACE,MAAM;GACN,MAAM;GACN,cAAc;GACf,EACD;GACE,MAAM;GACN,MAAM;GACN,cAAc;GACf,CACF;EACD,iBAAiB;EAClB;CACD;EACE,MAAM;EACN,MAAM;EACN,QAAQ,CACN;GACE,MAAM;GACN,MAAM;GACN,cAAc;GACf,CACF;EACD,SAAS,CACP;GACE,MAAM;GACN,MAAM;GACN,cAAc;GACd,YAAY;IACV;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACD;KACE,MAAM;KACN,MAAM;KACN,cAAc;KACf;IACF;GACF,CACF;EACD,iBAAiB;EAClB;CACD;EACE,MAAM;EACN,MAAM;EACN,QAAQ;GACN;IACE,MAAM;IACN,MAAM;IACN,cAAc;IACf;GACD;IAAC,MAAM;IAAc,MAAM;IAAS,cAAc;IAAQ;GAC1D;IACE,MAAM;IAC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"}
@@ -1047,6 +1047,11 @@ const lensAbi = [
1047
1047
  name: "tvl1",
1048
1048
  type: "uint256",
1049
1049
  internalType: "uint256"
1050
+ },
1051
+ {
1052
+ name: "blocksCount",
1053
+ type: "uint256",
1054
+ internalType: "uint256"
1050
1055
  }
1051
1056
  ],
1052
1057
  stateMutability: "view"
@@ -2375,4 +2380,4 @@ const optionsMarketAbi = [
2375
2380
 
2376
2381
  //#endregion
2377
2382
  export { erc20Abi, lensAbi, optionsMarketAbi, uniswapMathLensAbi };
2378
- //# sourceMappingURL=optionsMarket-BsJTpwtl.js.map
2383
+ //# sourceMappingURL=optionsMarket-DyBxHplR.js.map