timelock-sdk 0.0.134 → 0.0.136

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.
Files changed (42) hide show
  1. package/dist/abis.cjs +602 -3
  2. package/dist/abis.cjs.map +1 -0
  3. package/dist/abis.d.cts +354 -90
  4. package/dist/abis.d.ts +354 -90
  5. package/dist/abis.js +602 -3
  6. package/dist/abis.js.map +1 -0
  7. package/dist/{client-CJcTIGGv.d.cts → client-B7kKAk49.d.cts} +44622 -34761
  8. package/dist/{client-CZdmjIOb.d.ts → client-D4EJlSs_.d.ts} +44623 -34762
  9. package/dist/client.cjs +88 -74
  10. package/dist/client.cjs.map +1 -1
  11. package/dist/client.d.cts +3 -3
  12. package/dist/client.d.ts +3 -3
  13. package/dist/client.js +87 -75
  14. package/dist/client.js.map +1 -1
  15. package/dist/optionUtils-B0rlRtfb.js +1401 -0
  16. package/dist/optionUtils-B0rlRtfb.js.map +1 -0
  17. package/dist/{optionUtils-OfLzCR6R.cjs → optionUtils-pH0o9gTm.cjs} +1069 -37
  18. package/dist/optionUtils-pH0o9gTm.cjs.map +1 -0
  19. package/dist/{optionsMarket-B2IsvbeA.js → optionsMarket-CjlRzn2K.js} +213 -21
  20. package/dist/optionsMarket-CjlRzn2K.js.map +1 -0
  21. package/dist/{optionsMarket-C6K82im8.cjs → optionsMarket-iZiYJCuW.cjs} +213 -21
  22. package/dist/optionsMarket-iZiYJCuW.cjs.map +1 -0
  23. package/dist/package.cjs +5 -6
  24. package/dist/package.d.cts +3 -3
  25. package/dist/package.d.ts +3 -3
  26. package/dist/package.js +3 -3
  27. package/dist/singleOwnerVault-BJyEs_D_.js +847 -0
  28. package/dist/singleOwnerVault-BJyEs_D_.js.map +1 -0
  29. package/dist/singleOwnerVault-GCpQV7pN.cjs +853 -0
  30. package/dist/singleOwnerVault-GCpQV7pN.cjs.map +1 -0
  31. package/dist/{uniswapMathLens-DHfzEjej.d.ts → uniswapMathLens-B0xWynAN.d.cts} +182 -21
  32. package/dist/{uniswapMathLens-Be6lFJcD.d.cts → uniswapMathLens-DAI2a8aU.d.ts} +182 -21
  33. package/package.json +38 -38
  34. package/dist/optionUtils-CQzUsKpO.js +0 -369
  35. package/dist/optionUtils-CQzUsKpO.js.map +0 -1
  36. package/dist/optionUtils-OfLzCR6R.cjs.map +0 -1
  37. package/dist/optionsMarket-B2IsvbeA.js.map +0 -1
  38. package/dist/optionsMarket-C6K82im8.cjs.map +0 -1
  39. package/dist/singleOwnerVault-gf2zNZVk.cjs +0 -1131
  40. package/dist/singleOwnerVault-gf2zNZVk.cjs.map +0 -1
  41. package/dist/singleOwnerVault-p81IjmWe.js +0 -1119
  42. package/dist/singleOwnerVault-p81IjmWe.js.map +0 -1
