@turtleclub/hooks 0.2.0-beta.0 → 0.2.0-beta.1
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 +248 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +227 -24
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/hooks/earn/index.ts +1 -0
- package/src/hooks/earn/useEnhancedEarnDeals.ts +146 -0
- package/src/hooks/endpoints/earn/useCampaigns.ts +5 -3
- package/src/hooks/endpoints/earn/useDeals.ts +5 -3
- package/src/hooks/endpoints/index.ts +2 -0
- package/src/hooks/endpoints/partner/index.ts +2 -0
- package/src/hooks/endpoints/partner/usePartnerCampaigns.ts +43 -0
- package/src/hooks/endpoints/partner/usePartnerDeals.ts +41 -0
- package/src/hooks/endpoints/useIndexerTvl.ts +39 -0
- package/src/hooks/index.ts +1 -0
- package/src/index.ts +5 -0
- package/src/utils/dataMatching.ts +81 -0
package/dist/index.cjs
CHANGED
|
@@ -26,10 +26,14 @@ __export(index_exports, {
|
|
|
26
26
|
useEarnDeals: () => useEarnDeals,
|
|
27
27
|
useEarnRoute: () => useEarnRoute,
|
|
28
28
|
useEarnWalletBalances: () => useEarnWalletBalances,
|
|
29
|
+
useEnhancedEarnDeals: () => useEnhancedEarnDeals,
|
|
29
30
|
useExists: () => useExists,
|
|
31
|
+
useIndexerTvl: () => useIndexerTvl,
|
|
30
32
|
useOrganizationDeals: () => useOrganizationDeals,
|
|
31
33
|
useOrganizations: () => useOrganizations,
|
|
32
34
|
useOrganizationsDeals: () => useOrganizationsDeals,
|
|
35
|
+
usePartnerCampaigns: () => usePartnerCampaigns,
|
|
36
|
+
usePartnerDeals: () => usePartnerDeals,
|
|
33
37
|
usePrepareSignup: () => usePrepareSignup,
|
|
34
38
|
useProjectTvl: () => useProjectTvl,
|
|
35
39
|
useSignup: () => useSignup
|
|
@@ -107,18 +111,46 @@ function useExists(options, { config, queryClient } = {}) {
|
|
|
107
111
|
return query;
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
// src/hooks/endpoints/
|
|
114
|
+
// src/hooks/endpoints/useIndexerTvl.ts
|
|
111
115
|
var import_react_query4 = require("@tanstack/react-query");
|
|
112
116
|
var import_api4 = require("@turtleclub/api");
|
|
113
|
-
function
|
|
117
|
+
function useIndexerTvl(options, { config, queryClient } = {}) {
|
|
114
118
|
const defaultConfig2 = useConfig();
|
|
115
119
|
const enabled = options !== void 0;
|
|
116
120
|
const query = (0, import_react_query4.useQuery)({
|
|
121
|
+
queryKey: [
|
|
122
|
+
"indexer-tvl",
|
|
123
|
+
options?.project,
|
|
124
|
+
options?.chain
|
|
125
|
+
],
|
|
126
|
+
queryFn: async () => {
|
|
127
|
+
if (!enabled)
|
|
128
|
+
return null;
|
|
129
|
+
return await (0, import_api4.projectTvl)(options, config ?? defaultConfig2);
|
|
130
|
+
},
|
|
131
|
+
enabled,
|
|
132
|
+
staleTime: 5 * 60 * 1e3,
|
|
133
|
+
refetchOnWindowFocus: false,
|
|
134
|
+
refetchOnMount: false,
|
|
135
|
+
refetchOnReconnect: false,
|
|
136
|
+
gcTime: 30 * 60 * 1e3
|
|
137
|
+
// 30 minutos de cache
|
|
138
|
+
}, queryClient ?? defaultQueryClient);
|
|
139
|
+
return query;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// src/hooks/endpoints/useOrganizationDeals.ts
|
|
143
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
144
|
+
var import_api5 = require("@turtleclub/api");
|
|
145
|
+
function useOrganizationDeals(options, { config, queryClient } = {}) {
|
|
146
|
+
const defaultConfig2 = useConfig();
|
|
147
|
+
const enabled = options !== void 0;
|
|
148
|
+
const query = (0, import_react_query5.useQuery)({
|
|
117
149
|
queryKey: ["organizationDeals", options?.organizationId],
|
|
118
150
|
queryFn: async () => {
|
|
119
151
|
if (!enabled)
|
|
120
152
|
return null;
|
|
121
|
-
return await (0,
|
|
153
|
+
return await (0, import_api5.organizationDeals)(options, config ?? defaultConfig2);
|
|
122
154
|
},
|
|
123
155
|
enabled,
|
|
124
156
|
staleTime: 2 * 60 * 1e3,
|
|
@@ -128,17 +160,17 @@ function useOrganizationDeals(options, { config, queryClient } = {}) {
|
|
|
128
160
|
}
|
|
129
161
|
|
|
130
162
|
// src/hooks/endpoints/useOrganizationsDeals.ts
|
|
131
|
-
var
|
|
132
|
-
var
|
|
163
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
164
|
+
var import_api6 = require("@turtleclub/api");
|
|
133
165
|
function useOrganizationsDeals(options, { config, queryClient } = {}) {
|
|
134
166
|
const defaultConfig2 = useConfig();
|
|
135
167
|
const enabled = options !== void 0;
|
|
136
|
-
const query = (0,
|
|
168
|
+
const query = (0, import_react_query6.useQuery)({
|
|
137
169
|
queryKey: ["organizationsDeals", options?.organizationIds],
|
|
138
170
|
queryFn: async () => {
|
|
139
171
|
if (!enabled)
|
|
140
172
|
return null;
|
|
141
|
-
return await (0,
|
|
173
|
+
return await (0, import_api6.organizationsDeals)(options, config ?? defaultConfig2);
|
|
142
174
|
},
|
|
143
175
|
enabled,
|
|
144
176
|
staleTime: 2 * 60 * 1e3,
|
|
@@ -149,17 +181,17 @@ function useOrganizationsDeals(options, { config, queryClient } = {}) {
|
|
|
149
181
|
}
|
|
150
182
|
|
|
151
183
|
// src/hooks/endpoints/usePrepareSignup.ts
|
|
152
|
-
var
|
|
153
|
-
var
|
|
184
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
185
|
+
var import_api7 = require("@turtleclub/api");
|
|
154
186
|
function usePrepareSignup(options, { config, queryClient } = {}) {
|
|
155
187
|
const defaultConfig2 = useConfig();
|
|
156
188
|
const enabled = options !== void 0;
|
|
157
|
-
const query = (0,
|
|
189
|
+
const query = (0, import_react_query7.useQuery)({
|
|
158
190
|
queryKey: ["prepareSignup", options?.user],
|
|
159
191
|
queryFn: async () => {
|
|
160
192
|
if (!enabled)
|
|
161
193
|
return null;
|
|
162
|
-
return await (0,
|
|
194
|
+
return await (0, import_api7.prepareSignup)(options, config ?? defaultConfig2);
|
|
163
195
|
},
|
|
164
196
|
enabled,
|
|
165
197
|
refetchInterval: 5 * 60 * 1e3
|
|
@@ -168,17 +200,17 @@ function usePrepareSignup(options, { config, queryClient } = {}) {
|
|
|
168
200
|
}
|
|
169
201
|
|
|
170
202
|
// src/hooks/endpoints/useProjectTvl.ts
|
|
171
|
-
var
|
|
172
|
-
var
|
|
203
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
204
|
+
var import_api8 = require("@turtleclub/api");
|
|
173
205
|
function useProjectTvl(options, { config, queryClient } = {}) {
|
|
174
206
|
const defaultConfig2 = useConfig();
|
|
175
207
|
const enabled = options !== void 0;
|
|
176
|
-
const query = (0,
|
|
208
|
+
const query = (0, import_react_query8.useQuery)({
|
|
177
209
|
queryKey: ["projectTvl", options?.projects],
|
|
178
210
|
queryFn: async () => {
|
|
179
211
|
if (!enabled)
|
|
180
212
|
return null;
|
|
181
|
-
return await (0,
|
|
213
|
+
return await (0, import_api8.projectTvl)(options, config ?? defaultConfig2);
|
|
182
214
|
},
|
|
183
215
|
enabled,
|
|
184
216
|
staleTime: 7 * 60 * 1e3,
|
|
@@ -188,16 +220,16 @@ function useProjectTvl(options, { config, queryClient } = {}) {
|
|
|
188
220
|
}
|
|
189
221
|
|
|
190
222
|
// src/hooks/endpoints/useSignup.ts
|
|
191
|
-
var
|
|
192
|
-
var
|
|
223
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
224
|
+
var import_api9 = require("@turtleclub/api");
|
|
193
225
|
function useSignup(options, { config, queryClient } = {}) {
|
|
194
226
|
const defaultConfig2 = useConfig();
|
|
195
227
|
const enabled = options !== void 0;
|
|
196
|
-
const mutation = (0,
|
|
228
|
+
const mutation = (0, import_react_query9.useMutation)(
|
|
197
229
|
{
|
|
198
230
|
mutationFn: async (signature) => {
|
|
199
231
|
if (!enabled) return null;
|
|
200
|
-
return await (0,
|
|
232
|
+
return await (0, import_api9.signup)({ ...options, signature }, config ?? defaultConfig2);
|
|
201
233
|
}
|
|
202
234
|
},
|
|
203
235
|
queryClient ?? defaultQueryClient
|
|
@@ -206,35 +238,38 @@ function useSignup(options, { config, queryClient } = {}) {
|
|
|
206
238
|
}
|
|
207
239
|
|
|
208
240
|
// src/hooks/endpoints/earn/useCampaigns.ts
|
|
209
|
-
var
|
|
210
|
-
var
|
|
241
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
242
|
+
var import_api10 = require("@turtleclub/api");
|
|
211
243
|
function useEarnCampaigns(options, { config, queryClient } = {}) {
|
|
212
244
|
const defaultConfig2 = useConfig();
|
|
213
245
|
const enabled = true;
|
|
214
|
-
const query = (0,
|
|
246
|
+
const query = (0, import_react_query10.useQuery)({
|
|
215
247
|
queryKey: [
|
|
216
248
|
"earn-campaigns",
|
|
217
249
|
options?.idFilter,
|
|
218
250
|
options?.protocolFilter
|
|
219
251
|
],
|
|
220
252
|
queryFn: async () => {
|
|
221
|
-
return await (0,
|
|
253
|
+
return await (0, import_api10.earnCampaigns)(options || {}, config ?? defaultConfig2);
|
|
222
254
|
},
|
|
223
255
|
enabled,
|
|
224
|
-
staleTime: 60 * 1e3,
|
|
225
|
-
|
|
226
|
-
|
|
256
|
+
staleTime: 5 * 60 * 1e3,
|
|
257
|
+
refetchOnWindowFocus: false,
|
|
258
|
+
refetchOnMount: false,
|
|
259
|
+
refetchOnReconnect: false,
|
|
260
|
+
gcTime: 30 * 60 * 1e3
|
|
261
|
+
// 30 minutos de cache
|
|
227
262
|
}, queryClient ?? defaultQueryClient);
|
|
228
263
|
return query;
|
|
229
264
|
}
|
|
230
265
|
|
|
231
266
|
// src/hooks/endpoints/earn/useDeals.ts
|
|
232
|
-
var
|
|
233
|
-
var
|
|
267
|
+
var import_react_query11 = require("@tanstack/react-query");
|
|
268
|
+
var import_api11 = require("@turtleclub/api");
|
|
234
269
|
function useEarnDeals(options, { config, queryClient } = {}) {
|
|
235
270
|
const defaultConfig2 = useConfig();
|
|
236
271
|
const enabled = options !== void 0;
|
|
237
|
-
const query = (0,
|
|
272
|
+
const query = (0, import_react_query11.useQuery)({
|
|
238
273
|
queryKey: [
|
|
239
274
|
"earn-deals",
|
|
240
275
|
options?.campaignId,
|
|
@@ -244,23 +279,26 @@ function useEarnDeals(options, { config, queryClient } = {}) {
|
|
|
244
279
|
queryFn: async () => {
|
|
245
280
|
if (!enabled)
|
|
246
281
|
return null;
|
|
247
|
-
return await (0,
|
|
282
|
+
return await (0, import_api11.earnDeals)(options, config ?? defaultConfig2);
|
|
248
283
|
},
|
|
249
284
|
enabled,
|
|
250
|
-
staleTime: 60 * 1e3,
|
|
251
|
-
|
|
252
|
-
|
|
285
|
+
staleTime: 5 * 60 * 1e3,
|
|
286
|
+
refetchOnWindowFocus: false,
|
|
287
|
+
refetchOnMount: false,
|
|
288
|
+
refetchOnReconnect: false,
|
|
289
|
+
gcTime: 30 * 60 * 1e3
|
|
290
|
+
// 30 minutos de cache
|
|
253
291
|
}, queryClient ?? defaultQueryClient);
|
|
254
292
|
return query;
|
|
255
293
|
}
|
|
256
294
|
|
|
257
295
|
// src/hooks/endpoints/earn/useRoute.ts
|
|
258
|
-
var
|
|
259
|
-
var
|
|
296
|
+
var import_react_query12 = require("@tanstack/react-query");
|
|
297
|
+
var import_api12 = require("@turtleclub/api");
|
|
260
298
|
function useEarnRoute(options, { config, queryClient } = {}) {
|
|
261
299
|
const defaultConfig2 = useConfig();
|
|
262
300
|
const enabled = options !== void 0;
|
|
263
|
-
const query = (0,
|
|
301
|
+
const query = (0, import_react_query12.useQuery)({
|
|
264
302
|
queryKey: [
|
|
265
303
|
"earnRoute",
|
|
266
304
|
options?.user,
|
|
@@ -273,7 +311,7 @@ function useEarnRoute(options, { config, queryClient } = {}) {
|
|
|
273
311
|
queryFn: async () => {
|
|
274
312
|
if (!enabled)
|
|
275
313
|
return null;
|
|
276
|
-
return await (0,
|
|
314
|
+
return await (0, import_api12.earnRoute)(options, config ?? defaultConfig2);
|
|
277
315
|
},
|
|
278
316
|
enabled,
|
|
279
317
|
staleTime: 2 * 60 * 1e3,
|
|
@@ -286,17 +324,17 @@ function useEarnRoute(options, { config, queryClient } = {}) {
|
|
|
286
324
|
}
|
|
287
325
|
|
|
288
326
|
// src/hooks/endpoints/earn/useWalletBalances.ts
|
|
289
|
-
var
|
|
290
|
-
var
|
|
327
|
+
var import_react_query13 = require("@tanstack/react-query");
|
|
328
|
+
var import_api13 = require("@turtleclub/api");
|
|
291
329
|
function useEarnWalletBalances(options, { config, queryClient } = {}) {
|
|
292
330
|
const defaultConfig2 = useConfig();
|
|
293
331
|
const enabled = options !== void 0;
|
|
294
|
-
const query = (0,
|
|
332
|
+
const query = (0, import_react_query13.useQuery)(
|
|
295
333
|
{
|
|
296
334
|
queryKey: ["earnWalletBalances", options?.chain, options?.user],
|
|
297
335
|
queryFn: async () => {
|
|
298
336
|
if (!enabled) return null;
|
|
299
|
-
return await (0,
|
|
337
|
+
return await (0, import_api13.earnWalletBalances)(options, config ?? defaultConfig2);
|
|
300
338
|
},
|
|
301
339
|
enabled,
|
|
302
340
|
staleTime: 30 * 1e3,
|
|
@@ -307,6 +345,171 @@ function useEarnWalletBalances(options, { config, queryClient } = {}) {
|
|
|
307
345
|
);
|
|
308
346
|
return query;
|
|
309
347
|
}
|
|
348
|
+
|
|
349
|
+
// src/hooks/earn/useEnhancedEarnDeals.ts
|
|
350
|
+
var import_react_query14 = require("@tanstack/react-query");
|
|
351
|
+
var import_api14 = require("@turtleclub/api");
|
|
352
|
+
|
|
353
|
+
// src/utils/dataMatching.ts
|
|
354
|
+
function deduplicateDeals(deals) {
|
|
355
|
+
const dealsMap = /* @__PURE__ */ new Map();
|
|
356
|
+
deals.forEach((deal) => {
|
|
357
|
+
const key = deal.metadata.id;
|
|
358
|
+
const existing = dealsMap.get(key);
|
|
359
|
+
if (!existing || hasMoreCompleteData(deal, existing)) {
|
|
360
|
+
dealsMap.set(key, deal);
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
return Array.from(dealsMap.values());
|
|
364
|
+
}
|
|
365
|
+
function hasMoreCompleteData(newDeal, existingDeal) {
|
|
366
|
+
if (newDeal.data.tvl > 0 && existingDeal.data.tvl === 0) return true;
|
|
367
|
+
if (newDeal.data.apy > 0 && existingDeal.data.apy === 0) return true;
|
|
368
|
+
if (newDeal.metadata.iconUrl && !existingDeal.metadata.iconUrl) return true;
|
|
369
|
+
if (newDeal.token.logos.length > existingDeal.token.logos.length) return true;
|
|
370
|
+
if (newDeal.underlying_tokens.length > existingDeal.underlying_tokens.length) return true;
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
373
|
+
function filterDealsByIds(deals, ids) {
|
|
374
|
+
if (!ids.length) return deals;
|
|
375
|
+
return deals.filter((deal) => ids.includes(deal.metadata.id));
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
// src/hooks/earn/useEnhancedEarnDeals.ts
|
|
379
|
+
function useEnhancedEarnDeals({
|
|
380
|
+
dealIds = [],
|
|
381
|
+
campaignIds = [],
|
|
382
|
+
fetchAllIfNoFilters = false
|
|
383
|
+
} = {}) {
|
|
384
|
+
const config = useConfig();
|
|
385
|
+
const shouldFetchAll = dealIds.length > 0 || fetchAllIfNoFilters && dealIds.length === 0 && campaignIds.length === 0;
|
|
386
|
+
const shouldFetchCampaigns = campaignIds.length > 0;
|
|
387
|
+
const queries = [];
|
|
388
|
+
if (shouldFetchAll) {
|
|
389
|
+
queries.push({
|
|
390
|
+
queryKey: ["earn-deals", "all"],
|
|
391
|
+
queryFn: () => (0, import_api14.earnDeals)({}, config),
|
|
392
|
+
enabled: true
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
if (shouldFetchCampaigns) {
|
|
396
|
+
campaignIds.forEach((campaignId) => {
|
|
397
|
+
queries.push({
|
|
398
|
+
queryKey: ["earn-deals", "campaign", campaignId],
|
|
399
|
+
queryFn: () => (0, import_api14.earnDeals)({ campaignId }, config),
|
|
400
|
+
enabled: true
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
if (queries.length === 0) {
|
|
405
|
+
queries.push({
|
|
406
|
+
queryKey: ["earn-deals", "none"],
|
|
407
|
+
queryFn: async () => ({ deals: [], metadata: {} }),
|
|
408
|
+
enabled: false
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
const results = (0, import_react_query14.useQueries)({
|
|
412
|
+
queries: queries.map((query) => ({
|
|
413
|
+
...query,
|
|
414
|
+
staleTime: 5 * 60 * 1e3,
|
|
415
|
+
refetchOnWindowFocus: false,
|
|
416
|
+
refetchOnMount: false,
|
|
417
|
+
refetchOnReconnect: false,
|
|
418
|
+
gcTime: 30 * 60 * 1e3
|
|
419
|
+
// 30 minutos de cache
|
|
420
|
+
}))
|
|
421
|
+
});
|
|
422
|
+
const isLoading = results.some((result) => result.isLoading);
|
|
423
|
+
const error = results.find((result) => result.error)?.error;
|
|
424
|
+
let allDeals = [];
|
|
425
|
+
const dealCampaignMap = /* @__PURE__ */ new Map();
|
|
426
|
+
results.forEach((result, index) => {
|
|
427
|
+
if (result.data?.deals) {
|
|
428
|
+
const queryKey = queries[index].queryKey;
|
|
429
|
+
if (queryKey.includes("all") && dealIds.length > 0) {
|
|
430
|
+
const filteredDeals = filterDealsByIds(result.data.deals, dealIds);
|
|
431
|
+
allDeals = [...allDeals, ...filteredDeals];
|
|
432
|
+
} else {
|
|
433
|
+
allDeals = [...allDeals, ...result.data.deals];
|
|
434
|
+
if (queryKey.includes("campaign") && queryKey[2]) {
|
|
435
|
+
const campaignId = queryKey[2];
|
|
436
|
+
result.data.deals.forEach((deal) => {
|
|
437
|
+
dealCampaignMap.set(deal.metadata.id, campaignId);
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
const uniqueDeals = deduplicateDeals(allDeals);
|
|
444
|
+
const refetch = () => {
|
|
445
|
+
results.forEach((result) => result.refetch());
|
|
446
|
+
};
|
|
447
|
+
return {
|
|
448
|
+
deals: uniqueDeals,
|
|
449
|
+
isLoading,
|
|
450
|
+
error,
|
|
451
|
+
refetch,
|
|
452
|
+
dealCampaignMap
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// src/hooks/endpoints/partner/usePartnerCampaigns.ts
|
|
457
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
458
|
+
var import_api15 = require("@turtleclub/api");
|
|
459
|
+
function usePartnerCampaigns(options, { config, queryClient } = {}) {
|
|
460
|
+
const defaultConfig2 = useConfig();
|
|
461
|
+
const enabled = options !== void 0;
|
|
462
|
+
const query = (0, import_react_query15.useQuery)({
|
|
463
|
+
queryKey: [
|
|
464
|
+
"partner-campaigns",
|
|
465
|
+
options?.idFilter,
|
|
466
|
+
options?.protocolFilter
|
|
467
|
+
],
|
|
468
|
+
queryFn: async () => {
|
|
469
|
+
if (!enabled)
|
|
470
|
+
return null;
|
|
471
|
+
return await (0, import_api15.earnCampaigns)(options, config ?? defaultConfig2);
|
|
472
|
+
},
|
|
473
|
+
enabled,
|
|
474
|
+
staleTime: 5 * 60 * 1e3,
|
|
475
|
+
refetchOnWindowFocus: false,
|
|
476
|
+
refetchOnMount: false,
|
|
477
|
+
refetchOnReconnect: false,
|
|
478
|
+
gcTime: 30 * 60 * 1e3
|
|
479
|
+
// 30 minutos de cache
|
|
480
|
+
}, queryClient ?? defaultQueryClient);
|
|
481
|
+
return query;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// src/hooks/endpoints/partner/usePartnerDeals.ts
|
|
485
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
486
|
+
var import_api16 = require("@turtleclub/api");
|
|
487
|
+
function usePartnerDeals(options, { config, queryClient } = {}) {
|
|
488
|
+
const defaultConfig2 = useConfig();
|
|
489
|
+
const enabled = options !== void 0;
|
|
490
|
+
const query = (0, import_react_query16.useQuery)({
|
|
491
|
+
queryKey: [
|
|
492
|
+
"partner-deals",
|
|
493
|
+
options?.status,
|
|
494
|
+
options?.protocol,
|
|
495
|
+
options?.ids
|
|
496
|
+
],
|
|
497
|
+
queryFn: async () => {
|
|
498
|
+
if (!enabled)
|
|
499
|
+
return null;
|
|
500
|
+
const result = await (0, import_api16.turtleDeals)(options || {}, config ?? defaultConfig2);
|
|
501
|
+
return result;
|
|
502
|
+
},
|
|
503
|
+
enabled,
|
|
504
|
+
staleTime: 5 * 60 * 1e3,
|
|
505
|
+
refetchOnWindowFocus: false,
|
|
506
|
+
refetchOnMount: false,
|
|
507
|
+
refetchOnReconnect: false,
|
|
508
|
+
gcTime: 30 * 60 * 1e3
|
|
509
|
+
// 30 minutos de cache
|
|
510
|
+
}, queryClient ?? defaultQueryClient);
|
|
511
|
+
return query;
|
|
512
|
+
}
|
|
310
513
|
// Annotate the CommonJS export names for ESM import in node:
|
|
311
514
|
0 && (module.exports = {
|
|
312
515
|
defaultQueryClient,
|
|
@@ -315,10 +518,14 @@ function useEarnWalletBalances(options, { config, queryClient } = {}) {
|
|
|
315
518
|
useEarnDeals,
|
|
316
519
|
useEarnRoute,
|
|
317
520
|
useEarnWalletBalances,
|
|
521
|
+
useEnhancedEarnDeals,
|
|
318
522
|
useExists,
|
|
523
|
+
useIndexerTvl,
|
|
319
524
|
useOrganizationDeals,
|
|
320
525
|
useOrganizations,
|
|
321
526
|
useOrganizationsDeals,
|
|
527
|
+
usePartnerCampaigns,
|
|
528
|
+
usePartnerDeals,
|
|
322
529
|
usePrepareSignup,
|
|
323
530
|
useProjectTvl,
|
|
324
531
|
useSignup
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/hooks/useConfig.ts","../src/hooks/client.ts","../src/hooks/endpoints/useOrganizations.ts","../src/hooks/endpoints/useExists.ts","../src/hooks/endpoints/useOrganizationDeals.ts","../src/hooks/endpoints/useOrganizationsDeals.ts","../src/hooks/endpoints/usePrepareSignup.ts","../src/hooks/endpoints/useProjectTvl.ts","../src/hooks/endpoints/useSignup.ts","../src/hooks/endpoints/earn/useCampaigns.ts","../src/hooks/endpoints/earn/useDeals.ts","../src/hooks/endpoints/earn/useRoute.ts","../src/hooks/endpoints/earn/useWalletBalances.ts"],"sourcesContent":["// TODO: delete - prerelease trigger\n// Hooks\nexport * from \"./hooks/useConfig\";\nexport * from \"./hooks/client\";\n\n// Endpoint hooks\nexport * from \"./hooks/endpoints/useOrganizations\";\nexport * from \"./hooks/endpoints/useExists\";\nexport * from \"./hooks/endpoints/useOrganizationDeals\";\nexport * from \"./hooks/endpoints/useOrganizationsDeals\";\nexport * from \"./hooks/endpoints/usePrepareSignup\";\nexport * from \"./hooks/endpoints/useProjectTvl\";\nexport * from \"./hooks/endpoints/useSignup\";\n\n// Earn hooks\nexport * from \"./hooks/endpoints/earn\";\n","import type { Config } from \"@turtleclub/api\";\nimport { defaultConfig } from \"@turtleclub/api\";\n\nexport function useConfig(): Config {\n // Placeholder implementation - in real app this would use TurtleProvider context\n return defaultConfig;\n}\n","import { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\n\nexport const defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\n// Only persist on client side\nif (typeof window !== 'undefined') {\n const localStoragePersister = createSyncStoragePersister({\n storage: window.localStorage,\n key: \"turtle-sdk\",\n });\n\n persistQueryClient({\n queryClient: defaultQueryClient,\n persister: localStoragePersister,\n });\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organization, type OrganizationResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizations({\n config,\n queryClient,\n}: UseOrganizationsOptions = {}): UseQueryResult<OrganizationResponse | null> {\n const defaultConfig = useConfig();\n\n const query = useQuery(\n {\n queryKey: [\"organizations\"],\n queryFn: async () => {\n return await organization(config ?? defaultConfig);\n },\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, exists, type ExistsOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseExistsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useExists(\n options?: ExistsOptions,\n { config, queryClient }: UseExistsOptions = {},\n): UseQueryResult<boolean | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"exists\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await exists(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationDeals, type OrganizationDealsOptions, type OrganizationDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationDeals(\n options?: OrganizationDealsOptions,\n { config, queryClient }: UseOrganizationDealsOptions = {},\n): UseQueryResult<OrganizationDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationDeals\", options?.organizationId],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationsDeals, type OrganizationsDealsOptions, type OrganizationsDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationsDeals(\n options?: OrganizationsDealsOptions,\n { config, queryClient }: UseOrganizationsDealsOptions = {},\n): UseQueryResult<OrganizationsDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationsDeals\", options?.organizationIds],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationsDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n throwOnError: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, prepareSignup, type PrepareSignupOptions, type PrepareSignupResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UsePrepareSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePrepareSignup(\n options?: PrepareSignupOptions,\n { config, queryClient }: UsePrepareSignupOptions = {},\n): UseQueryResult<PrepareSignupResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"prepareSignup\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await prepareSignup(options, config ?? defaultConfig);\n },\n enabled,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseProjectTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useProjectTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseProjectTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"projectTvl\", options?.projects],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 7 * 60 * 1000,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import {\n type QueryClient,\n useMutation,\n type UseMutationResult,\n useQuery,\n} from \"@tanstack/react-query\";\nimport { type Config, signup, type SignupOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useSignup(\n options?: Omit<SignupOptions, \"signature\">,\n { config, queryClient }: UseSignupOptions = {}\n): UseMutationResult<boolean | null, Error, string, unknown> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const mutation = useMutation(\n {\n mutationFn: async (signature: string) => {\n if (!enabled) return null;\n\n return await signup({ ...options, signature }, config ?? defaultConfig);\n },\n },\n queryClient ?? defaultQueryClient\n );\n\n return mutation;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UseEarnCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = true; // Always enabled for campaigns\n\n const query = useQuery({\n queryKey: [\n \"earn-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n return await earnCampaigns(options || {}, config ?? defaultConfig);\n },\n enabled,\n staleTime: 60 * 1000,\n refetchInterval: 30 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnDeals, type EarnDealsOptions, type EarnDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnDeals(\n options?: EarnDealsOptions,\n { config, queryClient }: UseEarnDealsOptions = {},\n): UseQueryResult<EarnDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earn-deals\",\n options?.campaignId,\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 60 * 1000,\n refetchInterval: 30 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnRoute, type EarnRouteOptions, type EarnRouteResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnRouteOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnRoute(\n options?: EarnRouteOptions,\n { config, queryClient }: UseEarnRouteOptions = {},\n): UseQueryResult<EarnRouteResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earnRoute\",\n options?.user,\n options?.chain,\n options?.slippage,\n options?.tokenIn,\n options?.tokenOut,\n options?.amount,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnRoute(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000, // 2 minutes - longer stale time for transaction stability\n refetchInterval: false, // Disable automatic refetch to prevent transaction state reset\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport {\n type Config,\n earnWalletBalances,\n type EarnWalletBalancesOptions,\n type EarnWalletBalancesResponse,\n} from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnWalletBalancesOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnWalletBalances(\n options?: EarnWalletBalancesOptions,\n { config, queryClient }: UseEarnWalletBalancesOptions = {}\n): UseQueryResult<EarnWalletBalancesResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery(\n {\n queryKey: [\"earnWalletBalances\", options?.chain, options?.user],\n queryFn: async () => {\n if (!enabled) return null;\n\n return await earnWalletBalances(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 30 * 1000,\n refetchInterval: 15 * 1000,\n refetchOnWindowFocus: true,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n"],"mappings":"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","names":["import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/hooks/useConfig.ts","../src/hooks/client.ts","../src/hooks/endpoints/useOrganizations.ts","../src/hooks/endpoints/useExists.ts","../src/hooks/endpoints/useIndexerTvl.ts","../src/hooks/endpoints/useOrganizationDeals.ts","../src/hooks/endpoints/useOrganizationsDeals.ts","../src/hooks/endpoints/usePrepareSignup.ts","../src/hooks/endpoints/useProjectTvl.ts","../src/hooks/endpoints/useSignup.ts","../src/hooks/endpoints/earn/useCampaigns.ts","../src/hooks/endpoints/earn/useDeals.ts","../src/hooks/endpoints/earn/useRoute.ts","../src/hooks/endpoints/earn/useWalletBalances.ts","../src/hooks/earn/useEnhancedEarnDeals.ts","../src/utils/dataMatching.ts","../src/hooks/endpoints/partner/usePartnerCampaigns.ts","../src/hooks/endpoints/partner/usePartnerDeals.ts"],"sourcesContent":["// TODO: delete - prerelease trigger\n// Hooks\nexport * from \"./hooks/useConfig\";\nexport * from \"./hooks/client\";\n\n// Endpoint hooks\nexport * from \"./hooks/endpoints/useOrganizations\";\nexport * from \"./hooks/endpoints/useExists\";\nexport * from \"./hooks/endpoints/useIndexerTvl\";\nexport * from \"./hooks/endpoints/useOrganizationDeals\";\nexport * from \"./hooks/endpoints/useOrganizationsDeals\";\nexport * from \"./hooks/endpoints/usePrepareSignup\";\nexport * from \"./hooks/endpoints/useProjectTvl\";\nexport * from \"./hooks/endpoints/useSignup\";\n\n// Earn hooks\nexport * from \"./hooks/endpoints/earn\";\nexport * from \"./hooks/earn\";\n\n// Partner hooks\nexport * from \"./hooks/endpoints/partner\";\n","import type { Config } from \"@turtleclub/api\";\nimport { defaultConfig } from \"@turtleclub/api\";\n\nexport function useConfig(): Config {\n // Placeholder implementation - in real app this would use TurtleProvider context\n return defaultConfig;\n}\n","import { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\n\nexport const defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\n// Only persist on client side\nif (typeof window !== 'undefined') {\n const localStoragePersister = createSyncStoragePersister({\n storage: window.localStorage,\n key: \"turtle-sdk\",\n });\n\n persistQueryClient({\n queryClient: defaultQueryClient,\n persister: localStoragePersister,\n });\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organization, type OrganizationResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizations({\n config,\n queryClient,\n}: UseOrganizationsOptions = {}): UseQueryResult<OrganizationResponse | null> {\n const defaultConfig = useConfig();\n\n const query = useQuery(\n {\n queryKey: [\"organizations\"],\n queryFn: async () => {\n return await organization(config ?? defaultConfig);\n },\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, exists, type ExistsOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseExistsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useExists(\n options?: ExistsOptions,\n { config, queryClient }: UseExistsOptions = {},\n): UseQueryResult<boolean | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"exists\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await exists(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseIndexerTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useIndexerTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseIndexerTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"indexer-tvl\",\n options?.project,\n options?.chain,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationDeals, type OrganizationDealsOptions, type OrganizationDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationDeals(\n options?: OrganizationDealsOptions,\n { config, queryClient }: UseOrganizationDealsOptions = {},\n): UseQueryResult<OrganizationDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationDeals\", options?.organizationId],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationsDeals, type OrganizationsDealsOptions, type OrganizationsDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationsDeals(\n options?: OrganizationsDealsOptions,\n { config, queryClient }: UseOrganizationsDealsOptions = {},\n): UseQueryResult<OrganizationsDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationsDeals\", options?.organizationIds],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationsDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n throwOnError: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, prepareSignup, type PrepareSignupOptions, type PrepareSignupResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UsePrepareSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePrepareSignup(\n options?: PrepareSignupOptions,\n { config, queryClient }: UsePrepareSignupOptions = {},\n): UseQueryResult<PrepareSignupResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"prepareSignup\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await prepareSignup(options, config ?? defaultConfig);\n },\n enabled,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseProjectTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useProjectTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseProjectTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"projectTvl\", options?.projects],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 7 * 60 * 1000,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import {\n type QueryClient,\n useMutation,\n type UseMutationResult,\n useQuery,\n} from \"@tanstack/react-query\";\nimport { type Config, signup, type SignupOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useSignup(\n options?: Omit<SignupOptions, \"signature\">,\n { config, queryClient }: UseSignupOptions = {}\n): UseMutationResult<boolean | null, Error, string, unknown> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const mutation = useMutation(\n {\n mutationFn: async (signature: string) => {\n if (!enabled) return null;\n\n return await signup({ ...options, signature }, config ?? defaultConfig);\n },\n },\n queryClient ?? defaultQueryClient\n );\n\n return mutation;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UseEarnCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = true; // Always enabled for campaigns\n\n const query = useQuery({\n queryKey: [\n \"earn-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n return await earnCampaigns(options || {}, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnDeals, type EarnDealsOptions, type EarnDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnDeals(\n options?: EarnDealsOptions,\n { config, queryClient }: UseEarnDealsOptions = {},\n): UseQueryResult<EarnDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earn-deals\",\n options?.campaignId,\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnRoute, type EarnRouteOptions, type EarnRouteResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnRouteOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnRoute(\n options?: EarnRouteOptions,\n { config, queryClient }: UseEarnRouteOptions = {},\n): UseQueryResult<EarnRouteResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earnRoute\",\n options?.user,\n options?.chain,\n options?.slippage,\n options?.tokenIn,\n options?.tokenOut,\n options?.amount,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnRoute(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000, // 2 minutes - longer stale time for transaction stability\n refetchInterval: false, // Disable automatic refetch to prevent transaction state reset\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport {\n type Config,\n earnWalletBalances,\n type EarnWalletBalancesOptions,\n type EarnWalletBalancesResponse,\n} from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnWalletBalancesOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnWalletBalances(\n options?: EarnWalletBalancesOptions,\n { config, queryClient }: UseEarnWalletBalancesOptions = {}\n): UseQueryResult<EarnWalletBalancesResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery(\n {\n queryKey: [\"earnWalletBalances\", options?.chain, options?.user],\n queryFn: async () => {\n if (!enabled) return null;\n\n return await earnWalletBalances(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 30 * 1000,\n refetchInterval: 15 * 1000,\n refetchOnWindowFocus: true,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { useQueries } from \"@tanstack/react-query\";\nimport { earnDeals, earnTyped, type EarnDealsResponse } from \"@turtleclub/api\";\ntype DefiToken = earnTyped.DefiToken;\nimport { useConfig } from \"@/hooks/useConfig\";\nimport { deduplicateDeals, filterDealsByIds } from \"@/utils/dataMatching\";\n\nexport interface UseEnhancedEarnDealsOptions {\n /**\n * Array of deal IDs to filter\n */\n dealIds?: string[];\n /**\n * Array of campaign IDs to fetch deals from\n */\n campaignIds?: string[];\n /**\n * Whether to fetch all deals when no filters are provided\n */\n fetchAllIfNoFilters?: boolean;\n}\n\nexport interface UseEnhancedEarnDealsResult {\n deals: DefiToken[];\n isLoading: boolean;\n error: Error | null;\n refetch: () => void;\n // Map of dealId to campaignId\n dealCampaignMap: Map<string, string>;\n}\n\n/**\n * Enhanced hook for fetching deals with configuration-based filtering\n *\n * Logic:\n * - If dealIds are provided, fetch all deals and filter by IDs\n * - If campaignIds are provided, fetch deals for each campaign\n * - If neither is provided and fetchAllIfNoFilters is false, return empty array\n * - Deduplicates deals from multiple sources\n */\nexport function useEnhancedEarnDeals({\n dealIds = [],\n campaignIds = [],\n fetchAllIfNoFilters = false,\n}: UseEnhancedEarnDealsOptions = {}): UseEnhancedEarnDealsResult {\n const config = useConfig();\n\n // Determine what queries to make\n const shouldFetchAll =\n dealIds.length > 0 || (fetchAllIfNoFilters && dealIds.length === 0 && campaignIds.length === 0);\n const shouldFetchCampaigns = campaignIds.length > 0;\n\n // Create queries array\n const queries: Array<{\n queryKey: string[];\n queryFn: () => Promise<EarnDealsResponse>;\n enabled: boolean;\n }> = [];\n\n // Add query for all deals if needed\n if (shouldFetchAll) {\n queries.push({\n queryKey: [\"earn-deals\", \"all\"],\n queryFn: () => earnDeals({}, config),\n enabled: true,\n });\n }\n\n // Add queries for each campaign\n if (shouldFetchCampaigns) {\n campaignIds.forEach((campaignId) => {\n queries.push({\n queryKey: [\"earn-deals\", \"campaign\", campaignId],\n queryFn: () => earnDeals({ campaignId }, config),\n enabled: true,\n });\n });\n }\n\n // If no queries, add a disabled query to maintain hook structure\n if (queries.length === 0) {\n queries.push({\n queryKey: [\"earn-deals\", \"none\"],\n queryFn: async () => ({ deals: [], metadata: {} }),\n enabled: false,\n });\n }\n\n // Execute all queries\n const results = useQueries({\n queries: queries.map((query) => ({\n ...query,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n })),\n });\n\n // Process results\n const isLoading = results.some((result) => result.isLoading);\n const error = results.find((result) => result.error)?.error as Error | null;\n\n // Combine all deals and track campaign associations\n let allDeals: DefiToken[] = [];\n const dealCampaignMap = new Map<string, string>();\n\n results.forEach((result, index) => {\n if (result.data?.deals) {\n const queryKey = queries[index].queryKey;\n \n // If this is the \"all deals\" query and we have dealIds filter\n if (queryKey.includes(\"all\") && dealIds.length > 0) {\n const filteredDeals = filterDealsByIds(result.data.deals, dealIds);\n allDeals = [...allDeals, ...filteredDeals];\n } else {\n // Otherwise add all deals from this query\n allDeals = [...allDeals, ...result.data.deals];\n \n // If this is a campaign-specific query, track the campaign association\n if (queryKey.includes(\"campaign\") && queryKey[2]) {\n const campaignId = queryKey[2];\n result.data.deals.forEach(deal => {\n dealCampaignMap.set(deal.metadata.id, campaignId);\n });\n }\n }\n }\n });\n\n // Deduplicate deals\n const uniqueDeals = deduplicateDeals(allDeals);\n\n // Create refetch function\n const refetch = () => {\n results.forEach((result) => result.refetch());\n };\n\n return {\n deals: uniqueDeals,\n isLoading,\n error,\n refetch,\n dealCampaignMap,\n };\n}\n","import { earnTyped } from \"@turtleclub/api\";\ntype DefiToken = earnTyped.DefiToken;\n\n/**\n * Matches deals by protocol and vault identifiers\n * This function handles matching between different data sources\n */\nexport function matchDealsByProtocol(\n earnDeals: DefiToken[],\n protocolFilter?: string\n): DefiToken[] {\n if (!protocolFilter) return earnDeals;\n \n return earnDeals.filter(deal => \n deal.protocol?.toLowerCase() === protocolFilter.toLowerCase()\n );\n}\n\n/**\n * Matches vault deals with campaign vaults\n * Useful for matching deals from different endpoints\n */\nexport function matchVaultDeals(\n earnDeals: DefiToken[],\n vaultIds: string[]\n): DefiToken[] {\n if (!vaultIds.length) return [];\n \n return earnDeals.filter(deal => \n vaultIds.includes(deal.metadata.id)\n );\n}\n\n/**\n * Deduplicates deals from multiple sources\n * Prioritizes deals with more complete data\n */\nexport function deduplicateDeals(deals: DefiToken[]): DefiToken[] {\n const dealsMap = new Map<string, DefiToken>();\n \n deals.forEach(deal => {\n const key = deal.metadata.id;\n const existing = dealsMap.get(key);\n \n // If no existing deal or new deal has more data, replace\n if (!existing || hasMoreCompleteData(deal, existing)) {\n dealsMap.set(key, deal);\n }\n });\n \n return Array.from(dealsMap.values());\n}\n\n/**\n * Helper to determine if a deal has more complete data\n */\nfunction hasMoreCompleteData(newDeal: DefiToken, existingDeal: DefiToken): boolean {\n // Check for TVL data\n if (newDeal.data.tvl > 0 && existingDeal.data.tvl === 0) return true;\n \n // Check for APY data\n if (newDeal.data.apy > 0 && existingDeal.data.apy === 0) return true;\n \n // Check for icon/logo data\n if (newDeal.metadata.iconUrl && !existingDeal.metadata.iconUrl) return true;\n if (newDeal.token.logos.length > existingDeal.token.logos.length) return true;\n \n // Check for underlying tokens\n if (newDeal.underlying_tokens.length > existingDeal.underlying_tokens.length) return true;\n \n return false;\n}\n\n/**\n * Filters deals by specific IDs\n */\nexport function filterDealsByIds(deals: DefiToken[], ids: string[]): DefiToken[] {\n if (!ids.length) return deals;\n \n return deals.filter(deal => ids.includes(deal.metadata.id));\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UsePartnerCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\n/**\n * Hook to fetch partner campaigns\n * Currently uses the same endpoint as earn campaigns\n */\nexport function usePartnerCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UsePartnerCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"partner-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnCampaigns(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, turtleDeals, type TurtleDealsOptions, type TurtleDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UsePartnerDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePartnerDeals(\n options?: TurtleDealsOptions,\n { config, queryClient }: UsePartnerDealsOptions = {},\n): UseQueryResult<TurtleDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"partner-deals\",\n options?.status,\n options?.protocol,\n options?.ids,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n const result = await turtleDeals(options || {}, config ?? defaultConfig);\n return result;\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}"],"mappings":"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","names":["import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig"]}
|