timelock-sdk 0.0.131 → 0.0.133
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 +1 -1
- package/dist/abis.d.cts +1 -1
- package/dist/abis.d.ts +1 -1
- package/dist/abis.js +2 -2
- package/dist/{client-Cs5UA8KQ.d.cts → client-BuKYj0pW.d.ts} +3117 -1193
- package/dist/{client-BzO_GBnM.d.ts → client-QYPs5kB7.d.cts} +3381 -1457
- package/dist/client.cjs +75 -105
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +78 -108
- package/dist/client.js.map +1 -1
- package/dist/{optionUtils-CUg_L5bP.js → optionUtils-CQzUsKpO.js} +3 -3
- package/dist/{optionUtils-CUg_L5bP.js.map → optionUtils-CQzUsKpO.js.map} +1 -1
- package/dist/{optionUtils-BQIg6hnc.cjs → optionUtils-OfLzCR6R.cjs} +3 -3
- package/dist/{optionUtils-BQIg6hnc.cjs.map → optionUtils-OfLzCR6R.cjs.map} +1 -1
- package/dist/{optionsMarket-Dkwpa2uO.js → optionsMarket-B2IsvbeA.js} +48 -25
- package/dist/optionsMarket-B2IsvbeA.js.map +1 -0
- package/dist/{optionsMarket-C8-v8IvX.cjs → optionsMarket-C6K82im8.cjs} +48 -25
- package/dist/optionsMarket-C6K82im8.cjs.map +1 -0
- package/dist/package.cjs +2 -2
- package/dist/package.d.cts +2 -2
- package/dist/package.d.ts +2 -2
- package/dist/package.js +2 -2
- package/dist/{singleOwnerVault-BeJChjfJ.js → singleOwnerVault-p81IjmWe.js} +1 -1
- package/dist/{singleOwnerVault-BeJChjfJ.js.map → singleOwnerVault-p81IjmWe.js.map} +1 -1
- package/dist/{uniswapMathLens-DtacRMPz.d.cts → uniswapMathLens-Be6lFJcD.d.cts} +31 -13
- package/dist/{uniswapMathLens-JKcBN1v_.d.ts → uniswapMathLens-DHfzEjej.d.ts} +31 -13
- package/package.json +11 -11
- package/dist/optionsMarket-C8-v8IvX.cjs.map +0 -1
- package/dist/optionsMarket-Dkwpa2uO.js.map +0 -1
package/dist/client.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./uniswapMathLens-
|
|
2
|
-
import { $ as OptionEvent, Ct as OptionData, Dt as useCurrentMarket, Et as TimelockProvider, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useTimelockConfig, Q as MintOptionEvent, St as useExerciseOption, Tt as useClosedUserOptions, 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, 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 useActiveUserOptions, xt as useMarketData } from "./client-
|
|
1
|
+
import "./uniswapMathLens-Be6lFJcD.cjs";
|
|
2
|
+
import { $ as OptionEvent, Ct as OptionData, Dt as useCurrentMarket, Et as TimelockProvider, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useTimelockConfig, Q as MintOptionEvent, St as useExerciseOption, Tt as useClosedUserOptions, 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, 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 useActiveUserOptions, xt as useMarketData } from "./client-QYPs5kB7.cjs";
|
|
3
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, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./uniswapMathLens-
|
|
2
|
-
import { $ as OptionEvent, Ct as OptionData, Dt as useCurrentMarket, Et as TimelockProvider, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useTimelockConfig, Q as MintOptionEvent, St as useExerciseOption, Tt as useClosedUserOptions, 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, 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 useActiveUserOptions, xt as useMarketData } from "./client-
|
|
1
|
+
import "./uniswapMathLens-DHfzEjej.js";
|
|
2
|
+
import { $ as OptionEvent, Ct as OptionData, Dt as useCurrentMarket, Et as TimelockProvider, G as useClosedUserPerps, H as useUserOperators, J as useClosePerp, K as useUserPerps, Ot as useTimelockConfig, Q as MintOptionEvent, St as useExerciseOption, Tt as useClosedUserOptions, 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, 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 useActiveUserOptions, xt as useMarketData } from "./client-BuKYj0pW.js";
|
|
3
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, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, usePriceSqrtPriceX96, useSetOperatorPerms, useTimelockConfig, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
import { r as lensAbi, t as optionsMarketAbi } from "./optionsMarket-
|
|
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
|
|
6
|
-
import { n as uniswapV3PoolAbi, t as singleOwnerVaultAbi } from "./singleOwnerVault-
|
|
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";
|
|
7
7
|
import { encodeAbiParameters, encodeFunctionData, erc20Abi, maxUint256, zeroAddress } from "viem";
|
|
8
8
|
import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
9
9
|
import { useAccount, useBalance, useChainId, useClient, useReadContract, useSignMessage, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
|
|
@@ -526,42 +526,25 @@ const useExerciseOption = (marketAddr) => {
|
|
|
526
526
|
|
|
527
527
|
//#endregion
|
|
528
528
|
//#region src/hooks/options/useMaxPositionSize.ts
|
|
529
|
-
const useMaxPositionSize = (marketAddr,
|
|
529
|
+
const useMaxPositionSize = (marketAddr, maxBorrowableRange = 100) => {
|
|
530
530
|
const { timelockLens } = useLens();
|
|
531
531
|
const { optionAssetDecimals } = useMarketData(marketAddr);
|
|
532
|
-
const { data
|
|
532
|
+
const { data, ...rest } = useReadContract({
|
|
533
533
|
address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
|
|
534
534
|
abi: lensAbi,
|
|
535
|
-
functionName: "
|
|
535
|
+
functionName: "getMaxATMSizes",
|
|
536
536
|
args: [marketAddr, maxBorrowableRange],
|
|
537
537
|
query: { enabled: !!marketAddr && !!timelockLens },
|
|
538
538
|
gas: 100000000n
|
|
539
539
|
});
|
|
540
|
-
const { data: data1, refetch: refetch1 } = useReadContract({
|
|
541
|
-
address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
|
|
542
|
-
abi: lensAbi,
|
|
543
|
-
functionName: "getMaxPositionSize",
|
|
544
|
-
args: [
|
|
545
|
-
marketAddr,
|
|
546
|
-
strikeTick,
|
|
547
|
-
maxBorrowableRange
|
|
548
|
-
],
|
|
549
|
-
query: { enabled: !!marketAddr && !!timelockLens && strikeTick !== void 0 },
|
|
550
|
-
gas: 100000000n
|
|
551
|
-
});
|
|
552
|
-
const data = strikeTick !== void 0 ? data1 : data0;
|
|
553
540
|
const { maxCallSize, maxPutSize } = useMemo(() => data && optionAssetDecimals ? {
|
|
554
541
|
maxCallSize: wrapAmount(data[0], optionAssetDecimals),
|
|
555
542
|
maxPutSize: wrapAmount(data[1], optionAssetDecimals)
|
|
556
543
|
} : {}, [data, optionAssetDecimals]);
|
|
557
|
-
const refetch = () => {
|
|
558
|
-
refetch0();
|
|
559
|
-
refetch1();
|
|
560
|
-
};
|
|
561
544
|
return {
|
|
562
545
|
maxCallSize,
|
|
563
546
|
maxPutSize,
|
|
564
|
-
|
|
547
|
+
...rest
|
|
565
548
|
};
|
|
566
549
|
};
|
|
567
550
|
|
|
@@ -569,7 +552,7 @@ const useMaxPositionSize = (marketAddr, strikeTick, maxBorrowableRange = 100) =>
|
|
|
569
552
|
//#region src/hooks/pool/useCurrentTick.ts
|
|
570
553
|
const useCurrentTick = (poolAddr) => {
|
|
571
554
|
const { tickSpacing } = usePoolData(poolAddr);
|
|
572
|
-
const { data
|
|
555
|
+
const { data, ...rest } = useReadContract({
|
|
573
556
|
address: poolAddr,
|
|
574
557
|
abi: uniswapV3PoolAbi,
|
|
575
558
|
functionName: "slot0",
|
|
@@ -797,7 +780,7 @@ const useUserOptions = (userAddr, marketAddr, active = false) => {
|
|
|
797
780
|
const { graphqlClient } = useTimelockConfig();
|
|
798
781
|
userAddr = userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase();
|
|
799
782
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
800
|
-
const { data
|
|
783
|
+
const { data, ...rest } = useQuery({
|
|
801
784
|
queryKey: [
|
|
802
785
|
"userOptions",
|
|
803
786
|
userAddr || "--",
|
|
@@ -833,7 +816,7 @@ const useUserOptions = (userAddr, marketAddr, active = false) => {
|
|
|
833
816
|
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
834
817
|
});
|
|
835
818
|
return {
|
|
836
|
-
data: data || EMPTY_ARRAY
|
|
819
|
+
data: data || EMPTY_ARRAY,
|
|
837
820
|
...rest
|
|
838
821
|
};
|
|
839
822
|
};
|
|
@@ -891,7 +874,7 @@ const useExtendOption = (marketAddr) => {
|
|
|
891
874
|
const useOptionTimeline = (marketAddr, optionId) => {
|
|
892
875
|
const { graphqlClient } = useTimelockConfig();
|
|
893
876
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
894
|
-
const { data
|
|
877
|
+
const { data, ...rest } = useQuery({
|
|
895
878
|
queryKey: [
|
|
896
879
|
"optionTimeline",
|
|
897
880
|
marketAddr || "--",
|
|
@@ -953,7 +936,7 @@ const useOptionTimeline = (marketAddr, optionId) => {
|
|
|
953
936
|
enabled: !!marketAddr && optionId !== void 0 && !!graphqlClient
|
|
954
937
|
});
|
|
955
938
|
return {
|
|
956
|
-
data: data || EMPTY_ARRAY
|
|
939
|
+
data: data || EMPTY_ARRAY,
|
|
957
940
|
...rest
|
|
958
941
|
};
|
|
959
942
|
};
|
|
@@ -1031,66 +1014,6 @@ const usePerpsOperator = () => {
|
|
|
1031
1014
|
};
|
|
1032
1015
|
};
|
|
1033
1016
|
|
|
1034
|
-
//#endregion
|
|
1035
|
-
//#region src/hooks/operators/useUserOperators.ts
|
|
1036
|
-
const useUserOperators = (userAddr, marketAddr) => {
|
|
1037
|
-
const { graphqlClient } = useTimelockConfig();
|
|
1038
|
-
const { data,...rest } = useQuery({
|
|
1039
|
-
queryKey: [
|
|
1040
|
-
"userOperators",
|
|
1041
|
-
(userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase()) || "--",
|
|
1042
|
-
(marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"
|
|
1043
|
-
],
|
|
1044
|
-
queryFn: async () => {
|
|
1045
|
-
if (!userAddr || !marketAddr) return void 0;
|
|
1046
|
-
return (await graphqlClient.GetUserMarketOperators({
|
|
1047
|
-
userAddr: userAddr.toLowerCase(),
|
|
1048
|
-
marketAddr: marketAddr.toLowerCase()
|
|
1049
|
-
})).UserMarketOperator.map((operator) => ({
|
|
1050
|
-
...operator,
|
|
1051
|
-
spendingApproval: BigInt(operator.spendingApproval),
|
|
1052
|
-
operatorAddr: operator.operator.address.toLowerCase()
|
|
1053
|
-
}));
|
|
1054
|
-
},
|
|
1055
|
-
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
1056
|
-
});
|
|
1057
|
-
return {
|
|
1058
|
-
...rest,
|
|
1059
|
-
data: data || EMPTY_ARRAY$1
|
|
1060
|
-
};
|
|
1061
|
-
};
|
|
1062
|
-
|
|
1063
|
-
//#endregion
|
|
1064
|
-
//#region src/hooks/operators/useSetOperatorPerms.ts
|
|
1065
|
-
const useSetOperatorPerms = (marketAddr) => {
|
|
1066
|
-
const queryClient = useQueryClient();
|
|
1067
|
-
const client = useClient();
|
|
1068
|
-
const { address } = useAccount();
|
|
1069
|
-
const { writeContractAsync } = useWriteContract();
|
|
1070
|
-
const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
|
|
1071
|
-
if (!client || !address) throw new Error("Wallet not connected");
|
|
1072
|
-
if (!marketAddr) throw new Error("Market address not available");
|
|
1073
|
-
const hash = await writeContractAsync({
|
|
1074
|
-
address: marketAddr,
|
|
1075
|
-
abi: optionsMarketAbi,
|
|
1076
|
-
functionName: "setOperatorPerms",
|
|
1077
|
-
args: [
|
|
1078
|
-
operator,
|
|
1079
|
-
canExtend,
|
|
1080
|
-
canExercise,
|
|
1081
|
-
canTransfer,
|
|
1082
|
-
canMint,
|
|
1083
|
-
spendingApproval
|
|
1084
|
-
]
|
|
1085
|
-
});
|
|
1086
|
-
await waitForTransactionReceipt(client, { hash });
|
|
1087
|
-
queryClient.invalidateQueries({ queryKey: ["userOperators"] });
|
|
1088
|
-
queryClient.invalidateQueries({ queryKey: ["readContract"] });
|
|
1089
|
-
return hash;
|
|
1090
|
-
};
|
|
1091
|
-
return useMutation({ mutationFn: setOperatorPerms });
|
|
1092
|
-
};
|
|
1093
|
-
|
|
1094
1017
|
//#endregion
|
|
1095
1018
|
//#region src/hooks/perps/useMintPerp.ts
|
|
1096
1019
|
const useMintPerp = (marketAddr) => {
|
|
@@ -1099,13 +1022,9 @@ const useMintPerp = (marketAddr) => {
|
|
|
1099
1022
|
const { address } = useAccount();
|
|
1100
1023
|
const { operator, address: operatorAddr, signMessage: { mutateAsync: signMessage } } = usePerpsOperator();
|
|
1101
1024
|
const { askForApproval } = useApproval();
|
|
1102
|
-
const { data: operators } = useUserOperators(address, marketAddr);
|
|
1103
|
-
const { mutateAsync: setOperatorPerms } = useSetOperatorPerms(marketAddr);
|
|
1104
1025
|
const { pool, optionAssetIsToken0, payoutAsset } = useMarketData(marketAddr);
|
|
1105
1026
|
const { tickSpacing } = usePoolData(pool);
|
|
1106
1027
|
const { refetch: refetchCurrentTick } = useCurrentTick(pool);
|
|
1107
|
-
const userPerms = operatorAddr ? operators.find((o) => o.operatorAddr.toLowerCase() === operatorAddr.toLowerCase()) : void 0;
|
|
1108
|
-
const hasEnoughPerms = userPerms && userPerms.canMint && userPerms.canExtend && userPerms.canExercise;
|
|
1109
1028
|
const mintPerp = async (data) => {
|
|
1110
1029
|
const { optionType, amount, duration, strikeTick } = data;
|
|
1111
1030
|
if (!client || !address) throw new Error("Wallet not connected");
|
|
@@ -1125,16 +1044,7 @@ const useMintPerp = (marketAddr) => {
|
|
|
1125
1044
|
duration,
|
|
1126
1045
|
0
|
|
1127
1046
|
]);
|
|
1128
|
-
|
|
1129
|
-
if (!hasEnoughPerms) await setOperatorPerms({
|
|
1130
|
-
operator: operatorAddr,
|
|
1131
|
-
canMint: true,
|
|
1132
|
-
canExtend: true,
|
|
1133
|
-
canExercise: true,
|
|
1134
|
-
canTransfer: (userPerms === null || userPerms === void 0 ? void 0 : userPerms.canTransfer) || false,
|
|
1135
|
-
spendingApproval: maxPremium
|
|
1136
|
-
});
|
|
1137
|
-
await askForApproval(payoutAsset, marketAddr, maxPremium);
|
|
1047
|
+
await askForApproval(payoutAsset, marketAddr, (premium + protocolFee) * 11n / 10n);
|
|
1138
1048
|
await operator.mintPerp({
|
|
1139
1049
|
marketAddr,
|
|
1140
1050
|
amount,
|
|
@@ -1168,12 +1078,12 @@ const useClosePerp = () => {
|
|
|
1168
1078
|
|
|
1169
1079
|
//#endregion
|
|
1170
1080
|
//#region src/hooks/perps/useUserPerps.ts
|
|
1171
|
-
const EMPTY_ARRAY = [];
|
|
1081
|
+
const EMPTY_ARRAY$1 = [];
|
|
1172
1082
|
const useUserPerps = (marketAddr, userAddr, type) => {
|
|
1173
1083
|
const { operator } = usePerpsOperator();
|
|
1174
1084
|
userAddr = userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase();
|
|
1175
1085
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
1176
|
-
const { data
|
|
1086
|
+
const { data, ...rest } = useQuery({
|
|
1177
1087
|
queryKey: [
|
|
1178
1088
|
"userPerps",
|
|
1179
1089
|
type,
|
|
@@ -1186,7 +1096,7 @@ const useUserPerps = (marketAddr, userAddr, type) => {
|
|
|
1186
1096
|
refetchInterval: 1e4
|
|
1187
1097
|
});
|
|
1188
1098
|
return {
|
|
1189
|
-
data: data || EMPTY_ARRAY,
|
|
1099
|
+
data: data || EMPTY_ARRAY$1,
|
|
1190
1100
|
...rest
|
|
1191
1101
|
};
|
|
1192
1102
|
};
|
|
@@ -1205,7 +1115,7 @@ const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
|
|
|
1205
1115
|
address: userAddr,
|
|
1206
1116
|
token: payoutAsset
|
|
1207
1117
|
});
|
|
1208
|
-
const { data
|
|
1118
|
+
const { data, ...rest } = useReadContract({
|
|
1209
1119
|
abi: optionsMarketAbi,
|
|
1210
1120
|
address: marketAddr,
|
|
1211
1121
|
functionName: "operatorPerms",
|
|
@@ -1238,6 +1148,66 @@ const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
|
|
|
1238
1148
|
};
|
|
1239
1149
|
};
|
|
1240
1150
|
|
|
1151
|
+
//#endregion
|
|
1152
|
+
//#region src/hooks/operators/useUserOperators.ts
|
|
1153
|
+
const useUserOperators = (userAddr, marketAddr) => {
|
|
1154
|
+
const { graphqlClient } = useTimelockConfig();
|
|
1155
|
+
const { data, ...rest } = useQuery({
|
|
1156
|
+
queryKey: [
|
|
1157
|
+
"userOperators",
|
|
1158
|
+
(userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase()) || "--",
|
|
1159
|
+
(marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"
|
|
1160
|
+
],
|
|
1161
|
+
queryFn: async () => {
|
|
1162
|
+
if (!userAddr || !marketAddr) return void 0;
|
|
1163
|
+
return (await graphqlClient.GetUserMarketOperators({
|
|
1164
|
+
userAddr: userAddr.toLowerCase(),
|
|
1165
|
+
marketAddr: marketAddr.toLowerCase()
|
|
1166
|
+
})).UserMarketOperator.map((operator) => ({
|
|
1167
|
+
...operator,
|
|
1168
|
+
spendingApproval: BigInt(operator.spendingApproval),
|
|
1169
|
+
operatorAddr: operator.operator.address.toLowerCase()
|
|
1170
|
+
}));
|
|
1171
|
+
},
|
|
1172
|
+
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
1173
|
+
});
|
|
1174
|
+
return {
|
|
1175
|
+
...rest,
|
|
1176
|
+
data: data || EMPTY_ARRAY
|
|
1177
|
+
};
|
|
1178
|
+
};
|
|
1179
|
+
|
|
1180
|
+
//#endregion
|
|
1181
|
+
//#region src/hooks/operators/useSetOperatorPerms.ts
|
|
1182
|
+
const useSetOperatorPerms = (marketAddr) => {
|
|
1183
|
+
const queryClient = useQueryClient();
|
|
1184
|
+
const client = useClient();
|
|
1185
|
+
const { address } = useAccount();
|
|
1186
|
+
const { writeContractAsync } = useWriteContract();
|
|
1187
|
+
const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
|
|
1188
|
+
if (!client || !address) throw new Error("Wallet not connected");
|
|
1189
|
+
if (!marketAddr) throw new Error("Market address not available");
|
|
1190
|
+
const hash = await writeContractAsync({
|
|
1191
|
+
address: marketAddr,
|
|
1192
|
+
abi: optionsMarketAbi,
|
|
1193
|
+
functionName: "setOperatorPerms",
|
|
1194
|
+
args: [
|
|
1195
|
+
operator,
|
|
1196
|
+
canExtend,
|
|
1197
|
+
canExercise,
|
|
1198
|
+
canTransfer,
|
|
1199
|
+
canMint,
|
|
1200
|
+
spendingApproval
|
|
1201
|
+
]
|
|
1202
|
+
});
|
|
1203
|
+
await waitForTransactionReceipt(client, { hash });
|
|
1204
|
+
queryClient.invalidateQueries({ queryKey: ["userOperators"] });
|
|
1205
|
+
queryClient.invalidateQueries({ queryKey: ["readContract"] });
|
|
1206
|
+
return hash;
|
|
1207
|
+
};
|
|
1208
|
+
return useMutation({ mutationFn: setOperatorPerms });
|
|
1209
|
+
};
|
|
1210
|
+
|
|
1241
1211
|
//#endregion
|
|
1242
1212
|
//#region src/hooks/pool/usePriceHistory.ts
|
|
1243
1213
|
const usePriceHistory = (pool, token, resolution, startTimestamp, endTimestamp) => {
|
|
@@ -1341,7 +1311,7 @@ const useBurnLiquidity = (vaultAddr) => {
|
|
|
1341
1311
|
//#region src/hooks/vault/useLiquidityBlocks.ts
|
|
1342
1312
|
const useLiquidityBlocks = (vaultAddr) => {
|
|
1343
1313
|
const { timelockLens } = useLens();
|
|
1344
|
-
const { data: blocks = []
|
|
1314
|
+
const { data: blocks = [], ...rest } = useReadContract({
|
|
1345
1315
|
address: timelockLens === null || timelockLens === void 0 ? void 0 : timelockLens.address,
|
|
1346
1316
|
abi: lensAbi,
|
|
1347
1317
|
functionName: "getAllBlocks",
|