package/dist/client.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import "./uniswapMathLens-Be6lFJcD.cjs";
2
- import { $ as OptionEvent, Ct as useExerciseOption, Dt as TimelockProvider, Et as useClosedUserOptions, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useCurrentMarket, Q as MintOptionEvent, St as useMarketData, Tt as useActiveUserOptions, U as useOperatorPerms, V as useSetOperatorPerms, W as useActiveUserPerps, X as ExerciseOptionEvent, Y as useMintPerp, Z as ExtendEvent, _ as useCurrentPrice, a as batchGetAmountsFromLiquidity, at as useMaxPositionSize, c as useLiquidityBlocks, d as usePriceHistory, et as useOptionTimeline, f as usePriceAtTick, g as useCurrentTick, h as usePoolData, i as useVaultData, it as useMintOption, kt as useTimelockConfig, l as useBurnLiquidity, m as UniswapPoolData, n as useLens, nt as useOptionPremium, o as useMintLiquidity, p as usePriceSqrtPriceX96, q as usePerpsOperator, r as useVaultTVL, rt as useOptionPnl, s as LiquidityBlockData, t as useApproval, tt as useExtendOption, u as useMarketPriceHistory, wt as OptionData, xt as useMarketVolume } from "./client-CJcTIGGv.cjs";
3
- export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, TimelockProvider, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
1
+ import "./uniswapMathLens-B0xWynAN.cjs";
2
+ import { $ as ExerciseOptionEvent, At as TimelockProvider, Dt as OptionData, Et as useExerciseOption, G as useUserOperators, J as useClosedUserPerps, K as useOperatorPerms, Mt as useTimelockConfig, Ot as useActiveUserOptions, Q as useMintPerp, Tt as useMarketData, W as useSetOperatorPerms, X as usePerpsOperator, Y as useUserPerps, Z as useClosePerp, _ as useCurrentTick, a as useTokenData, at as useOptionPremium, b as usePoolData, c as batchGetAmountsFromLiquidity, ct as useMaxPositionSize, d as useLiquidityBlocks, et as ExtendEvent, f as useBurnLiquidity, g as usePriceSqrtPriceX96, h as usePriceAtTick, i as TokenData, it as useExtendOption, jt as useCurrentMarket, kt as useClosedUserOptions, l as useMintLiquidity, m as usePriceHistory, n as useApproval, nt as OptionEvent, o as useVaultTVL, ot as useOptionPnl, p as useMarketPriceHistory, q as useActiveUserPerps, r as useTokenBalance, rt as useOptionTimeline, s as useVaultData, st as useMintOption, t as useLens, tt as MintOptionEvent, u as LiquidityBlockData, v as PoolKey, wt as useMarketVolume, x as useCurrentPrice, y as UniswapPoolData } from "./client-B7kKAk49.cjs";
3
+ export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, PoolKey, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useTokenBalance, useTokenData, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
package/dist/client.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import "./uniswapMathLens-DHfzEjej.js";
2
- import { $ as OptionEvent, Ct as useExerciseOption, Dt as TimelockProvider, Et as useClosedUserOptions, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useCurrentMarket, Q as MintOptionEvent, St as useMarketData, Tt as useActiveUserOptions, U as useOperatorPerms, V as useSetOperatorPerms, W as useActiveUserPerps, X as ExerciseOptionEvent, Y as useMintPerp, Z as ExtendEvent, _ as useCurrentPrice, a as batchGetAmountsFromLiquidity, at as useMaxPositionSize, c as useLiquidityBlocks, d as usePriceHistory, et as useOptionTimeline, f as usePriceAtTick, g as useCurrentTick, h as usePoolData, i as useVaultData, it as useMintOption, kt as useTimelockConfig, l as useBurnLiquidity, m as UniswapPoolData, n as useLens, nt as useOptionPremium, o as useMintLiquidity, p as usePriceSqrtPriceX96, q as usePerpsOperator, r as useVaultTVL, rt as useOptionPnl, s as LiquidityBlockData, t as useApproval, tt as useExtendOption, u as useMarketPriceHistory, wt as OptionData, xt as useMarketVolume } from "./client-CZdmjIOb.js";
3
- export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, TimelockProvider, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
1
+ import "./uniswapMathLens-DAI2a8aU.js";
2
+ import { $ as ExerciseOptionEvent, At as TimelockProvider, Dt as OptionData, Et as useExerciseOption, G as useUserOperators, J as useClosedUserPerps, K as useOperatorPerms, Mt as useTimelockConfig, Ot as useActiveUserOptions, Q as useMintPerp, Tt as useMarketData, W as useSetOperatorPerms, X as usePerpsOperator, Y as useUserPerps, Z as useClosePerp, _ as useCurrentTick, a as useTokenData, at as useOptionPremium, b as usePoolData, c as batchGetAmountsFromLiquidity, ct as useMaxPositionSize, d as useLiquidityBlocks, et as ExtendEvent, f as useBurnLiquidity, g as usePriceSqrtPriceX96, h as usePriceAtTick, i as TokenData, it as useExtendOption, jt as useCurrentMarket, kt as useClosedUserOptions, l as useMintLiquidity, m as usePriceHistory, n as useApproval, nt as OptionEvent, o as useVaultTVL, ot as useOptionPnl, p as useMarketPriceHistory, q as useActiveUserPerps, r as useTokenBalance, rt as useOptionTimeline, s as useVaultData, st as useMintOption, t as useLens, tt as MintOptionEvent, u as LiquidityBlockData, v as PoolKey, wt as useMarketVolume, x as useCurrentPrice, y as UniswapPoolData } from "./client-D4EJlSs_.js";
3
+ export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, PoolKey, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useTokenBalance, useTokenData, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
package/dist/client.js CHANGED
@@ -1,15 +1,15 @@
1
1
  'use client';
