timelock-sdk 0.0.153 → 0.0.155
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-BqydZjhA.d.cts → client-BSOaCDXS.d.ts} +9740 -914
- package/dist/{client-CbVaB9SD.d.ts → client-HrsZMFVQ.d.cts} +9751 -925
- package/dist/client.cjs +687 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +3 -3
- package/dist/client.d.ts +3 -3
- package/dist/client.js +685 -4
- package/dist/client.js.map +1 -1
- package/dist/{optionUtils-DJ8kTxc_.js → optionUtils-B7EA45zY.js} +3 -3
- package/dist/{optionUtils-DJ8kTxc_.js.map → optionUtils-B7EA45zY.js.map} +1 -1
- package/dist/{optionUtils-D4d_u_d3.cjs → optionUtils-Daz9iARj.cjs} +3 -3
- package/dist/{optionUtils-D4d_u_d3.cjs.map → optionUtils-Daz9iARj.cjs.map} +1 -1
- package/dist/{optionsMarket-C83iT_EM.js → optionsMarket-CT26uUTa.js} +158 -39
- package/dist/optionsMarket-CT26uUTa.js.map +1 -0
- package/dist/{optionsMarket-DmR1QeKW.cjs → optionsMarket-T7r7iDKa.cjs} +158 -39
- package/dist/optionsMarket-T7r7iDKa.cjs.map +1 -0
- package/dist/package.cjs +2 -2
- package/dist/package.d.cts +2 -2
- package/dist/package.d.ts +2 -2
- package/dist/package.js +2 -2
- package/dist/{uniswapMathLens-td1h0_OB.d.cts → uniswapMathLens-DNbMIHSs.d.ts} +104 -3
- package/dist/{uniswapMathLens-2KoUe3_5.d.ts → uniswapMathLens-DT3TTcQa.d.cts} +104 -3
- package/package.json +1 -1
- package/dist/optionsMarket-C83iT_EM.js.map +0 -1
- package/dist/optionsMarket-DmR1QeKW.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionUtils-D4d_u_d3.cjs","names":["erc20Abi","optionsMarketAbi","lensAbi","swappers: Record<number, Address>","monadTestnet","unichainSepolia","timelockLenses: Record<number, Address>","swapRouters: Record<number, Address>","stateViews: Record<number, Address>","filled: PriceDataPoint[]","lastKnownPrice: PriceDataPoint | null","JSBI","Big","TickMath","SqrtPriceMath","EMPTY_ARRAY: never[]","zero: Amount","Big"],"sources":["../src/abis/statelessStateView.ts","../src/lib/contracts.ts","../src/lib/price.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts","../src/lib/optionUtils.ts"],"sourcesContent":["export const statelessStateViewAbi = [\n {\n type: 'function',\n name: 'getFeeGrowthGlobals',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'feeGrowthGlobal0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthGlobal1',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthGlobals',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [\n {\n name: 'feeGrowthGlobal0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthGlobal1',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthInside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthInside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthInside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthInside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n {name: 'salt', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n {name: 'salt', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getSlot0',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'sqrtPriceX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'protocolFee', type: 'uint24', internalType: 'uint24'},\n {name: 'lpFee', type: 'uint24', internalType: 'uint24'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getSlot0',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [\n {\n name: 'sqrtPriceX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'protocolFee', type: 'uint24', internalType: 'uint24'},\n {name: 'lpFee', type: 'uint24', internalType: 'uint24'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickBitmap',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int16', internalType: 'int16'},\n ],\n outputs: [{name: 'tickBitmap', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickBitmap',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int16', internalType: 'int16'},\n ],\n outputs: [{name: 'tickBitmap', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickFeeGrowthOutside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickFeeGrowthOutside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n ],\n stateMutability: 'view',\n },\n] as const;\n","import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet, unichainSepolia} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\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>;\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 getStateView = (client: Client | PublicClient) => {\n return getContract({\n abi: statelessStateViewAbi,\n address: stateViews[client.chain!.id],\n client,\n });\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 swappers: Record<number, Address> = {\n [monadTestnet.id]: '0x877309663591ad974bE2c0C7fB453844c8D613D8',\n [unichainSepolia.id]: '0xa145eb0CAdB5F3c5e42931e60ee609DE74FDEA0b',\n};\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x22745deD5F51A2F33D98c5682048f5d10baE3b92',\n [unichainSepolia.id]: '0x8b31c8C526E4344132497a95Caa0DF39fE47FD18',\n};\nexport const swapRouters: Record<number, Address> = {\n [monadTestnet.id]: '0xEd8a7Ca09c6Db6F4b9FAcB8De7e9A5449B1D21a4',\n [unichainSepolia.id]: '0x7C9fBd739cb0e09657B7c6aB4eFc37bEe80820B0',\n};\nexport const stateViews: Record<number, Address> = {\n [monadTestnet.id]: '0xB85e32Ff9b08Be61cD888e5D997E51951BCA1A69',\n [unichainSepolia.id]: '0xB5ABc500f54a798E20ae8f91e21DBa29B1CE3F5a',\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\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().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 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 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';\n\nexport const EMPTY_ARRAY: never[] = [];\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) 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
|
+
{"version":3,"file":"optionUtils-Daz9iARj.cjs","names":["erc20Abi","optionsMarketAbi","lensAbi","swappers: Record<number, Address>","monadTestnet","unichainSepolia","timelockLenses: Record<number, Address>","swapRouters: Record<number, Address>","stateViews: Record<number, Address>","filled: PriceDataPoint[]","lastKnownPrice: PriceDataPoint | null","JSBI","Big","TickMath","SqrtPriceMath","EMPTY_ARRAY: never[]","zero: Amount","Big"],"sources":["../src/abis/statelessStateView.ts","../src/lib/contracts.ts","../src/lib/price.ts","../src/lib/liquidityUtils.ts","../src/lib/numberUtils.ts","../src/lib/optionUtils.ts"],"sourcesContent":["export const statelessStateViewAbi = [\n {\n type: 'function',\n name: 'getFeeGrowthGlobals',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'feeGrowthGlobal0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthGlobal1',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthGlobals',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [\n {\n name: 'feeGrowthGlobal0',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthGlobal1',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthInside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthInside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getFeeGrowthInside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthInside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n {name: 'salt', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'owner', type: 'address', internalType: 'address'},\n {name: 'tickLower', type: 'int24', internalType: 'int24'},\n {name: 'tickUpper', type: 'int24', internalType: 'int24'},\n {name: 'salt', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [\n {name: 'liquidity', type: 'uint128', internalType: 'uint128'},\n {\n name: 'feeGrowthInside0LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthInside1LastX128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPositionLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'positionId', type: 'bytes32', internalType: 'bytes32'},\n ],\n outputs: [{name: 'liquidity', type: 'uint128', internalType: 'uint128'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getSlot0',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'sqrtPriceX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'protocolFee', type: 'uint24', internalType: 'uint24'},\n {name: 'lpFee', type: 'uint24', internalType: 'uint24'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getSlot0',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n ],\n outputs: [\n {\n name: 'sqrtPriceX96',\n type: 'uint160',\n internalType: 'uint160',\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n {name: 'protocolFee', type: 'uint24', internalType: 'uint24'},\n {name: 'lpFee', type: 'uint24', internalType: 'uint24'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickBitmap',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int16', internalType: 'int16'},\n ],\n outputs: [{name: 'tickBitmap', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickBitmap',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int16', internalType: 'int16'},\n ],\n outputs: [{name: 'tickBitmap', type: 'uint256', internalType: 'uint256'}],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickFeeGrowthOutside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickFeeGrowthOutside',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickInfo',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n {\n name: 'feeGrowthOutside0X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeGrowthOutside1X128',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {\n name: 'key',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n {\n name: 'currency0',\n type: 'address',\n internalType: 'Currency',\n },\n {\n name: 'currency1',\n type: 'address',\n internalType: 'Currency',\n },\n {name: 'fee', type: 'uint24', internalType: 'uint24'},\n {name: 'tickSpacing', type: 'int24', internalType: 'int24'},\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getTickLiquidity',\n inputs: [\n {\n name: 'poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n {name: 'poolId', type: 'bytes32', internalType: 'PoolId'},\n {name: 'tick', type: 'int24', internalType: 'int24'},\n ],\n outputs: [\n {\n name: 'liquidityGross',\n type: 'uint128',\n internalType: 'uint128',\n },\n {name: 'liquidityNet', type: 'int128', internalType: 'int128'},\n ],\n stateMutability: 'view',\n },\n] as const;\n","import type {Address, Client, PublicClient, GetContractReturnType} from 'viem';\nimport {getContract} from 'viem';\nimport {monadTestnet, unichainSepolia} from 'viem/chains';\n\nimport {erc20Abi} from '~/abis/erc20';\nimport {lensAbi} from '~/abis/lens';\nimport {uniswapMathLensAbi} from '~/abis/uniswapMathLens';\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>;\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 getStateView = (client: Client | PublicClient) => {\n return getContract({\n abi: statelessStateViewAbi,\n address: stateViews[client.chain!.id],\n client,\n });\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 swappers: Record<number, Address> = {\n [monadTestnet.id]: '0x877309663591ad974bE2c0C7fB453844c8D613D8',\n [unichainSepolia.id]: '0xa145eb0CAdB5F3c5e42931e60ee609DE74FDEA0b',\n};\nexport const timelockLenses: Record<number, Address> = {\n [monadTestnet.id]: '0x22745deD5F51A2F33D98c5682048f5d10baE3b92',\n [unichainSepolia.id]: '0x15ea322dC97dA0518b88AB31D486fF8272c1C2D1',\n};\nexport const swapRouters: Record<number, Address> = {\n [monadTestnet.id]: '0xEd8a7Ca09c6Db6F4b9FAcB8De7e9A5449B1D21a4',\n [unichainSepolia.id]: '0x7C9fBd739cb0e09657B7c6aB4eFc37bEe80820B0',\n};\nexport const stateViews: Record<number, Address> = {\n [monadTestnet.id]: '0xB85e32Ff9b08Be61cD888e5D997E51951BCA1A69',\n [unichainSepolia.id]: '0xB5ABc500f54a798E20ae8f91e21DBa29B1CE3F5a',\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\nexport const PRICE_PRECISION = BigInt(1e18);\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 priceX192 = (price * BigInt(2 ** 192)) / PRICE_PRECISION;\n\n const sqrtPriceX96 = JSBI.BigInt(\n new Big(priceX192.toString()).sqrt().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 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 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';\n\nexport const EMPTY_ARRAY: never[] = [];\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) 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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"}
|
|
@@ -376,6 +376,117 @@ const lensAbi = [
|
|
|
376
376
|
],
|
|
377
377
|
stateMutability: "view"
|
|
378
378
|
},
|
|
379
|
+
{
|
|
380
|
+
type: "function",
|
|
381
|
+
name: "getFeeRates",
|
|
382
|
+
inputs: [{
|
|
383
|
+
name: "feeStrategy",
|
|
384
|
+
type: "address",
|
|
385
|
+
internalType: "contract FeeStrategy"
|
|
386
|
+
}],
|
|
387
|
+
outputs: [{
|
|
388
|
+
name: "rates",
|
|
389
|
+
type: "tuple",
|
|
390
|
+
internalType: "struct TimelockLens.FeeStrategyRates",
|
|
391
|
+
components: [
|
|
392
|
+
{
|
|
393
|
+
name: "openingFeeRate",
|
|
394
|
+
type: "uint32",
|
|
395
|
+
internalType: "uint32"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
name: "baseFeeRate",
|
|
399
|
+
type: "uint32",
|
|
400
|
+
internalType: "uint32"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
name: "minOpeningFee",
|
|
404
|
+
type: "uint128",
|
|
405
|
+
internalType: "uint128"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
name: "minBaseFee",
|
|
409
|
+
type: "uint128",
|
|
410
|
+
internalType: "uint128"
|
|
411
|
+
}
|
|
412
|
+
]
|
|
413
|
+
}],
|
|
414
|
+
stateMutability: "view"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
type: "function",
|
|
418
|
+
name: "getGlobalGuardianState",
|
|
419
|
+
inputs: [{
|
|
420
|
+
name: "guardian",
|
|
421
|
+
type: "address",
|
|
422
|
+
internalType: "contract TimelockGuardian"
|
|
423
|
+
}],
|
|
424
|
+
outputs: [{
|
|
425
|
+
name: "guardianState",
|
|
426
|
+
type: "tuple",
|
|
427
|
+
internalType: "struct TimelockLens.GuardianGlobalState",
|
|
428
|
+
components: [
|
|
429
|
+
{
|
|
430
|
+
name: "globalMintPaused",
|
|
431
|
+
type: "tuple",
|
|
432
|
+
internalType: "struct TimelockGuardian.PauseState",
|
|
433
|
+
components: [{
|
|
434
|
+
name: "paused",
|
|
435
|
+
type: "bool",
|
|
436
|
+
internalType: "bool"
|
|
437
|
+
}, {
|
|
438
|
+
name: "updatedAt",
|
|
439
|
+
type: "uint64",
|
|
440
|
+
internalType: "uint64"
|
|
441
|
+
}]
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
name: "globalBurnPaused",
|
|
445
|
+
type: "tuple",
|
|
446
|
+
internalType: "struct TimelockGuardian.PauseState",
|
|
447
|
+
components: [{
|
|
448
|
+
name: "paused",
|
|
449
|
+
type: "bool",
|
|
450
|
+
internalType: "bool"
|
|
451
|
+
}, {
|
|
452
|
+
name: "updatedAt",
|
|
453
|
+
type: "uint64",
|
|
454
|
+
internalType: "uint64"
|
|
455
|
+
}]
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
name: "globalTradingPaused",
|
|
459
|
+
type: "tuple",
|
|
460
|
+
internalType: "struct TimelockGuardian.PauseState",
|
|
461
|
+
components: [{
|
|
462
|
+
name: "paused",
|
|
463
|
+
type: "bool",
|
|
464
|
+
internalType: "bool"
|
|
465
|
+
}, {
|
|
466
|
+
name: "updatedAt",
|
|
467
|
+
type: "uint64",
|
|
468
|
+
internalType: "uint64"
|
|
469
|
+
}]
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
name: "minWithdrawalInterval",
|
|
473
|
+
type: "uint256",
|
|
474
|
+
internalType: "uint256"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
name: "senderIsAdmin",
|
|
478
|
+
type: "bool",
|
|
479
|
+
internalType: "bool"
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
name: "senderIsPauser",
|
|
483
|
+
type: "bool",
|
|
484
|
+
internalType: "bool"
|
|
485
|
+
}
|
|
486
|
+
]
|
|
487
|
+
}],
|
|
488
|
+
stateMutability: "view"
|
|
489
|
+
},
|
|
379
490
|
{
|
|
380
491
|
type: "function",
|
|
381
492
|
name: "getLiquidityAtTick",
|
|
@@ -520,7 +631,7 @@ const lensAbi = [
|
|
|
520
631
|
internalType: "address"
|
|
521
632
|
},
|
|
522
633
|
{
|
|
523
|
-
name: "
|
|
634
|
+
name: "owner",
|
|
524
635
|
type: "address",
|
|
525
636
|
internalType: "address"
|
|
526
637
|
}
|
|
@@ -1014,48 +1125,56 @@ const lensAbi = [
|
|
|
1014
1125
|
inputs: [{
|
|
1015
1126
|
name: "vault",
|
|
1016
1127
|
type: "address",
|
|
1017
|
-
internalType: "contract
|
|
1128
|
+
internalType: "contract TimelockSingleOwnerVault"
|
|
1018
1129
|
}],
|
|
1019
1130
|
outputs: [{
|
|
1020
1131
|
name: "vaultData",
|
|
1021
1132
|
type: "tuple",
|
|
1022
1133
|
internalType: "struct TimelockLens.TimelockVaultData",
|
|
1023
|
-
components: [
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1134
|
+
components: [
|
|
1135
|
+
{
|
|
1136
|
+
name: "poolManager",
|
|
1137
|
+
type: "address",
|
|
1138
|
+
internalType: "contract IPoolManager"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
name: "poolKey",
|
|
1142
|
+
type: "tuple",
|
|
1143
|
+
internalType: "struct PoolKey",
|
|
1144
|
+
components: [
|
|
1145
|
+
{
|
|
1146
|
+
name: "currency0",
|
|
1147
|
+
type: "address",
|
|
1148
|
+
internalType: "Currency"
|
|
1149
|
+
},
|
|
1150
|
+
{
|
|
1151
|
+
name: "currency1",
|
|
1152
|
+
type: "address",
|
|
1153
|
+
internalType: "Currency"
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
name: "fee",
|
|
1157
|
+
type: "uint24",
|
|
1158
|
+
internalType: "uint24"
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
name: "tickSpacing",
|
|
1162
|
+
type: "int24",
|
|
1163
|
+
internalType: "int24"
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
name: "hooks",
|
|
1167
|
+
type: "address",
|
|
1168
|
+
internalType: "contract IHooks"
|
|
1169
|
+
}
|
|
1170
|
+
]
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
name: "owner",
|
|
1174
|
+
type: "address",
|
|
1175
|
+
internalType: "address"
|
|
1176
|
+
}
|
|
1177
|
+
]
|
|
1059
1178
|
}],
|
|
1060
1179
|
stateMutability: "view"
|
|
1061
1180
|
},
|
|
@@ -2994,4 +3113,4 @@ const optionsMarketAbi = [
|
|
|
2994
3113
|
|
|
2995
3114
|
//#endregion
|
|
2996
3115
|
export { erc20Abi as i, uniswapMathLensAbi as n, lensAbi as r, optionsMarketAbi as t };
|
|
2997
|
-
//# sourceMappingURL=optionsMarket-
|
|
3116
|
+
//# sourceMappingURL=optionsMarket-CT26uUTa.js.map
|