timelock-sdk 0.0.135 → 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-DXq_0YH-.d.cts → client-B7kKAk49.d.cts} +38760 -28899
  8. package/dist/{client-BQGLnbLD.d.ts → client-D4EJlSs_.d.ts} +38760 -28899
  9. package/dist/client.cjs +86 -60
  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 +85 -61
  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-DXq_0YH-.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-BQGLnbLD.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");
@@ -590,21 +582,22 @@ const useMaxPositionSize = (marketAddr, maxBorrowableRange = 100) => {
590
582
 
591
583
  //#endregion
592
584
  //#region src/hooks/pool/useCurrentTick.ts
593
- const useCurrentTick = (poolAddr) => {
594
- const { tickSpacing } = usePoolData(poolAddr);
585
+ const useCurrentTick = (poolManager, poolKey) => {
586
+ const { tickSpacing } = usePoolData(poolManager, poolKey);
595
587
  const { data, ...rest } = useReadContract({
596
- address: poolAddr,
597
- abi: uniswapV3PoolAbi,
598
- functionName: "slot0",
599
- args: [],
588
+ address: poolManager,
589
+ abi: statelessStateViewAbi,
590
+ functionName: "getSlot0",
591
+ args: poolManager && poolKey ? [poolManager, poolKey] : void 0,
600
592
  query: {
593
+ enabled: !!poolManager && !!poolKey,
601
594
  refetchInterval: 3e3,
602
595
  select: (raw) => {
603
- const sqrtPriceX96 = raw === null || raw === void 0 ? void 0 : raw[0];
604
- const exact = raw === null || raw === void 0 ? void 0 : raw[1];
596
+ const sqrtPriceX96 = raw[0];
597
+ const exact = raw[1];
605
598
  return {
606
599
  exact,
607
- rounded: exact !== void 0 && tickSpacing ? Math.floor(exact / tickSpacing) * tickSpacing : void 0,
600
+ rounded: tickSpacing ? roundTick(exact, tickSpacing) : void 0,
608
601
  sqrtPriceX96
609
602
  };
610
603
  }
@@ -619,10 +612,10 @@ const useCurrentTick = (poolAddr) => {
619
612
  };
620
613
 
621
614
  //#endregion
622
- //#region src/hooks/useApproval.ts
615
+ //#region src/hooks/tokens/useApproval.ts
623
616
  const useApproval = () => {
624
617
  const client = useClient();
625
- const { address } = useAccount();
618
+ const { address } = useConnection();
626
619
  const { writeContractAsync, data: hash, isPending, error, reset } = useWriteContract();
627
620
  const askForApproval = async (tokenAddress, spenderAddress, amount) => {
628
621
  if (!client || !address) throw new Error("Wallet not connected");
@@ -650,7 +643,7 @@ const useMintOption = (marketAddr) => {
650
643
  const { refetch: refetchCurrentTick } = useCurrentTick(pool);
651
644
  const queryClient = useQueryClient();
652
645
  const client = useClient();
653
- const { address } = useAccount();
646
+ const { address } = useConnection();
654
647
  const { timelockLens } = useLens();
655
648
  const { askForApproval } = useApproval();
656
649
  const { writeContractAsync } = useWriteContract();
@@ -777,7 +770,7 @@ const useOptionPremium = (marketAddr, optionType, optionAmount, addedDuration, r
777
770
  const { exact: currentTick } = useCurrentTick(pool);
778
771
  const strikeTickRounded = useMemo(() => {
779
772
  if (!tickSpacing || currentTick === void 0) return;
780
- let strikeTickRounded$1 = roundTickDown(strikeTick ?? currentTick, tickSpacing);
773
+ let strikeTickRounded$1 = roundTick(strikeTick ?? currentTick, tickSpacing);
781
774
  if (optionType === "CALL" && optionAssetIsToken0 || optionType === "PUT" && !optionAssetIsToken0) strikeTickRounded$1 += tickSpacing;
782
775
  return strikeTickRounded$1;
783
776
  }, [
@@ -873,7 +866,7 @@ const useExtendOption = (marketAddr) => {
873
866
  const { payoutAsset } = useMarketData(marketAddr);
874
867
  const queryClient = useQueryClient();
875
868
  const client = useClient();
876
- const { address } = useAccount();
869
+ const { address } = useConnection();
877
870
  const { askForApproval } = useApproval();
878
871
  const { writeContractAsync } = useWriteContract();
879
872
  const extendOption = async ({ option, duration }) => {
@@ -1012,7 +1005,7 @@ const clearSignature = (userAddr) => {
1012
1005
  localStorage.removeItem(key);
1013
1006
  };
1014
1007
  const usePerpsOperator = () => {
1015
- const { address: userAddr } = useAccount();
1008
+ const { address: userAddr } = useConnection();
1016
1009
  const { perpsOperatorUrl, perpsOperator: operator } = useTimelockConfig();
1017
1010
  const { signMessageAsync } = useSignMessage();
1018
1011
  const { data: address } = useQuery({
@@ -1059,7 +1052,7 @@ const usePerpsOperator = () => {
1059
1052
  const useMintPerp = (marketAddr) => {
1060
1053
  const queryClient = useQueryClient();
1061
1054
  const client = useClient();
1062
- const { address } = useAccount();
1055
+ const { address } = useConnection();
1063
1056
  const { operator, address: operatorAddr, signMessage: { mutateAsync: signMessage } } = usePerpsOperator();
1064
1057
  const { askForApproval } = useApproval();
1065
1058
  const { pool, optionAssetIsToken0, payoutAsset } = useMarketData(marketAddr);
@@ -1147,14 +1140,43 @@ const useClosedUserPerps = (marketAddr, userAddr) => {
1147
1140
  return useUserPerps(marketAddr, userAddr, "closed");
1148
1141
  };
1149
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
+
1150
1175
  //#endregion
1151
1176
  //#region src/hooks/operators/useOperatorPerms.ts
1152
1177
  const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
1153
1178
  const { payoutAsset } = useMarketData(marketAddr);
1154
- const { data: payoutAssetBalance } = useBalance({
1155
- address: userAddr,
1156
- token: payoutAsset
1157
- });
1179
+ const { data: payoutAssetBalance } = useTokenBalance(payoutAsset, userAddr);
1158
1180
  const { data, ...rest } = useReadContract({
1159
1181
  abi: optionsMarketAbi,
1160
1182
  address: marketAddr,
@@ -1167,7 +1189,7 @@ const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
1167
1189
  });
1168
1190
  const [canExtend, canExercise, canTransfer, canMint, spendingApproval] = data || [];
1169
1191
  const min = (a, b) => a < b ? a : b;
1170
- const effectiveApproval = spendingApproval && payoutAssetBalance ? min(spendingApproval, payoutAssetBalance.value) : 0n;
1192
+ const effectiveApproval = spendingApproval && payoutAssetBalance ? min(spendingApproval, payoutAssetBalance.scaled) : 0n;
1171
1193
  return {
1172
1194
  data: useMemo(() => ({
1173
1195
  canExtend,
@@ -1222,7 +1244,7 @@ const useUserOperators = (userAddr, marketAddr) => {
1222
1244
  const useSetOperatorPerms = (marketAddr) => {
1223
1245
  const queryClient = useQueryClient();
1224
1246
  const client = useClient();
1225
- const { address } = useAccount();
1247
+ const { address } = useConnection();
1226
1248
  const { writeContractAsync } = useWriteContract();
1227
1249
  const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
1228
1250
  if (!client || !address) throw new Error("Wallet not connected");
@@ -1276,12 +1298,14 @@ const useMarketPriceHistory = (marketAddr, resolution, startTimestamp, endTimest
1276
1298
  //#endregion
1277
1299
  //#region src/hooks/vault/useVaultData.ts
1278
1300
  const useVaultData = (vaultAddr) => {
1301
+ const { timelockLens } = useLens();
1279
1302
  const { data } = useReadContract({
1280
- address: vaultAddr,
1281
- abi: singleOwnerVaultAbi,
1282
- 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
1283
1307
  });
1284
- return { pool: data };
1308
+ return data || {};
1285
1309
  };
1286
1310
 
1287
1311
  //#endregion
@@ -1289,8 +1313,8 @@ const useVaultData = (vaultAddr) => {
1289
1313
  const useBurnLiquidity = (vaultAddr) => {
1290
1314
  const client = useClient();
1291
1315
  const { timelockLens } = useLens();
1292
- const { pool } = useVaultData(vaultAddr);
1293
- const currentTick = useCurrentTick(pool);
1316
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1317
+ const currentTick = useCurrentTick(poolManager, poolKey);
1294
1318
  const { writeContractAsync, data: hash, isPending, error } = useWriteContract();
1295
1319
  const { isLoading: isConfirming, isSuccess } = useWaitForTransactionReceipt({ hash });
1296
1320
  const burn = async (tickLower, tickUpper, liquidity) => {
@@ -1388,10 +1412,10 @@ const batchGetAmountsFromLiquidity = (tickLowers, tickUppers, liquidities, curre
1388
1412
  const useMintLiquidity = (vaultAddr) => {
1389
1413
  const queryClient = useQueryClient();
1390
1414
  const client = useClient();
1391
- const { pool } = useVaultData(vaultAddr);
1415
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1392
1416
  const { timelockLens } = useLens();
1393
- const { exact: currentTick } = useCurrentTick(pool);
1394
- const { token0, token1 } = usePoolData(pool);
1417
+ const { exact: currentTick } = useCurrentTick(poolManager, poolKey);
1418
+ const { token0, token1 } = usePoolData(poolManager, poolKey);
1395
1419
  const { askForApproval } = useApproval();
1396
1420
  const { writeContractAsync } = useWriteContract();
1397
1421
  const processApproval = async (params) => {
@@ -1431,8 +1455,8 @@ const useMintLiquidity = (vaultAddr) => {
1431
1455
  //#region src/hooks/vault/useVaultTVL.ts
1432
1456
  const useVaultTVL = (vaultAddr) => {
1433
1457
  const { timelockLens } = useLens();
1434
- const { pool } = useVaultData(vaultAddr);
1435
- const { token0Decimals, token1Decimals } = usePoolData(pool);
1458
+ const { poolManager, poolKey } = useVaultData(vaultAddr);
1459
+ const { token0Decimals, token1Decimals } = usePoolData(poolManager, poolKey);
1436
1460
  const { data, refetch } = useReadContract({
1437
1461
  address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
1438
1462
  abi: lensAbi,
@@ -1442,17 +1466,17 @@ const useVaultTVL = (vaultAddr) => {
1442
1466
  });
1443
1467
  return useMemo(() => {
1444
1468
  if (!token0Decimals || !token1Decimals || !data) return {};
1445
- const totalAmount0 = wrapAmount(data[0], token0Decimals);
1446
- const totalAmount1 = wrapAmount(data[1], token1Decimals);
1447
- const borrowedAmount0 = wrapAmount(data[2], token0Decimals);
1448
- 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);
1449
1473
  return {
1450
- tvl0: wrapAmount(data[4], token0Decimals),
1451
- tvl1: wrapAmount(data[5], token1Decimals),
1452
- totalAmount0,
1453
- totalAmount1,
1454
- borrowedAmount0,
1455
- borrowedAmount1,
1474
+ tvlAs0: wrapAmount(data[4], token0Decimals),
1475
+ tvlAs1: wrapAmount(data[5], token1Decimals),
1476
+ total0,
1477
+ total1,
1478
+ borrowed0,
1479
+ borrowed1,
1456
1480
  blocksCount: data[6],
1457
1481
  refetch
1458
1482
  };
@@ -1465,5 +1489,5 @@ const useVaultTVL = (vaultAddr) => {
1465
1489
  };
1466
1490
 
1467
1491
  //#endregion
1468
- 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 };
1469
1493
  //# sourceMappingURL=client.js.map