timelock-sdk 0.0.81 → 0.0.82
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-DSnOWcqf.d.ts → client-BjjoSITU.d.ts} +149 -158
- package/dist/{client-CPNANzx8.d.cts → client-GoHd57RL.d.cts} +87 -96
- package/dist/client.cjs +36 -99
- 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 +37 -100
- package/dist/client.js.map +1 -1
- package/dist/package.d.cts +1 -1
- package/dist/package.d.ts +1 -1
- package/package.json +1 -1
package/dist/client.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./uniswapMathLens-CK8C7WOt.cjs";
|
|
2
|
-
import { B as useOptionTimeline, F as useUserOperators, G as useMaxPositionSize, H as useOptionPremium, I as usePerpsOperator, L as useClosePerp, P as useSetOperatorPerms, R as useMintPerp, U as useOptionPnl, V as useExtendOption, W as useMintOption, a as batchGetAmountsFromLiquidity, c as useLiquidityBlocks, ct as useExerciseOption, d as usePriceAtTick, dt as useClosedUserOptions, f as UniswapPoolData, ft as TimelockProvider, h as useCurrentPrice, i as useVaultData, l as useBurnLiquidity, lt as OptionData, m as useCurrentTick, mt as useTimelockConfig, n as useLens, o as useMintLiquidity, p as usePoolData, pt as useCurrentMarket, r as useVaultTVL, s as LiquidityBlockData, st as useMarketData, t as useApproval, u as usePriceHistory, ut as useActiveUserOptions, z as OptionTimelineData } from "./client-
|
|
2
|
+
import { B as useOptionTimeline, F as useUserOperators, G as useMaxPositionSize, H as useOptionPremium, I as usePerpsOperator, L as useClosePerp, P as useSetOperatorPerms, R as useMintPerp, U as useOptionPnl, V as useExtendOption, W as useMintOption, a as batchGetAmountsFromLiquidity, c as useLiquidityBlocks, ct as useExerciseOption, d as usePriceAtTick, dt as useClosedUserOptions, f as UniswapPoolData, ft as TimelockProvider, h as useCurrentPrice, i as useVaultData, l as useBurnLiquidity, lt as OptionData, m as useCurrentTick, mt as useTimelockConfig, n as useLens, o as useMintLiquidity, p as usePoolData, pt as useCurrentMarket, r as useVaultTVL, s as LiquidityBlockData, st as useMarketData, t as useApproval, u as usePriceHistory, ut as useActiveUserOptions, z as OptionTimelineData } from "./client-GoHd57RL.cjs";
|
|
3
3
|
export { LiquidityBlockData, OptionData, OptionTimelineData, TimelockProvider, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, useSetOperatorPerms, useTimelockConfig, useUserOperators, useVaultData, useVaultTVL };
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./uniswapMathLens-C54iWXpi.js";
|
|
2
|
-
import { B as useOptionTimeline, F as useUserOperators, G as useMaxPositionSize, H as useOptionPremium, I as usePerpsOperator, L as useClosePerp, P as useSetOperatorPerms, R as useMintPerp, U as useOptionPnl, V as useExtendOption, W as useMintOption, a as batchGetAmountsFromLiquidity, c as useLiquidityBlocks, ct as useExerciseOption, d as usePriceAtTick, dt as useClosedUserOptions, f as UniswapPoolData, ft as TimelockProvider, h as useCurrentPrice, i as useVaultData, l as useBurnLiquidity, lt as OptionData, m as useCurrentTick, mt as useTimelockConfig, n as useLens, o as useMintLiquidity, p as usePoolData, pt as useCurrentMarket, r as useVaultTVL, s as LiquidityBlockData, st as useMarketData, t as useApproval, u as usePriceHistory, ut as useActiveUserOptions, z as OptionTimelineData } from "./client-
|
|
2
|
+
import { B as useOptionTimeline, F as useUserOperators, G as useMaxPositionSize, H as useOptionPremium, I as usePerpsOperator, L as useClosePerp, P as useSetOperatorPerms, R as useMintPerp, U as useOptionPnl, V as useExtendOption, W as useMintOption, a as batchGetAmountsFromLiquidity, c as useLiquidityBlocks, ct as useExerciseOption, d as usePriceAtTick, dt as useClosedUserOptions, f as UniswapPoolData, ft as TimelockProvider, h as useCurrentPrice, i as useVaultData, l as useBurnLiquidity, lt as OptionData, m as useCurrentTick, mt as useTimelockConfig, n as useLens, o as useMintLiquidity, p as usePoolData, pt as useCurrentMarket, r as useVaultTVL, s as LiquidityBlockData, st as useMarketData, t as useApproval, u as usePriceHistory, ut as useActiveUserOptions, z as OptionTimelineData } from "./client-BjjoSITU.js";
|
|
3
3
|
export { LiquidityBlockData, OptionData, OptionTimelineData, TimelockProvider, UniswapPoolData, batchGetAmountsFromLiquidity, useActiveUserOptions, useApproval, useBurnLiquidity, useClosePerp, useClosedUserOptions, useCurrentMarket, useCurrentPrice, useCurrentTick, useExerciseOption, useExtendOption, useLens, useLiquidityBlocks, useMarketData, useMaxPositionSize, useMintLiquidity, useMintOption, useMintPerp, useOptionPnl, useOptionPremium, useOptionTimeline, usePerpsOperator, usePoolData, usePriceAtTick, usePriceHistory, useSetOperatorPerms, useTimelockConfig, useUserOperators, useVaultData, useVaultTVL };
|
package/dist/client.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
import { r as lensAbi, t as optionsMarketAbi } from "./optionsMarket-6PlyceXp.js";
|
|
5
|
-
import { A as getErc20, D as token1ToToken0, E as token0ToToken1, F as uniswapMathLenses, M as getTimelockMarket$1, N as getUniswapMathLens, P as timelockLenses, d as wrapAmount, j as getTimelockLens, k as getPriceHistory, n as EMPTY_ARRAY, p as wrapPrice, t as getPayoutAtTick, v as getNearestValidStrikeTick$1, w as roundTickDown, y as getPriceAtTick } from "./optionUtils-CoIk8zAr.js";
|
|
5
|
+
import { A as getErc20, D as token1ToToken0, E as token0ToToken1, F as uniswapMathLenses, M as getTimelockMarket$1, N as getUniswapMathLens, P as timelockLenses, _ as getAmountsFromLiquidity, d as wrapAmount, j as getTimelockLens, k as getPriceHistory, n as EMPTY_ARRAY, p as wrapPrice, t as getPayoutAtTick, v as getNearestValidStrikeTick$1, w as roundTickDown, y as getPriceAtTick } from "./optionUtils-CoIk8zAr.js";
|
|
6
6
|
import { n as uniswapV3PoolAbi, t as singleOwnerVaultAbi } from "./singleOwnerVault-BeJChjfJ.js";
|
|
7
7
|
import { encodeAbiParameters, encodeFunctionData, erc20Abi, maxUint256, zeroAddress } from "viem";
|
|
8
8
|
import React, { createContext, useContext, useMemo } from "react";
|
|
@@ -1142,25 +1142,17 @@ const useLiquidityBlocks = (vaultAddr) => {
|
|
|
1142
1142
|
|
|
1143
1143
|
//#endregion
|
|
1144
1144
|
//#region src/hooks/vault/useMintLiquidity.ts
|
|
1145
|
-
const batchGetAmountsFromLiquidity =
|
|
1146
|
-
const currentTicksArray = new Array(tickLower.length).fill(currentTick);
|
|
1147
|
-
const amounts = await lens.read.batchGetAmountsForLiquidityTicks([
|
|
1148
|
-
currentTicksArray,
|
|
1149
|
-
tickLower,
|
|
1150
|
-
tickUpper,
|
|
1151
|
-
liquidity
|
|
1152
|
-
]);
|
|
1145
|
+
const batchGetAmountsFromLiquidity = (tickLowers, tickUppers, liquidities, currentTick) => {
|
|
1153
1146
|
let totalAmount0 = 0n;
|
|
1154
1147
|
let totalAmount1 = 0n;
|
|
1155
1148
|
const amounts0 = [];
|
|
1156
1149
|
const amounts1 = [];
|
|
1157
|
-
for (const
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
amounts1.push(scaled);
|
|
1150
|
+
for (const [i, tickLower] of tickLowers.entries()) {
|
|
1151
|
+
const [amount0, amount1] = getAmountsFromLiquidity(tickLower, tickUppers[i], liquidities[i], currentTick);
|
|
1152
|
+
totalAmount0 += amount0;
|
|
1153
|
+
totalAmount1 += amount1;
|
|
1154
|
+
amounts0.push(amount0);
|
|
1155
|
+
amounts1.push(amount1);
|
|
1164
1156
|
}
|
|
1165
1157
|
return {
|
|
1166
1158
|
totalAmount0,
|
|
@@ -1171,97 +1163,42 @@ const batchGetAmountsFromLiquidity = async (lens, tickLower, tickUpper, liquidit
|
|
|
1171
1163
|
};
|
|
1172
1164
|
const useMintLiquidity = (vaultAddr) => {
|
|
1173
1165
|
const client = useClient();
|
|
1174
|
-
const { address } = useAccount();
|
|
1175
1166
|
const { pool } = useVaultData(vaultAddr);
|
|
1176
|
-
const { timelockLens
|
|
1177
|
-
const currentTick = useCurrentTick(pool);
|
|
1167
|
+
const { timelockLens } = useLens();
|
|
1168
|
+
const { exact: currentTick } = useCurrentTick(pool);
|
|
1178
1169
|
const { token0, token1 } = usePoolData(pool);
|
|
1179
|
-
const {
|
|
1180
|
-
const {
|
|
1181
|
-
const
|
|
1182
|
-
if (!
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
const approvalPromises = [];
|
|
1187
|
-
if (allowance0 <= totalAmount0) {
|
|
1188
|
-
const approvalHash = await writeContractAsync({
|
|
1189
|
-
address: token0,
|
|
1190
|
-
abi: erc20Abi,
|
|
1191
|
-
functionName: "approve",
|
|
1192
|
-
args: [vaultAddr, maxUint256]
|
|
1193
|
-
});
|
|
1194
|
-
approvalPromises.push(waitForTransactionReceipt(client, { hash: approvalHash }));
|
|
1195
|
-
}
|
|
1196
|
-
if (allowance1 <= totalAmount1) {
|
|
1197
|
-
const approvalHash1 = await writeContractAsync({
|
|
1198
|
-
address: token1,
|
|
1199
|
-
abi: erc20Abi,
|
|
1200
|
-
functionName: "approve",
|
|
1201
|
-
args: [vaultAddr, maxUint256]
|
|
1202
|
-
});
|
|
1203
|
-
approvalPromises.push(waitForTransactionReceipt(client, { hash: approvalHash1 }));
|
|
1204
|
-
}
|
|
1205
|
-
if (approvalPromises.length > 0) await Promise.all(approvalPromises);
|
|
1170
|
+
const { askForApproval } = useApproval();
|
|
1171
|
+
const { writeContractAsync } = useWriteContract();
|
|
1172
|
+
const processApproval = async (params) => {
|
|
1173
|
+
if (currentTick === void 0 || !token0 || !token1 || !vaultAddr) throw new Error("Current tick not available");
|
|
1174
|
+
const { totalAmount0, totalAmount1 } = batchGetAmountsFromLiquidity(params.map((p) => p.tickLower), params.map((p) => p.tickUpper), params.map((p) => p.liquidity), currentTick);
|
|
1175
|
+
await askForApproval(token0, vaultAddr, totalAmount0);
|
|
1176
|
+
await askForApproval(token1, vaultAddr, totalAmount1);
|
|
1206
1177
|
};
|
|
1207
|
-
|
|
1178
|
+
return useMutation({ mutationFn: async (params) => {
|
|
1208
1179
|
if (!client) throw new Error("Wallet not connected");
|
|
1209
|
-
if (
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1180
|
+
if (currentTick === void 0) throw new Error("Current tick not available");
|
|
1181
|
+
if (!timelockLens || !vaultAddr) throw new Error("Vault/lens not available");
|
|
1182
|
+
if (!Array.isArray(params)) params = [params];
|
|
1183
|
+
if (params.length === 0) throw new Error("No positions to mint");
|
|
1184
|
+
await processApproval(params);
|
|
1185
|
+
const refTicks = await timelockLens.read.batchGetRefTick([vaultAddr, params.map((position) => position.tickLower)]);
|
|
1186
|
+
await waitForTransactionReceipt(client, { hash: await writeContractAsync({
|
|
1216
1187
|
address: vaultAddr,
|
|
1217
1188
|
abi: singleOwnerVaultAbi,
|
|
1218
|
-
functionName: "
|
|
1219
|
-
args: [
|
|
1220
|
-
tickLower,
|
|
1221
|
-
tickUpper,
|
|
1222
|
-
liquidity,
|
|
1223
|
-
await timelockLens.read.getRefTick([vaultAddr, tickLower])
|
|
1224
|
-
]
|
|
1225
|
-
});
|
|
1226
|
-
await waitForTransactionReceipt(client, { hash: hash$1 });
|
|
1227
|
-
return hash$1;
|
|
1228
|
-
};
|
|
1229
|
-
const mintMultiple = async (positions) => {
|
|
1230
|
-
if (!client) throw new Error("Wallet not connected");
|
|
1231
|
-
if (!currentTick.exact) throw new Error("Current tick not available");
|
|
1232
|
-
if (positions.length === 0) throw new Error("No positions to mint");
|
|
1233
|
-
if (!timelockLens || !vaultAddr) throw new Error("Vault/lens not available");
|
|
1234
|
-
if (positions.length === 1) await mint(positions[0].tickLower, positions[0].tickUpper, positions[0].liquidity);
|
|
1235
|
-
else {
|
|
1236
|
-
await askForApproval(positions);
|
|
1237
|
-
const refTicks = await timelockLens.read.batchGetRefTick([vaultAddr, positions.map((position) => position.tickLower)]);
|
|
1238
|
-
await waitForTransactionReceipt(client, { hash: await writeContractAsync({
|
|
1239
|
-
address: vaultAddr,
|
|
1189
|
+
functionName: "multicall",
|
|
1190
|
+
args: [params.map((p, i) => encodeFunctionData({
|
|
1240
1191
|
abi: singleOwnerVaultAbi,
|
|
1241
|
-
functionName: "
|
|
1242
|
-
args: [
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
}))]
|
|
1252
|
-
}) });
|
|
1253
|
-
}
|
|
1254
|
-
};
|
|
1255
|
-
return {
|
|
1256
|
-
mintMultiple,
|
|
1257
|
-
mint,
|
|
1258
|
-
hash,
|
|
1259
|
-
isPending,
|
|
1260
|
-
isConfirming,
|
|
1261
|
-
isSuccess,
|
|
1262
|
-
error,
|
|
1263
|
-
isLoading: isPending || isConfirming
|
|
1264
|
-
};
|
|
1192
|
+
functionName: "mint",
|
|
1193
|
+
args: [
|
|
1194
|
+
p.tickLower,
|
|
1195
|
+
p.tickUpper,
|
|
1196
|
+
p.liquidity,
|
|
1197
|
+
refTicks[i]
|
|
1198
|
+
]
|
|
1199
|
+
}))]
|
|
1200
|
+
}) });
|
|
1201
|
+
} });
|
|
1265
1202
|
};
|
|
1266
1203
|
|
|
1267
1204
|
//#endregion
|