@turtleclub/hooks 0.5.0-beta.13 → 0.5.0-beta.14

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
@@ -34,6 +34,7 @@ __export(index_exports, {
34
34
  chainSchema: () => chainSchema,
35
35
  checkMembership: () => checkMembership,
36
36
  checkMembershipResponseSchema: () => checkMembershipResponseSchema,
37
+ coverRequestDataSchema: () => coverRequestDataSchema,
37
38
  createAgreementRequestSchema: () => createAgreementRequestSchema,
38
39
  createAgreementResponseSchema: () => createAgreementResponseSchema,
39
40
  createClaimWithdrawInteraction: () => createClaimWithdrawInteraction,
@@ -56,6 +57,7 @@ __export(index_exports, {
56
57
  earnRouteResponseSchema: () => earnRouteResponseSchema,
57
58
  ensoBalancesQueries: () => ensoBalancesQueries,
58
59
  ensoStep: () => ensoStep,
60
+ fetchUserNfts: () => fetchUserNfts,
59
61
  filterBalancesByChains: () => filterBalancesByChains,
60
62
  filterExcludedTokens: () => filterExcludedTokens,
61
63
  filterNonZeroBalances: () => filterNonZeroBalances,
@@ -89,6 +91,7 @@ __export(index_exports, {
89
91
  interactionResponseSchema: () => interactionResponseSchema,
90
92
  lendingConfigSchema: () => lendingConfigSchema,
91
93
  mergeBalancesByPriority: () => mergeBalancesByPriority,
94
+ nftsQueries: () => nftsQueries,
92
95
  opportunitiesQueries: () => opportunitiesQueries,
93
96
  opportunitySchema: () => opportunitySchema,
94
97
  organizationSchema: () => organizationSchema,
@@ -112,6 +115,8 @@ __export(index_exports, {
112
115
  streamSignatureRequestInputSchema: () => streamSignatureRequestInputSchema,
113
116
  streamSignatureRequestOutputSchema: () => streamSignatureRequestOutputSchema,
114
117
  streamsQueries: () => streamsQueries,
118
+ submitCoverRequest: () => submitCoverRequest,
119
+ submitCoverRequestResponseSchema: () => submitCoverRequestResponseSchema,
115
120
  supportedChainsQueries: () => supportedChainsQueries,
116
121
  supportedChainsResponseSchema: () => supportedChainsResponseSchema,
117
122
  supportedTokenSchema: () => supportedTokenSchema,
@@ -145,6 +150,7 @@ __export(index_exports, {
145
150
  useRequestStreamSignature: () => useRequestStreamSignature,
146
151
  useStreamSupportedChains: () => useStreamSupportedChains,
147
152
  useStreams: () => useStreams,
153
+ useSubmitCoverRequest: () => useSubmitCoverRequest,
148
154
  useSupportedChains: () => useSupportedChains,
149
155
  useSupportedTokens: () => useSupportedTokens,
150
156
  useSwapRoute: () => useSwapRoute,
@@ -152,6 +158,7 @@ __export(index_exports, {
152
158
  useUpdateProduct: () => useUpdateProduct,
153
159
  useUploadProductLogo: () => useUploadProductLogo,
154
160
  useUserById: () => useUserById,
161
+ useUserNfts: () => useUserNfts,
155
162
  useUserPortfolio: () => useUserPortfolio,
156
163
  useWidgetOpportunities: () => useWidgetOpportunities,
157
164
  userEarningsSchema: () => userEarningsSchema,
@@ -168,7 +175,7 @@ __export(index_exports, {
168
175
  module.exports = __toCommonJS(index_exports);
169
176
 
170
177
  // src/v2/index.ts
171
- var import_query_key_factory15 = require("@lukemorales/query-key-factory");
178
+ var import_query_key_factory16 = require("@lukemorales/query-key-factory");
172
179
 
173
180
  // src/v2/opportunities/queries.ts
174
181
  var import_query_key_factory = require("@lukemorales/query-key-factory");
@@ -1388,6 +1395,37 @@ var usersQueries = (0, import_query_key_factory13.createQueryKeys)("users", {
1388
1395
  })
1389
1396
  });
1390
1397
 
1398
+ // src/v2/nfts/queries.ts
1399
+ var import_query_key_factory14 = require("@lukemorales/query-key-factory");
1400
+
1401
+ // src/v2/nfts/api.ts
1402
+ var LUMON_API_BASE_URL = "https://lumon.turtle.xyz";
1403
+ async function fetchUserNfts(userAddress, chain) {
1404
+ const endpoint = `${LUMON_API_BASE_URL}/query/token/erc721_portfolio`;
1405
+ const response = await fetch(endpoint, {
1406
+ method: "POST",
1407
+ headers: {
1408
+ "Content-Type": "application/json"
1409
+ },
1410
+ body: JSON.stringify({
1411
+ user: userAddress,
1412
+ chain
1413
+ })
1414
+ });
1415
+ if (!response.ok) {
1416
+ throw new Error("Failed to fetch user NFTs");
1417
+ }
1418
+ return response.json();
1419
+ }
1420
+
1421
+ // src/v2/nfts/queries.ts
1422
+ var nftsQueries = (0, import_query_key_factory14.createQueryKeys)("nfts", {
1423
+ byUser: (userAddress, chain) => ({
1424
+ queryKey: [userAddress, chain],
1425
+ queryFn: () => fetchUserNfts(userAddress, chain)
1426
+ })
1427
+ });
1428
+
1391
1429
  // src/v2/earn-opportunities/hooks.ts
1392
1430
  var import_react_query = require("@tanstack/react-query");
1393
1431
 
@@ -1764,8 +1802,8 @@ async function getPortfolioBalance(address, options) {
1764
1802
  }
1765
1803
 
1766
1804
  // src/v2/balance/queries.ts
1767
- var import_query_key_factory14 = require("@lukemorales/query-key-factory");
1768
- var balanceQueries = (0, import_query_key_factory14.createQueryKeys)("balance", {
1805
+ var import_query_key_factory15 = require("@lukemorales/query-key-factory");
1806
+ var balanceQueries = (0, import_query_key_factory15.createQueryKeys)("balance", {
1769
1807
  // Portfolio balance by address
1770
1808
  portfolio: (address) => ({
1771
1809
  queryKey: [address],
@@ -2344,6 +2382,61 @@ function useUserPortfolio({ userId, enabled = true }) {
2344
2382
  });
2345
2383
  }
2346
2384
 
2385
+ // src/v2/nfts/hooks.ts
2386
+ var import_react_query16 = require("@tanstack/react-query");
2387
+ function useUserNfts({ userAddress, chain, tokenAddress }) {
2388
+ return (0, import_react_query16.useQuery)(
2389
+ userAddress ? createQueryOptions(nftsQueries.byUser(userAddress, chain), {
2390
+ select: (data) => tokenAddress ? data.filter((nft) => nft.token.toLowerCase() === tokenAddress.toLowerCase()) : data
2391
+ }) : { queryKey: ["nfts", "byUser", "skip"], queryFn: import_react_query16.skipToken }
2392
+ );
2393
+ }
2394
+
2395
+ // src/v2/covers/hooks.ts
2396
+ var import_react_query17 = require("@tanstack/react-query");
2397
+
2398
+ // src/v2/covers/schema.ts
2399
+ var import_zod16 = require("zod");
2400
+ var coverRequestDataSchema = import_zod16.z.object({
2401
+ protocolName: import_zod16.z.string(),
2402
+ coverageAmount: import_zod16.z.string(),
2403
+ periodDays: import_zod16.z.number(),
2404
+ desiredApySacrifice: import_zod16.z.string(),
2405
+ calculatedEstimatedPremium: import_zod16.z.string(),
2406
+ tokenSymbol: import_zod16.z.string()
2407
+ });
2408
+ var submitCoverRequestResponseSchema = import_zod16.z.object({
2409
+ success: import_zod16.z.boolean()
2410
+ });
2411
+
2412
+ // src/v2/covers/api.ts
2413
+ async function submitCoverRequest(data) {
2414
+ const response = await apiClient.fetch("/turtle/nexus-cover-requests", {
2415
+ method: "POST",
2416
+ body: data
2417
+ });
2418
+ const result = submitCoverRequestResponseSchema.safeParse(response);
2419
+ if (!result.success) {
2420
+ console.log("[ZOD ERROR]", result.error);
2421
+ throw new Error(`Failed to submit cover request due to an invalid server response.`);
2422
+ }
2423
+ return result.data;
2424
+ }
2425
+
2426
+ // src/v2/covers/hooks.ts
2427
+ function useSubmitCoverRequest(options) {
2428
+ return (0, import_react_query17.useMutation)({
2429
+ mutationFn: submitCoverRequest,
2430
+ onSuccess: () => {
2431
+ options?.onSuccess?.("Cover request submitted successfully!");
2432
+ },
2433
+ onError: (error) => {
2434
+ console.error("[useSubmitCoverRequest]", error);
2435
+ options?.onError?.("Failed to submit Cover Request");
2436
+ }
2437
+ });
2438
+ }
2439
+
2347
2440
  // src/v2/lib/turtle-provider.tsx
2348
2441
  var import_react9 = require("react");
2349
2442
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -2365,7 +2458,7 @@ function TurtleHooksProvider({
2365
2458
  }
2366
2459
 
2367
2460
  // src/v2/index.ts
2368
- var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2461
+ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
2369
2462
  opportunitiesQueries,
2370
2463
  earnOpportunitiesQueries,
2371
2464
  earnRouteQueries,
@@ -2378,7 +2471,8 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2378
2471
  streamsQueries,
2379
2472
  supportedChainsQueries,
2380
2473
  supportedTokensQueries,
2381
- usersQueries
2474
+ usersQueries,
2475
+ nftsQueries
2382
2476
  );
2383
2477
  // Annotate the CommonJS export names for ESM import in node:
2384
2478
  0 && (module.exports = {
@@ -2396,6 +2490,7 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2396
2490
  chainSchema,
2397
2491
  checkMembership,
2398
2492
  checkMembershipResponseSchema,
2493
+ coverRequestDataSchema,
2399
2494
  createAgreementRequestSchema,
2400
2495
  createAgreementResponseSchema,
2401
2496
  createClaimWithdrawInteraction,
@@ -2418,6 +2513,7 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2418
2513
  earnRouteResponseSchema,
2419
2514
  ensoBalancesQueries,
2420
2515
  ensoStep,
2516
+ fetchUserNfts,
2421
2517
  filterBalancesByChains,
2422
2518
  filterExcludedTokens,
2423
2519
  filterNonZeroBalances,
@@ -2451,6 +2547,7 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2451
2547
  interactionResponseSchema,
2452
2548
  lendingConfigSchema,
2453
2549
  mergeBalancesByPriority,
2550
+ nftsQueries,
2454
2551
  opportunitiesQueries,
2455
2552
  opportunitySchema,
2456
2553
  organizationSchema,
@@ -2474,6 +2571,8 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2474
2571
  streamSignatureRequestInputSchema,
2475
2572
  streamSignatureRequestOutputSchema,
2476
2573
  streamsQueries,
2574
+ submitCoverRequest,
2575
+ submitCoverRequestResponseSchema,
2477
2576
  supportedChainsQueries,
2478
2577
  supportedChainsResponseSchema,
2479
2578
  supportedTokenSchema,
@@ -2507,6 +2606,7 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2507
2606
  useRequestStreamSignature,
2508
2607
  useStreamSupportedChains,
2509
2608
  useStreams,
2609
+ useSubmitCoverRequest,
2510
2610
  useSupportedChains,
2511
2611
  useSupportedTokens,
2512
2612
  useSwapRoute,
@@ -2514,6 +2614,7 @@ var queries = (0, import_query_key_factory15.mergeQueryKeys)(
2514
2614
  useUpdateProduct,
2515
2615
  useUploadProductLogo,
2516
2616
  useUserById,
2617
+ useUserNfts,
2517
2618
  useUserPortfolio,
2518
2619
  useWidgetOpportunities,
2519
2620
  userEarningsSchema,