@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 +106 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +97 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/v2/covers/api.ts +23 -0
- package/src/v2/covers/hooks.ts +20 -0
- package/src/v2/covers/index.ts +13 -0
- package/src/v2/covers/schema.ts +20 -0
- package/src/v2/index.ts +5 -1
- package/src/v2/nfts/api.ts +25 -0
- package/src/v2/nfts/hooks.ts +24 -0
- package/src/v2/nfts/index.ts +13 -0
- package/src/v2/nfts/queries.ts +10 -0
- package/src/v2/nfts/schema.ts +12 -0
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
|
|
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
|
|
1768
|
-
var balanceQueries = (0,
|
|
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,
|
|
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,
|