@turtleclub/hooks 0.3.0 → 0.3.1-beta.0

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.js CHANGED
@@ -425,7 +425,6 @@ __export(campaigns_v2_exports, {
425
425
  useEvmCampaignPositions: () => useEvmCampaignPositions,
426
426
  useKatanaCampaign: () => useKatanaCampaign,
427
427
  useTacCampaign: () => useTacCampaign,
428
- useTonCampaignPositions: () => useTonCampaignPositions,
429
428
  useUserCampaignPositions: () => useUserCampaignPositions
430
429
  });
431
430
 
@@ -4267,149 +4266,28 @@ function useEvmCampaignPositions({
4267
4266
  return result;
4268
4267
  }
4269
4268
 
4270
- // src/campaigns-v2/useTonCampaignPositions.ts
4271
- import { useCallback as useCallback3, useMemo as useMemo4 } from "react";
4272
- import { useQuery as useQuery18 } from "@tanstack/react-query";
4273
- import { TonClient4 } from "@ton/ton";
4274
- function useTonCampaignPositions({
4275
- campaignName,
4276
- userAddress
4277
- }) {
4278
- const { vaults } = useCampaign(campaignName);
4279
- const isTestnet = userAddress?.includes("0Q");
4280
- const tonClient4 = useMemo4(() => {
4281
- const endpoint = isTestnet ? "https://testnet-v4.tonhubapi.com" : "https://mainnet-v4.tonhubapi.com";
4282
- return new TonClient4({ endpoint });
4283
- }, [isTestnet]);
4284
- const tonVaults = useMemo4(() => {
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
- } = useQuery18({
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 = useCallback3(async () => {
4361
- await refetchUserPositions();
4362
- }, [refetchUserPositions]);
4363
- const result = useMemo4(
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
- import { useCallback as useCallback4, useMemo as useMemo5 } from "react";
4270
+ import { useCallback as useCallback3, useMemo as useMemo4 } from "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 = useMemo5(() => [
4398
- ...evmPositions.userPositions,
4399
- ...tonPositions.userPositions
4400
- ], [evmPositions.userPositions, tonPositions.userPositions]);
4401
- const userTotalTVL = useMemo5(
4402
- () => evmPositions.userTotalTVL + tonPositions.userTotalTVL,
4403
- [evmPositions.userTotalTVL, tonPositions.userTotalTVL]
4281
+ const userPositions = useMemo4(
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 = useCallback4(async () => {
4408
- await Promise.all([
4409
- evmPositions.invalidateUserPositions(),
4410
- tonPositions.invalidateUserPositions()
4411
- ]);
4412
- }, [evmPositions.invalidateUserPositions, tonPositions.invalidateUserPositions]);
4285
+ const userTotalTVL = useMemo4(() => evmPositions.userTotalTVL, [evmPositions.userTotalTVL]);
4286
+ const isLoading = evmPositions.isLoading;
4287
+ const error = evmPositions.error;
4288
+ const invalidateUserPositions = useCallback3(async () => {
4289
+ await Promise.all([evmPositions.invalidateUserPositions()]);
4290
+ }, [evmPositions.invalidateUserPositions]);
4413
4291
  return {
4414
4292
  userPositions,
4415
4293
  userTotalTVL,