2
2
 
3
3
 
4
- import { r as lensAbi, t as optionsMarketAbi } from "./optionsMarket-B2IsvbeA.js";
5
- import { A as token0ToToken1AtTick, B as timelockLenses, D as roundTickDown, F as getErc20, I as getTimelockLens, L as getTimelockMarket, M as token1ToToken0AtTick, P as getPriceHistory, R as getUniswapMathLens, V as uniswapMathLenses, b as getPriceAtSqrtPriceX96, f as wrapAmount, j as token1ToToken0, k as token0ToToken1, m as wrapPrice, r as EMPTY_ARRAY, t as getPayoutAtPrice, v as getAmountsFromLiquidity, x as getPriceAtTick, y as getNearestValidStrikeTick, z as swappers } from "./optionUtils-CQzUsKpO.js";
6
- import { n as uniswapV3PoolAbi, t as singleOwnerVaultAbi } from "./singleOwnerVault-p81IjmWe.js";
4
+ import { i as erc20Abi$1, r as lensAbi, t as optionsMarketAbi } from "./optionsMarket-CjlRzn2K.js";
5
+ import { A as token1ToToken0, D as roundTick, F as getStateView, I as getTimelockLens, L as getTimelockMarket, N as getPriceHistory, O as token0ToToken1, P as getErc20, V as statelessStateViewAbi, b as getPriceAtSqrtPriceX96, f as wrapAmount, j as token1ToToken0AtTick, k as token0ToToken1AtTick, m as wrapPrice, r as EMPTY_ARRAY, t as getPayoutAtPrice, v as getAmountsFromLiquidity, x as getPriceAtTick, y as getNearestValidStrikeTick, z as swappers } from "./optionUtils-B0rlRtfb.js";
6
+ import { t as singleOwnerVaultAbi } from "./singleOwnerVault-BJyEs_D_.js";
7
7
  import { encodeAbiParameters, encodeFunctionData, erc20Abi, maxUint256, zeroAddress } from "viem";
8
8
  import React, { createContext, useContext, useEffect, useMemo } from "react";
