timelock-sdk 0.0.18 → 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 +1 -1
- package/dist/client.d.cts +41 -41
- package/dist/client.js +1 -1
- package/package.json +1 -1
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.cts
CHANGED
|
@@ -3,7 +3,7 @@ import { Amount, TimelockMarketData, UniswapMathLens } from "./index-CnaCnYLR.cj
|
|
|
3
3
|
import "graphql";
|
|
4
4
|
import "graphql-request";
|
|
5
5
|
import React, { ReactNode } from "react";
|
|
6
|
-
import * as
|
|
6
|
+
import * as viem249 from "viem";
|
|
7
7
|
import { Address } from "viem";
|
|
8
8
|
import * as _wagmi_core0 from "@wagmi/core";
|
|
9
9
|
import { NonUndefinedGuard } from "@tanstack/react-query";
|
|
@@ -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],
|
|
2302
|
+
refetch: (options?: _tanstack_query_core0.RefetchOptions) => Promise<_tanstack_query_core0.QueryObserverResult<readonly [bigint, bigint, bigint, bigint, bigint, bigint], viem249.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?:
|
|
2309
|
+
batchGetAmount0ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
2930
|
+
batchGetAmount0ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
3551
|
+
batchGetAmount1ForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
4172
|
+
batchGetAmount1ForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
4793
|
+
batchGetAmountsForLiquidity: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
5414
|
+
batchGetAmountsForLiquidityTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
6035
|
+
batchGetLiquidityForAmount0: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
6656
|
+
batchGetLiquidityForAmount0Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
7277
|
+
batchGetLiquidityForAmount1: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
7898
|
+
batchGetLiquidityForAmount1Ticks: (args: readonly [readonly number[], readonly number[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
8519
|
+
batchGetLiquidityForAmounts: (args: readonly [readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
9140
|
+
batchGetLiquidityForAmountsTicks: (args: readonly [readonly number[], readonly number[], readonly number[], readonly bigint[], readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
9761
|
+
batchGetPriceAtTick: (args: readonly [readonly number[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
10382
|
+
getAmount0ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
11003
|
+
getAmount0ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
11624
|
+
getAmount1ForLiquidity: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
12245
|
+
getAmount1ForLiquidityTicks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
12866
|
+
getAmountsForLiquidity: (args: readonly [bigint, bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
13487
|
+
getAmountsForLiquidityTicks: (args: readonly [number, number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
14108
|
+
getLiquidityForAmount0: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
14729
|
+
getLiquidityForAmount0Ticks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
15350
|
+
getLiquidityForAmount1: (args: readonly [bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
15971
|
+
getLiquidityForAmount1Ticks: (args: readonly [number, number, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
16592
|
+
getLiquidityForAmounts: (args: readonly [bigint, bigint, bigint, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
17213
|
+
getLiquidityForAmountsTicks: (args: readonly [number, number, number, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
17834
|
+
getPriceAtTick: (args: readonly [number], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
19081
|
+
batchGetRefTick: (args: readonly [`0x${string}`, readonly number[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
19783
|
+
getAllBlocks: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
20495
|
+
getExpiredOptions: (args: readonly [`0x${string}`, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
21216
|
+
getLiquidityAtTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
21918
|
+
getMarketData: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
22633
|
+
getMaxPositionSize: (args: readonly [`0x${string}`, number, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
23335
|
+
getMaxPositionSizeAtCurrentTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
24037
|
+
getOptionData: (args: readonly [`0x${string}`, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
24758
|
+
getOptionsData: (args: readonly [`0x${string}`, readonly bigint[]], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
25479
|
+
getPoolData: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
26192
|
+
getRefTick: (args: readonly [`0x${string}`, number], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
26894
|
+
getUserOptions: (args: readonly [`0x${string}`, `0x${string}`, bigint, bigint], options?: viem249.Prettify<viem249.UnionOmit<viem249.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?:
|
|
27615
|
+
getVaultTVL: (args: readonly [`0x${string}`], options?: viem249.Prettify<viem249.UnionOmit<viem249.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};
|