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.
- package/dist/abis.cjs +602 -3
- package/dist/abis.cjs.map +1 -0
- package/dist/abis.d.cts +354 -90
- package/dist/abis.d.ts +354 -90
- package/dist/abis.js +602 -3
- package/dist/abis.js.map +1 -0
- package/dist/{client-CJcTIGGv.d.cts → client-B7kKAk49.d.cts} +44622 -34761
- package/dist/{client-CZdmjIOb.d.ts → client-D4EJlSs_.d.ts} +44623 -34762
- package/dist/client.cjs +88 -74
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +3 -3
- package/dist/client.d.ts +3 -3
- package/dist/client.js +87 -75
- package/dist/client.js.map +1 -1
- package/dist/optionUtils-B0rlRtfb.js +1401 -0
- package/dist/optionUtils-B0rlRtfb.js.map +1 -0
- package/dist/{optionUtils-OfLzCR6R.cjs → optionUtils-pH0o9gTm.cjs} +1069 -37
- package/dist/optionUtils-pH0o9gTm.cjs.map +1 -0
- package/dist/{optionsMarket-B2IsvbeA.js → optionsMarket-CjlRzn2K.js} +213 -21
- package/dist/optionsMarket-CjlRzn2K.js.map +1 -0
- package/dist/{optionsMarket-C6K82im8.cjs → optionsMarket-iZiYJCuW.cjs} +213 -21
- package/dist/optionsMarket-iZiYJCuW.cjs.map +1 -0
- package/dist/package.cjs +5 -6
- package/dist/package.d.cts +3 -3
- package/dist/package.d.ts +3 -3
- package/dist/package.js +3 -3
- package/dist/singleOwnerVault-BJyEs_D_.js +847 -0
- package/dist/singleOwnerVault-BJyEs_D_.js.map +1 -0
- package/dist/singleOwnerVault-GCpQV7pN.cjs +853 -0
- package/dist/singleOwnerVault-GCpQV7pN.cjs.map +1 -0
- package/dist/{uniswapMathLens-DHfzEjej.d.ts → uniswapMathLens-B0xWynAN.d.cts} +182 -21
- package/dist/{uniswapMathLens-Be6lFJcD.d.cts → uniswapMathLens-DAI2a8aU.d.ts} +182 -21
- package/package.json +38 -38
- package/dist/optionUtils-CQzUsKpO.js +0 -369
- package/dist/optionUtils-CQzUsKpO.js.map +0 -1
- package/dist/optionUtils-OfLzCR6R.cjs.map +0 -1
- package/dist/optionsMarket-B2IsvbeA.js.map +0 -1
- package/dist/optionsMarket-C6K82im8.cjs.map +0 -1
- package/dist/singleOwnerVault-gf2zNZVk.cjs +0 -1131
- package/dist/singleOwnerVault-gf2zNZVk.cjs.map +0 -1
- package/dist/singleOwnerVault-p81IjmWe.js +0 -1119
- package/dist/singleOwnerVault-p81IjmWe.js.map +0 -1
package/dist/client.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./uniswapMathLens-
|
|
2
|
-
import { $ as
|
|
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-
|
|
2
|
-
import { $ as
|
|
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-
|
|
5
|
-
import { A as
|
|
6
|
-
import {
|
|
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
|
-
|
|
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 = (
|
|
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:
|
|
495
|
-
query: { enabled: !!
|
|
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 } =
|
|
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: ["
|
|
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
|
-
|
|
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 = (
|
|
606
|
-
const { tickSpacing } = usePoolData(
|
|
585
|
+
const useCurrentTick = (poolManager, poolKey) => {
|
|
586
|
+
const { tickSpacing } = usePoolData(poolManager, poolKey);
|
|
607
587
|
const { data, ...rest } = useReadContract({
|
|
608
|
-
address:
|
|
609
|
-
abi:
|
|
610
|
-
functionName: "
|
|
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
|
|
616
|
-
const exact = raw
|
|
596
|
+
const sqrtPriceX96 = raw[0];
|
|
597
|
+
const exact = raw[1];
|
|
617
598
|
return {
|
|
618
599
|
exact,
|
|
619
|
-
rounded:
|
|
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 } =
|
|
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 } =
|
|
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 =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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.
|
|
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 } =
|
|
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:
|
|
1293
|
-
abi:
|
|
1294
|
-
functionName: "
|
|
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
|
|
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 {
|
|
1305
|
-
const currentTick = useCurrentTick(
|
|
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 {
|
|
1415
|
+
const { poolManager, poolKey } = useVaultData(vaultAddr);
|
|
1404
1416
|
const { timelockLens } = useLens();
|
|
1405
|
-
const { exact: currentTick } = useCurrentTick(
|
|
1406
|
-
const { token0, token1 } = usePoolData(
|
|
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 {
|
|
1447
|
-
const { token0Decimals, token1Decimals } = usePoolData(
|
|
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
|
|
1458
|
-
const
|
|
1459
|
-
const
|
|
1460
|
-
const
|
|
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
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
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
|