9
- import { useAccount, useBalance, useChainId, useClient, useReadContract, useSignMessage, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
10
9
  import { GraphQLClient, RequestOptions } from "graphql-request";
11
10
  import gql from "graphql-tag";
12
11
  import { waitForTransactionReceipt } from "viem/actions";
12
+ import { useChainId, useClient, useConnection, useReadContract, useSignMessage, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
13
13
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
14
14
  import { z } from "zod";
15
15
 
@@ -399,9 +399,6 @@ var PerpsOperator = class {
399
399
  //#region src/providers/TimelockProvider.tsx
400
400
  const TimelockContext = createContext(void 0);
401
401
  const TimelockProvider = ({ children, marketData, envioGraphqlUrl, perpsOperatorUrl }) => {
402
- const chainId = useChainId();
403
- const lensAddr = timelockLenses[chainId];
404
- const uniswapMathLensAddr = uniswapMathLenses[chainId];
405
402
  const graphqlClient = useMemo(() => {
406
403
  if (envioGraphqlUrl) return getSdk(new GraphQLClient(envioGraphqlUrl));
407
404
  }, [envioGraphqlUrl]);
@@ -410,16 +407,12 @@ const TimelockProvider = ({ children, marketData, envioGraphqlUrl, perpsOperator
410
407
  }, [perpsOperatorUrl]);
411
408
  const contextValue = useMemo(() => ({
412
409
  marketData: marketData || {},
413
- lensAddr,
414
- uniswapMathLensAddr,
415
410
  envioGraphqlUrl,
416
411
  perpsOperator,
417
412
  graphqlClient,
418
413
  perpsOperatorUrl
419
414
  }), [
420
415
  marketData,
421
- lensAddr,
422
- uniswapMathLensAddr,
423
416
  envioGraphqlUrl,
424
417
  perpsOperator,
425
418
  graphqlClient,
@@ -444,7 +437,7 @@ const useLens = () => {
444
437
  const client = useClient();
445
438
  return useMemo(() => ({
446
439
  timelockLens: client ? getTimelockLens(client) : void 0,
447
- uniswapLens: client ? getUniswapMathLens(client) : void 0
440
+ stateView: client ? getStateView(client) : void 0
448
441
  }), [client]);
449
442
  };
450
443
 
@@ -484,15 +477,14 @@ const useMarketData = (marketAddr) => {
484
477
 
485
478
  //#endregion
486
479
  //#region src/hooks/pool/usePoolData.ts
487
- const usePoolData = (poolAddr) => {
480
+ const usePoolData = (poolManager, poolKey) => {
488
481
  const { timelockLens } = useLens();
489
- const client = useClient();
490
482
  const { data } = useReadContract({
491
483
  address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
492
484
  abi: lensAbi,
493
485
  functionName: "getPoolData",
494
- args: poolAddr ? [poolAddr] : void 0,
495
- query: { enabled: !!poolAddr && !!client }
486
+ args: poolManager && poolKey ? [poolManager, poolKey] : void 0,
487
+ query: { enabled: !!poolManager && !!poolKey }
496
488
  });
497
489
  return data || {};
498
490
  };
@@ -509,7 +501,7 @@ const useExerciseOption = (marketAddr) => {
509
501
  const { timelockLens } = useLens();
510
502
  const queryClient = useQueryClient();
511
503
  const client = useClient();
512
- const { address } = useAccount();
504
+ const { address } = useConnection();
513
505
  const { writeContractAsync } = useWriteContract();
514
506
  const exerciseOption = async ({ option, liquidities }) => {
515
507
  if (!client || !address) throw new Error("Wallet not connected");
@@ -547,9 +539,8 @@ const useExerciseOption = (marketAddr) => {
547
539
  //#region src/hooks/options/useMarketVolume.ts
548
540
  const useMarketVolume = (marketAddr) => {
549
541
  const { graphqlClient } = useTimelockConfig();
550
- const { timelockLens } = useLens();
551
542
  const { data } = useQuery({
552
- queryKey: ["marketData", (marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"],
543
+ queryKey: ["marketVolume", (marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"],
553
544
  queryFn: async () => {
554
545
  const result = await graphqlClient.GetMarketVolume({ marketAddr: marketAddr.toLowerCase() });
555
546
  return {
@@ -562,18 +553,7 @@ const useMarketVolume = (marketAddr) => {
562
553
  },
563
554
  enabled: !!marketAddr && !!graphqlClient
564
555
  });
565
- const { data: fallback } = useQuery({
566
- queryKey: ["marketData", marketAddr || "--"],
567
- queryFn: async () => {
568
- if (!marketAddr || !timelockLens) return void 0;
569
- return {
570
- ...await timelockLens.read.getMarketData([marketAddr]),
571
- tradersCount: void 0
572
- };
573
- },
574
- enabled: !!marketAddr && !!timelockLens
575
- });
576
- return data || fallback || {};
556
+ return data || {};
577
557
  };
578
558
 
579
559
  //#endregion
@@ -602,21 +582,22 @@ const useMaxPositionSize = (marketAddr, maxBorrowableRange = 100) => {
602
582
 
603
583
  //#endregion
604
584
  //#region src/hooks/pool/useCurrentTick.ts
605
- const useCurrentTick = (poolAddr) => {
606
- const { tickSpacing } = usePoolData(poolAddr);
585
+ const useCurrentTick = (poolManager, poolKey) => {
586
+ const { tickSpacing } = usePoolData(poolManager, poolKey);
607
587
  const { data, ...rest } = useReadContract({
608
- address: poolAddr,
609
- abi: uniswapV3PoolAbi,
610
- functionName: "slot0",
611
- args: [],
588
+ address: poolManager,
589
+ abi: statelessStateViewAbi,
590
+ functionName: "getSlot0",
591
+ args: poolManager && poolKey ? [poolManager, poolKey] : void 0,
612
592
  query: {
593
+ enabled: !!poolManager && !!poolKey,
613
594
  refetchInterval: 3e3,
614
595
  select: (raw) => {
615
- const sqrtPriceX96 = raw === null || raw === void 0 ? void 0 : raw[0];
616
- const exact = raw === null || raw === void 0 ? void 0 : raw[1];
596
+ const sqrtPriceX96 = raw[0];
597
+ const exact = raw[1];
617
598
  return {
618
599
  exact,
619
- rounded: exact !== void 0 && tickSpacing ? Math.floor(exact / tickSpacing) * tickSpacing : void 0,
600
+ rounded: tickSpacing ? roundTick(exact, tickSpacing) : void 0,
620
601
  sqrtPriceX96
621
602
  };
622
603
  }
@@ -631,10 +612,10 @@ const useCurrentTick = (poolAddr) => {
631
612
  };
632
613
 
633
614
  //#endregion
634
- //#region src/hooks/useApproval.ts
615
+ //#region src/hooks/tokens/useApproval.ts
635
616
  const useApproval = () => {
636
617
  const client = useClient();
637
- const { address } = useAccount();
618
+ const { address } = useConnection();
638
619
  const { writeContractAsync, data: hash, isPending, error, reset } = useWriteContract();
639
620
  const askForApproval = async (tokenAddress, spenderAddress, amount) => {
640
621
  if (!client || !address) throw new Error("Wallet not connected");
@@ -662,7 +643,7 @@ const useMintOption = (marketAddr) => {
662
643
  const { refetch: refetchCurrentTick } = useCurrentTick(pool);
663
644
  const queryClient = useQueryClient();
664
645
  const client = useClient();
665
- const { address } = useAccount();
646
+ const { address } = useConnection();
666
647
  const { timelockLens } = useLens();
667
648
  const { askForApproval } = useApproval();
668
649
  const { writeContractAsync } = useWriteContract();
@@ -789,7 +770,7 @@ const useOptionPremium = (marketAddr, optionType, optionAmount, addedDuration, r
789
770
  const { exact: currentTick } = useCurrentTick(pool);
790
771
  const strikeTickRounded = useMemo(() => {
791
772
  if (!tickSpacing || currentTick === void 0) return;
792
- let strikeTickRounded$1 = roundTickDown(strikeTick ?? currentTick, tickSpacing);
773
+ let strikeTickRounded$1 = roundTick(strikeTick ?? currentTick, tickSpacing);
793
774
  if (optionType === "CALL" && optionAssetIsToken0 || optionType === "PUT" && !optionAssetIsToken0) strikeTickRounded$1 += tickSpacing;
794
775
  return strikeTickRounded$1;
795
776
  }, [
@@ -885,7 +866,7 @@ const useExtendOption = (marketAddr) => {
885
866
  const { payoutAsset } = useMarketData(marketAddr);
886
867
  const queryClient = useQueryClient();
887
868
  const client = useClient();
888
- const { address } = useAccount();
869
+ const { address } = useConnection();
889
870
  const { askForApproval } = useApproval();
890
871
  const { writeContractAsync } = useWriteContract();
891
872
  const extendOption = async ({ option, duration }) => {
@@ -1024,7 +1005,7 @@ const clearSignature = (userAddr) => {
1024
1005
  localStorage.removeItem(key);
1025
1006
  };
1026
1007
  const usePerpsOperator = () => {
1027
- const { address: userAddr } = useAccount();
1008
+ const { address: userAddr } = useConnection();
1028
1009
  const { perpsOperatorUrl, perpsOperator: operator } = useTimelockConfig();
1029
1010
  const { signMessageAsync } = useSignMessage();
1030
1011
  const { data: address } = useQuery({
@@ -1071,7 +1052,7 @@ const usePerpsOperator = () => {
1071
1052
  const useMintPerp = (marketAddr) => {
1072
1053
  const queryClient = useQueryClient();
1073
1054
  const client = useClient();
1074
- const { address } = useAccount();
1055
+ const { address } = useConnection();
1075
1056
  const { operator, address: operatorAddr, signMessage: { mutateAsync: signMessage } } = usePerpsOperator();
1076
1057
  const { askForApproval } = useApproval();
1077
1058
  const { pool, optionAssetIsToken0, payoutAsset } = useMarketData(marketAddr);
@@ -1159,14 +1140,43 @@ const useClosedUserPerps = (marketAddr, userAddr) => {
1159
1140
  return useUserPerps(marketAddr, userAddr, "closed");
1160
1141
  };
1161
1142
 
1143
+ //#endregion
1144
+ //#region src/hooks/tokens/useTokenData.ts
1145
+ const useTokenData = (tokenAddr) => {
1146
+ const { timelockLens } = useLens();
1147
+ const client = useClient();
1148
+ const { data } = useReadContract({
1149
+ address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
1150
+ abi: lensAbi,
1151
+ functionName: "getTokenData",
1152
+ args: tokenAddr ? [tokenAddr] : void 0,
1153
+ query: { enabled: !!tokenAddr && !!client }
1154
+ });
1155
+ return data || {};
1156
+ };
1157
+
1158
+ //#endregion
1159
+ //#region src/hooks/tokens/useTokenBalance.ts
1160
+ const useTokenBalance = (token, user) => {
1161
+ const { decimals } = useTokenData(token);
1162
+ const { data: raw, ...rest } = useReadContract({
1163
+ address: token,
1164
+ abi: erc20Abi$1,
1165
+ functionName: "balanceOf",
1166
+ args: user ? [user] : void 0,
1167
+ query: { enabled: !!token && !!user }
1168
+ });
1169
+ return {
1170
+ data: useMemo(() => raw !== void 0 && decimals !== void 0 ? wrapAmount(raw, decimals) : void 0, [raw, decimals]),
1171
+ ...rest
1172
+ };
1173
+ };
1174
+
1162
1175
  //#endregion
1163
1176
  //#region src/hooks/operators/useOperatorPerms.ts
1164
1177
  const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
1165
1178
  const { payoutAsset } = useMarketData(marketAddr);
1166
- const { data: payoutAssetBalance } = useBalance({
1167
- address: userAddr,
1168
- token: payoutAsset
1169
- });
1179
+ const { data: payoutAssetBalance } = useTokenBalance(payoutAsset, userAddr);
1170
1180
  const { data, ...rest } = useReadContract({
1171
1181
  abi: optionsMarketAbi,
1172
1182
  address: marketAddr,
@@ -1179,7 +1189,7 @@ const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
1179
1189
  });
1180
1190
  const [canExtend, canExercise, canTransfer, canMint, spendingApproval] = data || [];
1181
1191
  const min = (a, b) => a < b ? a : b;
1182
- const effectiveApproval = spendingApproval && payoutAssetBalance ? min(spendingApproval, payoutAssetBalance.value) : 0n;
1192
+ const effectiveApproval = spendingApproval && payoutAssetBalance ? min(spendingApproval, payoutAssetBalance.scaled) : 0n;
1183
1193
  return {
1184
1194
  data: useMemo(() => ({
1185
1195
  canExtend,
@@ -1234,7 +1244,7 @@ const useUserOperators = (userAddr, marketAddr) => {
1234
1244
  const useSetOperatorPerms = (marketAddr) => {
1235
1245
  const queryClient = useQueryClient();
1236
1246
  const client = useClient();
1237
- const { address } = useAccount();
1247
+ const { address } = useConnection();
1238
1248
  const { writeContractAsync } = useWriteContract();
1239
1249
  const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
1240
1250
  if (!client || !address) throw new Error("Wallet not connected");
@@ -1288,12 +1298,14 @@ const useMarketPriceHistory = (marketAddr, resolution, startTimestamp, endTimest
1288
1298
  //#endregion
1289
1299
  //#region src/hooks/vault/useVaultData.ts
1290
1300
  const useVaultData = (vaultAddr) => {
1301
+ const { timelockLens } = useLens();
1291
1302
  const { data } = useReadContract({
1292
- address: vaultAddr,
1293
- abi: singleOwnerVaultAbi,
1294
- functionName: "pool"
1303
+ address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
1304
+ abi: lensAbi,
1305
+ functionName: "getVaultData",
1306
+ args: vaultAddr ? [vaultAddr] : void 0
1295
1307
  });
1296
- return { pool: data };
1308
+ return data || {};
1297
1309
  };
1298
1310
 
1299
1311
  //#endregion
@@ -1301,8 +1313,8 @@ const useVaultData = (vaultAddr) => {
1301
1313
  const useBurnLiquidity = (vaultAddr) => {
1302
1314
  const client = useClient();
1303
1315
  const { timelockLens } = useLens();
1304
- const { pool } = useVaultData(vaultAddr);
1305
- const currentTick = useCurrentTick(pool);
1316
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1317
+ const currentTick = useCurrentTick(poolManager, poolKey);
1306
1318
  const { writeContractAsync, data: hash, isPending, error } = useWriteContract();
1307
1319
  const { isLoading: isConfirming, isSuccess } = useWaitForTransactionReceipt({ hash });
1308
1320
  const burn = async (tickLower, tickUpper, liquidity) => {
@@ -1400,10 +1412,10 @@ const batchGetAmountsFromLiquidity = (tickLowers, tickUppers, liquidities, curre
1400
1412
  const useMintLiquidity = (vaultAddr) => {
1401
1413
  const queryClient = useQueryClient();
1402
1414
  const client = useClient();
1403
- const { pool } = useVaultData(vaultAddr);
1415
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1404
1416
  const { timelockLens } = useLens();
1405
- const { exact: currentTick } = useCurrentTick(pool);
1406
- const { token0, token1 } = usePoolData(pool);
1417
+ const { exact: currentTick } = useCurrentTick(poolManager, poolKey);
1418
+ const { token0, token1 } = usePoolData(poolManager, poolKey);
1407
1419
  const { askForApproval } = useApproval();
1408
1420
  const { writeContractAsync } = useWriteContract();
1409
1421
  const processApproval = async (params) => {
@@ -1443,8 +1455,8 @@ const useMintLiquidity = (vaultAddr) => {
1443
1455
  //#region src/hooks/vault/useVaultTVL.ts
1444
1456
  const useVaultTVL = (vaultAddr) => {
1445
1457
  const { timelockLens } = useLens();
1446
- const { pool } = useVaultData(vaultAddr);
1447
- const { token0Decimals, token1Decimals } = usePoolData(pool);
1458
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1459
+ const { token0Decimals, token1Decimals } = usePoolData(poolManager, poolKey);
1448
1460
  const { data, refetch } = useReadContract({
1449
1461
  address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
1450
1462
  abi: lensAbi,
@@ -1454,17 +1466,17 @@ const useVaultTVL = (vaultAddr) => {
1454
1466
  });
1455
1467
  return useMemo(() => {
1456
1468
  if (!token0Decimals || !token1Decimals || !data) return {};
1457
- const totalAmount0 = wrapAmount(data[0], token0Decimals);
1458
- const totalAmount1 = wrapAmount(data[1], token1Decimals);
1459
- const borrowedAmount0 = wrapAmount(data[2], token0Decimals);
1460
- const borrowedAmount1 = wrapAmount(data[3], token1Decimals);
1469
+ const total0 = wrapAmount(data[0], token0Decimals);
1470
+ const total1 = wrapAmount(data[1], token1Decimals);
1471
+ const borrowed0 = wrapAmount(data[2], token0Decimals);
1472
+ const borrowed1 = wrapAmount(data[3], token1Decimals);
1461
1473
  return {
1462
- tvl0: wrapAmount(data[4], token0Decimals),
1463
- tvl1: wrapAmount(data[5], token1Decimals),
1464
- totalAmount0,
1465
- totalAmount1,
1466
- borrowedAmount0,
1467
- borrowedAmount1,
1474
+ tvlAs0: wrapAmount(data[4], token0Decimals),
1475
+ tvlAs1: wrapAmount(data[5], token1Decimals),
1476
+ total0,
1477
+ total1,
1478
+ borrowed0,
1479
+ borrowed1,
1468
1480
  blocksCount: data[6],
1469
1481
  refetch
1470
1482
  };
@@ -1477,5 +1489,5 @@ const useVaultTVL = (vaultAddr) => {
1477
1489
  };
1478
1490
 
1479
1491
  //#endregion
1480
- export { TimelockProvider, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
1492
+ export { TimelockProvider, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useTokenBalance, useTokenData, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
1481
1493
  //# sourceMappingURL=client.js.map