@turtleclub/hooks 0.5.0-beta.12 → 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/README.md +202 -33
- package/dist/index.cjs +275 -69
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +233 -44
- 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/earn-interactions/api.ts +70 -0
- package/src/v2/earn-interactions/hooks.ts +57 -0
- package/src/v2/earn-interactions/index.ts +4 -0
- package/src/v2/earn-interactions/queries.ts +8 -0
- package/src/v2/earn-interactions/schema.ts +60 -0
- package/src/v2/index.ts +8 -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.js
CHANGED
|
@@ -603,8 +603,15 @@ var earnDepositsQueries = createQueryKeys5("earnDeposits", {
|
|
|
603
603
|
})
|
|
604
604
|
});
|
|
605
605
|
|
|
606
|
-
// src/v2/
|
|
606
|
+
// src/v2/earn-interactions/queries.ts
|
|
607
607
|
import { createQueryKeys as createQueryKeys6 } from "@lukemorales/query-key-factory";
|
|
608
|
+
var earnInteractionsQueries = createQueryKeys6("earnInteractions", {
|
|
609
|
+
// Placeholder for potential future GET endpoints
|
|
610
|
+
// e.g., getting interaction history
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
// src/v2/products/queries.ts
|
|
614
|
+
import { createQueryKeys as createQueryKeys7 } from "@lukemorales/query-key-factory";
|
|
608
615
|
|
|
609
616
|
// src/v2/products/schema.ts
|
|
610
617
|
import { z as z7 } from "zod";
|
|
@@ -764,7 +771,7 @@ async function uploadProductLogo({
|
|
|
764
771
|
}
|
|
765
772
|
|
|
766
773
|
// src/v2/products/queries.ts
|
|
767
|
-
var productsQueries =
|
|
774
|
+
var productsQueries = createQueryKeys7("products", {
|
|
768
775
|
// Get all products (no filters)
|
|
769
776
|
all: () => ({
|
|
770
777
|
queryKey: ["all"],
|
|
@@ -781,7 +788,7 @@ var productsQueries = createQueryKeys6("products", {
|
|
|
781
788
|
});
|
|
782
789
|
|
|
783
790
|
// src/v2/enso-balances/queries.ts
|
|
784
|
-
import { createQueryKeys as
|
|
791
|
+
import { createQueryKeys as createQueryKeys8 } from "@lukemorales/query-key-factory";
|
|
785
792
|
|
|
786
793
|
// src/v2/enso-balances/schemas.ts
|
|
787
794
|
import { z as z8 } from "zod";
|
|
@@ -824,7 +831,7 @@ async function getWalletBalances(params, context) {
|
|
|
824
831
|
}
|
|
825
832
|
|
|
826
833
|
// src/v2/enso-balances/queries.ts
|
|
827
|
-
var ensoBalancesQueries =
|
|
834
|
+
var ensoBalancesQueries = createQueryKeys8("ensoBalances", {
|
|
828
835
|
byParams: (params) => ({
|
|
829
836
|
queryKey: [params],
|
|
830
837
|
queryFn: (context) => getWalletBalances(params, context)
|
|
@@ -832,7 +839,7 @@ var ensoBalancesQueries = createQueryKeys7("ensoBalances", {
|
|
|
832
839
|
});
|
|
833
840
|
|
|
834
841
|
// src/v2/widget/queries.ts
|
|
835
|
-
import { createQueryKeys as
|
|
842
|
+
import { createQueryKeys as createQueryKeys9 } from "@lukemorales/query-key-factory";
|
|
836
843
|
|
|
837
844
|
// src/v2/widget/schema.ts
|
|
838
845
|
import { z as z9 } from "zod";
|
|
@@ -856,7 +863,7 @@ async function getWidgetOpportunities(distributorId, context) {
|
|
|
856
863
|
}
|
|
857
864
|
|
|
858
865
|
// src/v2/widget/queries.ts
|
|
859
|
-
var widgetQueries =
|
|
866
|
+
var widgetQueries = createQueryKeys9("widget", {
|
|
860
867
|
opportunities: (distributorId) => ({
|
|
861
868
|
queryKey: [distributorId],
|
|
862
869
|
queryFn: (context) => getWidgetOpportunities(distributorId, context)
|
|
@@ -864,7 +871,7 @@ var widgetQueries = createQueryKeys8("widget", {
|
|
|
864
871
|
});
|
|
865
872
|
|
|
866
873
|
// src/v2/streams/queries.ts
|
|
867
|
-
import { createQueryKeys as
|
|
874
|
+
import { createQueryKeys as createQueryKeys10 } from "@lukemorales/query-key-factory";
|
|
868
875
|
|
|
869
876
|
// src/v2/streams/schemas.ts
|
|
870
877
|
import { z as z10 } from "zod";
|
|
@@ -1019,7 +1026,7 @@ async function requestStreamSignature(organizationId, input) {
|
|
|
1019
1026
|
}
|
|
1020
1027
|
|
|
1021
1028
|
// src/v2/streams/queries.ts
|
|
1022
|
-
var streamsQueries =
|
|
1029
|
+
var streamsQueries = createQueryKeys10("streams", {
|
|
1023
1030
|
list: (query) => ({
|
|
1024
1031
|
queryKey: [query ?? "all"],
|
|
1025
1032
|
queryFn: () => getStreams(query)
|
|
@@ -1031,7 +1038,7 @@ var streamsQueries = createQueryKeys9("streams", {
|
|
|
1031
1038
|
});
|
|
1032
1039
|
|
|
1033
1040
|
// src/v2/supported-chains/queries.ts
|
|
1034
|
-
import { createQueryKeys as
|
|
1041
|
+
import { createQueryKeys as createQueryKeys11 } from "@lukemorales/query-key-factory";
|
|
1035
1042
|
|
|
1036
1043
|
// src/v2/supported-chains/schema.ts
|
|
1037
1044
|
import { z as z11 } from "zod";
|
|
@@ -1054,7 +1061,7 @@ async function getSupportedChains(options) {
|
|
|
1054
1061
|
}
|
|
1055
1062
|
|
|
1056
1063
|
// src/v2/supported-chains/queries.ts
|
|
1057
|
-
var supportedChainsQueries =
|
|
1064
|
+
var supportedChainsQueries = createQueryKeys11("supportedChains", {
|
|
1058
1065
|
all: {
|
|
1059
1066
|
queryKey: null,
|
|
1060
1067
|
queryFn: () => getSupportedChains()
|
|
@@ -1062,7 +1069,7 @@ var supportedChainsQueries = createQueryKeys10("supportedChains", {
|
|
|
1062
1069
|
});
|
|
1063
1070
|
|
|
1064
1071
|
// src/v2/supported-tokens/queries.ts
|
|
1065
|
-
import { createQueryKeys as
|
|
1072
|
+
import { createQueryKeys as createQueryKeys12 } from "@lukemorales/query-key-factory";
|
|
1066
1073
|
|
|
1067
1074
|
// src/v2/supported-tokens/schema.ts
|
|
1068
1075
|
import { z as z12 } from "zod";
|
|
@@ -1097,7 +1104,7 @@ async function getSupportedTokens(filters, options) {
|
|
|
1097
1104
|
}
|
|
1098
1105
|
|
|
1099
1106
|
// src/v2/supported-tokens/queries.ts
|
|
1100
|
-
var supportedTokensQueries =
|
|
1107
|
+
var supportedTokensQueries = createQueryKeys12("supportedTokens", {
|
|
1101
1108
|
list: (filters) => ({
|
|
1102
1109
|
queryKey: [filters],
|
|
1103
1110
|
queryFn: () => getSupportedTokens(filters)
|
|
@@ -1105,7 +1112,7 @@ var supportedTokensQueries = createQueryKeys11("supportedTokens", {
|
|
|
1105
1112
|
});
|
|
1106
1113
|
|
|
1107
1114
|
// src/v2/users/queries.ts
|
|
1108
|
-
import { createQueryKeys as
|
|
1115
|
+
import { createQueryKeys as createQueryKeys13 } from "@lukemorales/query-key-factory";
|
|
1109
1116
|
|
|
1110
1117
|
// src/v2/users/schemas.ts
|
|
1111
1118
|
import { z as z13 } from "zod";
|
|
@@ -1201,7 +1208,7 @@ async function getUserPortfolio(input) {
|
|
|
1201
1208
|
}
|
|
1202
1209
|
|
|
1203
1210
|
// src/v2/users/queries.ts
|
|
1204
|
-
var usersQueries =
|
|
1211
|
+
var usersQueries = createQueryKeys13("users", {
|
|
1205
1212
|
byId: (input) => ({
|
|
1206
1213
|
queryKey: [input.userId],
|
|
1207
1214
|
queryFn: () => getUserById(input)
|
|
@@ -1212,6 +1219,37 @@ var usersQueries = createQueryKeys12("users", {
|
|
|
1212
1219
|
})
|
|
1213
1220
|
});
|
|
1214
1221
|
|
|
1222
|
+
// src/v2/nfts/queries.ts
|
|
1223
|
+
import { createQueryKeys as createQueryKeys14 } from "@lukemorales/query-key-factory";
|
|
1224
|
+
|
|
1225
|
+
// src/v2/nfts/api.ts
|
|
1226
|
+
var LUMON_API_BASE_URL = "https://lumon.turtle.xyz";
|
|
1227
|
+
async function fetchUserNfts(userAddress, chain) {
|
|
1228
|
+
const endpoint = `${LUMON_API_BASE_URL}/query/token/erc721_portfolio`;
|
|
1229
|
+
const response = await fetch(endpoint, {
|
|
1230
|
+
method: "POST",
|
|
1231
|
+
headers: {
|
|
1232
|
+
"Content-Type": "application/json"
|
|
1233
|
+
},
|
|
1234
|
+
body: JSON.stringify({
|
|
1235
|
+
user: userAddress,
|
|
1236
|
+
chain
|
|
1237
|
+
})
|
|
1238
|
+
});
|
|
1239
|
+
if (!response.ok) {
|
|
1240
|
+
throw new Error("Failed to fetch user NFTs");
|
|
1241
|
+
}
|
|
1242
|
+
return response.json();
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
// src/v2/nfts/queries.ts
|
|
1246
|
+
var nftsQueries = createQueryKeys14("nfts", {
|
|
1247
|
+
byUser: (userAddress, chain) => ({
|
|
1248
|
+
queryKey: [userAddress, chain],
|
|
1249
|
+
queryFn: () => fetchUserNfts(userAddress, chain)
|
|
1250
|
+
})
|
|
1251
|
+
});
|
|
1252
|
+
|
|
1215
1253
|
// src/v2/earn-opportunities/hooks.ts
|
|
1216
1254
|
import { useQuery } from "@tanstack/react-query";
|
|
1217
1255
|
|
|
@@ -1295,6 +1333,83 @@ function useDeposits({ params, enabled = true }) {
|
|
|
1295
1333
|
});
|
|
1296
1334
|
}
|
|
1297
1335
|
|
|
1336
|
+
// src/v2/earn-interactions/schema.ts
|
|
1337
|
+
import { z as z14 } from "zod";
|
|
1338
|
+
var transactionSchema = z14.object({
|
|
1339
|
+
chainId: z14.number().int(),
|
|
1340
|
+
data: z14.string(),
|
|
1341
|
+
to: z14.string(),
|
|
1342
|
+
value: z14.string(),
|
|
1343
|
+
gasLimit: z14.string().optional()
|
|
1344
|
+
});
|
|
1345
|
+
var txResponseItemSchema = z14.object({
|
|
1346
|
+
type: z14.string().optional(),
|
|
1347
|
+
description: z14.string().optional(),
|
|
1348
|
+
transaction: transactionSchema
|
|
1349
|
+
});
|
|
1350
|
+
var interactionResponseSchema = z14.object({
|
|
1351
|
+
transactions: z14.array(txResponseItemSchema).nullable()
|
|
1352
|
+
});
|
|
1353
|
+
|
|
1354
|
+
// src/v2/earn-interactions/api.ts
|
|
1355
|
+
function buildInteractionQuery(params) {
|
|
1356
|
+
const searchParams = new URLSearchParams({
|
|
1357
|
+
userAddress: params.userAddress,
|
|
1358
|
+
tokenIn: params.tokenIn,
|
|
1359
|
+
amount: params.amount,
|
|
1360
|
+
distributorId: params.distributorId
|
|
1361
|
+
});
|
|
1362
|
+
if (params.referralCode) {
|
|
1363
|
+
searchParams.set("referralCode", params.referralCode);
|
|
1364
|
+
}
|
|
1365
|
+
if (params.slippageBps !== void 0) {
|
|
1366
|
+
searchParams.set("slippageBps", params.slippageBps.toString());
|
|
1367
|
+
}
|
|
1368
|
+
return searchParams.toString();
|
|
1369
|
+
}
|
|
1370
|
+
async function createInteraction(interactionType, params) {
|
|
1371
|
+
const { opportunityId, ...queryParams } = params;
|
|
1372
|
+
const query = buildInteractionQuery(queryParams);
|
|
1373
|
+
const data = await apiClient.fetch(
|
|
1374
|
+
`/v1/interactions/${interactionType}/${opportunityId}?${query}`,
|
|
1375
|
+
{
|
|
1376
|
+
method: "POST",
|
|
1377
|
+
domain: "earn"
|
|
1378
|
+
}
|
|
1379
|
+
);
|
|
1380
|
+
const result = interactionResponseSchema.safeParse(data);
|
|
1381
|
+
if (result.success === false) {
|
|
1382
|
+
console.log("[ZOD ERROR]", result.error);
|
|
1383
|
+
throw new Error(
|
|
1384
|
+
`Failed to parse ${interactionType} interaction: ${result.error.message}`
|
|
1385
|
+
);
|
|
1386
|
+
}
|
|
1387
|
+
return result.data;
|
|
1388
|
+
}
|
|
1389
|
+
var createDepositInteraction = (params) => createInteraction("deposit", params);
|
|
1390
|
+
var createWithdrawInteraction = (params) => createInteraction("withdraw", params);
|
|
1391
|
+
var createClaimWithdrawInteraction = (params) => createInteraction("claimWithdraw", params);
|
|
1392
|
+
|
|
1393
|
+
// src/v2/earn-interactions/hooks.ts
|
|
1394
|
+
import { useMutation as useMutation2 } from "@tanstack/react-query";
|
|
1395
|
+
function createInteractionHook(mutationFn) {
|
|
1396
|
+
return function useInteraction(options) {
|
|
1397
|
+
return useMutation2({
|
|
1398
|
+
mutationFn,
|
|
1399
|
+
...options
|
|
1400
|
+
});
|
|
1401
|
+
};
|
|
1402
|
+
}
|
|
1403
|
+
var useCreateDepositInteraction = createInteractionHook(
|
|
1404
|
+
createDepositInteraction
|
|
1405
|
+
);
|
|
1406
|
+
var useCreateWithdrawInteraction = createInteractionHook(
|
|
1407
|
+
createWithdrawInteraction
|
|
1408
|
+
);
|
|
1409
|
+
var useCreateClaimWithdrawInteraction = createInteractionHook(
|
|
1410
|
+
createClaimWithdrawInteraction
|
|
1411
|
+
);
|
|
1412
|
+
|
|
1298
1413
|
// src/v2/enso-balances/hooks.ts
|
|
1299
1414
|
import { useMemo } from "react";
|
|
1300
1415
|
import { useQueries } from "@tanstack/react-query";
|
|
@@ -1369,7 +1484,7 @@ function useOpportunity({ id, ...options }) {
|
|
|
1369
1484
|
}
|
|
1370
1485
|
|
|
1371
1486
|
// src/v2/products/hooks.ts
|
|
1372
|
-
import { useMutation as
|
|
1487
|
+
import { useMutation as useMutation3, useQuery as useQuery6 } from "@tanstack/react-query";
|
|
1373
1488
|
function useProducts({ filters, enabled = true }) {
|
|
1374
1489
|
return useQuery6({
|
|
1375
1490
|
...productsQueries.list(filters),
|
|
@@ -1385,25 +1500,25 @@ function useProduct({ id, enabled = true }) {
|
|
|
1385
1500
|
});
|
|
1386
1501
|
}
|
|
1387
1502
|
function useCreateProduct(options) {
|
|
1388
|
-
return
|
|
1503
|
+
return useMutation3({
|
|
1389
1504
|
mutationFn: (input) => createProduct(input),
|
|
1390
1505
|
...options
|
|
1391
1506
|
});
|
|
1392
1507
|
}
|
|
1393
1508
|
function useUpdateProduct(options) {
|
|
1394
|
-
return
|
|
1509
|
+
return useMutation3({
|
|
1395
1510
|
mutationFn: (input) => updateProduct(input),
|
|
1396
1511
|
...options
|
|
1397
1512
|
});
|
|
1398
1513
|
}
|
|
1399
1514
|
function useDeleteProduct(options) {
|
|
1400
|
-
return
|
|
1515
|
+
return useMutation3({
|
|
1401
1516
|
mutationFn: (id) => deleteProduct(id),
|
|
1402
1517
|
...options
|
|
1403
1518
|
});
|
|
1404
1519
|
}
|
|
1405
1520
|
function useUploadProductLogo(options) {
|
|
1406
|
-
return
|
|
1521
|
+
return useMutation3({
|
|
1407
1522
|
mutationFn: (request) => uploadProductLogo(request),
|
|
1408
1523
|
...options
|
|
1409
1524
|
});
|
|
@@ -1464,33 +1579,33 @@ var BalanceSourcePriority = /* @__PURE__ */ ((BalanceSourcePriority2) => {
|
|
|
1464
1579
|
})(BalanceSourcePriority || {});
|
|
1465
1580
|
|
|
1466
1581
|
// src/v2/balance/schema.ts
|
|
1467
|
-
import { z as
|
|
1468
|
-
var portfolioTokenSchema =
|
|
1469
|
-
id:
|
|
1470
|
-
address:
|
|
1471
|
-
name:
|
|
1472
|
-
symbol:
|
|
1473
|
-
decimals:
|
|
1474
|
-
isNative:
|
|
1475
|
-
logoUrl:
|
|
1476
|
-
amount:
|
|
1582
|
+
import { z as z15 } from "zod";
|
|
1583
|
+
var portfolioTokenSchema = z15.object({
|
|
1584
|
+
id: z15.string(),
|
|
1585
|
+
address: z15.string(),
|
|
1586
|
+
name: z15.string(),
|
|
1587
|
+
symbol: z15.string(),
|
|
1588
|
+
decimals: z15.number(),
|
|
1589
|
+
isNative: z15.boolean(),
|
|
1590
|
+
logoUrl: z15.string().nullable(),
|
|
1591
|
+
amount: z15.string(),
|
|
1477
1592
|
// Portfolio-specific field (decimal format)
|
|
1478
|
-
price:
|
|
1593
|
+
price: z15.string().nullable().transform((val) => val ? parseFloat(val) : null),
|
|
1479
1594
|
// Portfolio-specific field
|
|
1480
1595
|
// Chain with optional fields to match Portfolio API response
|
|
1481
1596
|
chain: chainSchema.partial().required({ chainId: true })
|
|
1482
1597
|
});
|
|
1483
|
-
var portfolioWalletSchema =
|
|
1484
|
-
id:
|
|
1485
|
-
address:
|
|
1486
|
-
blockchain:
|
|
1487
|
-
tokens:
|
|
1598
|
+
var portfolioWalletSchema = z15.object({
|
|
1599
|
+
id: z15.string().optional(),
|
|
1600
|
+
address: z15.string(),
|
|
1601
|
+
blockchain: z15.string().optional(),
|
|
1602
|
+
tokens: z15.array(portfolioTokenSchema)
|
|
1488
1603
|
});
|
|
1489
|
-
var portfolioHoldingsSchema =
|
|
1490
|
-
wallets:
|
|
1604
|
+
var portfolioHoldingsSchema = z15.object({
|
|
1605
|
+
wallets: z15.array(portfolioWalletSchema)
|
|
1491
1606
|
});
|
|
1492
|
-
var portfolioBalanceResponseSchema =
|
|
1493
|
-
portfolio:
|
|
1607
|
+
var portfolioBalanceResponseSchema = z15.object({
|
|
1608
|
+
portfolio: z15.object({
|
|
1494
1609
|
holdings: portfolioHoldingsSchema
|
|
1495
1610
|
})
|
|
1496
1611
|
});
|
|
@@ -1511,8 +1626,8 @@ async function getPortfolioBalance(address, options) {
|
|
|
1511
1626
|
}
|
|
1512
1627
|
|
|
1513
1628
|
// src/v2/balance/queries.ts
|
|
1514
|
-
import { createQueryKeys as
|
|
1515
|
-
var balanceQueries =
|
|
1629
|
+
import { createQueryKeys as createQueryKeys15 } from "@lukemorales/query-key-factory";
|
|
1630
|
+
var balanceQueries = createQueryKeys15("balance", {
|
|
1516
1631
|
// Portfolio balance by address
|
|
1517
1632
|
portfolio: (address) => ({
|
|
1518
1633
|
queryKey: [address],
|
|
@@ -1961,7 +2076,7 @@ function useGeocheck(options = {}) {
|
|
|
1961
2076
|
}
|
|
1962
2077
|
|
|
1963
2078
|
// src/v2/streams/hooks.ts
|
|
1964
|
-
import { useQuery as useQuery12, useMutation as
|
|
2079
|
+
import { useQuery as useQuery12, useMutation as useMutation4 } from "@tanstack/react-query";
|
|
1965
2080
|
function useStreams({ query, ...options } = {}) {
|
|
1966
2081
|
return useQuery12(createQueryOptions(streamsQueries.list(query), options));
|
|
1967
2082
|
}
|
|
@@ -1969,7 +2084,7 @@ function useStreamSupportedChains(options) {
|
|
|
1969
2084
|
return useQuery12(createQueryOptions(streamsQueries.supportedChains, options));
|
|
1970
2085
|
}
|
|
1971
2086
|
function useRequestStreamSignature(options) {
|
|
1972
|
-
return
|
|
2087
|
+
return useMutation4({
|
|
1973
2088
|
mutationFn: ({ organizationId, data }) => requestStreamSignature(organizationId, data),
|
|
1974
2089
|
...options
|
|
1975
2090
|
});
|
|
@@ -2091,6 +2206,61 @@ function useUserPortfolio({ userId, enabled = true }) {
|
|
|
2091
2206
|
});
|
|
2092
2207
|
}
|
|
2093
2208
|
|
|
2209
|
+
// src/v2/nfts/hooks.ts
|
|
2210
|
+
import { skipToken, useQuery as useQuery14 } from "@tanstack/react-query";
|
|
2211
|
+
function useUserNfts({ userAddress, chain, tokenAddress }) {
|
|
2212
|
+
return useQuery14(
|
|
2213
|
+
userAddress ? createQueryOptions(nftsQueries.byUser(userAddress, chain), {
|
|
2214
|
+
select: (data) => tokenAddress ? data.filter((nft) => nft.token.toLowerCase() === tokenAddress.toLowerCase()) : data
|
|
2215
|
+
}) : { queryKey: ["nfts", "byUser", "skip"], queryFn: skipToken }
|
|
2216
|
+
);
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
// src/v2/covers/hooks.ts
|
|
2220
|
+
import { useMutation as useMutation5 } from "@tanstack/react-query";
|
|
2221
|
+
|
|
2222
|
+
// src/v2/covers/schema.ts
|
|
2223
|
+
import { z as z16 } from "zod";
|
|
2224
|
+
var coverRequestDataSchema = z16.object({
|
|
2225
|
+
protocolName: z16.string(),
|
|
2226
|
+
coverageAmount: z16.string(),
|
|
2227
|
+
periodDays: z16.number(),
|
|
2228
|
+
desiredApySacrifice: z16.string(),
|
|
2229
|
+
calculatedEstimatedPremium: z16.string(),
|
|
2230
|
+
tokenSymbol: z16.string()
|
|
2231
|
+
});
|
|
2232
|
+
var submitCoverRequestResponseSchema = z16.object({
|
|
2233
|
+
success: z16.boolean()
|
|
2234
|
+
});
|
|
2235
|
+
|
|
2236
|
+
// src/v2/covers/api.ts
|
|
2237
|
+
async function submitCoverRequest(data) {
|
|
2238
|
+
const response = await apiClient.fetch("/turtle/nexus-cover-requests", {
|
|
2239
|
+
method: "POST",
|
|
2240
|
+
body: data
|
|
2241
|
+
});
|
|
2242
|
+
const result = submitCoverRequestResponseSchema.safeParse(response);
|
|
2243
|
+
if (!result.success) {
|
|
2244
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2245
|
+
throw new Error(`Failed to submit cover request due to an invalid server response.`);
|
|
2246
|
+
}
|
|
2247
|
+
return result.data;
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
// src/v2/covers/hooks.ts
|
|
2251
|
+
function useSubmitCoverRequest(options) {
|
|
2252
|
+
return useMutation5({
|
|
2253
|
+
mutationFn: submitCoverRequest,
|
|
2254
|
+
onSuccess: () => {
|
|
2255
|
+
options?.onSuccess?.("Cover request submitted successfully!");
|
|
2256
|
+
},
|
|
2257
|
+
onError: (error) => {
|
|
2258
|
+
console.error("[useSubmitCoverRequest]", error);
|
|
2259
|
+
options?.onError?.("Failed to submit Cover Request");
|
|
2260
|
+
}
|
|
2261
|
+
});
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2094
2264
|
// src/v2/lib/turtle-provider.tsx
|
|
2095
2265
|
import { useEffect, useMemo as useMemo9 } from "react";
|
|
2096
2266
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
@@ -2118,13 +2288,15 @@ var queries = mergeQueryKeys(
|
|
|
2118
2288
|
earnRouteQueries,
|
|
2119
2289
|
earnMembershipQueries,
|
|
2120
2290
|
earnDepositsQueries,
|
|
2291
|
+
earnInteractionsQueries,
|
|
2121
2292
|
productsQueries,
|
|
2122
2293
|
ensoBalancesQueries,
|
|
2123
2294
|
widgetQueries,
|
|
2124
2295
|
streamsQueries,
|
|
2125
2296
|
supportedChainsQueries,
|
|
2126
2297
|
supportedTokensQueries,
|
|
2127
|
-
usersQueries
|
|
2298
|
+
usersQueries,
|
|
2299
|
+
nftsQueries
|
|
2128
2300
|
);
|
|
2129
2301
|
export {
|
|
2130
2302
|
ApiError,
|
|
@@ -2141,16 +2313,21 @@ export {
|
|
|
2141
2313
|
chainSchema,
|
|
2142
2314
|
checkMembership,
|
|
2143
2315
|
checkMembershipResponseSchema,
|
|
2316
|
+
coverRequestDataSchema,
|
|
2144
2317
|
createAgreementRequestSchema,
|
|
2145
2318
|
createAgreementResponseSchema,
|
|
2319
|
+
createClaimWithdrawInteraction,
|
|
2320
|
+
createDepositInteraction,
|
|
2146
2321
|
createMembership,
|
|
2147
2322
|
createMembershipAgreement,
|
|
2148
2323
|
createMembershipRequestSchema,
|
|
2149
2324
|
createMembershipResponseSchema,
|
|
2325
|
+
createWithdrawInteraction,
|
|
2150
2326
|
depositSchema,
|
|
2151
2327
|
depositSubstep,
|
|
2152
2328
|
depositsResponseSchema,
|
|
2153
2329
|
earnDepositsQueries,
|
|
2330
|
+
earnInteractionsQueries,
|
|
2154
2331
|
earnMembershipQueries,
|
|
2155
2332
|
earnOpportunitiesQueries,
|
|
2156
2333
|
earnOpportunitiesResponseSchema,
|
|
@@ -2159,6 +2336,7 @@ export {
|
|
|
2159
2336
|
earnRouteResponseSchema,
|
|
2160
2337
|
ensoBalancesQueries,
|
|
2161
2338
|
ensoStep,
|
|
2339
|
+
fetchUserNfts,
|
|
2162
2340
|
filterBalancesByChains,
|
|
2163
2341
|
filterExcludedTokens,
|
|
2164
2342
|
filterNonZeroBalances,
|
|
@@ -2189,8 +2367,10 @@ export {
|
|
|
2189
2367
|
getWidgetOpportunities,
|
|
2190
2368
|
holdingsDataSchema,
|
|
2191
2369
|
incentiveSchema,
|
|
2370
|
+
interactionResponseSchema,
|
|
2192
2371
|
lendingConfigSchema,
|
|
2193
2372
|
mergeBalancesByPriority,
|
|
2373
|
+
nftsQueries,
|
|
2194
2374
|
opportunitiesQueries,
|
|
2195
2375
|
opportunitySchema,
|
|
2196
2376
|
organizationSchema,
|
|
@@ -2214,6 +2394,8 @@ export {
|
|
|
2214
2394
|
streamSignatureRequestInputSchema,
|
|
2215
2395
|
streamSignatureRequestOutputSchema,
|
|
2216
2396
|
streamsQueries,
|
|
2397
|
+
submitCoverRequest,
|
|
2398
|
+
submitCoverRequestResponseSchema,
|
|
2217
2399
|
supportedChainsQueries,
|
|
2218
2400
|
supportedChainsResponseSchema,
|
|
2219
2401
|
supportedTokenSchema,
|
|
@@ -2221,11 +2403,16 @@ export {
|
|
|
2221
2403
|
supportedTokensResponseSchema,
|
|
2222
2404
|
swapSubstep,
|
|
2223
2405
|
tokenSchema,
|
|
2406
|
+
transactionSchema,
|
|
2407
|
+
txResponseItemSchema,
|
|
2224
2408
|
useBalance,
|
|
2225
2409
|
useCheckMembership,
|
|
2410
|
+
useCreateClaimWithdrawInteraction,
|
|
2411
|
+
useCreateDepositInteraction,
|
|
2226
2412
|
useCreateMembership,
|
|
2227
2413
|
useCreateMembershipAgreement,
|
|
2228
2414
|
useCreateProduct,
|
|
2415
|
+
useCreateWithdrawInteraction,
|
|
2229
2416
|
useDeleteProduct,
|
|
2230
2417
|
useDeposits,
|
|
2231
2418
|
useEarnOpportunities,
|
|
@@ -2242,6 +2429,7 @@ export {
|
|
|
2242
2429
|
useRequestStreamSignature,
|
|
2243
2430
|
useStreamSupportedChains,
|
|
2244
2431
|
useStreams,
|
|
2432
|
+
useSubmitCoverRequest,
|
|
2245
2433
|
useSupportedChains,
|
|
2246
2434
|
useSupportedTokens,
|
|
2247
2435
|
useSwapRoute,
|
|
@@ -2249,6 +2437,7 @@ export {
|
|
|
2249
2437
|
useUpdateProduct,
|
|
2250
2438
|
useUploadProductLogo,
|
|
2251
2439
|
useUserById,
|
|
2440
|
+
useUserNfts,
|
|
2252
2441
|
useUserPortfolio,
|
|
2253
2442
|
useWidgetOpportunities,
|
|
2254
2443
|
userEarningsSchema,
|