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.
- 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-DXq_0YH-.d.cts → client-B7kKAk49.d.cts} +38760 -28899
- package/dist/{client-BQGLnbLD.d.ts → client-D4EJlSs_.d.ts} +38760 -28899
- package/dist/client.cjs +86 -60
- 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 +85 -61
- 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");
|
|
@@ -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 = (
|
|
594
|
-
const { tickSpacing } = usePoolData(
|
|
585
|
+
const useCurrentTick = (poolManager, poolKey) => {
|
|
586
|
+
const { tickSpacing } = usePoolData(poolManager, poolKey);
|
|
595
587
|
const { data, ...rest } = useReadContract({
|
|
596
|
-
address:
|
|
597
|
-
abi:
|
|
598
|
-
functionName: "
|
|
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
|
|
604
|
-
const exact = raw
|
|
596
|
+
const sqrtPriceX96 = raw[0];
|
|
597
|
+
const exact = raw[1];
|
|
605
598
|
return {
|
|
606
599
|
exact,
|
|
607
|
-
rounded:
|
|
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 } =
|
|
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 } =
|
|
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 =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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 } =
|
|
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.
|
|
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 } =
|
|
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:
|
|
1281
|
-
abi:
|
|
1282
|
-
functionName: "
|
|
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
|
|
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 {
|
|
1293
|
-
const currentTick = useCurrentTick(
|
|
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 {
|
|
1415
|
+
const { poolManager, poolKey } = useVaultData(vaultAddr);
|
|
1392
1416
|
const { timelockLens } = useLens();
|
|
1393
|
-
const { exact: currentTick } = useCurrentTick(
|
|
1394
|
-
const { token0, token1 } = usePoolData(
|
|
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 {
|
|
1435
|
-
const { token0Decimals, token1Decimals } = usePoolData(
|
|
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
|
|
1446
|
-
const
|
|
1447
|
-
const
|
|
1448
|
-
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);
|
|
1449
1473
|
return {
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
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
|