@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.cjs
CHANGED
|
@@ -34,16 +34,21 @@ __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,
|
|
40
|
+
createClaimWithdrawInteraction: () => createClaimWithdrawInteraction,
|
|
41
|
+
createDepositInteraction: () => createDepositInteraction,
|
|
39
42
|
createMembership: () => createMembership,
|
|
40
43
|
createMembershipAgreement: () => createMembershipAgreement,
|
|
41
44
|
createMembershipRequestSchema: () => createMembershipRequestSchema,
|
|
42
45
|
createMembershipResponseSchema: () => createMembershipResponseSchema,
|
|
46
|
+
createWithdrawInteraction: () => createWithdrawInteraction,
|
|
43
47
|
depositSchema: () => depositSchema,
|
|
44
48
|
depositSubstep: () => depositSubstep,
|
|
45
49
|
depositsResponseSchema: () => depositsResponseSchema,
|
|
46
50
|
earnDepositsQueries: () => earnDepositsQueries,
|
|
51
|
+
earnInteractionsQueries: () => earnInteractionsQueries,
|
|
47
52
|
earnMembershipQueries: () => earnMembershipQueries,
|
|
48
53
|
earnOpportunitiesQueries: () => earnOpportunitiesQueries,
|
|
49
54
|
earnOpportunitiesResponseSchema: () => earnOpportunitiesResponseSchema,
|
|
@@ -52,6 +57,7 @@ __export(index_exports, {
|
|
|
52
57
|
earnRouteResponseSchema: () => earnRouteResponseSchema,
|
|
53
58
|
ensoBalancesQueries: () => ensoBalancesQueries,
|
|
54
59
|
ensoStep: () => ensoStep,
|
|
60
|
+
fetchUserNfts: () => fetchUserNfts,
|
|
55
61
|
filterBalancesByChains: () => filterBalancesByChains,
|
|
56
62
|
filterExcludedTokens: () => filterExcludedTokens,
|
|
57
63
|
filterNonZeroBalances: () => filterNonZeroBalances,
|
|
@@ -82,8 +88,10 @@ __export(index_exports, {
|
|
|
82
88
|
getWidgetOpportunities: () => getWidgetOpportunities,
|
|
83
89
|
holdingsDataSchema: () => holdingsDataSchema,
|
|
84
90
|
incentiveSchema: () => incentiveSchema,
|
|
91
|
+
interactionResponseSchema: () => interactionResponseSchema,
|
|
85
92
|
lendingConfigSchema: () => lendingConfigSchema,
|
|
86
93
|
mergeBalancesByPriority: () => mergeBalancesByPriority,
|
|
94
|
+
nftsQueries: () => nftsQueries,
|
|
87
95
|
opportunitiesQueries: () => opportunitiesQueries,
|
|
88
96
|
opportunitySchema: () => opportunitySchema,
|
|
89
97
|
organizationSchema: () => organizationSchema,
|
|
@@ -107,6 +115,8 @@ __export(index_exports, {
|
|
|
107
115
|
streamSignatureRequestInputSchema: () => streamSignatureRequestInputSchema,
|
|
108
116
|
streamSignatureRequestOutputSchema: () => streamSignatureRequestOutputSchema,
|
|
109
117
|
streamsQueries: () => streamsQueries,
|
|
118
|
+
submitCoverRequest: () => submitCoverRequest,
|
|
119
|
+
submitCoverRequestResponseSchema: () => submitCoverRequestResponseSchema,
|
|
110
120
|
supportedChainsQueries: () => supportedChainsQueries,
|
|
111
121
|
supportedChainsResponseSchema: () => supportedChainsResponseSchema,
|
|
112
122
|
supportedTokenSchema: () => supportedTokenSchema,
|
|
@@ -114,11 +124,16 @@ __export(index_exports, {
|
|
|
114
124
|
supportedTokensResponseSchema: () => supportedTokensResponseSchema,
|
|
115
125
|
swapSubstep: () => swapSubstep,
|
|
116
126
|
tokenSchema: () => tokenSchema,
|
|
127
|
+
transactionSchema: () => transactionSchema,
|
|
128
|
+
txResponseItemSchema: () => txResponseItemSchema,
|
|
117
129
|
useBalance: () => useBalance,
|
|
118
130
|
useCheckMembership: () => useCheckMembership,
|
|
131
|
+
useCreateClaimWithdrawInteraction: () => useCreateClaimWithdrawInteraction,
|
|
132
|
+
useCreateDepositInteraction: () => useCreateDepositInteraction,
|
|
119
133
|
useCreateMembership: () => useCreateMembership,
|
|
120
134
|
useCreateMembershipAgreement: () => useCreateMembershipAgreement,
|
|
121
135
|
useCreateProduct: () => useCreateProduct,
|
|
136
|
+
useCreateWithdrawInteraction: () => useCreateWithdrawInteraction,
|
|
122
137
|
useDeleteProduct: () => useDeleteProduct,
|
|
123
138
|
useDeposits: () => useDeposits,
|
|
124
139
|
useEarnOpportunities: () => useEarnOpportunities,
|
|
@@ -135,6 +150,7 @@ __export(index_exports, {
|
|
|
135
150
|
useRequestStreamSignature: () => useRequestStreamSignature,
|
|
136
151
|
useStreamSupportedChains: () => useStreamSupportedChains,
|
|
137
152
|
useStreams: () => useStreams,
|
|
153
|
+
useSubmitCoverRequest: () => useSubmitCoverRequest,
|
|
138
154
|
useSupportedChains: () => useSupportedChains,
|
|
139
155
|
useSupportedTokens: () => useSupportedTokens,
|
|
140
156
|
useSwapRoute: () => useSwapRoute,
|
|
@@ -142,6 +158,7 @@ __export(index_exports, {
|
|
|
142
158
|
useUpdateProduct: () => useUpdateProduct,
|
|
143
159
|
useUploadProductLogo: () => useUploadProductLogo,
|
|
144
160
|
useUserById: () => useUserById,
|
|
161
|
+
useUserNfts: () => useUserNfts,
|
|
145
162
|
useUserPortfolio: () => useUserPortfolio,
|
|
146
163
|
useWidgetOpportunities: () => useWidgetOpportunities,
|
|
147
164
|
userEarningsSchema: () => userEarningsSchema,
|
|
@@ -158,7 +175,7 @@ __export(index_exports, {
|
|
|
158
175
|
module.exports = __toCommonJS(index_exports);
|
|
159
176
|
|
|
160
177
|
// src/v2/index.ts
|
|
161
|
-
var
|
|
178
|
+
var import_query_key_factory16 = require("@lukemorales/query-key-factory");
|
|
162
179
|
|
|
163
180
|
// src/v2/opportunities/queries.ts
|
|
164
181
|
var import_query_key_factory = require("@lukemorales/query-key-factory");
|
|
@@ -762,8 +779,15 @@ var earnDepositsQueries = (0, import_query_key_factory5.createQueryKeys)("earnDe
|
|
|
762
779
|
})
|
|
763
780
|
});
|
|
764
781
|
|
|
765
|
-
// src/v2/
|
|
782
|
+
// src/v2/earn-interactions/queries.ts
|
|
766
783
|
var import_query_key_factory6 = require("@lukemorales/query-key-factory");
|
|
784
|
+
var earnInteractionsQueries = (0, import_query_key_factory6.createQueryKeys)("earnInteractions", {
|
|
785
|
+
// Placeholder for potential future GET endpoints
|
|
786
|
+
// e.g., getting interaction history
|
|
787
|
+
});
|
|
788
|
+
|
|
789
|
+
// src/v2/products/queries.ts
|
|
790
|
+
var import_query_key_factory7 = require("@lukemorales/query-key-factory");
|
|
767
791
|
|
|
768
792
|
// src/v2/products/schema.ts
|
|
769
793
|
var import_zod7 = require("zod");
|
|
@@ -923,7 +947,7 @@ async function uploadProductLogo({
|
|
|
923
947
|
}
|
|
924
948
|
|
|
925
949
|
// src/v2/products/queries.ts
|
|
926
|
-
var productsQueries = (0,
|
|
950
|
+
var productsQueries = (0, import_query_key_factory7.createQueryKeys)("products", {
|
|
927
951
|
// Get all products (no filters)
|
|
928
952
|
all: () => ({
|
|
929
953
|
queryKey: ["all"],
|
|
@@ -940,7 +964,7 @@ var productsQueries = (0, import_query_key_factory6.createQueryKeys)("products",
|
|
|
940
964
|
});
|
|
941
965
|
|
|
942
966
|
// src/v2/enso-balances/queries.ts
|
|
943
|
-
var
|
|
967
|
+
var import_query_key_factory8 = require("@lukemorales/query-key-factory");
|
|
944
968
|
|
|
945
969
|
// src/v2/enso-balances/schemas.ts
|
|
946
970
|
var import_zod8 = require("zod");
|
|
@@ -983,7 +1007,7 @@ async function getWalletBalances(params, context) {
|
|
|
983
1007
|
}
|
|
984
1008
|
|
|
985
1009
|
// src/v2/enso-balances/queries.ts
|
|
986
|
-
var ensoBalancesQueries = (0,
|
|
1010
|
+
var ensoBalancesQueries = (0, import_query_key_factory8.createQueryKeys)("ensoBalances", {
|
|
987
1011
|
byParams: (params) => ({
|
|
988
1012
|
queryKey: [params],
|
|
989
1013
|
queryFn: (context) => getWalletBalances(params, context)
|
|
@@ -991,7 +1015,7 @@ var ensoBalancesQueries = (0, import_query_key_factory7.createQueryKeys)("ensoBa
|
|
|
991
1015
|
});
|
|
992
1016
|
|
|
993
1017
|
// src/v2/widget/queries.ts
|
|
994
|
-
var
|
|
1018
|
+
var import_query_key_factory9 = require("@lukemorales/query-key-factory");
|
|
995
1019
|
|
|
996
1020
|
// src/v2/widget/schema.ts
|
|
997
1021
|
var import_zod9 = require("zod");
|
|
@@ -1015,7 +1039,7 @@ async function getWidgetOpportunities(distributorId, context) {
|
|
|
1015
1039
|
}
|
|
1016
1040
|
|
|
1017
1041
|
// src/v2/widget/queries.ts
|
|
1018
|
-
var widgetQueries = (0,
|
|
1042
|
+
var widgetQueries = (0, import_query_key_factory9.createQueryKeys)("widget", {
|
|
1019
1043
|
opportunities: (distributorId) => ({
|
|
1020
1044
|
queryKey: [distributorId],
|
|
1021
1045
|
queryFn: (context) => getWidgetOpportunities(distributorId, context)
|
|
@@ -1023,7 +1047,7 @@ var widgetQueries = (0, import_query_key_factory8.createQueryKeys)("widget", {
|
|
|
1023
1047
|
});
|
|
1024
1048
|
|
|
1025
1049
|
// src/v2/streams/queries.ts
|
|
1026
|
-
var
|
|
1050
|
+
var import_query_key_factory10 = require("@lukemorales/query-key-factory");
|
|
1027
1051
|
|
|
1028
1052
|
// src/v2/streams/schemas.ts
|
|
1029
1053
|
var import_zod10 = require("zod");
|
|
@@ -1178,7 +1202,7 @@ async function requestStreamSignature(organizationId, input) {
|
|
|
1178
1202
|
}
|
|
1179
1203
|
|
|
1180
1204
|
// src/v2/streams/queries.ts
|
|
1181
|
-
var streamsQueries = (0,
|
|
1205
|
+
var streamsQueries = (0, import_query_key_factory10.createQueryKeys)("streams", {
|
|
1182
1206
|
list: (query) => ({
|
|
1183
1207
|
queryKey: [query ?? "all"],
|
|
1184
1208
|
queryFn: () => getStreams(query)
|
|
@@ -1190,7 +1214,7 @@ var streamsQueries = (0, import_query_key_factory9.createQueryKeys)("streams", {
|
|
|
1190
1214
|
});
|
|
1191
1215
|
|
|
1192
1216
|
// src/v2/supported-chains/queries.ts
|
|
1193
|
-
var
|
|
1217
|
+
var import_query_key_factory11 = require("@lukemorales/query-key-factory");
|
|
1194
1218
|
|
|
1195
1219
|
// src/v2/supported-chains/schema.ts
|
|
1196
1220
|
var import_zod11 = require("zod");
|
|
@@ -1213,7 +1237,7 @@ async function getSupportedChains(options) {
|
|
|
1213
1237
|
}
|
|
1214
1238
|
|
|
1215
1239
|
// src/v2/supported-chains/queries.ts
|
|
1216
|
-
var supportedChainsQueries = (0,
|
|
1240
|
+
var supportedChainsQueries = (0, import_query_key_factory11.createQueryKeys)("supportedChains", {
|
|
1217
1241
|
all: {
|
|
1218
1242
|
queryKey: null,
|
|
1219
1243
|
queryFn: () => getSupportedChains()
|
|
@@ -1221,7 +1245,7 @@ var supportedChainsQueries = (0, import_query_key_factory10.createQueryKeys)("su
|
|
|
1221
1245
|
});
|
|
1222
1246
|
|
|
1223
1247
|
// src/v2/supported-tokens/queries.ts
|
|
1224
|
-
var
|
|
1248
|
+
var import_query_key_factory12 = require("@lukemorales/query-key-factory");
|
|
1225
1249
|
|
|
1226
1250
|
// src/v2/supported-tokens/schema.ts
|
|
1227
1251
|
var import_zod12 = require("zod");
|
|
@@ -1256,7 +1280,7 @@ async function getSupportedTokens(filters, options) {
|
|
|
1256
1280
|
}
|
|
1257
1281
|
|
|
1258
1282
|
// src/v2/supported-tokens/queries.ts
|
|
1259
|
-
var supportedTokensQueries = (0,
|
|
1283
|
+
var supportedTokensQueries = (0, import_query_key_factory12.createQueryKeys)("supportedTokens", {
|
|
1260
1284
|
list: (filters) => ({
|
|
1261
1285
|
queryKey: [filters],
|
|
1262
1286
|
queryFn: () => getSupportedTokens(filters)
|
|
@@ -1264,7 +1288,7 @@ var supportedTokensQueries = (0, import_query_key_factory11.createQueryKeys)("su
|
|
|
1264
1288
|
});
|
|
1265
1289
|
|
|
1266
1290
|
// src/v2/users/queries.ts
|
|
1267
|
-
var
|
|
1291
|
+
var import_query_key_factory13 = require("@lukemorales/query-key-factory");
|
|
1268
1292
|
|
|
1269
1293
|
// src/v2/users/schemas.ts
|
|
1270
1294
|
var import_zod13 = require("zod");
|
|
@@ -1360,7 +1384,7 @@ async function getUserPortfolio(input) {
|
|
|
1360
1384
|
}
|
|
1361
1385
|
|
|
1362
1386
|
// src/v2/users/queries.ts
|
|
1363
|
-
var usersQueries = (0,
|
|
1387
|
+
var usersQueries = (0, import_query_key_factory13.createQueryKeys)("users", {
|
|
1364
1388
|
byId: (input) => ({
|
|
1365
1389
|
queryKey: [input.userId],
|
|
1366
1390
|
queryFn: () => getUserById(input)
|
|
@@ -1371,6 +1395,37 @@ var usersQueries = (0, import_query_key_factory12.createQueryKeys)("users", {
|
|
|
1371
1395
|
})
|
|
1372
1396
|
});
|
|
1373
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
|
+
|
|
1374
1429
|
// src/v2/earn-opportunities/hooks.ts
|
|
1375
1430
|
var import_react_query = require("@tanstack/react-query");
|
|
1376
1431
|
|
|
@@ -1454,14 +1509,91 @@ function useDeposits({ params, enabled = true }) {
|
|
|
1454
1509
|
});
|
|
1455
1510
|
}
|
|
1456
1511
|
|
|
1512
|
+
// src/v2/earn-interactions/schema.ts
|
|
1513
|
+
var import_zod14 = require("zod");
|
|
1514
|
+
var transactionSchema = import_zod14.z.object({
|
|
1515
|
+
chainId: import_zod14.z.number().int(),
|
|
1516
|
+
data: import_zod14.z.string(),
|
|
1517
|
+
to: import_zod14.z.string(),
|
|
1518
|
+
value: import_zod14.z.string(),
|
|
1519
|
+
gasLimit: import_zod14.z.string().optional()
|
|
1520
|
+
});
|
|
1521
|
+
var txResponseItemSchema = import_zod14.z.object({
|
|
1522
|
+
type: import_zod14.z.string().optional(),
|
|
1523
|
+
description: import_zod14.z.string().optional(),
|
|
1524
|
+
transaction: transactionSchema
|
|
1525
|
+
});
|
|
1526
|
+
var interactionResponseSchema = import_zod14.z.object({
|
|
1527
|
+
transactions: import_zod14.z.array(txResponseItemSchema).nullable()
|
|
1528
|
+
});
|
|
1529
|
+
|
|
1530
|
+
// src/v2/earn-interactions/api.ts
|
|
1531
|
+
function buildInteractionQuery(params) {
|
|
1532
|
+
const searchParams = new URLSearchParams({
|
|
1533
|
+
userAddress: params.userAddress,
|
|
1534
|
+
tokenIn: params.tokenIn,
|
|
1535
|
+
amount: params.amount,
|
|
1536
|
+
distributorId: params.distributorId
|
|
1537
|
+
});
|
|
1538
|
+
if (params.referralCode) {
|
|
1539
|
+
searchParams.set("referralCode", params.referralCode);
|
|
1540
|
+
}
|
|
1541
|
+
if (params.slippageBps !== void 0) {
|
|
1542
|
+
searchParams.set("slippageBps", params.slippageBps.toString());
|
|
1543
|
+
}
|
|
1544
|
+
return searchParams.toString();
|
|
1545
|
+
}
|
|
1546
|
+
async function createInteraction(interactionType, params) {
|
|
1547
|
+
const { opportunityId, ...queryParams } = params;
|
|
1548
|
+
const query = buildInteractionQuery(queryParams);
|
|
1549
|
+
const data = await apiClient.fetch(
|
|
1550
|
+
`/v1/interactions/${interactionType}/${opportunityId}?${query}`,
|
|
1551
|
+
{
|
|
1552
|
+
method: "POST",
|
|
1553
|
+
domain: "earn"
|
|
1554
|
+
}
|
|
1555
|
+
);
|
|
1556
|
+
const result = interactionResponseSchema.safeParse(data);
|
|
1557
|
+
if (result.success === false) {
|
|
1558
|
+
console.log("[ZOD ERROR]", result.error);
|
|
1559
|
+
throw new Error(
|
|
1560
|
+
`Failed to parse ${interactionType} interaction: ${result.error.message}`
|
|
1561
|
+
);
|
|
1562
|
+
}
|
|
1563
|
+
return result.data;
|
|
1564
|
+
}
|
|
1565
|
+
var createDepositInteraction = (params) => createInteraction("deposit", params);
|
|
1566
|
+
var createWithdrawInteraction = (params) => createInteraction("withdraw", params);
|
|
1567
|
+
var createClaimWithdrawInteraction = (params) => createInteraction("claimWithdraw", params);
|
|
1568
|
+
|
|
1569
|
+
// src/v2/earn-interactions/hooks.ts
|
|
1570
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
1571
|
+
function createInteractionHook(mutationFn) {
|
|
1572
|
+
return function useInteraction(options) {
|
|
1573
|
+
return (0, import_react_query5.useMutation)({
|
|
1574
|
+
mutationFn,
|
|
1575
|
+
...options
|
|
1576
|
+
});
|
|
1577
|
+
};
|
|
1578
|
+
}
|
|
1579
|
+
var useCreateDepositInteraction = createInteractionHook(
|
|
1580
|
+
createDepositInteraction
|
|
1581
|
+
);
|
|
1582
|
+
var useCreateWithdrawInteraction = createInteractionHook(
|
|
1583
|
+
createWithdrawInteraction
|
|
1584
|
+
);
|
|
1585
|
+
var useCreateClaimWithdrawInteraction = createInteractionHook(
|
|
1586
|
+
createClaimWithdrawInteraction
|
|
1587
|
+
);
|
|
1588
|
+
|
|
1457
1589
|
// src/v2/enso-balances/hooks.ts
|
|
1458
1590
|
var import_react = require("react");
|
|
1459
|
-
var
|
|
1591
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
1460
1592
|
function useMultiChainBalances({
|
|
1461
1593
|
chainIds,
|
|
1462
1594
|
address
|
|
1463
1595
|
}) {
|
|
1464
|
-
const queries2 = (0,
|
|
1596
|
+
const queries2 = (0, import_react_query6.useQueries)({
|
|
1465
1597
|
queries: chainIds.map((chainId) => ({
|
|
1466
1598
|
...ensoBalancesQueries.byParams({ user: address || "", chain: chainId }),
|
|
1467
1599
|
enabled: !!address,
|
|
@@ -1497,9 +1629,9 @@ function useMultiChainBalances({
|
|
|
1497
1629
|
}
|
|
1498
1630
|
|
|
1499
1631
|
// src/v2/opportunities/hooks.ts
|
|
1500
|
-
var
|
|
1632
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
1501
1633
|
function useOpportunities(options) {
|
|
1502
|
-
return (0,
|
|
1634
|
+
return (0, import_react_query7.useQuery)({
|
|
1503
1635
|
...opportunitiesQueries.all,
|
|
1504
1636
|
...queryDefaults,
|
|
1505
1637
|
select: (data) => {
|
|
@@ -1515,7 +1647,7 @@ function useOpportunities(options) {
|
|
|
1515
1647
|
});
|
|
1516
1648
|
}
|
|
1517
1649
|
function useOpportunity({ id, ...options }) {
|
|
1518
|
-
return (0,
|
|
1650
|
+
return (0, import_react_query7.useQuery)({
|
|
1519
1651
|
...opportunitiesQueries.byId(id),
|
|
1520
1652
|
...queryDefaults,
|
|
1521
1653
|
select: (data) => {
|
|
@@ -1528,41 +1660,41 @@ function useOpportunity({ id, ...options }) {
|
|
|
1528
1660
|
}
|
|
1529
1661
|
|
|
1530
1662
|
// src/v2/products/hooks.ts
|
|
1531
|
-
var
|
|
1663
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
1532
1664
|
function useProducts({ filters, enabled = true }) {
|
|
1533
|
-
return (0,
|
|
1665
|
+
return (0, import_react_query8.useQuery)({
|
|
1534
1666
|
...productsQueries.list(filters),
|
|
1535
1667
|
...queryDefaults,
|
|
1536
1668
|
enabled
|
|
1537
1669
|
});
|
|
1538
1670
|
}
|
|
1539
1671
|
function useProduct({ id, enabled = true }) {
|
|
1540
|
-
return (0,
|
|
1672
|
+
return (0, import_react_query8.useQuery)({
|
|
1541
1673
|
...productsQueries.byId(id),
|
|
1542
1674
|
...queryDefaults,
|
|
1543
1675
|
enabled
|
|
1544
1676
|
});
|
|
1545
1677
|
}
|
|
1546
1678
|
function useCreateProduct(options) {
|
|
1547
|
-
return (0,
|
|
1679
|
+
return (0, import_react_query8.useMutation)({
|
|
1548
1680
|
mutationFn: (input) => createProduct(input),
|
|
1549
1681
|
...options
|
|
1550
1682
|
});
|
|
1551
1683
|
}
|
|
1552
1684
|
function useUpdateProduct(options) {
|
|
1553
|
-
return (0,
|
|
1685
|
+
return (0, import_react_query8.useMutation)({
|
|
1554
1686
|
mutationFn: (input) => updateProduct(input),
|
|
1555
1687
|
...options
|
|
1556
1688
|
});
|
|
1557
1689
|
}
|
|
1558
1690
|
function useDeleteProduct(options) {
|
|
1559
|
-
return (0,
|
|
1691
|
+
return (0, import_react_query8.useMutation)({
|
|
1560
1692
|
mutationFn: (id) => deleteProduct(id),
|
|
1561
1693
|
...options
|
|
1562
1694
|
});
|
|
1563
1695
|
}
|
|
1564
1696
|
function useUploadProductLogo(options) {
|
|
1565
|
-
return (0,
|
|
1697
|
+
return (0, import_react_query8.useMutation)({
|
|
1566
1698
|
mutationFn: (request) => uploadProductLogo(request),
|
|
1567
1699
|
...options
|
|
1568
1700
|
});
|
|
@@ -1623,33 +1755,33 @@ var BalanceSourcePriority = /* @__PURE__ */ ((BalanceSourcePriority2) => {
|
|
|
1623
1755
|
})(BalanceSourcePriority || {});
|
|
1624
1756
|
|
|
1625
1757
|
// src/v2/balance/schema.ts
|
|
1626
|
-
var
|
|
1627
|
-
var portfolioTokenSchema =
|
|
1628
|
-
id:
|
|
1629
|
-
address:
|
|
1630
|
-
name:
|
|
1631
|
-
symbol:
|
|
1632
|
-
decimals:
|
|
1633
|
-
isNative:
|
|
1634
|
-
logoUrl:
|
|
1635
|
-
amount:
|
|
1758
|
+
var import_zod15 = require("zod");
|
|
1759
|
+
var portfolioTokenSchema = import_zod15.z.object({
|
|
1760
|
+
id: import_zod15.z.string(),
|
|
1761
|
+
address: import_zod15.z.string(),
|
|
1762
|
+
name: import_zod15.z.string(),
|
|
1763
|
+
symbol: import_zod15.z.string(),
|
|
1764
|
+
decimals: import_zod15.z.number(),
|
|
1765
|
+
isNative: import_zod15.z.boolean(),
|
|
1766
|
+
logoUrl: import_zod15.z.string().nullable(),
|
|
1767
|
+
amount: import_zod15.z.string(),
|
|
1636
1768
|
// Portfolio-specific field (decimal format)
|
|
1637
|
-
price:
|
|
1769
|
+
price: import_zod15.z.string().nullable().transform((val) => val ? parseFloat(val) : null),
|
|
1638
1770
|
// Portfolio-specific field
|
|
1639
1771
|
// Chain with optional fields to match Portfolio API response
|
|
1640
1772
|
chain: chainSchema.partial().required({ chainId: true })
|
|
1641
1773
|
});
|
|
1642
|
-
var portfolioWalletSchema =
|
|
1643
|
-
id:
|
|
1644
|
-
address:
|
|
1645
|
-
blockchain:
|
|
1646
|
-
tokens:
|
|
1774
|
+
var portfolioWalletSchema = import_zod15.z.object({
|
|
1775
|
+
id: import_zod15.z.string().optional(),
|
|
1776
|
+
address: import_zod15.z.string(),
|
|
1777
|
+
blockchain: import_zod15.z.string().optional(),
|
|
1778
|
+
tokens: import_zod15.z.array(portfolioTokenSchema)
|
|
1647
1779
|
});
|
|
1648
|
-
var portfolioHoldingsSchema =
|
|
1649
|
-
wallets:
|
|
1780
|
+
var portfolioHoldingsSchema = import_zod15.z.object({
|
|
1781
|
+
wallets: import_zod15.z.array(portfolioWalletSchema)
|
|
1650
1782
|
});
|
|
1651
|
-
var portfolioBalanceResponseSchema =
|
|
1652
|
-
portfolio:
|
|
1783
|
+
var portfolioBalanceResponseSchema = import_zod15.z.object({
|
|
1784
|
+
portfolio: import_zod15.z.object({
|
|
1653
1785
|
holdings: portfolioHoldingsSchema
|
|
1654
1786
|
})
|
|
1655
1787
|
});
|
|
@@ -1670,8 +1802,8 @@ async function getPortfolioBalance(address, options) {
|
|
|
1670
1802
|
}
|
|
1671
1803
|
|
|
1672
1804
|
// src/v2/balance/queries.ts
|
|
1673
|
-
var
|
|
1674
|
-
var balanceQueries = (0,
|
|
1805
|
+
var import_query_key_factory15 = require("@lukemorales/query-key-factory");
|
|
1806
|
+
var balanceQueries = (0, import_query_key_factory15.createQueryKeys)("balance", {
|
|
1675
1807
|
// Portfolio balance by address
|
|
1676
1808
|
portfolio: (address) => ({
|
|
1677
1809
|
queryKey: [address],
|
|
@@ -1740,13 +1872,13 @@ function useGetOnChainBalance({
|
|
|
1740
1872
|
}
|
|
1741
1873
|
|
|
1742
1874
|
// src/v2/balance/hooks/usePortfolioBalance.ts
|
|
1743
|
-
var
|
|
1875
|
+
var import_react_query11 = require("@tanstack/react-query");
|
|
1744
1876
|
var import_react5 = require("react");
|
|
1745
1877
|
|
|
1746
1878
|
// src/v2/supported-chains/hooks.ts
|
|
1747
|
-
var
|
|
1879
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
1748
1880
|
function useSupportedChains() {
|
|
1749
|
-
const { data, isLoading, error, refetch } = (0,
|
|
1881
|
+
const { data, isLoading, error, refetch } = (0, import_react_query9.useQuery)({
|
|
1750
1882
|
...supportedChainsQueries.all,
|
|
1751
1883
|
...queryDefaults
|
|
1752
1884
|
});
|
|
@@ -1761,7 +1893,7 @@ function useSupportedChains() {
|
|
|
1761
1893
|
}
|
|
1762
1894
|
|
|
1763
1895
|
// src/v2/supported-tokens/hooks.ts
|
|
1764
|
-
var
|
|
1896
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
1765
1897
|
var import_react4 = require("react");
|
|
1766
1898
|
function useSupportedTokens({
|
|
1767
1899
|
page = 0,
|
|
@@ -1769,7 +1901,7 @@ function useSupportedTokens({
|
|
|
1769
1901
|
search,
|
|
1770
1902
|
enabled = true
|
|
1771
1903
|
} = {}) {
|
|
1772
|
-
const { data, isLoading, error, refetch } = (0,
|
|
1904
|
+
const { data, isLoading, error, refetch } = (0, import_react_query10.useQuery)({
|
|
1773
1905
|
...supportedTokensQueries.list({ page, limit, search }),
|
|
1774
1906
|
...queryDefaults,
|
|
1775
1907
|
staleTime: 5 * 60 * 1e3,
|
|
@@ -1811,7 +1943,7 @@ function usePortfolioBalance({
|
|
|
1811
1943
|
isLoading,
|
|
1812
1944
|
error,
|
|
1813
1945
|
refetch
|
|
1814
|
-
} = (0,
|
|
1946
|
+
} = (0, import_react_query11.useQuery)({
|
|
1815
1947
|
...balanceQueries.portfolio(address || ""),
|
|
1816
1948
|
...queryDefaults,
|
|
1817
1949
|
enabled: !!address,
|
|
@@ -2059,9 +2191,9 @@ function useBalance({
|
|
|
2059
2191
|
}
|
|
2060
2192
|
|
|
2061
2193
|
// src/v2/widget/hooks.ts
|
|
2062
|
-
var
|
|
2194
|
+
var import_react_query12 = require("@tanstack/react-query");
|
|
2063
2195
|
function useWidgetOpportunities(distributorId) {
|
|
2064
|
-
return (0,
|
|
2196
|
+
return (0, import_react_query12.useQuery)({
|
|
2065
2197
|
...widgetQueries.opportunities(distributorId),
|
|
2066
2198
|
...queryDefaults,
|
|
2067
2199
|
select: (data) => {
|
|
@@ -2085,7 +2217,7 @@ function useWidgetOpportunities(distributorId) {
|
|
|
2085
2217
|
}
|
|
2086
2218
|
|
|
2087
2219
|
// src/v2/geocheck/useGeocheck.ts
|
|
2088
|
-
var
|
|
2220
|
+
var import_react_query13 = require("@tanstack/react-query");
|
|
2089
2221
|
var INDEXER_ENDPOINT = "https://api.turtle.xyz";
|
|
2090
2222
|
async function fetchGeocheck() {
|
|
2091
2223
|
const url = `${INDEXER_ENDPOINT}/turtle/geocheck`;
|
|
@@ -2101,13 +2233,13 @@ async function fetchGeocheck() {
|
|
|
2101
2233
|
}
|
|
2102
2234
|
return data;
|
|
2103
2235
|
}
|
|
2104
|
-
var geocheckQueryOptions = () => (0,
|
|
2236
|
+
var geocheckQueryOptions = () => (0, import_react_query13.queryOptions)({
|
|
2105
2237
|
queryKey: ["geocheck"],
|
|
2106
2238
|
queryFn: fetchGeocheck
|
|
2107
2239
|
});
|
|
2108
2240
|
function useGeocheck(options = {}) {
|
|
2109
2241
|
const { enabled = true, staleTime, gcTime } = options;
|
|
2110
|
-
return (0,
|
|
2242
|
+
return (0, import_react_query13.useQuery)({
|
|
2111
2243
|
...geocheckQueryOptions(),
|
|
2112
2244
|
enabled,
|
|
2113
2245
|
staleTime: staleTime ?? 5 * 60 * 1e3,
|
|
@@ -2120,15 +2252,15 @@ function useGeocheck(options = {}) {
|
|
|
2120
2252
|
}
|
|
2121
2253
|
|
|
2122
2254
|
// src/v2/streams/hooks.ts
|
|
2123
|
-
var
|
|
2255
|
+
var import_react_query14 = require("@tanstack/react-query");
|
|
2124
2256
|
function useStreams({ query, ...options } = {}) {
|
|
2125
|
-
return (0,
|
|
2257
|
+
return (0, import_react_query14.useQuery)(createQueryOptions(streamsQueries.list(query), options));
|
|
2126
2258
|
}
|
|
2127
2259
|
function useStreamSupportedChains(options) {
|
|
2128
|
-
return (0,
|
|
2260
|
+
return (0, import_react_query14.useQuery)(createQueryOptions(streamsQueries.supportedChains, options));
|
|
2129
2261
|
}
|
|
2130
2262
|
function useRequestStreamSignature(options) {
|
|
2131
|
-
return (0,
|
|
2263
|
+
return (0, import_react_query14.useMutation)({
|
|
2132
2264
|
mutationFn: ({ organizationId, data }) => requestStreamSignature(organizationId, data),
|
|
2133
2265
|
...options
|
|
2134
2266
|
});
|
|
@@ -2233,9 +2365,9 @@ function useSwapRoute(isEnabled, userAddress, distributorId, options, referralCo
|
|
|
2233
2365
|
}
|
|
2234
2366
|
|
|
2235
2367
|
// src/v2/users/hooks.ts
|
|
2236
|
-
var
|
|
2368
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
2237
2369
|
function useUserById({ userId, enabled = true }) {
|
|
2238
|
-
return (0,
|
|
2370
|
+
return (0, import_react_query15.useQuery)({
|
|
2239
2371
|
...usersQueries.byId({ userId }),
|
|
2240
2372
|
...queryDefaults,
|
|
2241
2373
|
enabled
|
|
@@ -2243,13 +2375,68 @@ function useUserById({ userId, enabled = true }) {
|
|
|
2243
2375
|
}
|
|
2244
2376
|
function useUserPortfolio({ userId, enabled = true }) {
|
|
2245
2377
|
const input = { userId };
|
|
2246
|
-
return (0,
|
|
2378
|
+
return (0, import_react_query15.useQuery)({
|
|
2247
2379
|
...usersQueries.portfolio(input),
|
|
2248
2380
|
...queryDefaults,
|
|
2249
2381
|
enabled
|
|
2250
2382
|
});
|
|
2251
2383
|
}
|
|
2252
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
|
+
|
|
2253
2440
|
// src/v2/lib/turtle-provider.tsx
|
|
2254
2441
|
var import_react9 = require("react");
|
|
2255
2442
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -2271,19 +2458,21 @@ function TurtleHooksProvider({
|
|
|
2271
2458
|
}
|
|
2272
2459
|
|
|
2273
2460
|
// src/v2/index.ts
|
|
2274
|
-
var queries = (0,
|
|
2461
|
+
var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
2275
2462
|
opportunitiesQueries,
|
|
2276
2463
|
earnOpportunitiesQueries,
|
|
2277
2464
|
earnRouteQueries,
|
|
2278
2465
|
earnMembershipQueries,
|
|
2279
2466
|
earnDepositsQueries,
|
|
2467
|
+
earnInteractionsQueries,
|
|
2280
2468
|
productsQueries,
|
|
2281
2469
|
ensoBalancesQueries,
|
|
2282
2470
|
widgetQueries,
|
|
2283
2471
|
streamsQueries,
|
|
2284
2472
|
supportedChainsQueries,
|
|
2285
2473
|
supportedTokensQueries,
|
|
2286
|
-
usersQueries
|
|
2474
|
+
usersQueries,
|
|
2475
|
+
nftsQueries
|
|
2287
2476
|
);
|
|
2288
2477
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2289
2478
|
0 && (module.exports = {
|
|
@@ -2301,16 +2490,21 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2301
2490
|
chainSchema,
|
|
2302
2491
|
checkMembership,
|
|
2303
2492
|
checkMembershipResponseSchema,
|
|
2493
|
+
coverRequestDataSchema,
|
|
2304
2494
|
createAgreementRequestSchema,
|
|
2305
2495
|
createAgreementResponseSchema,
|
|
2496
|
+
createClaimWithdrawInteraction,
|
|
2497
|
+
createDepositInteraction,
|
|
2306
2498
|
createMembership,
|
|
2307
2499
|
createMembershipAgreement,
|
|
2308
2500
|
createMembershipRequestSchema,
|
|
2309
2501
|
createMembershipResponseSchema,
|
|
2502
|
+
createWithdrawInteraction,
|
|
2310
2503
|
depositSchema,
|
|
2311
2504
|
depositSubstep,
|
|
2312
2505
|
depositsResponseSchema,
|
|
2313
2506
|
earnDepositsQueries,
|
|
2507
|
+
earnInteractionsQueries,
|
|
2314
2508
|
earnMembershipQueries,
|
|
2315
2509
|
earnOpportunitiesQueries,
|
|
2316
2510
|
earnOpportunitiesResponseSchema,
|
|
@@ -2319,6 +2513,7 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2319
2513
|
earnRouteResponseSchema,
|
|
2320
2514
|
ensoBalancesQueries,
|
|
2321
2515
|
ensoStep,
|
|
2516
|
+
fetchUserNfts,
|
|
2322
2517
|
filterBalancesByChains,
|
|
2323
2518
|
filterExcludedTokens,
|
|
2324
2519
|
filterNonZeroBalances,
|
|
@@ -2349,8 +2544,10 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2349
2544
|
getWidgetOpportunities,
|
|
2350
2545
|
holdingsDataSchema,
|
|
2351
2546
|
incentiveSchema,
|
|
2547
|
+
interactionResponseSchema,
|
|
2352
2548
|
lendingConfigSchema,
|
|
2353
2549
|
mergeBalancesByPriority,
|
|
2550
|
+
nftsQueries,
|
|
2354
2551
|
opportunitiesQueries,
|
|
2355
2552
|
opportunitySchema,
|
|
2356
2553
|
organizationSchema,
|
|
@@ -2374,6 +2571,8 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2374
2571
|
streamSignatureRequestInputSchema,
|
|
2375
2572
|
streamSignatureRequestOutputSchema,
|
|
2376
2573
|
streamsQueries,
|
|
2574
|
+
submitCoverRequest,
|
|
2575
|
+
submitCoverRequestResponseSchema,
|
|
2377
2576
|
supportedChainsQueries,
|
|
2378
2577
|
supportedChainsResponseSchema,
|
|
2379
2578
|
supportedTokenSchema,
|
|
@@ -2381,11 +2580,16 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2381
2580
|
supportedTokensResponseSchema,
|
|
2382
2581
|
swapSubstep,
|
|
2383
2582
|
tokenSchema,
|
|
2583
|
+
transactionSchema,
|
|
2584
|
+
txResponseItemSchema,
|
|
2384
2585
|
useBalance,
|
|
2385
2586
|
useCheckMembership,
|
|
2587
|
+
useCreateClaimWithdrawInteraction,
|
|
2588
|
+
useCreateDepositInteraction,
|
|
2386
2589
|
useCreateMembership,
|
|
2387
2590
|
useCreateMembershipAgreement,
|
|
2388
2591
|
useCreateProduct,
|
|
2592
|
+
useCreateWithdrawInteraction,
|
|
2389
2593
|
useDeleteProduct,
|
|
2390
2594
|
useDeposits,
|
|
2391
2595
|
useEarnOpportunities,
|
|
@@ -2402,6 +2606,7 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2402
2606
|
useRequestStreamSignature,
|
|
2403
2607
|
useStreamSupportedChains,
|
|
2404
2608
|
useStreams,
|
|
2609
|
+
useSubmitCoverRequest,
|
|
2405
2610
|
useSupportedChains,
|
|
2406
2611
|
useSupportedTokens,
|
|
2407
2612
|
useSwapRoute,
|
|
@@ -2409,6 +2614,7 @@ var queries = (0, import_query_key_factory14.mergeQueryKeys)(
|
|
|
2409
2614
|
useUpdateProduct,
|
|
2410
2615
|
useUploadProductLogo,
|
|
2411
2616
|
useUserById,
|
|
2617
|
+
useUserNfts,
|
|
2412
2618
|
useUserPortfolio,
|
|
2413
2619
|
useWidgetOpportunities,
|
|
2414
2620
|
userEarningsSchema,
|