@turtleclub/hooks 0.3.0 → 0.3.1

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/index.cjs CHANGED
@@ -468,7 +468,6 @@ __export(campaigns_v2_exports, {
468
468
  useEvmCampaignPositions: () => useEvmCampaignPositions,
469
469
  useKatanaCampaign: () => useKatanaCampaign,
470
470
  useTacCampaign: () => useTacCampaign,
471
- useTonCampaignPositions: () => useTonCampaignPositions,
472
471
  useUserCampaignPositions: () => useUserCampaignPositions
473
472
  });
474
473
 
@@ -4267,149 +4266,28 @@ function useEvmCampaignPositions({
4267
4266
  return result;
4268
4267
  }
4269
4268
 
4270
- // src/campaigns-v2/useTonCampaignPositions.ts
4271
- var import_react4 = require("react");
4272
- var import_react_query19 = require("@tanstack/react-query");
4273
- var import_ton = require("@ton/ton");
4274
- function useTonCampaignPositions({
4275
- campaignName,
4276
- userAddress
4277
- }) {
4278
- const { vaults } = useCampaign(campaignName);
4279
- const isTestnet = userAddress?.includes("0Q");
4280
- const tonClient4 = (0, import_react4.useMemo)(() => {
4281
- const endpoint = isTestnet ? "https://testnet-v4.tonhubapi.com" : "https://mainnet-v4.tonhubapi.com";
4282
- return new import_ton.TonClient4({ endpoint });
4283
- }, [isTestnet]);
4284
- const tonVaults = (0, import_react4.useMemo)(() => {
4285
- if (!userAddress) return [];
4286
- return vaults.filter(
4287
- (vault) => vault.vedaProviderConfig?.deployments[0]
4288
- );
4289
- }, [vaults, userAddress]);
4290
- const {
4291
- data: positions,
4292
- isLoading,
4293
- error: queryError,
4294
- refetch: refetchUserPositions
4295
- } = (0, import_react_query19.useQuery)({
4296
- queryKey: ["ton-positions", userAddress, campaignName, tonVaults.length],
4297
- queryFn: async () => {
4298
- if (!userAddress || tonVaults.length === 0) {
4299
- return {
4300
- userPositions: [],
4301
- userTotalTVL: 0
4302
- };
4303
- }
4304
- const userPositionsById = {};
4305
- let userTotalTVL = 0;
4306
- for (const vault of tonVaults) {
4307
- let userBalance = 0n;
4308
- let userVaultTVL = 0;
4309
- if (vault.vedaProviderConfig?.deployments[0].chainId === 239) {
4310
- const apiEndpoint = isTestnet ? "https://testnet.tonapi.io/v2" : "https://tonapi.io/v2";
4311
- const response = await fetch(`${apiEndpoint}/accounts/${userAddress}/jettons`);
4312
- const data = await response.json();
4313
- const tacTONBalance = data.balances?.find(
4314
- (balance) => balance.jetton?.symbol === "tacTON"
4315
- );
4316
- if (tacTONBalance) {
4317
- const rawBalance = BigInt(tacTONBalance.balance);
4318
- const decimals = tacTONBalance.jetton?.decimals || 9;
4319
- const readableBalance = Number(rawBalance) / Math.pow(10, decimals);
4320
- userVaultTVL = readableBalance * 2.9629 * (1.4 / 2008.205653);
4321
- userBalance = BigInt(Math.floor(readableBalance * 1e9));
4322
- } else {
4323
- userBalance = 0n;
4324
- userVaultTVL = 0;
4325
- }
4326
- }
4327
- if (userBalance > 0n || userVaultTVL > 0) {
4328
- const existingPosition = userPositionsById[vault.id];
4329
- if (existingPosition) {
4330
- userPositionsById[vault.id] = {
4331
- vault,
4332
- userBalance: existingPosition.userBalance + userBalance,
4333
- userTVL: existingPosition.userTVL + userVaultTVL
4334
- };
4335
- } else {
4336
- userPositionsById[vault.id] = {
4337
- vault,
4338
- userBalance,
4339
- userTVL: userVaultTVL
4340
- };
4341
- }
4342
- userTotalTVL += userVaultTVL;
4343
- }
4344
- }
4345
- const userPositions = Object.values(userPositionsById);
4346
- return {
4347
- userPositions,
4348
- userTotalTVL
4349
- };
4350
- },
4351
- enabled: !!userAddress && tonVaults.length > 0,
4352
- staleTime: 3e4,
4353
- // 30 seconds
4354
- gcTime: 6e4,
4355
- // 1 minute
4356
- refetchOnMount: false,
4357
- refetchOnWindowFocus: false,
4358
- refetchOnReconnect: false
4359
- });
4360
- const invalidateUserPositions = (0, import_react4.useCallback)(async () => {
4361
- await refetchUserPositions();
4362
- }, [refetchUserPositions]);
4363
- const result = (0, import_react4.useMemo)(
4364
- () => ({
4365
- userPositions: positions?.userPositions ?? [],
4366
- userTotalTVL: positions?.userTotalTVL ?? 0,
4367
- isLoading,
4368
- error: queryError,
4369
- invalidateUserPositions
4370
- }),
4371
- [positions, isLoading, queryError, invalidateUserPositions]
4372
- );
4373
- return result;
4374
- }
4375
-
4376
4269
  // src/campaigns-v2/useUserCampaignPositions.ts
4377
- var import_react5 = require("react");
4270
+ var import_react4 = require("react");
4378
4271
  function useUserCampaignPositions({
4379
4272
  campaignName,
4380
4273
  userAddress
4381
4274
  }) {
4382
4275
  const { vaults } = useCampaign(campaignName);
4383
- const hasTONVaults = vaults.some(
4384
- (vault) => vault.vedaProviderConfig?.[1]
4385
- );
4386
- const hasEVMVaults = vaults.some(
4387
- (vault) => !vault.vedaProviderConfig?.[1]
4388
- );
4276
+ const hasEVMVaults = vaults.some((vault) => !vault.vedaProviderConfig?.[1]);
4389
4277
  const evmPositions = useEvmCampaignPositions({
4390
4278
  campaignName,
4391
4279
  userAddress: hasEVMVaults ? userAddress : void 0
4392
4280
  });
4393
- const tonPositions = useTonCampaignPositions({
4394
- campaignName,
4395
- userAddress: hasTONVaults ? userAddress : void 0
4396
- });
4397
- const userPositions = (0, import_react5.useMemo)(() => [
4398
- ...evmPositions.userPositions,
4399
- ...tonPositions.userPositions
4400
- ], [evmPositions.userPositions, tonPositions.userPositions]);
4401
- const userTotalTVL = (0, import_react5.useMemo)(
4402
- () => evmPositions.userTotalTVL + tonPositions.userTotalTVL,
4403
- [evmPositions.userTotalTVL, tonPositions.userTotalTVL]
4281
+ const userPositions = (0, import_react4.useMemo)(
4282
+ () => [...evmPositions.userPositions],
4283
+ [evmPositions.userPositions]
4404
4284
  );
4405
- const isLoading = evmPositions.isLoading || tonPositions.isLoading;
4406
- const error = evmPositions.error || tonPositions.error;
4407
- const invalidateUserPositions = (0, import_react5.useCallback)(async () => {
4408
- await Promise.all([
4409
- evmPositions.invalidateUserPositions(),
4410
- tonPositions.invalidateUserPositions()
4411
- ]);
4412
- }, [evmPositions.invalidateUserPositions, tonPositions.invalidateUserPositions]);
4285
+ const userTotalTVL = (0, import_react4.useMemo)(() => evmPositions.userTotalTVL, [evmPositions.userTotalTVL]);
4286
+ const isLoading = evmPositions.isLoading;
4287
+ const error = evmPositions.error;
4288
+ const invalidateUserPositions = (0, import_react4.useCallback)(async () => {
4289
+ await Promise.all([evmPositions.invalidateUserPositions()]);
4290
+ }, [evmPositions.invalidateUserPositions]);
4413
4291
  return {
4414
4292
  userPositions,
4415
4293
  userTotalTVL,