timelock-sdk 0.0.17 → 0.0.19

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/client.cjs CHANGED
@@ -80,4 +80,4 @@
80
80
  payoutAssetName
81
81
  }
82
82
  }
83
- `,p=(e,t,n,r)=>e();function m(e,t=p){return{GetActiveUserOptions(n,r,i){return t(t=>e.request({document:u,variables:n,requestHeaders:{...r,...t},signal:i}),`GetActiveUserOptions`,`query`,n)},GetClosedUserOptions(n,r,i){return t(t=>e.request({document:d,variables:n,requestHeaders:{...r,...t},signal:i}),`GetClosedUserOptions`,`query`,n)},GetMarketData(n,r,i){return t(t=>e.request({document:f,variables:n,requestHeaders:{...r,...t},signal:i}),`GetMarketData`,`query`,n)}}}const h=(0,i.createContext)(void 0),g=({children:t,marketData:n,envioGraphqlUrl:r})=>{let o=(0,a.useChainId)(),s=e.timelockLenses[o],c=e.uniswapMathLenses[o];return i.default.createElement(h.Provider,{value:{marketData:n||{},lensAddr:s,uniswapMathLensAddr:c,envioGraphqlUrl:r}},t)},_=()=>{let e=(0,i.useContext)(h);if(e===void 0)throw Error(`useCurrentMarket must be used within a TimelockMarketProvider`);return e.marketData},v=()=>{let e=(0,i.useContext)(h);if(e===void 0)throw Error(`useConfig must be used within a TimelockMarketProvider`);return{lensAddr:e.lensAddr,uniswapMathLensAddr:e.uniswapMathLensAddr,envioGraphqlUrl:e.envioGraphqlUrl,graphqlClient:e.envioGraphqlUrl?m(new o.GraphQLClient(e.envioGraphqlUrl)):void 0}},y=e=>{let{graphqlClient:t}=v(),{data:n}=(0,l.useQuery)({queryKey:[`marketData`,e||`--`],queryFn:()=>t.GetMarketData({marketAddr:e.toLowerCase()}),select:e=>({...e.TimelockMarket[0],pool:e.TimelockMarket[0].pool,vault:e.TimelockMarket[0].vault,optionAsset:e.TimelockMarket[0].optionAsset,payoutAsset:e.TimelockMarket[0].payoutAsset,optionsCount:BigInt(e.TimelockMarket[0].optionsCount),tradersCount:BigInt(e.TimelockMarket[0].tradersCount)}),enabled:!!e&&!!t});return n||{}},b=e=>{let{vault:r}=y(e),i=(0,a.useClient)(),{data:o}=(0,a.useReadContract)({address:r,abi:n.singleOwnerVaultAbi,functionName:`lowestTick`}),{writeContractAsync:s,data:l,isPending:u,error:d}=(0,a.useWriteContract)(),{isLoading:f,isSuccess:p}=(0,a.useWaitForTransactionReceipt)({hash:l});return{exerciseOption:async(n,r)=>{if(!i)throw Error(`Wallet not connected`);if(o===void 0||!e)throw Error(`Lowest tick lower not available`);let a=await s({address:e,abi:t.optionsMarketAbi,functionName:`exerciseOption`,args:[n,r,0n,o]});return await(0,c.waitForTransactionReceipt)(i,{hash:a}),a},hash:l,isPending:u,isConfirming:f,isSuccess:p,error:d,isLoading:u||f}},x=()=>{let t=(0,a.useClient)(),n=t?e.getTimelockLens(t):void 0;return{uniswapLens:t?e.getUniswapMathLens(t):void 0,timelockLens:n}},S=(n,r,o=100)=>{let{timelockLens:s}=x(),{optionAssetDecimals:c}=y(n),{data:l,refetch:u}=(0,a.useReadContract)({address:s==null?void 0:s.address,abi:t.lensAbi,functionName:`getMaxPositionSizeAtCurrentTick`,args:[n,o],query:{enabled:!!n&&!!s},gas:100000000n}),{data:d,refetch:f}=(0,a.useReadContract)({address:s==null?void 0:s.address,abi:t.lensAbi,functionName:`getMaxPositionSize`,args:[n,r,o],query:{enabled:!!n&&!!s&&r!==void 0},gas:100000000n}),p=r===void 0?l:d,{maxCallSize:m,maxPutSize:h}=(0,i.useMemo)(()=>p&&c?{maxCallSize:e.wrapAmount(p[0],c),maxPutSize:e.wrapAmount(p[1],c)}:{},[p,c]);return{maxCallSize:m,maxPutSize:h,refetch:()=>{u(),f()}}},C=e=>{let{timelockLens:n}=x(),r=(0,a.useClient)(),{data:i}=(0,a.useReadContract)({address:n==null?void 0:n.address,abi:t.lensAbi,functionName:`getPoolData`,args:e?[e]:void 0,query:{enabled:!!e&&!!r}});return i||{}},w=e=>{let{tickSpacing:t}=C(e),{data:r}=(0,a.useReadContract)({address:e,abi:n.uniswapV3PoolAbi,functionName:`slot0`,args:[]}),i=r==null?void 0:r[1];return{exact:i,rounded:i&&t?Math.floor(i/t)*t:void 0}},T=n=>{let{timelockLens:i}=x(),{payoutAsset:o,vault:s,pool:l,optionAssetIsToken0:u}=y(n),{tickSpacing:d}=C(l),{exact:f}=w(l),p=(0,a.useClient)(),{address:m}=(0,a.useAccount)(),{writeContractAsync:h,data:g,isPending:_,error:v}=(0,a.useWriteContract)(),{isLoading:b,isSuccess:S}=(0,a.useWaitForTransactionReceipt)({hash:g}),T=async t=>{if(!p||!m)throw Error(`Wallet not connected`);if(!o||!n)throw Error(`Tokens not available`);await e.getErc20(o,p).read.allowance([m,n])<t&&await(0,c.waitForTransactionReceipt)(p,{hash:await h({address:o,abi:r.erc20Abi,functionName:`approve`,args:[n,r.maxUint256]})})};return{mintOption:async(r,a,o,l)=>{if(!p)throw Error(`Wallet not connected`);if(!i||!s||!n||!f||!d)throw Error(`Lowest tick lower not available`);l=e.roundTickDown(l??f,d),(r===`CALL`&&u||r===`PUT`&&!u)&&(l+=d),await T(await e.getTimelockMarket(n,p).read.calculatePremium([r===`CALL`?0:1,a,l,BigInt(o)]));let m=await h({address:n,abi:t.optionsMarketAbi,functionName:`mintOption`,args:[r===`CALL`?0:1,a,l,BigInt(o),BigInt(1e69),await i.read.getRefTick([s,l])]});return await(0,c.waitForTransactionReceipt)(p,{hash:m}),m},hash:g,isPending:_,isConfirming:b,isSuccess:S,error:v,isLoading:_||b}},E=t=>{let{marketAddr:n,optionType:r,entryTick:a,positionSizeCurrent:o}=t,{pool:s,optionAssetIsToken0:c,payoutAssetDecimals:l}=y(n),{exact:u}=w(s),{displayPnl:d,unrealizedPayout:f}=(0,i.useMemo)(()=>{if(c===void 0||u===void 0||!o||!l)return{};let t=c?e.token0ToToken1(o,u)-e.token0ToToken1(o,a):e.token1ToToken0(o,u)-e.token1ToToken0(o,a),n=e.wrapAmount(r===`CALL`?t:-t,l);return{unrealizedPayout:e.wrapAmount(n.scaled<0?0n:n.scaled,l),displayPnl:n}},[t,c,u,o]);return{displayPnl:d,unrealizedPayout:f}},D=(n,r,o,s)=>{let{pool:c,payoutAssetDecimals:l}=y(n),{tickSpacing:u}=C(c),d=w(c),f=(0,i.useMemo)(()=>{if(!(d.rounded===void 0||u===void 0))return r===`CALL`?d.rounded+u:d.rounded},[d.rounded,u,r]),{data:p}=(0,a.useReadContract)({address:n,abi:t.optionsMarketAbi,functionName:`calculatePremium`,args:f===void 0?void 0:[r===`CALL`?0:1,o,f,BigInt(s)],query:{enabled:d.rounded!==void 0&&l!==void 0&&u!==void 0&&f!==void 0}});return(0,i.useMemo)(()=>{if(!(p===void 0||l===void 0))return e.wrapAmount(p,l)},[p,l])},O=(e,t=!1)=>{let{graphqlClient:n}=v(),{data:r,...a}=(0,l.useQuery)({queryKey:[`userTrades`,e||`--`,t],queryFn:()=>t?n==null?void 0:n.GetActiveUserOptions({user:e.toLowerCase()}):n==null?void 0:n.GetClosedUserOptions({user:e.toLowerCase()}),select:e=>{var t;return e==null||(t=e.UserOption)==null?void 0:t.map(e=>({...e,id:BigInt(e.id),marketAddr:e.marketAddr,optionType:e.optionType,createdAt:new Date(Number(e.createdAt)*1e3),expiresAt:new Date(Number(e.expiresAt)*1e3),premiumPaid:BigInt(e.premiumPaid),realizedPayout:BigInt(e.realizedPayout),liquiditiesAtOpen:e.liquiditiesAtOpen.map(e=>BigInt(e)),liquiditiesCurrent:e.liquiditiesCurrent.map(e=>BigInt(e)),positionSizeAtOpen:BigInt(e.positionSizeAtOpen),positionSizeCurrent:BigInt(e.positionSizeCurrent),strikePrice:BigInt(e.strikePrice),entryPrice:BigInt(e.entryPrice)}))},enabled:!!e&&!!n});return{data:(0,i.useMemo)(()=>(r==null?void 0:r.sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()))||[],[r]),...a}},k=e=>O(e,!0),A=e=>O(e,!1),j=(t,n)=>{let{token0Decimals:r,token1Decimals:a}=C(n);return(0,i.useMemo)(()=>t&&r&&a?e.wrapPrice(e.getPriceAtTick(t),r,a):void 0,[t,r,a])},M=e=>{let t=w(e);return{currentPrice:j(t.exact,e),currentTick:t}},N=e=>{let{data:t}=(0,a.useReadContract)({address:e,abi:n.singleOwnerVaultAbi,functionName:`pool`});return{pool:t}},P=e=>{let t=(0,a.useClient)(),{pool:i}=N(e),o=w(i),{timelockLens:s}=x(),{writeContractAsync:l,data:u,isPending:d,error:f}=(0,a.useWriteContract)(),{isLoading:p,isSuccess:m}=(0,a.useWaitForTransactionReceipt)({hash:u}),h=async(r,i,a)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!s)throw Error(`Vault/lens not available`);let o=await l({address:e,abi:n.singleOwnerVaultAbi,functionName:`burn`,args:[r,i,a,await s.read.getRefTick([e,r])]});return await(0,c.waitForTransactionReceipt)(t,{hash:o}),o};return{burnMultiple:async i=>{if(!t)throw Error(`Wallet not connected`);if(!o.exact)throw Error(`Current tick not available`);if(i.length===0)throw Error(`No positions to burn`);if(!s||!e)throw Error(`Vault/lens not available`);if(i.length===1)await h(i[0].tickLower,i[0].tickUpper,i[0].liquidity);else{let a=await s.read.batchGetRefTick([e,i.map(e=>e.tickLower)]);await(0,c.waitForTransactionReceipt)(t,{hash:await l({address:e,abi:n.singleOwnerVaultAbi,functionName:`multicall`,args:[i.map((e,t)=>(0,r.encodeFunctionData)({abi:n.singleOwnerVaultAbi,functionName:`burn`,args:[e.tickLower,e.tickUpper,e.liquidity,a[t]]}))]})})}},burn:h,hash:u,isPending:d,isConfirming:p,isSuccess:m,error:f,isLoading:d||p}},F=t=>{let{timelockLens:n}=x(),{pool:r}=N(t),{token0Decimals:a,token1Decimals:o}=C(r),{currentPrice:s}=M(r),{data:c=[],refetch:u}=(0,l.useQuery)({queryKey:[`liquidityBlocks`,t],queryFn:()=>n.read.getAllBlocks([t]),enabled:!!t&&!!n}),{totalAmount0:d,totalAmount1:f,borrowedAmount0:p,borrowedAmount1:m}=(0,i.useMemo)(()=>({totalAmount0:a?e.wrapAmount(c.reduce((e,t)=>e+t.totalAmount0,0n),a):void 0,totalAmount1:o?e.wrapAmount(c.reduce((e,t)=>e+t.totalAmount1,0n),o):void 0,borrowedAmount0:a?e.wrapAmount(c.reduce((e,t)=>e+t.borrowedAmount0,0n),a):void 0,borrowedAmount1:o?e.wrapAmount(c.reduce((e,t)=>e+t.borrowedAmount1,0n),o):void 0}),[c,a,o]);return{tvl1:(0,i.useMemo)(()=>{if(!d||!f||!s||!o)return;let t=d.scaled*s.scaled/10n**18n,n=f.scaled;return e.wrapAmount(t+n,o)},[d,f,s,o]),blocks:c,totalAmount0:d,totalAmount1:f,borrowedAmount0:p,borrowedAmount1:m,refetch:u}},I=async(e,t,n,r,i)=>{let a=Array(t.length).fill(i),o=await e.read.batchGetAmountsForLiquidityTicks([a,t,n,r]),s=0n,c=0n,l=[],u=[];for(let e of o[0])s+=e,l.push(e);for(let e of o[1])c+=e,u.push(e);return{totalAmount0:s,totalAmount1:c,amounts0:l,amounts1:u}},L=t=>{let i=(0,a.useClient)(),{address:o}=(0,a.useAccount)(),{pool:s}=N(t),{timelockLens:l,uniswapLens:u}=x(),d=w(s),{token0:f,token1:p}=C(s),{writeContractAsync:m,data:h,isPending:g,error:_}=(0,a.useWriteContract)(),{isLoading:v,isSuccess:y}=(0,a.useWaitForTransactionReceipt)({hash:h}),b=async n=>{if(!o||!i)throw Error(`Wallet not connected`);if(d.exact===void 0||!f||!p||!t||!u)throw Error(`Current tick not available`);let{totalAmount0:a,totalAmount1:s}=await I(u,n.map(e=>e.tickLower),n.map(e=>e.tickUpper),n.map(e=>e.liquidity),d.exact),[l,h]=await Promise.all([e.getErc20(f,i).read.allowance([o,t]),e.getErc20(p,i).read.allowance([o,t])]),g=[];if(l<=a){let e=await m({address:f,abi:r.erc20Abi,functionName:`approve`,args:[t,r.maxUint256]});g.push((0,c.waitForTransactionReceipt)(i,{hash:e}))}if(h<=s){let e=await m({address:p,abi:r.erc20Abi,functionName:`approve`,args:[t,r.maxUint256]});g.push((0,c.waitForTransactionReceipt)(i,{hash:e}))}g.length>0&&await Promise.all(g)},S=async(e,r,a)=>{if(!i)throw Error(`Wallet not connected`);if(!t||!l)throw Error(`Vault/lens not available`);await b([{tickLower:e,tickUpper:r,liquidity:a}]);let o=await m({address:t,abi:n.singleOwnerVaultAbi,functionName:`mint`,args:[e,r,a,await l.read.getRefTick([t,e])]});return await(0,c.waitForTransactionReceipt)(i,{hash:o}),o};return{mintMultiple:async e=>{if(!i)throw Error(`Wallet not connected`);if(!d.exact)throw Error(`Current tick not available`);if(e.length===0)throw Error(`No positions to mint`);if(!l||!t)throw Error(`Vault/lens not available`);if(e.length===1)await S(e[0].tickLower,e[0].tickUpper,e[0].liquidity);else{await b(e);let a=await l.read.batchGetRefTick([t,e.map(e=>e.tickLower)]);await(0,c.waitForTransactionReceipt)(i,{hash:await m({address:t,abi:n.singleOwnerVaultAbi,functionName:`multicall`,args:[e.map((e,t)=>(0,r.encodeFunctionData)({abi:n.singleOwnerVaultAbi,functionName:`mint`,args:[e.tickLower,e.tickUpper,e.liquidity,a[t]]}))]})})}},mint:S,hash:h,isPending:g,isConfirming:v,isSuccess:y,error:_,isLoading:g||v}},R=n=>{let{timelockLens:r}=x(),{pool:i}=N(n),{token0Decimals:o,token1Decimals:s}=C(i),{data:c,refetch:l}=(0,a.useReadContract)({address:r==null?void 0:r.address,abi:t.lensAbi,functionName:`getVaultTVL`,args:[n],query:{enabled:!!n&&!!r}}),u=c&&o?e.wrapAmount(c[0],o):void 0,d=c&&s?e.wrapAmount(c[1],s):void 0,f=c&&o?e.wrapAmount(c[2],o):void 0,p=c&&s?e.wrapAmount(c[3],s):void 0;return{tvl0:c&&o?e.wrapAmount(c[4],o):void 0,tvl1:c&&s?e.wrapAmount(c[5],s):void 0,totalAmount0:u,totalAmount1:d,borrowedAmount0:f,borrowedAmount1:p,refetch:l}};exports.TimelockMarketProvider=g,exports.batchGetAmountsFromLiquidity=I,exports.useActiveUserOptions=k,exports.useBurnLiquidity=P,exports.useClosedUserOptions=A,exports.useCurrentMarket=_,exports.useCurrentPrice=M,exports.useCurrentTick=w,exports.useExerciseOption=b,exports.useLens=x,exports.useLiquidityBlocks=F,exports.useMarketData=y,exports.useMaxPositionSize=S,exports.useMintLiquidity=L,exports.useMintOption=T,exports.useOptionPnl=E,exports.useOptionPremium=D,exports.usePoolData=C,exports.usePriceAtTick=j,exports.useTimelockConfig=v,exports.useVaultData=N,exports.useVaultTVL=R;
83
+ `,p=(e,t,n,r)=>e();function m(e,t=p){return{GetActiveUserOptions(n,r,i){return t(t=>e.request({document:u,variables:n,requestHeaders:{...r,...t},signal:i}),`GetActiveUserOptions`,`query`,n)},GetClosedUserOptions(n,r,i){return t(t=>e.request({document:d,variables:n,requestHeaders:{...r,...t},signal:i}),`GetClosedUserOptions`,`query`,n)},GetMarketData(n,r,i){return t(t=>e.request({document:f,variables:n,requestHeaders:{...r,...t},signal:i}),`GetMarketData`,`query`,n)}}}const h=(0,i.createContext)(void 0),g=({children:t,marketData:n,envioGraphqlUrl:r})=>{let o=(0,a.useChainId)(),s=e.timelockLenses[o],c=e.uniswapMathLenses[o];return i.default.createElement(h.Provider,{value:{marketData:n||{},lensAddr:s,uniswapMathLensAddr:c,envioGraphqlUrl:r}},t)},_=()=>{let e=(0,i.useContext)(h);if(e===void 0)throw Error(`useCurrentMarket must be used within a TimelockMarketProvider`);return e.marketData},v=()=>{let e=(0,i.useContext)(h);if(e===void 0)throw Error(`useConfig must be used within a TimelockMarketProvider`);return{lensAddr:e.lensAddr,uniswapMathLensAddr:e.uniswapMathLensAddr,envioGraphqlUrl:e.envioGraphqlUrl,graphqlClient:e.envioGraphqlUrl?m(new o.GraphQLClient(e.envioGraphqlUrl)):void 0}},y=e=>{let{graphqlClient:t}=v(),{data:n}=(0,l.useQuery)({queryKey:[`marketData`,e||`--`],queryFn:()=>t.GetMarketData({marketAddr:e.toLowerCase()}),select:e=>({...e.TimelockMarket[0],pool:e.TimelockMarket[0].pool,vault:e.TimelockMarket[0].vault,optionAsset:e.TimelockMarket[0].optionAsset,payoutAsset:e.TimelockMarket[0].payoutAsset,optionsCount:BigInt(e.TimelockMarket[0].optionsCount),tradersCount:BigInt(e.TimelockMarket[0].tradersCount)}),enabled:!!e&&!!t});return n||{}},b=e=>{let{vault:r}=y(e),i=(0,a.useClient)(),{data:o}=(0,a.useReadContract)({address:r,abi:n.singleOwnerVaultAbi,functionName:`lowestTick`}),{writeContractAsync:s,data:l,isPending:u,error:d}=(0,a.useWriteContract)(),{isLoading:f,isSuccess:p}=(0,a.useWaitForTransactionReceipt)({hash:l});return{exerciseOption:async(n,r)=>{if(!i)throw Error(`Wallet not connected`);if(o===void 0||!e)throw Error(`Lowest tick lower not available`);let a=await s({address:e,abi:t.optionsMarketAbi,functionName:`exerciseOption`,args:[n,r,0n,o]});return await(0,c.waitForTransactionReceipt)(i,{hash:a}),a},hash:l,isPending:u,isConfirming:f,isSuccess:p,error:d,isLoading:u||f}},x=()=>{let t=(0,a.useClient)(),n=(0,i.useMemo)(()=>t?e.getTimelockLens(t):void 0,[t]);return{uniswapLens:(0,i.useMemo)(()=>t?e.getUniswapMathLens(t):void 0,[t]),timelockLens:n}},S=(n,r,o=100)=>{let{timelockLens:s}=x(),{optionAssetDecimals:c}=y(n),{data:l,refetch:u}=(0,a.useReadContract)({address:s==null?void 0:s.address,abi:t.lensAbi,functionName:`getMaxPositionSizeAtCurrentTick`,args:[n,o],query:{enabled:!!n&&!!s},gas:100000000n}),{data:d,refetch:f}=(0,a.useReadContract)({address:s==null?void 0:s.address,abi:t.lensAbi,functionName:`getMaxPositionSize`,args:[n,r,o],query:{enabled:!!n&&!!s&&r!==void 0},gas:100000000n}),p=r===void 0?l:d,{maxCallSize:m,maxPutSize:h}=(0,i.useMemo)(()=>p&&c?{maxCallSize:e.wrapAmount(p[0],c),maxPutSize:e.wrapAmount(p[1],c)}:{},[p,c]);return{maxCallSize:m,maxPutSize:h,refetch:()=>{u(),f()}}},C=e=>{let{timelockLens:n}=x(),r=(0,a.useClient)(),{data:i}=(0,a.useReadContract)({address:n==null?void 0:n.address,abi:t.lensAbi,functionName:`getPoolData`,args:e?[e]:void 0,query:{enabled:!!e&&!!r}});return i||{}},w=e=>{let{tickSpacing:t}=C(e),{data:r}=(0,a.useReadContract)({address:e,abi:n.uniswapV3PoolAbi,functionName:`slot0`,args:[]}),i=r==null?void 0:r[1];return{exact:i,rounded:i&&t?Math.floor(i/t)*t:void 0}},T=n=>{let{timelockLens:i}=x(),{payoutAsset:o,vault:s,pool:l,optionAssetIsToken0:u}=y(n),{tickSpacing:d}=C(l),{exact:f}=w(l),p=(0,a.useClient)(),{address:m}=(0,a.useAccount)(),{writeContractAsync:h,data:g,isPending:_,error:v}=(0,a.useWriteContract)(),{isLoading:b,isSuccess:S}=(0,a.useWaitForTransactionReceipt)({hash:g}),T=async t=>{if(!p||!m)throw Error(`Wallet not connected`);if(!o||!n)throw Error(`Tokens not available`);await e.getErc20(o,p).read.allowance([m,n])<t&&await(0,c.waitForTransactionReceipt)(p,{hash:await h({address:o,abi:r.erc20Abi,functionName:`approve`,args:[n,r.maxUint256]})})};return{mintOption:async(r,a,o,l)=>{if(!p)throw Error(`Wallet not connected`);if(!i||!s||!n||!f||!d)throw Error(`Lowest tick lower not available`);l=e.roundTickDown(l??f,d),(r===`CALL`&&u||r===`PUT`&&!u)&&(l+=d),await T(await e.getTimelockMarket(n,p).read.calculatePremium([r===`CALL`?0:1,a,l,BigInt(o)]));let m=await h({address:n,abi:t.optionsMarketAbi,functionName:`mintOption`,args:[r===`CALL`?0:1,a,l,BigInt(o),BigInt(1e69),await i.read.getRefTick([s,l])]});return await(0,c.waitForTransactionReceipt)(p,{hash:m}),m},hash:g,isPending:_,isConfirming:b,isSuccess:S,error:v,isLoading:_||b}},E=t=>{let{marketAddr:n,optionType:r,entryTick:a,positionSizeCurrent:o}=t,{pool:s,optionAssetIsToken0:c,payoutAssetDecimals:l}=y(n),{exact:u}=w(s),{displayPnl:d,unrealizedPayout:f}=(0,i.useMemo)(()=>{if(c===void 0||u===void 0||!o||!l)return{};let t=c?e.token0ToToken1(o,u)-e.token0ToToken1(o,a):e.token1ToToken0(o,u)-e.token1ToToken0(o,a),n=e.wrapAmount(r===`CALL`?t:-t,l);return{unrealizedPayout:e.wrapAmount(n.scaled<0?0n:n.scaled,l),displayPnl:n}},[t,c,u,o]);return{displayPnl:d,unrealizedPayout:f}},D=(n,r,o,s)=>{let{pool:c,payoutAssetDecimals:l}=y(n),{tickSpacing:u}=C(c),d=w(c),f=(0,i.useMemo)(()=>{if(!(d.rounded===void 0||u===void 0))return r===`CALL`?d.rounded+u:d.rounded},[d.rounded,u,r]),{data:p}=(0,a.useReadContract)({address:n,abi:t.optionsMarketAbi,functionName:`calculatePremium`,args:f===void 0?void 0:[r===`CALL`?0:1,o,f,BigInt(s)],query:{enabled:d.rounded!==void 0&&l!==void 0&&u!==void 0&&f!==void 0}});return(0,i.useMemo)(()=>{if(!(p===void 0||l===void 0))return e.wrapAmount(p,l)},[p,l])},O=(e,t=!1)=>{let{graphqlClient:n}=v(),{data:r,...a}=(0,l.useQuery)({queryKey:[`userTrades`,e||`--`,t],queryFn:()=>t?n==null?void 0:n.GetActiveUserOptions({user:e.toLowerCase()}):n==null?void 0:n.GetClosedUserOptions({user:e.toLowerCase()}),select:e=>{var t;return e==null||(t=e.UserOption)==null?void 0:t.map(e=>({...e,id:BigInt(e.id),marketAddr:e.marketAddr,optionType:e.optionType,createdAt:new Date(Number(e.createdAt)*1e3),expiresAt:new Date(Number(e.expiresAt)*1e3),premiumPaid:BigInt(e.premiumPaid),realizedPayout:BigInt(e.realizedPayout),liquiditiesAtOpen:e.liquiditiesAtOpen.map(e=>BigInt(e)),liquiditiesCurrent:e.liquiditiesCurrent.map(e=>BigInt(e)),positionSizeAtOpen:BigInt(e.positionSizeAtOpen),positionSizeCurrent:BigInt(e.positionSizeCurrent),strikePrice:BigInt(e.strikePrice),entryPrice:BigInt(e.entryPrice)}))},enabled:!!e&&!!n});return{data:(0,i.useMemo)(()=>(r==null?void 0:r.sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()))||[],[r]),...a}},k=e=>O(e,!0),A=e=>O(e,!1),j=(t,n)=>{let{token0Decimals:r,token1Decimals:a}=C(n);return(0,i.useMemo)(()=>t&&r&&a?e.wrapPrice(e.getPriceAtTick(t),r,a):void 0,[t,r,a])},M=e=>{let t=w(e);return{currentPrice:j(t.exact,e),currentTick:t}},N=e=>{let{data:t}=(0,a.useReadContract)({address:e,abi:n.singleOwnerVaultAbi,functionName:`pool`});return{pool:t}},P=e=>{let t=(0,a.useClient)(),{timelockLens:i}=x(),{pool:o}=N(e),s=w(o),{writeContractAsync:l,data:u,isPending:d,error:f}=(0,a.useWriteContract)(),{isLoading:p,isSuccess:m}=(0,a.useWaitForTransactionReceipt)({hash:u}),h=async(r,a,o)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!i)throw Error(`Vault/lens not available`);let s=await l({address:e,abi:n.singleOwnerVaultAbi,functionName:`burn`,args:[r,a,o,await i.read.getRefTick([e,r])]});return await(0,c.waitForTransactionReceipt)(t,{hash:s}),s};return{burnMultiple:async a=>{if(!t)throw Error(`Wallet not connected`);if(!s.exact)throw Error(`Current tick not available`);if(a.length===0)throw Error(`No positions to burn`);if(!i||!e)throw Error(`Vault/lens not available`);if(a.length===1)await h(a[0].tickLower,a[0].tickUpper,a[0].liquidity);else{let o=await i.read.batchGetRefTick([e,a.map(e=>e.tickLower)]);await(0,c.waitForTransactionReceipt)(t,{hash:await l({address:e,abi:n.singleOwnerVaultAbi,functionName:`multicall`,args:[a.map((e,t)=>(0,r.encodeFunctionData)({abi:n.singleOwnerVaultAbi,functionName:`burn`,args:[e.tickLower,e.tickUpper,e.liquidity,o[t]]}))]})})}},burn:h,hash:u,isPending:d,isConfirming:p,isSuccess:m,error:f,isLoading:d||p}},F=t=>{let{timelockLens:n}=x(),{pool:r}=N(t),{token0Decimals:a,token1Decimals:o}=C(r),{currentPrice:s}=M(r),{data:c=[],refetch:u}=(0,l.useQuery)({queryKey:[`liquidityBlocks`,t],queryFn:()=>n.read.getAllBlocks([t]),enabled:!!t&&!!n}),{totalAmount0:d,totalAmount1:f,borrowedAmount0:p,borrowedAmount1:m}=(0,i.useMemo)(()=>({totalAmount0:a?e.wrapAmount(c.reduce((e,t)=>e+t.totalAmount0,0n),a):void 0,totalAmount1:o?e.wrapAmount(c.reduce((e,t)=>e+t.totalAmount1,0n),o):void 0,borrowedAmount0:a?e.wrapAmount(c.reduce((e,t)=>e+t.borrowedAmount0,0n),a):void 0,borrowedAmount1:o?e.wrapAmount(c.reduce((e,t)=>e+t.borrowedAmount1,0n),o):void 0}),[c,a,o]);return{tvl1:(0,i.useMemo)(()=>{if(!d||!f||!s||!o)return;let t=d.scaled*s.scaled/10n**18n,n=f.scaled;return e.wrapAmount(t+n,o)},[d,f,s,o]),blocks:c,totalAmount0:d,totalAmount1:f,borrowedAmount0:p,borrowedAmount1:m,refetch:u}},I=async(e,t,n,r,i)=>{let a=Array(t.length).fill(i),o=await e.read.batchGetAmountsForLiquidityTicks([a,t,n,r]),s=0n,c=0n,l=[],u=[];for(let e of o[0])s+=e,l.push(e);for(let e of o[1])c+=e,u.push(e);return{totalAmount0:s,totalAmount1:c,amounts0:l,amounts1:u}},L=t=>{let i=(0,a.useClient)(),{address:o}=(0,a.useAccount)(),{pool:s}=N(t),{timelockLens:l,uniswapLens:u}=x(),d=w(s),{token0:f,token1:p}=C(s),{writeContractAsync:m,data:h,isPending:g,error:_}=(0,a.useWriteContract)(),{isLoading:v,isSuccess:y}=(0,a.useWaitForTransactionReceipt)({hash:h}),b=async n=>{if(!o||!i)throw Error(`Wallet not connected`);if(d.exact===void 0||!f||!p||!t||!u)throw Error(`Current tick not available`);let{totalAmount0:a,totalAmount1:s}=await I(u,n.map(e=>e.tickLower),n.map(e=>e.tickUpper),n.map(e=>e.liquidity),d.exact),[l,h]=await Promise.all([e.getErc20(f,i).read.allowance([o,t]),e.getErc20(p,i).read.allowance([o,t])]),g=[];if(l<=a){let e=await m({address:f,abi:r.erc20Abi,functionName:`approve`,args:[t,r.maxUint256]});g.push((0,c.waitForTransactionReceipt)(i,{hash:e}))}if(h<=s){let e=await m({address:p,abi:r.erc20Abi,functionName:`approve`,args:[t,r.maxUint256]});g.push((0,c.waitForTransactionReceipt)(i,{hash:e}))}g.length>0&&await Promise.all(g)},S=async(e,r,a)=>{if(!i)throw Error(`Wallet not connected`);if(!t||!l)throw Error(`Vault/lens not available`);await b([{tickLower:e,tickUpper:r,liquidity:a}]);let o=await m({address:t,abi:n.singleOwnerVaultAbi,functionName:`mint`,args:[e,r,a,await l.read.getRefTick([t,e])]});return await(0,c.waitForTransactionReceipt)(i,{hash:o}),o};return{mintMultiple:async e=>{if(!i)throw Error(`Wallet not connected`);if(!d.exact)throw Error(`Current tick not available`);if(e.length===0)throw Error(`No positions to mint`);if(!l||!t)throw Error(`Vault/lens not available`);if(e.length===1)await S(e[0].tickLower,e[0].tickUpper,e[0].liquidity);else{await b(e);let a=await l.read.batchGetRefTick([t,e.map(e=>e.tickLower)]);await(0,c.waitForTransactionReceipt)(i,{hash:await m({address:t,abi:n.singleOwnerVaultAbi,functionName:`multicall`,args:[e.map((e,t)=>(0,r.encodeFunctionData)({abi:n.singleOwnerVaultAbi,functionName:`mint`,args:[e.tickLower,e.tickUpper,e.liquidity,a[t]]}))]})})}},mint:S,hash:h,isPending:g,isConfirming:v,isSuccess:y,error:_,isLoading:g||v}},R=n=>{let{timelockLens:r}=x(),{pool:i}=N(n),{token0Decimals:o,token1Decimals:s}=C(i),{data:c,refetch:l}=(0,a.useReadContract)({address:r==null?void 0:r.address,abi:t.lensAbi,functionName:`getVaultTVL`,args:[n],query:{enabled:!!n&&!!r}}),u=c&&o?e.wrapAmount(c[0],o):void 0,d=c&&s?e.wrapAmount(c[1],s):void 0,f=c&&o?e.wrapAmount(c[2],o):void 0,p=c&&s?e.wrapAmount(c[3],s):void 0;return{tvl0:c&&o?e.wrapAmount(c[4],o):void 0,tvl1:c&&s?e.wrapAmount(c[5],s):void 0,totalAmount0:u,totalAmount1:d,borrowedAmount0:f,borrowedAmount1:p,refetch:l}};exports.TimelockMarketProvider=g,exports.batchGetAmountsFromLiquidity=I,exports.useActiveUserOptions=k,exports.useBurnLiquidity=P,exports.useClosedUserOptions=A,exports.useCurrentMarket=_,exports.useCurrentPrice=M,exports.useCurrentTick=w,exports.useExerciseOption=b,exports.useLens=x,exports.useLiquidityBlocks=F,exports.useMarketData=y,exports.useMaxPositionSize=S,exports.useMintLiquidity=L,exports.useMintOption=T,exports.useOptionPnl=E,exports.useOptionPremium=D,exports.usePoolData=C,exports.usePriceAtTick=j,exports.useTimelockConfig=v,exports.useVaultData=N,exports.useVaultTVL=R;
package/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./uniswapMathLens-SWLgAikn.js";
2
2
  import { Amount, TimelockMarketData, UniswapMathLens } from "./index-DyZhOGnP.js";
