timelock-sdk 0.0.177 → 0.0.179
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/{client-BFfw9ee6.d.cts → client-8sps6WQZ.d.cts} +223 -4274
- package/dist/{client-BiwrAgwX.d.ts → client-CMpyJqb-.d.ts} +807 -4858
- package/dist/client.cjs +82 -85
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +82 -85
- package/dist/client.js.map +1 -1
- package/dist/{optionUtils-BHU2evq2.cjs → optionUtils-013IznJO.cjs} +1 -8
- package/dist/optionUtils-013IznJO.cjs.map +1 -0
- package/dist/{optionUtils-DV3VdMvm.js → optionUtils-BOHupq5Q.js} +2 -3
- package/dist/optionUtils-BOHupq5Q.js.map +1 -0
- package/dist/package.cjs +1 -2
- package/dist/package.d.cts +2 -2
- package/dist/package.d.ts +2 -2
- package/dist/package.js +2 -2
- package/package.json +1 -1
- package/dist/optionUtils-BHU2evq2.cjs.map +0 -1
- package/dist/optionUtils-DV3VdMvm.js.map +0 -1
package/dist/client.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./optionsMarket-c4hgszY_.cjs";
|
|
2
|
-
import { A as useCurrentPrice, Bt as
|
|
2
|
+
import { A as useCurrentPrice, Bt as useMarketState, C as useLiquidityBlocks, Ct as useMintOption, D as usePriceAtSqrtPriceX96, E as usePriceHistory, Ht as TimelockProvider, M as UniswapPoolData, N as usePoolData, O as usePriceAtTick, S as LiquidityBlockData, St as useClosedUserOptions, T as useMarketPriceHistory, Ut as useCurrentMarket, Vt as useMarketData, Wt as useTimelockConfig, _ as useTokenData, _t as useOptionPremium, a as OptionPricingParams, at as useActiveUserPerps, b as batchGetAmountsFromLiquidity, bt as OptionData, c as usePricingParams, ct as usePerpsOperator, d as usePauseMarketTrading, dt as ExerciseOptionEvent, f as usePauseGlobalTrading, ft as ExtendEvent, g as TokenData, gt as useExtendOption, h as useTokenBalance, ht as useOptionTimeline, i as useOptionPricingParams, it as useOperatorPerms, j as PoolKey, k as useCurrentTick, l as useUpdateMarketFees, lt as useClosePerp, m as useApproval, mt as OptionEvent, n as useUpdateMarketPricing, nt as useSetOperatorPerms, o as PricingParams, ot as useClosedUserPerps, p as useGuardianGlobalState, pt as MintOptionEvent, r as useStaticPricingParams, rt as useUserOperators, s as StaticPricingParams, st as useUserPerps, t as useLens, u as useFeeRates, ut as useMintPerp, v as useVaultTVL, vt as useOptionPnl, w as useBurnLiquidity, wt as useMaxPositionSize, x as useMintLiquidity, xt as useActiveUserOptions, y as useVaultData, yt as useExerciseOption, zt as useMarketVolume } from "./client-8sps6WQZ.cjs";
|
|
3
3
|
export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, OptionPricingParams, PoolKey, PricingParams, StaticPricingParams, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useFeeRates, useGuardianGlobalState, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketState, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionPricingParams, useOptionTimeline, usePauseGlobalTrading, usePauseMarketTrading, usePerpsOperator, usePoolData, usePriceAtSqrtPriceX96, usePriceAtTick, usePriceHistory, usePricingParams, useSetOperatorPerms, useStaticPricingParams, useTimelockConfig, useTokenBalance, useTokenData, useUpdateMarketFees, useUpdateMarketPricing, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./optionsMarket-2HZ-p_dl.js";
|
|
2
|
-
import { A as useCurrentPrice, Bt as
|
|
2
|
+
import { A as useCurrentPrice, Bt as useMarketState, C as useLiquidityBlocks, Ct as useMintOption, D as usePriceAtSqrtPriceX96, E as usePriceHistory, Ht as TimelockProvider, M as UniswapPoolData, N as usePoolData, O as usePriceAtTick, S as LiquidityBlockData, St as useClosedUserOptions, T as useMarketPriceHistory, Ut as useCurrentMarket, Vt as useMarketData, Wt as useTimelockConfig, _ as useTokenData, _t as useOptionPremium, a as OptionPricingParams, at as useActiveUserPerps, b as batchGetAmountsFromLiquidity, bt as OptionData, c as usePricingParams, ct as usePerpsOperator, d as usePauseMarketTrading, dt as ExerciseOptionEvent, f as usePauseGlobalTrading, ft as ExtendEvent, g as TokenData, gt as useExtendOption, h as useTokenBalance, ht as useOptionTimeline, i as useOptionPricingParams, it as useOperatorPerms, j as PoolKey, k as useCurrentTick, l as useUpdateMarketFees, lt as useClosePerp, m as useApproval, mt as OptionEvent, n as useUpdateMarketPricing, nt as useSetOperatorPerms, o as PricingParams, ot as useClosedUserPerps, p as useGuardianGlobalState, pt as MintOptionEvent, r as useStaticPricingParams, rt as useUserOperators, s as StaticPricingParams, st as useUserPerps, t as useLens, u as useFeeRates, ut as useMintPerp, v as useVaultTVL, vt as useOptionPnl, w as useBurnLiquidity, wt as useMaxPositionSize, x as useMintLiquidity, xt as useActiveUserOptions, y as useVaultData, yt as useExerciseOption, zt as useMarketVolume } from "./client-CMpyJqb-.js";
|
|
3
3
|
export { ExerciseOptionEvent, ExtendEvent, LiquidityBlockData, MintOptionEvent, OptionData, OptionEvent, OptionPricingParams, PoolKey, PricingParams, StaticPricingParams, TimelockProvider, TokenData, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useActiveUserPerps, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useClosedUserPerps, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useFeeRates, useGuardianGlobalState, useLens, useLiquidityBlocks, useMarketData, useMarketPriceHistory, useMarketState, useMarketVolume, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOperatorPerms, useOptionPnl, useOptionPremium, useOptionPricingParams, useOptionTimeline, usePauseGlobalTrading, usePauseMarketTrading, usePerpsOperator, usePoolData, usePriceAtSqrtPriceX96, usePriceAtTick, usePriceHistory, usePricingParams, useSetOperatorPerms, useStaticPricingParams, useTimelockConfig, useTokenBalance, useTokenData, useUpdateMarketFees, useUpdateMarketPricing, useUserOperators, useUserPerps, useVaultData, useVaultTVL };
|
package/dist/client.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
import { i as erc20Abi$1, n as optionsMarketAbi, r as lensAbi, t as statelessStateViewAbi } from "./statelessStateView-MGdfMvC4.js";
|
|
5
|
-
import { A as
|
|
5
|
+
import { A as token1ToToken0AtTick, B as timelockFactories, D as token0ToToken1, E as roundTick, F as getTimelockLens, I as getTimelockMarket, M as getPriceHistory, N as getErc20, O as token0ToToken1AtTick, P as getStateView, _ as getAmountsFromLiquidity, b as getPriceAtTick, d as wrapAmount, k as token1ToToken0, p as wrapPrice, t as getPayoutAtPrice, v as getNearestValidStrikeTick, y as getPriceAtSqrtPriceX96, z as swappers } from "./optionUtils-BOHupq5Q.js";
|
|
6
6
|
import { n as guardianAbi, r as singleOwnerVaultAbi, t as factoryAbi } from "./factory-y-iVl_er.js";
|
|
7
7
|
import { decodeAbiParameters, decodeEventLog, encodeAbiParameters, encodeFunctionData, erc20Abi, maxUint256, zeroAddress } from "viem";
|
|
8
8
|
import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
@@ -846,7 +846,7 @@ const useUserOptions = (userAddr, marketAddr, active = false) => {
|
|
|
846
846
|
const { graphqlClient } = useTimelockConfig();
|
|
847
847
|
userAddr = userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase();
|
|
848
848
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
849
|
-
|
|
849
|
+
return useQuery({
|
|
850
850
|
queryKey: [
|
|
851
851
|
"userOptions",
|
|
852
852
|
userAddr || "--",
|
|
@@ -881,10 +881,6 @@ const useUserOptions = (userAddr, marketAddr, active = false) => {
|
|
|
881
881
|
},
|
|
882
882
|
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
883
883
|
});
|
|
884
|
-
return {
|
|
885
|
-
data: data || EMPTY_ARRAY,
|
|
886
|
-
...rest
|
|
887
|
-
};
|
|
888
884
|
};
|
|
889
885
|
const useActiveUserOptions = (userAddr, marketAddr) => {
|
|
890
886
|
return useUserOptions(userAddr, marketAddr, true);
|
|
@@ -940,7 +936,7 @@ const useExtendOption = (marketAddr) => {
|
|
|
940
936
|
const useOptionTimeline = (marketAddr, optionId) => {
|
|
941
937
|
const { graphqlClient } = useTimelockConfig();
|
|
942
938
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
943
|
-
|
|
939
|
+
return useQuery({
|
|
944
940
|
queryKey: [
|
|
945
941
|
"optionTimeline",
|
|
946
942
|
marketAddr || "--",
|
|
@@ -985,26 +981,22 @@ const useOptionTimeline = (marketAddr, optionId) => {
|
|
|
985
981
|
transactionHash: event.transactionHash
|
|
986
982
|
}));
|
|
987
983
|
return [
|
|
988
|
-
...mintEvents.map((data
|
|
984
|
+
...mintEvents.map((data) => ({
|
|
989
985
|
type: "mint",
|
|
990
|
-
data
|
|
986
|
+
data
|
|
991
987
|
})),
|
|
992
|
-
...exerciseEvents.map((data
|
|
988
|
+
...exerciseEvents.map((data) => ({
|
|
993
989
|
type: "exercise",
|
|
994
|
-
data
|
|
990
|
+
data
|
|
995
991
|
})),
|
|
996
|
-
...extendEvents.map((data
|
|
992
|
+
...extendEvents.map((data) => ({
|
|
997
993
|
type: "extend",
|
|
998
|
-
data
|
|
994
|
+
data
|
|
999
995
|
}))
|
|
1000
996
|
].sort((a, b) => a.data.timestamp.getTime() - b.data.timestamp.getTime());
|
|
1001
997
|
},
|
|
1002
998
|
enabled: !!marketAddr && optionId !== void 0 && !!graphqlClient
|
|
1003
999
|
});
|
|
1004
|
-
return {
|
|
1005
|
-
data: data || EMPTY_ARRAY,
|
|
1006
|
-
...rest
|
|
1007
|
-
};
|
|
1008
1000
|
};
|
|
1009
1001
|
|
|
1010
1002
|
//#endregion
|
|
@@ -1080,6 +1072,62 @@ const usePerpsOperator = () => {
|
|
|
1080
1072
|
};
|
|
1081
1073
|
};
|
|
1082
1074
|
|
|
1075
|
+
//#endregion
|
|
1076
|
+
//#region src/hooks/operators/useUserOperators.ts
|
|
1077
|
+
const useUserOperators = (userAddr, marketAddr) => {
|
|
1078
|
+
const { graphqlClient } = useTimelockConfig();
|
|
1079
|
+
return useQuery({
|
|
1080
|
+
queryKey: [
|
|
1081
|
+
"userOperators",
|
|
1082
|
+
(userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase()) || "--",
|
|
1083
|
+
(marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"
|
|
1084
|
+
],
|
|
1085
|
+
queryFn: async () => {
|
|
1086
|
+
if (!userAddr || !marketAddr) return void 0;
|
|
1087
|
+
return (await graphqlClient.GetUserMarketOperators({
|
|
1088
|
+
userAddr: userAddr.toLowerCase(),
|
|
1089
|
+
marketAddr: marketAddr.toLowerCase()
|
|
1090
|
+
})).UserMarketOperator.map((operator) => ({
|
|
1091
|
+
...operator,
|
|
1092
|
+
spendingApproval: BigInt(operator.spendingApproval),
|
|
1093
|
+
operatorAddr: operator.operator.address.toLowerCase()
|
|
1094
|
+
}));
|
|
1095
|
+
},
|
|
1096
|
+
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
1097
|
+
});
|
|
1098
|
+
};
|
|
1099
|
+
|
|
1100
|
+
//#endregion
|
|
1101
|
+
//#region src/hooks/operators/useSetOperatorPerms.ts
|
|
1102
|
+
const useSetOperatorPerms = (marketAddr) => {
|
|
1103
|
+
const queryClient = useQueryClient();
|
|
1104
|
+
const client = useClient();
|
|
1105
|
+
const { address } = useConnection();
|
|
1106
|
+
const { writeContractAsync } = useWriteContract();
|
|
1107
|
+
const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
|
|
1108
|
+
if (!client || !address) throw new Error("Wallet not connected");
|
|
1109
|
+
if (!marketAddr) throw new Error("Market address not available");
|
|
1110
|
+
const hash = await writeContractAsync({
|
|
1111
|
+
address: marketAddr,
|
|
1112
|
+
abi: optionsMarketAbi,
|
|
1113
|
+
functionName: "setOperatorPerms",
|
|
1114
|
+
args: [
|
|
1115
|
+
operator,
|
|
1116
|
+
canExtend,
|
|
1117
|
+
canExercise,
|
|
1118
|
+
canTransfer,
|
|
1119
|
+
canMint,
|
|
1120
|
+
spendingApproval
|
|
1121
|
+
]
|
|
1122
|
+
});
|
|
1123
|
+
await waitForTransactionReceipt(client, { hash });
|
|
1124
|
+
queryClient.invalidateQueries({ queryKey: ["userOperators"] });
|
|
1125
|
+
queryClient.invalidateQueries({ queryKey: ["readContract"] });
|
|
1126
|
+
return hash;
|
|
1127
|
+
};
|
|
1128
|
+
return useMutation({ mutationFn: setOperatorPerms });
|
|
1129
|
+
};
|
|
1130
|
+
|
|
1083
1131
|
//#endregion
|
|
1084
1132
|
//#region src/hooks/perps/useMintPerp.ts
|
|
1085
1133
|
const useMintPerp = (marketAddr) => {
|
|
@@ -1087,9 +1135,11 @@ const useMintPerp = (marketAddr) => {
|
|
|
1087
1135
|
const client = useClient();
|
|
1088
1136
|
const { address } = useConnection();
|
|
1089
1137
|
const { operator, address: operatorAddr, signMessage: { mutateAsync: signMessage } } = usePerpsOperator();
|
|
1090
|
-
const { askForApproval } = useApproval();
|
|
1091
1138
|
const { poolManager, poolKey, optionAssetIsToken0, payoutAsset } = useMarketData(marketAddr);
|
|
1092
1139
|
const { tickSpacing } = usePoolData(poolManager, poolKey);
|
|
1140
|
+
const { askForApproval } = useApproval();
|
|
1141
|
+
const { mutateAsync: setOperatorPerms } = useSetOperatorPerms(marketAddr);
|
|
1142
|
+
const { refetch: refetchOperators } = useUserOperators(address, marketAddr);
|
|
1093
1143
|
const { refetch: refetchCurrentTick } = useCurrentTick(poolManager, poolKey);
|
|
1094
1144
|
const mintPerp = async (data) => {
|
|
1095
1145
|
const { optionType, amount, duration, strikeTick } = data;
|
|
@@ -1102,6 +1152,9 @@ const useMintPerp = (marketAddr) => {
|
|
|
1102
1152
|
const market = getTimelockMarket(marketAddr, client);
|
|
1103
1153
|
const { data: { currentTick } = {} } = await refetchCurrentTick();
|
|
1104
1154
|
if (currentTick === void 0) throw new Error("Could not fetch current tick");
|
|
1155
|
+
const { data: operators = [] } = await refetchOperators();
|
|
1156
|
+
const userPerms = operatorAddr ? operators.find((o) => o.operatorAddr.toLowerCase() === operatorAddr.toLowerCase()) : void 0;
|
|
1157
|
+
const hasEnoughPerms = userPerms && userPerms.canMint && userPerms.canExtend && userPerms.canExercise;
|
|
1105
1158
|
const validStrikeTick = getNearestValidStrikeTick(optionType, optionAssetIsToken0, tickSpacing, currentTick, strikeTick);
|
|
1106
1159
|
const [premium, protocolFee] = await market.read.calculatePremium([
|
|
1107
1160
|
optionType === "CALL" ? 0 : 1,
|
|
@@ -1110,7 +1163,16 @@ const useMintPerp = (marketAddr) => {
|
|
|
1110
1163
|
duration,
|
|
1111
1164
|
0
|
|
1112
1165
|
]);
|
|
1113
|
-
|
|
1166
|
+
const maxPremium = (premium + protocolFee) * 11n / 10n;
|
|
1167
|
+
if (!hasEnoughPerms) await setOperatorPerms({
|
|
1168
|
+
operator: operatorAddr,
|
|
1169
|
+
canMint: true,
|
|
1170
|
+
canExtend: true,
|
|
1171
|
+
canExercise: true,
|
|
1172
|
+
canTransfer: (userPerms === null || userPerms === void 0 ? void 0 : userPerms.canTransfer) || false,
|
|
1173
|
+
spendingApproval: maxPremium
|
|
1174
|
+
});
|
|
1175
|
+
await askForApproval(payoutAsset, marketAddr, maxPremium);
|
|
1114
1176
|
await operator.mintPerp({
|
|
1115
1177
|
marketAddr,
|
|
1116
1178
|
amount,
|
|
@@ -1144,12 +1206,11 @@ const useClosePerp = () => {
|
|
|
1144
1206
|
|
|
1145
1207
|
//#endregion
|
|
1146
1208
|
//#region src/hooks/perps/useUserPerps.ts
|
|
1147
|
-
const EMPTY_ARRAY$1 = [];
|
|
1148
1209
|
const useUserPerps = (marketAddr, userAddr, type) => {
|
|
1149
1210
|
const { operator } = usePerpsOperator();
|
|
1150
1211
|
userAddr = userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase();
|
|
1151
1212
|
marketAddr = marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase();
|
|
1152
|
-
|
|
1213
|
+
return useQuery({
|
|
1153
1214
|
queryKey: [
|
|
1154
1215
|
"userPerps",
|
|
1155
1216
|
type,
|
|
@@ -1161,10 +1222,6 @@ const useUserPerps = (marketAddr, userAddr, type) => {
|
|
|
1161
1222
|
staleTime: 1e4,
|
|
1162
1223
|
refetchInterval: 1e4
|
|
1163
1224
|
});
|
|
1164
|
-
return {
|
|
1165
|
-
data: data || EMPTY_ARRAY$1,
|
|
1166
|
-
...rest
|
|
1167
|
-
};
|
|
1168
1225
|
};
|
|
1169
1226
|
const useActiveUserPerps = (marketAddr, userAddr) => {
|
|
1170
1227
|
return useUserPerps(marketAddr, userAddr, "active");
|
|
@@ -1243,66 +1300,6 @@ const useOperatorPerms = (marketAddr, userAddr, operatorAddr) => {
|
|
|
1243
1300
|
};
|
|
1244
1301
|
};
|
|
1245
1302
|
|
|
1246
|
-
//#endregion
|
|
1247
|
-
//#region src/hooks/operators/useUserOperators.ts
|
|
1248
|
-
const useUserOperators = (userAddr, marketAddr) => {
|
|
1249
|
-
const { graphqlClient } = useTimelockConfig();
|
|
1250
|
-
const { data, ...rest } = useQuery({
|
|
1251
|
-
queryKey: [
|
|
1252
|
-
"userOperators",
|
|
1253
|
-
(userAddr === null || userAddr === void 0 ? void 0 : userAddr.toLowerCase()) || "--",
|
|
1254
|
-
(marketAddr === null || marketAddr === void 0 ? void 0 : marketAddr.toLowerCase()) || "--"
|
|
1255
|
-
],
|
|
1256
|
-
queryFn: async () => {
|
|
1257
|
-
if (!userAddr || !marketAddr) return void 0;
|
|
1258
|
-
return (await graphqlClient.GetUserMarketOperators({
|
|
1259
|
-
userAddr: userAddr.toLowerCase(),
|
|
1260
|
-
marketAddr: marketAddr.toLowerCase()
|
|
1261
|
-
})).UserMarketOperator.map((operator) => ({
|
|
1262
|
-
...operator,
|
|
1263
|
-
spendingApproval: BigInt(operator.spendingApproval),
|
|
1264
|
-
operatorAddr: operator.operator.address.toLowerCase()
|
|
1265
|
-
}));
|
|
1266
|
-
},
|
|
1267
|
-
enabled: !!userAddr && !!marketAddr && !!graphqlClient
|
|
1268
|
-
});
|
|
1269
|
-
return {
|
|
1270
|
-
...rest,
|
|
1271
|
-
data: data || EMPTY_ARRAY
|
|
1272
|
-
};
|
|
1273
|
-
};
|
|
1274
|
-
|
|
1275
|
-
//#endregion
|
|
1276
|
-
//#region src/hooks/operators/useSetOperatorPerms.ts
|
|
1277
|
-
const useSetOperatorPerms = (marketAddr) => {
|
|
1278
|
-
const queryClient = useQueryClient();
|
|
1279
|
-
const client = useClient();
|
|
1280
|
-
const { address } = useConnection();
|
|
1281
|
-
const { writeContractAsync } = useWriteContract();
|
|
1282
|
-
const setOperatorPerms = async ({ operator, canExtend, canExercise, canTransfer, canMint, spendingApproval }) => {
|
|
1283
|
-
if (!client || !address) throw new Error("Wallet not connected");
|
|
1284
|
-
if (!marketAddr) throw new Error("Market address not available");
|
|
1285
|
-
const hash = await writeContractAsync({
|
|
1286
|
-
address: marketAddr,
|
|
1287
|
-
abi: optionsMarketAbi,
|
|
1288
|
-
functionName: "setOperatorPerms",
|
|
1289
|
-
args: [
|
|
1290
|
-
operator,
|
|
1291
|
-
canExtend,
|
|
1292
|
-
canExercise,
|
|
1293
|
-
canTransfer,
|
|
1294
|
-
canMint,
|
|
1295
|
-
spendingApproval
|
|
1296
|
-
]
|
|
1297
|
-
});
|
|
1298
|
-
await waitForTransactionReceipt(client, { hash });
|
|
1299
|
-
queryClient.invalidateQueries({ queryKey: ["userOperators"] });
|
|
1300
|
-
queryClient.invalidateQueries({ queryKey: ["readContract"] });
|
|
1301
|
-
return hash;
|
|
1302
|
-
};
|
|
1303
|
-
return useMutation({ mutationFn: setOperatorPerms });
|
|
1304
|
-
};
|
|
1305
|
-
|
|
1306
1303
|
//#endregion
|
|
1307
1304
|
//#region src/hooks/pool/usePriceHistory.ts
|
|
1308
1305
|
const usePriceHistory = (pool, token, resolution, startTimestamp, endTimestamp) => {
|