3
- import * as viem249 from "viem";
3
+ import * as viem366 from "viem";
4
4
  import { Address } from "viem";
5
5
  import React, { ReactNode } from "react";
6
6
  import { GraphQLClient } from "graphql-request";
@@ -2299,14 +2299,14 @@ declare const useVaultTVL: (vaultAddr?: Address) => {
2299
2299
  totalAmount1: Amount | undefined;
2300
2300
  borrowedAmount0: Amount | undefined;
2301
2301
  borrowedAmount1: Amount | undefined;
2302
- refetch: (options?: _tanstack_query_core0.RefetchOptions) => Promise<_tanstack_query_core0.QueryObserverResult<readonly [bigint, bigint, bigint, bigint, bigint, bigint], viem249.ReadContractErrorType>>;
2302
+ refetch: (options?: _tanstack_query_core0.RefetchOptions) => Promise<_tanstack_query_core0.QueryObserverResult<readonly [bigint, bigint, bigint, bigint, bigint, bigint], viem366.ReadContractErrorType>>;
2303
2303
  };
2304
2304
  //#endregion
2305
2305
  //#region src/hooks/useLens.d.ts
2306
2306
  declare const useLens: () => {
2307
2307
  uniswapLens: {
2308
2308
  read: {
2309
- batchGetAmount0ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
2309
+ batchGetAmount0ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
2310
2310
  readonly type: "function";
2311
2311
  readonly name: "batchGetAmount0ForLiquidity";
2312
2312
  readonly inputs: readonly [{
@@ -2927,7 +2927,7 @@ declare const useLens: () => {
2927
2927
  }];
2928
2928
  readonly stateMutability: "pure";
2929
2929
  }], "batchGetAmount0ForLiquidity", readonly [readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
2930
- batchGetAmount0ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
2930
+ batchGetAmount0ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
2931
2931
  readonly type: "function";
2932
2932
  readonly name: "batchGetAmount0ForLiquidity";
2933
2933
  readonly inputs: readonly [{
@@ -3548,7 +3548,7 @@ declare const useLens: () => {
3548
3548
  }];
3549
3549
  readonly stateMutability: "pure";
3550
3550
  }], "batchGetAmount0ForLiquidityTicks", readonly [readonly number[], readonly number[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
3551
- batchGetAmount1ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
3551
+ batchGetAmount1ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
3552
3552
  readonly type: "function";
3553
3553
  readonly name: "batchGetAmount0ForLiquidity";
3554
3554
  readonly inputs: readonly [{
@@ -4169,7 +4169,7 @@ declare const useLens: () => {
4169
4169
  }];
4170
4170
  readonly stateMutability: "pure";
4171
4171
  }], "batchGetAmount1ForLiquidity", readonly [readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
4172
- batchGetAmount1ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
4172
+ batchGetAmount1ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
4173
4173
  readonly type: "function";
4174
4174
  readonly name: "batchGetAmount0ForLiquidity";
4175
4175
  readonly inputs: readonly [{
@@ -4790,7 +4790,7 @@ declare const useLens: () => {
4790
4790
  }];
4791
4791
  readonly stateMutability: "pure";
4792
4792
  }], "batchGetAmount1ForLiquidityTicks", readonly [readonly number[], readonly number[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
4793
- batchGetAmountsForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
4793
+ batchGetAmountsForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
4794
4794
  readonly type: "function";
4795
4795
  readonly name: "batchGetAmount0ForLiquidity";
4796
4796
  readonly inputs: readonly [{
@@ -5411,7 +5411,7 @@ declare const useLens: () => {
5411
5411
  }];
5412
5412
  readonly stateMutability: "pure";
5413
5413
  }], "batchGetAmountsForLiquidity", readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [readonly bigint[], readonly bigint[]]>;
5414
- batchGetAmountsForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
5414
+ batchGetAmountsForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
5415
5415
  readonly type: "function";
5416
5416
  readonly name: "batchGetAmount0ForLiquidity";
5417
5417
  readonly inputs: readonly [{
@@ -6032,7 +6032,7 @@ declare const useLens: () => {
6032
6032
  }];
6033
6033
  readonly stateMutability: "pure";
6034
6034
  }], "batchGetAmountsForLiquidityTicks", readonly [readonly number[], readonly number[], readonly number[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [readonly bigint[], readonly bigint[]]>;
6035
- batchGetLiquidityForAmount0: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
6035
+ batchGetLiquidityForAmount0: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
6036
6036
  readonly type: "function";
6037
6037
  readonly name: "batchGetAmount0ForLiquidity";
6038
6038
  readonly inputs: readonly [{
@@ -6653,7 +6653,7 @@ declare const useLens: () => {
6653
6653
  }];
6654
6654
  readonly stateMutability: "pure";
6655
6655
  }], "batchGetLiquidityForAmount0", readonly [readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
6656
- batchGetLiquidityForAmount0Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
6656
+ batchGetLiquidityForAmount0Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
6657
6657
  readonly type: "function";
6658
6658
  readonly name: "batchGetAmount0ForLiquidity";
6659
6659
  readonly inputs: readonly [{
@@ -7274,7 +7274,7 @@ declare const useLens: () => {
7274
7274
  }];
7275
7275
  readonly stateMutability: "pure";
7276
7276
  }], "batchGetLiquidityForAmount0Ticks", readonly [readonly number[], readonly number[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
7277
- batchGetLiquidityForAmount1: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
7277
+ batchGetLiquidityForAmount1: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
7278
7278
  readonly type: "function";
7279
7279
  readonly name: "batchGetAmount0ForLiquidity";
7280
7280
  readonly inputs: readonly [{
@@ -7895,7 +7895,7 @@ declare const useLens: () => {
7895
7895
  }];
7896
7896
  readonly stateMutability: "pure";
7897
7897
  }], "batchGetLiquidityForAmount1", readonly [readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
7898
- batchGetLiquidityForAmount1Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
7898
+ batchGetLiquidityForAmount1Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
7899
7899
  readonly type: "function";
7900
7900
  readonly name: "batchGetAmount0ForLiquidity";
7901
7901
  readonly inputs: readonly [{
@@ -8516,7 +8516,7 @@ declare const useLens: () => {
8516
8516
  }];
8517
8517
  readonly stateMutability: "pure";
8518
8518
  }], "batchGetLiquidityForAmount1Ticks", readonly [readonly number[], readonly number[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
8519
- batchGetLiquidityForAmounts: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
8519
+ batchGetLiquidityForAmounts: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
8520
8520
  readonly type: "function";
8521
8521
  readonly name: "batchGetAmount0ForLiquidity";
8522
8522
  readonly inputs: readonly [{
@@ -9137,7 +9137,7 @@ declare const useLens: () => {
9137
9137
  }];
9138
9138
  readonly stateMutability: "pure";
9139
9139
  }], "batchGetLiquidityForAmounts", readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
9140
- batchGetLiquidityForAmountsTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
9140
+ batchGetLiquidityForAmountsTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[], readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
9141
9141
  readonly type: "function";
9142
9142
  readonly name: "batchGetAmount0ForLiquidity";
9143
9143
  readonly inputs: readonly [{
@@ -9758,7 +9758,7 @@ declare const useLens: () => {
9758
9758
  }];
9759
9759
  readonly stateMutability: "pure";
9760
9760
  }], "batchGetLiquidityForAmountsTicks", readonly [readonly number[], readonly number[], readonly number[], readonly bigint[], readonly bigint[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
9761
- batchGetPriceAtTick: (args: readonly [readonly number[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
9761
+ batchGetPriceAtTick: (args: readonly [readonly number[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
9762
9762
  readonly type: "function";
9763
9763
  readonly name: "batchGetAmount0ForLiquidity";
9764
9764
  readonly inputs: readonly [{
@@ -10379,7 +10379,7 @@ declare const useLens: () => {
10379
10379
  }];
10380
10380
  readonly stateMutability: "pure";
10381
10381
  }], "batchGetPriceAtTick", readonly [readonly number[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly bigint[]>;
10382
- getAmount0ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
10382
+ getAmount0ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
10383
10383
  readonly type: "function";
10384
10384
  readonly name: "batchGetAmount0ForLiquidity";
10385
10385
  readonly inputs: readonly [{
@@ -11000,7 +11000,7 @@ declare const useLens: () => {
11000
11000
  }];
11001
11001
  readonly stateMutability: "pure";
11002
11002
  }], "getAmount0ForLiquidity", readonly [bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
11003
- getAmount0ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
11003
+ getAmount0ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
11004
11004
  readonly type: "function";
11005
11005
  readonly name: "batchGetAmount0ForLiquidity";
11006
11006
  readonly inputs: readonly [{
@@ -11621,7 +11621,7 @@ declare const useLens: () => {
11621
11621
  }];
11622
11622
  readonly stateMutability: "pure";
11623
11623
  }], "getAmount0ForLiquidityTicks", readonly [number, number, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
11624
- getAmount1ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
11624
+ getAmount1ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
11625
11625
  readonly type: "function";
11626
11626
  readonly name: "batchGetAmount0ForLiquidity";
11627
11627
  readonly inputs: readonly [{
@@ -12242,7 +12242,7 @@ declare const useLens: () => {
12242
12242
  }];
12243
12243
  readonly stateMutability: "pure";
12244
12244
  }], "getAmount1ForLiquidity", readonly [bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
12245
- getAmount1ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
12245
+ getAmount1ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
12246
12246
  readonly type: "function";
12247
12247
  readonly name: "batchGetAmount0ForLiquidity";
12248
12248
  readonly inputs: readonly [{
@@ -12863,7 +12863,7 @@ declare const useLens: () => {
12863
12863
  }];
12864
12864
  readonly stateMutability: "pure";
12865
12865
  }], "getAmount1ForLiquidityTicks", readonly [number, number, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
12866
- getAmountsForLiquidity: (args: readonly [bigint, bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
12866
+ getAmountsForLiquidity: (args: readonly [bigint, bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
12867
12867
  readonly type: "function";
12868
12868
  readonly name: "batchGetAmount0ForLiquidity";
12869
12869
  readonly inputs: readonly [{
@@ -13484,7 +13484,7 @@ declare const useLens: () => {
13484
13484
  }];
13485
13485
  readonly stateMutability: "pure";
13486
13486
  }], "getAmountsForLiquidity", readonly [bigint, bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [bigint, bigint]>;
13487
- getAmountsForLiquidityTicks: (args: readonly [number, number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
13487
+ getAmountsForLiquidityTicks: (args: readonly [number, number, number, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
13488
13488
  readonly type: "function";
13489
13489
  readonly name: "batchGetAmount0ForLiquidity";
13490
13490
  readonly inputs: readonly [{
@@ -14105,7 +14105,7 @@ declare const useLens: () => {
14105
14105
  }];
14106
14106
  readonly stateMutability: "pure";
14107
14107
  }], "getAmountsForLiquidityTicks", readonly [number, number, number, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [bigint, bigint]>;
14108
- getLiquidityForAmount0: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
14108
+ getLiquidityForAmount0: (args: readonly [bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
14109
14109
  readonly type: "function";
14110
14110
  readonly name: "batchGetAmount0ForLiquidity";
14111
14111
  readonly inputs: readonly [{
@@ -14726,7 +14726,7 @@ declare const useLens: () => {
14726
14726
  }];
14727
14727
  readonly stateMutability: "pure";
14728
14728
  }], "getLiquidityForAmount0", readonly [bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
14729
- getLiquidityForAmount0Ticks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
14729
+ getLiquidityForAmount0Ticks: (args: readonly [number, number, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
14730
14730
  readonly type: "function";
14731
14731
  readonly name: "batchGetAmount0ForLiquidity";
14732
14732
  readonly inputs: readonly [{
@@ -15347,7 +15347,7 @@ declare const useLens: () => {
15347
15347
  }];
15348
15348
  readonly stateMutability: "pure";
15349
15349
  }], "getLiquidityForAmount0Ticks", readonly [number, number, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
15350
- getLiquidityForAmount1: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
15350
+ getLiquidityForAmount1: (args: readonly [bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
15351
15351
  readonly type: "function";
15352
15352
  readonly name: "batchGetAmount0ForLiquidity";
15353
15353
  readonly inputs: readonly [{
@@ -15968,7 +15968,7 @@ declare const useLens: () => {
15968
15968
  }];
15969
15969
  readonly stateMutability: "pure";
15970
15970
  }], "getLiquidityForAmount1", readonly [bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
15971
- getLiquidityForAmount1Ticks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
15971
+ getLiquidityForAmount1Ticks: (args: readonly [number, number, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
15972
15972
  readonly type: "function";
15973
15973
  readonly name: "batchGetAmount0ForLiquidity";
15974
15974
  readonly inputs: readonly [{
@@ -16589,7 +16589,7 @@ declare const useLens: () => {
16589
16589
  }];
16590
16590
  readonly stateMutability: "pure";
16591
16591
  }], "getLiquidityForAmount1Ticks", readonly [number, number, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
16592
- getLiquidityForAmounts: (args: readonly [bigint, bigint, bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
16592
+ getLiquidityForAmounts: (args: readonly [bigint, bigint, bigint, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
16593
16593
  readonly type: "function";
16594
16594
  readonly name: "batchGetAmount0ForLiquidity";
16595
16595
  readonly inputs: readonly [{
@@ -17210,7 +17210,7 @@ declare const useLens: () => {
17210
17210
  }];
17211
17211
  readonly stateMutability: "pure";
17212
17212
  }], "getLiquidityForAmounts", readonly [bigint, bigint, bigint, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
17213
- getLiquidityForAmountsTicks: (args: readonly [number, number, number, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
17213
+ getLiquidityForAmountsTicks: (args: readonly [number, number, number, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
17214
17214
  readonly type: "function";
17215
17215
  readonly name: "batchGetAmount0ForLiquidity";
17216
17216
  readonly inputs: readonly [{
@@ -17831,7 +17831,7 @@ declare const useLens: () => {
17831
17831
  }];
17832
17832
  readonly stateMutability: "pure";
17833
17833
  }], "getLiquidityForAmountsTicks", readonly [number, number, number, bigint, bigint]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<bigint>;
17834
- getPriceAtTick: (args: readonly [number], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
17834
+ getPriceAtTick: (args: readonly [number], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
17835
17835
  readonly type: "function";
17836
17836
  readonly name: "batchGetAmount0ForLiquidity";
17837
17837
  readonly inputs: readonly [{
@@ -19078,7 +19078,7 @@ declare const useLens: () => {
19078
19078
  } | undefined;
19079
19079
  timelockLens: {
19080
19080
  read: {
19081
- batchGetRefTick: (args: readonly [`0x${string}`, readonly number[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
19081
+ batchGetRefTick: (args: readonly [`0x${string}`, readonly number[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
19082
19082
  readonly type: "function";
19083
19083
  readonly name: "batchGetRefTick";
19084
19084
  readonly inputs: readonly [{
@@ -19780,7 +19780,7 @@ declare const useLens: () => {
19780
19780
  }];
19781
19781
  readonly stateMutability: "view";
19782
19782
  }], "batchGetRefTick", readonly [`0x${string}`, readonly number[]]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly number[]>;
19783
- getAllBlocks: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
19783
+ getAllBlocks: (args: readonly [`0x${string}`], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
19784
19784
  readonly type: "function";
19785
19785
  readonly name: "batchGetRefTick";
19786
19786
  readonly inputs: readonly [{
@@ -20492,7 +20492,7 @@ declare const useLens: () => {
20492
20492
  borrowedAmount0: bigint;
20493
20493
  borrowedAmount1: bigint;
20494
20494
  }[]>;
20495
- getExpiredOptions: (args: readonly [`0x${string}`, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
20495
+ getExpiredOptions: (args: readonly [`0x${string}`, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
20496
20496
  readonly type: "function";
20497
20497
  readonly name: "batchGetRefTick";
20498
20498
  readonly inputs: readonly [{
@@ -21213,7 +21213,7 @@ declare const useLens: () => {
21213
21213
  createdAt: bigint;
21214
21214
  liquidities: readonly bigint[];
21215
21215
  }[], bigint, boolean]>;
21216
- getLiquidityAtTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
21216
+ getLiquidityAtTick: (args: readonly [`0x${string}`, number], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
21217
21217
  readonly type: "function";
21218
21218
  readonly name: "batchGetRefTick";
21219
21219
  readonly inputs: readonly [{
@@ -21915,7 +21915,7 @@ declare const useLens: () => {
21915
21915
  }];
21916
21916
  readonly stateMutability: "view";
21917
21917
  }], "getLiquidityAtTick", readonly [`0x${string}`, number]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [bigint, bigint]>;
21918
- getMarketData: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
21918
+ getMarketData: (args: readonly [`0x${string}`], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
21919
21919
  readonly type: "function";
21920
21920
  readonly name: "batchGetRefTick";
21921
21921
  readonly inputs: readonly [{
@@ -22630,7 +22630,7 @@ declare const useLens: () => {
22630
22630
  payoutAssetName: string;
22631
22631
  optionsCount: bigint;
22632
22632
  }>;
22633
- getMaxPositionSize: (args: readonly [`0x${string}`, number, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
22633
+ getMaxPositionSize: (args: readonly [`0x${string}`, number, number], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
22634
22634
  readonly type: "function";
22635
22635
  readonly name: "batchGetRefTick";
22636
22636
  readonly inputs: readonly [{
@@ -23332,7 +23332,7 @@ declare const useLens: () => {
23332
23332
  }];
23333
23333
  readonly stateMutability: "view";
23334
23334
  }], "getMaxPositionSize", readonly [`0x${string}`, number, number]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [bigint, bigint]>;
23335
- getMaxPositionSizeAtCurrentTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
23335
+ getMaxPositionSizeAtCurrentTick: (args: readonly [`0x${string}`, number], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
23336
23336
  readonly type: "function";
23337
23337
  readonly name: "batchGetRefTick";
23338
23338
  readonly inputs: readonly [{
@@ -24034,7 +24034,7 @@ declare const useLens: () => {
24034
24034
  }];
24035
24035
  readonly stateMutability: "view";
24036
24036
  }], "getMaxPositionSizeAtCurrentTick", readonly [`0x${string}`, number]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<readonly [bigint, bigint]>;
24037
- getOptionData: (args: readonly [`0x${string}`, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
24037
+ getOptionData: (args: readonly [`0x${string}`, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
24038
24038
  readonly type: "function";
24039
24039
  readonly name: "batchGetRefTick";
24040
24040
  readonly inputs: readonly [{
@@ -24755,7 +24755,7 @@ declare const useLens: () => {
24755
24755
  createdAt: bigint;
24756
24756
  liquidities: readonly bigint[];
24757
24757
  }>;
24758
- getOptionsData: (args: readonly [`0x${string}`, readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
24758
+ getOptionsData: (args: readonly [`0x${string}`, readonly bigint[]], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
24759
24759
  readonly type: "function";
24760
24760
  readonly name: "batchGetRefTick";
24761
24761
  readonly inputs: readonly [{
@@ -25476,7 +25476,7 @@ declare const useLens: () => {
25476
25476
  createdAt: bigint;
25477
25477
  liquidities: readonly bigint[];
25478
25478
  }[]>;
25479
- getPoolData: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
25479
+ getPoolData: (args: readonly [`0x${string}`], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
25480
25480
  readonly type: "function";
25481
25481
  readonly name: "batchGetRefTick";
25482
25482
  readonly inputs: readonly [{
@@ -26189,7 +26189,7 @@ declare const useLens: () => {
26189
26189
  tickSpacing: number;
26190
26190
  fee: number;
26191
26191
  }>;
26192
- getRefTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
26192
+ getRefTick: (args: readonly [`0x${string}`, number], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
26193
26193
  readonly type: "function";
26194
26194
  readonly name: "batchGetRefTick";
26195
26195
  readonly inputs: readonly [{
@@ -26891,7 +26891,7 @@ declare const useLens: () => {
26891
26891
  }];
26892
26892
  readonly stateMutability: "view";
26893
26893
  }], "getRefTick", readonly [`0x${string}`, number]>, "address" | "abi" | "args" | "functionName">> | undefined) => Promise<number>;
26894
- getUserOptions: (args: readonly [`0x${string}`, `0x${string}`, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
26894
+ getUserOptions: (args: readonly [`0x${string}`, `0x${string}`, bigint, bigint], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
26895
26895
  readonly type: "function";
26896
26896
  readonly name: "batchGetRefTick";
26897
26897
  readonly inputs: readonly [{
@@ -27612,7 +27612,7 @@ declare const useLens: () => {
27612
27612
  createdAt: bigint;
27613
27613
  liquidities: readonly bigint[];
27614
27614
  }[], bigint, boolean]>;
27615
- getVaultTVL: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.ReadContractParameters<readonly [{
27615
+ getVaultTVL: (args: readonly [`0x${string}`], options?: viem366.Prettify<viem366.UnionOmit<viem366.ReadContractParameters<readonly [{
27616
27616
  readonly type: "function";
27617
27617
  readonly name: "batchGetRefTick";
27618
27618
  readonly inputs: readonly [{
package/dist/client.js CHANGED
@@ -80,4 +80,4 @@
80
80
  payoutAssetName
81
81
  }
82
82
  }
83
- `,I=(e,t,n,r)=>e();function L(e,t=I){return{GetActiveUserOptions(n,r,i){return t(t=>e.request({document:N,variables:n,requestHeaders:{...r,...t},signal:i}),`GetActiveUserOptions`,`query`,n)},GetClosedUserOptions(n,r,i){return t(t=>e.request({document:P,variables:n,requestHeaders:{...r,...t},signal:i}),`GetClosedUserOptions`,`query`,n)},GetMarketData(n,r,i){return t(t=>e.request({document:F,variables:n,requestHeaders:{...r,...t},signal:i}),`GetMarketData`,`query`,n)}}}const R=b(void 0),z=({children:e,marketData:t,envioGraphqlUrl:n})=>{let r=w(),i=c[r],a=d[r];return y.createElement(R.Provider,{value:{marketData:t||{},lensAddr:i,uniswapMathLensAddr:a,envioGraphqlUrl:n}},e)},B=()=>{let e=x(R);if(e===void 0)throw Error(`useCurrentMarket must be used within a TimelockMarketProvider`);return e.marketData},V=()=>{let e=x(R);if(e===void 0)throw Error(`useConfig must be used within a TimelockMarketProvider`);return{lensAddr:e.lensAddr,uniswapMathLensAddr:e.uniswapMathLensAddr,envioGraphqlUrl:e.envioGraphqlUrl,graphqlClient:e.envioGraphqlUrl?L(new k(e.envioGraphqlUrl)):void 0}},H=e=>{let{graphqlClient:t}=V(),{data:n}=M({queryKey:[`marketData`,e||`--`],queryFn:()=>t.GetMarketData({marketAddr:e.toLowerCase()}),select:e=>({...e.TimelockMarket[0],pool:e.TimelockMarket[0].pool,vault:e.TimelockMarket[0].vault,optionAsset:e.TimelockMarket[0].optionAsset,payoutAsset:e.TimelockMarket[0].payoutAsset,optionsCount:BigInt(e.TimelockMarket[0].optionsCount),tradersCount:BigInt(e.TimelockMarket[0].tradersCount)}),enabled:!!e&&!!t});return n||{}},U=e=>{let{vault:n}=H(e),r=T(),{data:i}=E({address:n,abi:m,functionName:`lowestTick`}),{writeContractAsync:a,data:o,isPending:s,error:c}=O(),{isLoading:l,isSuccess:u}=D({hash:o});return{exerciseOption:async(n,o)=>{if(!r)throw Error(`Wallet not connected`);if(i===void 0||!e)throw Error(`Lowest tick lower not available`);let s=await a({address:e,abi:t,functionName:`exerciseOption`,args:[n,o,0n,i]});return await j(r,{hash:s}),s},hash:o,isPending:s,isConfirming:l,isSuccess:u,error:c,isLoading:s||l}},W=()=>{let e=T(),t=e?i(e):void 0;return{uniswapLens:e?o(e):void 0,timelockLens:t}},G=(t,n,r=100)=>{let{timelockLens:i}=W(),{optionAssetDecimals:a}=H(t),{data:o,refetch:s}=E({address:i==null?void 0:i.address,abi:e,functionName:`getMaxPositionSizeAtCurrentTick`,args:[t,r],query:{enabled:!!t&&!!i},gas:100000000n}),{data:c,refetch:l}=E({address:i==null?void 0:i.address,abi:e,functionName:`getMaxPositionSize`,args:[t,n,r],query:{enabled:!!t&&!!i&&n!==void 0},gas:100000000n}),u=n===void 0?o:c,{maxCallSize:d,maxPutSize:p}=S(()=>u&&a?{maxCallSize:f(u[0],a),maxPutSize:f(u[1],a)}:{},[u,a]);return{maxCallSize:d,maxPutSize:p,refetch:()=>{s(),l()}}},K=t=>{let{timelockLens:n}=W(),r=T(),{data:i}=E({address:n==null?void 0:n.address,abi:e,functionName:`getPoolData`,args:t?[t]:void 0,query:{enabled:!!t&&!!r}});return i||{}},q=e=>{let{tickSpacing:t}=K(e),{data:n}=E({address:e,abi:h,functionName:`slot0`,args:[]}),r=n==null?void 0:n[1];return{exact:r,rounded:r&&t?Math.floor(r/t)*t:void 0}},J=e=>{let{timelockLens:r}=W(),{payoutAsset:i,vault:o,pool:c,optionAssetIsToken0:l}=H(e),{tickSpacing:u}=K(c),{exact:d}=q(c),f=T(),{address:p}=C(),{writeContractAsync:m,data:h,isPending:g,error:y}=O(),{isLoading:b,isSuccess:x}=D({hash:h}),S=async t=>{if(!f||!p)throw Error(`Wallet not connected`);if(!i||!e)throw Error(`Tokens not available`);await n(i,f).read.allowance([p,e])<t&&await j(f,{hash:await m({address:i,abi:_,functionName:`approve`,args:[e,v]})})};return{mintOption:async(n,i,c,p)=>{if(!f)throw Error(`Wallet not connected`);if(!r||!o||!e||!d||!u)throw Error(`Lowest tick lower not available`);p=s(p??d,u),(n===`CALL`&&l||n===`PUT`&&!l)&&(p+=u),await S(await a(e,f).read.calculatePremium([n===`CALL`?0:1,i,p,BigInt(c)]));let h=await m({address:e,abi:t,functionName:`mintOption`,args:[n===`CALL`?0:1,i,p,BigInt(c),BigInt(1e69),await r.read.getRefTick([o,p])]});return await j(f,{hash:h}),h},hash:h,isPending:g,isConfirming:b,isSuccess:x,error:y,isLoading:g||b}},ee=e=>{let{marketAddr:t,optionType:n,entryTick:r,positionSizeCurrent:i}=e,{pool:a,optionAssetIsToken0:o,payoutAssetDecimals:s}=H(t),{exact:c}=q(a),{displayPnl:d,unrealizedPayout:p}=S(()=>{if(o===void 0||c===void 0||!i||!s)return{};let e=o?l(i,c)-l(i,r):u(i,c)-u(i,r),t=f(n===`CALL`?e:-e,s);return{unrealizedPayout:f(t.scaled<0?0n:t.scaled,s),displayPnl:t}},[e,o,c,i]);return{displayPnl:d,unrealizedPayout:p}},te=(e,n,r,i)=>{let{pool:a,payoutAssetDecimals:o}=H(e),{tickSpacing:s}=K(a),c=q(a),l=S(()=>{if(!(c.rounded===void 0||s===void 0))return n===`CALL`?c.rounded+s:c.rounded},[c.rounded,s,n]),{data:u}=E({address:e,abi:t,functionName:`calculatePremium`,args:l===void 0?void 0:[n===`CALL`?0:1,r,l,BigInt(i)],query:{enabled:c.rounded!==void 0&&o!==void 0&&s!==void 0&&l!==void 0}});return S(()=>{if(!(u===void 0||o===void 0))return f(u,o)},[u,o])},Y=(e,t=!1)=>{let{graphqlClient:n}=V(),{data:r,...i}=M({queryKey:[`userTrades`,e||`--`,t],queryFn:()=>t?n==null?void 0:n.GetActiveUserOptions({user:e.toLowerCase()}):n==null?void 0:n.GetClosedUserOptions({user:e.toLowerCase()}),select:e=>{var t;return e==null||(t=e.UserOption)==null?void 0:t.map(e=>({...e,id:BigInt(e.id),marketAddr:e.marketAddr,optionType:e.optionType,createdAt:new Date(Number(e.createdAt)*1e3),expiresAt:new Date(Number(e.expiresAt)*1e3),premiumPaid:BigInt(e.premiumPaid),realizedPayout:BigInt(e.realizedPayout),liquiditiesAtOpen:e.liquiditiesAtOpen.map(e=>BigInt(e)),liquiditiesCurrent:e.liquiditiesCurrent.map(e=>BigInt(e)),positionSizeAtOpen:BigInt(e.positionSizeAtOpen),positionSizeCurrent:BigInt(e.positionSizeCurrent),strikePrice:BigInt(e.strikePrice),entryPrice:BigInt(e.entryPrice)}))},enabled:!!e&&!!n});return{data:S(()=>(r==null?void 0:r.sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()))||[],[r]),...i}},ne=e=>Y(e,!0),re=e=>Y(e,!1),X=(e,t)=>{let{token0Decimals:n,token1Decimals:i}=K(t);return S(()=>e&&n&&i?p(r(e),n,i):void 0,[e,n,i])},Z=e=>{let t=q(e);return{currentPrice:X(t.exact,e),currentTick:t}},Q=e=>{let{data:t}=E({address:e,abi:m,functionName:`pool`});return{pool:t}},ie=e=>{let t=T(),{pool:n}=Q(e),r=q(n),{timelockLens:i}=W(),{writeContractAsync:a,data:o,isPending:s,error:c}=O(),{isLoading:l,isSuccess:u}=D({hash:o}),d=async(n,r,o)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!i)throw Error(`Vault/lens not available`);let s=await a({address:e,abi:m,functionName:`burn`,args:[n,r,o,await i.read.getRefTick([e,n])]});return await j(t,{hash:s}),s};return{burnMultiple:async n=>{if(!t)throw Error(`Wallet not connected`);if(!r.exact)throw Error(`Current tick not available`);if(n.length===0)throw Error(`No positions to burn`);if(!i||!e)throw Error(`Vault/lens not available`);if(n.length===1)await d(n[0].tickLower,n[0].tickUpper,n[0].liquidity);else{let r=await i.read.batchGetRefTick([e,n.map(e=>e.tickLower)]);await j(t,{hash:await a({address:e,abi:m,functionName:`multicall`,args:[n.map((e,t)=>g({abi:m,functionName:`burn`,args:[e.tickLower,e.tickUpper,e.liquidity,r[t]]}))]})})}},burn:d,hash:o,isPending:s,isConfirming:l,isSuccess:u,error:c,isLoading:s||l}},ae=e=>{let{timelockLens:t}=W(),{pool:n}=Q(e),{token0Decimals:r,token1Decimals:i}=K(n),{currentPrice:a}=Z(n),{data:o=[],refetch:s}=M({queryKey:[`liquidityBlocks`,e],queryFn:()=>t.read.getAllBlocks([e]),enabled:!!e&&!!t}),{totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d}=S(()=>({totalAmount0:r?f(o.reduce((e,t)=>e+t.totalAmount0,0n),r):void 0,totalAmount1:i?f(o.reduce((e,t)=>e+t.totalAmount1,0n),i):void 0,borrowedAmount0:r?f(o.reduce((e,t)=>e+t.borrowedAmount0,0n),r):void 0,borrowedAmount1:i?f(o.reduce((e,t)=>e+t.borrowedAmount1,0n),i):void 0}),[o,r,i]);return{tvl1:S(()=>{if(!c||!l||!a||!i)return;let e=c.scaled*a.scaled/10n**18n,t=l.scaled;return f(e+t,i)},[c,l,a,i]),blocks:o,totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d,refetch:s}},$=async(e,t,n,r,i)=>{let a=Array(t.length).fill(i),o=await e.read.batchGetAmountsForLiquidityTicks([a,t,n,r]),s=0n,c=0n,l=[],u=[];for(let e of o[0])s+=e,l.push(e);for(let e of o[1])c+=e,u.push(e);return{totalAmount0:s,totalAmount1:c,amounts0:l,amounts1:u}},oe=e=>{let t=T(),{address:r}=C(),{pool:i}=Q(e),{timelockLens:a,uniswapLens:o}=W(),s=q(i),{token0:c,token1:l}=K(i),{writeContractAsync:u,data:d,isPending:f,error:p}=O(),{isLoading:h,isSuccess:y}=D({hash:d}),b=async i=>{if(!r||!t)throw Error(`Wallet not connected`);if(s.exact===void 0||!c||!l||!e||!o)throw Error(`Current tick not available`);let{totalAmount0:a,totalAmount1:d}=await $(o,i.map(e=>e.tickLower),i.map(e=>e.tickUpper),i.map(e=>e.liquidity),s.exact),[f,p]=await Promise.all([n(c,t).read.allowance([r,e]),n(l,t).read.allowance([r,e])]),m=[];if(f<=a){let n=await u({address:c,abi:_,functionName:`approve`,args:[e,v]});m.push(j(t,{hash:n}))}if(p<=d){let n=await u({address:l,abi:_,functionName:`approve`,args:[e,v]});m.push(j(t,{hash:n}))}m.length>0&&await Promise.all(m)},x=async(n,r,i)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!a)throw Error(`Vault/lens not available`);await b([{tickLower:n,tickUpper:r,liquidity:i}]);let o=await u({address:e,abi:m,functionName:`mint`,args:[n,r,i,await a.read.getRefTick([e,n])]});return await j(t,{hash:o}),o};return{mintMultiple:async n=>{if(!t)throw Error(`Wallet not connected`);if(!s.exact)throw Error(`Current tick not available`);if(n.length===0)throw Error(`No positions to mint`);if(!a||!e)throw Error(`Vault/lens not available`);if(n.length===1)await x(n[0].tickLower,n[0].tickUpper,n[0].liquidity);else{await b(n);let r=await a.read.batchGetRefTick([e,n.map(e=>e.tickLower)]);await j(t,{hash:await u({address:e,abi:m,functionName:`multicall`,args:[n.map((e,t)=>g({abi:m,functionName:`mint`,args:[e.tickLower,e.tickUpper,e.liquidity,r[t]]}))]})})}},mint:x,hash:d,isPending:f,isConfirming:h,isSuccess:y,error:p,isLoading:f||h}},se=t=>{let{timelockLens:n}=W(),{pool:r}=Q(t),{token0Decimals:i,token1Decimals:a}=K(r),{data:o,refetch:s}=E({address:n==null?void 0:n.address,abi:e,functionName:`getVaultTVL`,args:[t],query:{enabled:!!t&&!!n}}),c=o&&i?f(o[0],i):void 0,l=o&&a?f(o[1],a):void 0,u=o&&i?f(o[2],i):void 0,d=o&&a?f(o[3],a):void 0;return{tvl0:o&&i?f(o[4],i):void 0,tvl1:o&&a?f(o[5],a):void 0,totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d,refetch:s}};export{z as TimelockMarketProvider,$ as batchGetAmountsFromLiquidity,ne as useActiveUserOptions,ie as useBurnLiquidity,re as useClosedUserOptions,B as useCurrentMarket,Z as useCurrentPrice,q as useCurrentTick,U as useExerciseOption,W as useLens,ae as useLiquidityBlocks,H as useMarketData,G as useMaxPositionSize,oe as useMintLiquidity,J as useMintOption,ee as useOptionPnl,te as useOptionPremium,K as usePoolData,X as usePriceAtTick,V as useTimelockConfig,Q as useVaultData,se as useVaultTVL};
83
+ `,I=(e,t,n,r)=>e();function L(e,t=I){return{GetActiveUserOptions(n,r,i){return t(t=>e.request({document:N,variables:n,requestHeaders:{...r,...t},signal:i}),`GetActiveUserOptions`,`query`,n)},GetClosedUserOptions(n,r,i){return t(t=>e.request({document:P,variables:n,requestHeaders:{...r,...t},signal:i}),`GetClosedUserOptions`,`query`,n)},GetMarketData(n,r,i){return t(t=>e.request({document:F,variables:n,requestHeaders:{...r,...t},signal:i}),`GetMarketData`,`query`,n)}}}const R=b(void 0),z=({children:e,marketData:t,envioGraphqlUrl:n})=>{let r=w(),i=c[r],a=d[r];return y.createElement(R.Provider,{value:{marketData:t||{},lensAddr:i,uniswapMathLensAddr:a,envioGraphqlUrl:n}},e)},B=()=>{let e=x(R);if(e===void 0)throw Error(`useCurrentMarket must be used within a TimelockMarketProvider`);return e.marketData},V=()=>{let e=x(R);if(e===void 0)throw Error(`useConfig must be used within a TimelockMarketProvider`);return{lensAddr:e.lensAddr,uniswapMathLensAddr:e.uniswapMathLensAddr,envioGraphqlUrl:e.envioGraphqlUrl,graphqlClient:e.envioGraphqlUrl?L(new k(e.envioGraphqlUrl)):void 0}},H=e=>{let{graphqlClient:t}=V(),{data:n}=M({queryKey:[`marketData`,e||`--`],queryFn:()=>t.GetMarketData({marketAddr:e.toLowerCase()}),select:e=>({...e.TimelockMarket[0],pool:e.TimelockMarket[0].pool,vault:e.TimelockMarket[0].vault,optionAsset:e.TimelockMarket[0].optionAsset,payoutAsset:e.TimelockMarket[0].payoutAsset,optionsCount:BigInt(e.TimelockMarket[0].optionsCount),tradersCount:BigInt(e.TimelockMarket[0].tradersCount)}),enabled:!!e&&!!t});return n||{}},U=e=>{let{vault:n}=H(e),r=T(),{data:i}=E({address:n,abi:m,functionName:`lowestTick`}),{writeContractAsync:a,data:o,isPending:s,error:c}=O(),{isLoading:l,isSuccess:u}=D({hash:o});return{exerciseOption:async(n,o)=>{if(!r)throw Error(`Wallet not connected`);if(i===void 0||!e)throw Error(`Lowest tick lower not available`);let s=await a({address:e,abi:t,functionName:`exerciseOption`,args:[n,o,0n,i]});return await j(r,{hash:s}),s},hash:o,isPending:s,isConfirming:l,isSuccess:u,error:c,isLoading:s||l}},W=()=>{let e=T(),t=S(()=>e?i(e):void 0,[e]);return{uniswapLens:S(()=>e?o(e):void 0,[e]),timelockLens:t}},G=(t,n,r=100)=>{let{timelockLens:i}=W(),{optionAssetDecimals:a}=H(t),{data:o,refetch:s}=E({address:i==null?void 0:i.address,abi:e,functionName:`getMaxPositionSizeAtCurrentTick`,args:[t,r],query:{enabled:!!t&&!!i},gas:100000000n}),{data:c,refetch:l}=E({address:i==null?void 0:i.address,abi:e,functionName:`getMaxPositionSize`,args:[t,n,r],query:{enabled:!!t&&!!i&&n!==void 0},gas:100000000n}),u=n===void 0?o:c,{maxCallSize:d,maxPutSize:p}=S(()=>u&&a?{maxCallSize:f(u[0],a),maxPutSize:f(u[1],a)}:{},[u,a]);return{maxCallSize:d,maxPutSize:p,refetch:()=>{s(),l()}}},K=t=>{let{timelockLens:n}=W(),r=T(),{data:i}=E({address:n==null?void 0:n.address,abi:e,functionName:`getPoolData`,args:t?[t]:void 0,query:{enabled:!!t&&!!r}});return i||{}},q=e=>{let{tickSpacing:t}=K(e),{data:n}=E({address:e,abi:h,functionName:`slot0`,args:[]}),r=n==null?void 0:n[1];return{exact:r,rounded:r&&t?Math.floor(r/t)*t:void 0}},J=e=>{let{timelockLens:r}=W(),{payoutAsset:i,vault:o,pool:c,optionAssetIsToken0:l}=H(e),{tickSpacing:u}=K(c),{exact:d}=q(c),f=T(),{address:p}=C(),{writeContractAsync:m,data:h,isPending:g,error:y}=O(),{isLoading:b,isSuccess:x}=D({hash:h}),S=async t=>{if(!f||!p)throw Error(`Wallet not connected`);if(!i||!e)throw Error(`Tokens not available`);await n(i,f).read.allowance([p,e])<t&&await j(f,{hash:await m({address:i,abi:_,functionName:`approve`,args:[e,v]})})};return{mintOption:async(n,i,c,p)=>{if(!f)throw Error(`Wallet not connected`);if(!r||!o||!e||!d||!u)throw Error(`Lowest tick lower not available`);p=s(p??d,u),(n===`CALL`&&l||n===`PUT`&&!l)&&(p+=u),await S(await a(e,f).read.calculatePremium([n===`CALL`?0:1,i,p,BigInt(c)]));let h=await m({address:e,abi:t,functionName:`mintOption`,args:[n===`CALL`?0:1,i,p,BigInt(c),BigInt(1e69),await r.read.getRefTick([o,p])]});return await j(f,{hash:h}),h},hash:h,isPending:g,isConfirming:b,isSuccess:x,error:y,isLoading:g||b}},ee=e=>{let{marketAddr:t,optionType:n,entryTick:r,positionSizeCurrent:i}=e,{pool:a,optionAssetIsToken0:o,payoutAssetDecimals:s}=H(t),{exact:c}=q(a),{displayPnl:d,unrealizedPayout:p}=S(()=>{if(o===void 0||c===void 0||!i||!s)return{};let e=o?l(i,c)-l(i,r):u(i,c)-u(i,r),t=f(n===`CALL`?e:-e,s);return{unrealizedPayout:f(t.scaled<0?0n:t.scaled,s),displayPnl:t}},[e,o,c,i]);return{displayPnl:d,unrealizedPayout:p}},te=(e,n,r,i)=>{let{pool:a,payoutAssetDecimals:o}=H(e),{tickSpacing:s}=K(a),c=q(a),l=S(()=>{if(!(c.rounded===void 0||s===void 0))return n===`CALL`?c.rounded+s:c.rounded},[c.rounded,s,n]),{data:u}=E({address:e,abi:t,functionName:`calculatePremium`,args:l===void 0?void 0:[n===`CALL`?0:1,r,l,BigInt(i)],query:{enabled:c.rounded!==void 0&&o!==void 0&&s!==void 0&&l!==void 0}});return S(()=>{if(!(u===void 0||o===void 0))return f(u,o)},[u,o])},Y=(e,t=!1)=>{let{graphqlClient:n}=V(),{data:r,...i}=M({queryKey:[`userTrades`,e||`--`,t],queryFn:()=>t?n==null?void 0:n.GetActiveUserOptions({user:e.toLowerCase()}):n==null?void 0:n.GetClosedUserOptions({user:e.toLowerCase()}),select:e=>{var t;return e==null||(t=e.UserOption)==null?void 0:t.map(e=>({...e,id:BigInt(e.id),marketAddr:e.marketAddr,optionType:e.optionType,createdAt:new Date(Number(e.createdAt)*1e3),expiresAt:new Date(Number(e.expiresAt)*1e3),premiumPaid:BigInt(e.premiumPaid),realizedPayout:BigInt(e.realizedPayout),liquiditiesAtOpen:e.liquiditiesAtOpen.map(e=>BigInt(e)),liquiditiesCurrent:e.liquiditiesCurrent.map(e=>BigInt(e)),positionSizeAtOpen:BigInt(e.positionSizeAtOpen),positionSizeCurrent:BigInt(e.positionSizeCurrent),strikePrice:BigInt(e.strikePrice),entryPrice:BigInt(e.entryPrice)}))},enabled:!!e&&!!n});return{data:S(()=>(r==null?void 0:r.sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()))||[],[r]),...i}},ne=e=>Y(e,!0),re=e=>Y(e,!1),X=(e,t)=>{let{token0Decimals:n,token1Decimals:i}=K(t);return S(()=>e&&n&&i?p(r(e),n,i):void 0,[e,n,i])},Z=e=>{let t=q(e);return{currentPrice:X(t.exact,e),currentTick:t}},Q=e=>{let{data:t}=E({address:e,abi:m,functionName:`pool`});return{pool:t}},ie=e=>{let t=T(),{timelockLens:n}=W(),{pool:r}=Q(e),i=q(r),{writeContractAsync:a,data:o,isPending:s,error:c}=O(),{isLoading:l,isSuccess:u}=D({hash:o}),d=async(r,i,o)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!n)throw Error(`Vault/lens not available`);let s=await a({address:e,abi:m,functionName:`burn`,args:[r,i,o,await n.read.getRefTick([e,r])]});return await j(t,{hash:s}),s};return{burnMultiple:async r=>{if(!t)throw Error(`Wallet not connected`);if(!i.exact)throw Error(`Current tick not available`);if(r.length===0)throw Error(`No positions to burn`);if(!n||!e)throw Error(`Vault/lens not available`);if(r.length===1)await d(r[0].tickLower,r[0].tickUpper,r[0].liquidity);else{let i=await n.read.batchGetRefTick([e,r.map(e=>e.tickLower)]);await j(t,{hash:await a({address:e,abi:m,functionName:`multicall`,args:[r.map((e,t)=>g({abi:m,functionName:`burn`,args:[e.tickLower,e.tickUpper,e.liquidity,i[t]]}))]})})}},burn:d,hash:o,isPending:s,isConfirming:l,isSuccess:u,error:c,isLoading:s||l}},ae=e=>{let{timelockLens:t}=W(),{pool:n}=Q(e),{token0Decimals:r,token1Decimals:i}=K(n),{currentPrice:a}=Z(n),{data:o=[],refetch:s}=M({queryKey:[`liquidityBlocks`,e],queryFn:()=>t.read.getAllBlocks([e]),enabled:!!e&&!!t}),{totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d}=S(()=>({totalAmount0:r?f(o.reduce((e,t)=>e+t.totalAmount0,0n),r):void 0,totalAmount1:i?f(o.reduce((e,t)=>e+t.totalAmount1,0n),i):void 0,borrowedAmount0:r?f(o.reduce((e,t)=>e+t.borrowedAmount0,0n),r):void 0,borrowedAmount1:i?f(o.reduce((e,t)=>e+t.borrowedAmount1,0n),i):void 0}),[o,r,i]);return{tvl1:S(()=>{if(!c||!l||!a||!i)return;let e=c.scaled*a.scaled/10n**18n,t=l.scaled;return f(e+t,i)},[c,l,a,i]),blocks:o,totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d,refetch:s}},$=async(e,t,n,r,i)=>{let a=Array(t.length).fill(i),o=await e.read.batchGetAmountsForLiquidityTicks([a,t,n,r]),s=0n,c=0n,l=[],u=[];for(let e of o[0])s+=e,l.push(e);for(let e of o[1])c+=e,u.push(e);return{totalAmount0:s,totalAmount1:c,amounts0:l,amounts1:u}},oe=e=>{let t=T(),{address:r}=C(),{pool:i}=Q(e),{timelockLens:a,uniswapLens:o}=W(),s=q(i),{token0:c,token1:l}=K(i),{writeContractAsync:u,data:d,isPending:f,error:p}=O(),{isLoading:h,isSuccess:y}=D({hash:d}),b=async i=>{if(!r||!t)throw Error(`Wallet not connected`);if(s.exact===void 0||!c||!l||!e||!o)throw Error(`Current tick not available`);let{totalAmount0:a,totalAmount1:d}=await $(o,i.map(e=>e.tickLower),i.map(e=>e.tickUpper),i.map(e=>e.liquidity),s.exact),[f,p]=await Promise.all([n(c,t).read.allowance([r,e]),n(l,t).read.allowance([r,e])]),m=[];if(f<=a){let n=await u({address:c,abi:_,functionName:`approve`,args:[e,v]});m.push(j(t,{hash:n}))}if(p<=d){let n=await u({address:l,abi:_,functionName:`approve`,args:[e,v]});m.push(j(t,{hash:n}))}m.length>0&&await Promise.all(m)},x=async(n,r,i)=>{if(!t)throw Error(`Wallet not connected`);if(!e||!a)throw Error(`Vault/lens not available`);await b([{tickLower:n,tickUpper:r,liquidity:i}]);let o=await u({address:e,abi:m,functionName:`mint`,args:[n,r,i,await a.read.getRefTick([e,n])]});return await j(t,{hash:o}),o};return{mintMultiple:async n=>{if(!t)throw Error(`Wallet not connected`);if(!s.exact)throw Error(`Current tick not available`);if(n.length===0)throw Error(`No positions to mint`);if(!a||!e)throw Error(`Vault/lens not available`);if(n.length===1)await x(n[0].tickLower,n[0].tickUpper,n[0].liquidity);else{await b(n);let r=await a.read.batchGetRefTick([e,n.map(e=>e.tickLower)]);await j(t,{hash:await u({address:e,abi:m,functionName:`multicall`,args:[n.map((e,t)=>g({abi:m,functionName:`mint`,args:[e.tickLower,e.tickUpper,e.liquidity,r[t]]}))]})})}},mint:x,hash:d,isPending:f,isConfirming:h,isSuccess:y,error:p,isLoading:f||h}},se=t=>{let{timelockLens:n}=W(),{pool:r}=Q(t),{token0Decimals:i,token1Decimals:a}=K(r),{data:o,refetch:s}=E({address:n==null?void 0:n.address,abi:e,functionName:`getVaultTVL`,args:[t],query:{enabled:!!t&&!!n}}),c=o&&i?f(o[0],i):void 0,l=o&&a?f(o[1],a):void 0,u=o&&i?f(o[2],i):void 0,d=o&&a?f(o[3],a):void 0;return{tvl0:o&&i?f(o[4],i):void 0,tvl1:o&&a?f(o[5],a):void 0,totalAmount0:c,totalAmount1:l,borrowedAmount0:u,borrowedAmount1:d,refetch:s}};export{z as TimelockMarketProvider,$ as batchGetAmountsFromLiquidity,ne as useActiveUserOptions,ie as useBurnLiquidity,re as useClosedUserOptions,B as useCurrentMarket,Z as useCurrentPrice,q as useCurrentTick,U as useExerciseOption,W as useLens,ae as useLiquidityBlocks,H as useMarketData,G as useMaxPositionSize,oe as useMintLiquidity,J as useMintOption,ee as useOptionPnl,te as useOptionPremium,K as usePoolData,X as usePriceAtTick,V as useTimelockConfig,Q as useVaultData,se as useVaultTVL};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "timelock-sdk",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/package.cjs",
@@ -68,11 +68,10 @@
68
68
  "tsdown": "^0.15.7",
69
69
  "typescript": "^5.9.3"
70
70
  },
71
- "dependencies": {
72
- "@uniswap/v3-sdk": "^3.26.0",
73
- "jsbi": "^4.3.2"
74
- },
71
+ "dependencies": {},
75
72
  "peerDependencies": {
73
+ "@uniswap/v3-sdk": "^3.26.0",
74
+ "jsbi": "^4.3.2",
76
75
  "big.js": "^7.0.1",
77
76
  "@tanstack/react-query": "^5.90.5",
78
77
  "react": "^19.2.0",