@turtleclub/hooks 0.5.0-beta.52 → 0.5.0-beta.54
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 +1718 -1241
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1532 -1092
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/v2/balance/hooks/useEnsoBalances.ts +0 -2
- package/src/v2/balance/hooks/useGetOnChainBalance.ts +4 -11
- package/src/v2/balance/hooks/usePortfolioBalance.ts +2 -2
- package/src/v2/balance/schema.ts +1 -1
- package/src/v2/balance/types.ts +2 -1
- package/src/v2/balance/utils.ts +1 -1
- package/src/v2/deposits/index.ts +1 -1
- package/src/v2/earn-actions/useEarnDeposit.ts +2 -1
- package/src/v2/earn-deposits/hooks/useActionsDefaultParams.ts +6 -5
- package/src/v2/earn-deposits/hooks/useDepositFlow.ts +2 -1
- package/src/v2/earn-deposits/hooks/useDepositValidation.ts +10 -10
- package/src/v2/earn-opportunities/schema.ts +1 -1
- package/src/v2/incentives/index.ts +4 -28
- package/src/v2/index.ts +13 -1
- package/src/v2/opportunities/api.ts +2 -2
- package/src/v2/opportunities/hooks.ts +9 -5
- package/src/v2/opportunities/index.ts +4 -42
- package/src/v2/opportunities/schema.ts +53 -1
- package/src/v2/organizations/schema.ts +15 -0
- package/src/v2/products/api.ts +11 -11
- package/src/v2/products/index.ts +4 -19
- package/src/v2/products/schema.ts +34 -35
- package/src/v2/schemas/shared.ts +1 -128
- package/src/v2/streams/schemas.ts +1 -1
- package/src/v2/supported-chains/hooks.ts +2 -2
- package/src/v2/supported-chains/schema.ts +13 -1
- package/src/v2/supported-tokens/api.ts +1 -0
- package/src/v2/supported-tokens/hooks.ts +8 -9
- package/src/v2/supported-tokens/schema.ts +18 -1
- package/src/v2/users/schemas.ts +2 -1
- package/src/v2/widget/schema.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -22,6 +22,7 @@ var index_exports = {};
|
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
ApiError: () => ApiError,
|
|
24
24
|
BalanceSourcePriority: () => BalanceSourcePriority,
|
|
25
|
+
GetLiquidityProvidersResponseSchema: () => GetLiquidityProvidersResponseSchema,
|
|
25
26
|
LeaveOrganizationInputSchema: () => LeaveOrganizationInputSchema,
|
|
26
27
|
LeaveOrganizationOutputSchema: () => LeaveOrganizationOutputSchema,
|
|
27
28
|
TurtleHooksProvider: () => TurtleHooksProvider,
|
|
@@ -49,15 +50,22 @@ __export(index_exports, {
|
|
|
49
50
|
createClaimWithdrawInteraction: () => createClaimWithdrawInteraction,
|
|
50
51
|
createDepositAction: () => createDepositAction,
|
|
51
52
|
createDepositInteraction: () => createDepositInteraction,
|
|
53
|
+
createIncentive: () => createIncentive,
|
|
54
|
+
createIncentiveInputSchema: () => createIncentiveInputSchema,
|
|
52
55
|
createMembership: () => createMembership,
|
|
53
56
|
createMembershipAgreement: () => createMembershipAgreement,
|
|
54
57
|
createMembershipRequestSchema: () => createMembershipRequestSchema,
|
|
55
58
|
createMembershipResponseSchema: () => createMembershipResponseSchema,
|
|
59
|
+
createProduct: () => createProduct,
|
|
60
|
+
createProductInputSchema: () => createProductInputSchema,
|
|
61
|
+
createProductResponseSchema: () => createProductResponseSchema,
|
|
56
62
|
createStreamPoint: () => createStreamPoint,
|
|
57
63
|
createStreamPointBodySchema: () => createStreamPointBodySchema,
|
|
58
64
|
createStreamPointOutputSchema: () => createStreamPointOutputSchema,
|
|
59
65
|
createWithdrawAction: () => createWithdrawAction,
|
|
60
66
|
createWithdrawInteraction: () => createWithdrawInteraction,
|
|
67
|
+
deleteIncentive: () => deleteIncentive,
|
|
68
|
+
deleteProduct: () => deleteProduct,
|
|
61
69
|
depositSchema: () => depositSchema,
|
|
62
70
|
depositSubstep: () => depositSubstep,
|
|
63
71
|
depositsResponseSchema: () => depositsResponseSchema,
|
|
@@ -82,6 +90,10 @@ __export(index_exports, {
|
|
|
82
90
|
getDeposits: () => getDeposits,
|
|
83
91
|
getEarnOpportunities: () => getEarnOpportunities,
|
|
84
92
|
getEarnRoute: () => getEarnRoute,
|
|
93
|
+
getIncentive: () => getIncentive,
|
|
94
|
+
getIncentives: () => getIncentives,
|
|
95
|
+
getLiquidityProviders: () => getLiquidityProviders,
|
|
96
|
+
getLiquidityProvidersInputSchema: () => getLiquidityProvidersInputSchema,
|
|
85
97
|
getOpportunities: () => getOpportunities,
|
|
86
98
|
getOpportunitiesFilterOptions: () => getOpportunitiesFilterOptions,
|
|
87
99
|
getOpportunitiesFilterOptionsSchema: () => getOpportunitiesFilterOptionsSchema,
|
|
@@ -90,6 +102,7 @@ __export(index_exports, {
|
|
|
90
102
|
getOpportunitiesPaginatedSchema: () => getOpportunitiesPaginatedSchema,
|
|
91
103
|
getOpportunityById: () => getOpportunityById,
|
|
92
104
|
getPortfolioBalance: () => getPortfolioBalance,
|
|
105
|
+
getProduct: () => getProduct,
|
|
93
106
|
getProducts: () => getProducts,
|
|
94
107
|
getSourcePriority: () => getSourcePriority,
|
|
95
108
|
getStreamPoints: () => getStreamPoints,
|
|
@@ -119,8 +132,12 @@ __export(index_exports, {
|
|
|
119
132
|
getWidgetOpportunities: () => getWidgetOpportunities,
|
|
120
133
|
holdingsDataSchema: () => holdingsDataSchema,
|
|
121
134
|
incentiveSchema: () => incentiveSchema,
|
|
135
|
+
incentivesQueries: () => incentivesQueries,
|
|
136
|
+
incentivesResponseSchema: () => incentivesResponseSchema,
|
|
122
137
|
leaveOrganization: () => leaveOrganization,
|
|
123
138
|
lendingConfigSchema: () => lendingConfigSchema,
|
|
139
|
+
liquidityProviderSchema: () => liquidityProviderSchema,
|
|
140
|
+
liquidityProvidersQueries: () => liquidityProvidersQueries,
|
|
124
141
|
mergeBalancesByPriority: () => mergeBalancesByPriority,
|
|
125
142
|
nftsQueries: () => nftsQueries,
|
|
126
143
|
opportunitiesQueries: () => opportunitiesQueries,
|
|
@@ -137,8 +154,11 @@ __export(index_exports, {
|
|
|
137
154
|
portfolioTokenSchema: () => portfolioTokenSchema,
|
|
138
155
|
portfolioWalletSchema: () => portfolioWalletSchema,
|
|
139
156
|
processRouteDetails: () => processRouteDetails,
|
|
157
|
+
productFiltersSchema: () => productFiltersSchema,
|
|
158
|
+
productResponseSchema: () => productResponseSchema,
|
|
140
159
|
productSchema: () => productSchema,
|
|
141
160
|
productsQueries: () => productsQueries,
|
|
161
|
+
productsResponseSchema: () => productsResponseSchema,
|
|
142
162
|
queries: () => queries,
|
|
143
163
|
requestStreamSignature: () => requestStreamSignature,
|
|
144
164
|
routeMetadataSchema: () => routeMetadataSchema,
|
|
@@ -168,6 +188,18 @@ __export(index_exports, {
|
|
|
168
188
|
tokenSchema: () => tokenSchema,
|
|
169
189
|
transactionSchema: () => transactionSchema,
|
|
170
190
|
txResponseItemSchema: () => txResponseItemSchema,
|
|
191
|
+
updateDistributorEarnDetails: () => updateDistributorEarnDetails,
|
|
192
|
+
updateIncentive: () => updateIncentive,
|
|
193
|
+
updateIncentiveInputSchema: () => updateIncentiveInputSchema,
|
|
194
|
+
updateProduct: () => updateProduct,
|
|
195
|
+
updateProductInputSchema: () => updateProductInputSchema,
|
|
196
|
+
updateProductResponseSchema: () => updateProductResponseSchema,
|
|
197
|
+
uploadIncentiveIcon: () => uploadIncentiveIcon,
|
|
198
|
+
uploadIncentiveIconRequestSchema: () => uploadIncentiveIconRequestSchema,
|
|
199
|
+
uploadIncentiveIconResponseSchema: () => uploadIncentiveIconResponseSchema,
|
|
200
|
+
uploadProductLogo: () => uploadProductLogo,
|
|
201
|
+
uploadProductLogoRequestSchema: () => uploadProductLogoRequestSchema,
|
|
202
|
+
uploadProductLogoResponseSchema: () => uploadProductLogoResponseSchema,
|
|
171
203
|
useActionsDefaultParams: () => useActionsDefaultParams,
|
|
172
204
|
useAttributeAction: () => useAttributeAction,
|
|
173
205
|
useBalance: () => useBalance2,
|
|
@@ -178,10 +210,12 @@ __export(index_exports, {
|
|
|
178
210
|
useClaimWithdrawAction: () => useClaimWithdrawAction,
|
|
179
211
|
useCreateClaimWithdrawInteraction: () => useCreateClaimWithdrawInteraction,
|
|
180
212
|
useCreateDepositInteraction: () => useCreateDepositInteraction,
|
|
213
|
+
useCreateIncentive: () => useCreateIncentive,
|
|
181
214
|
useCreateMembership: () => useCreateMembership,
|
|
182
215
|
useCreateMembershipAgreement: () => useCreateMembershipAgreement,
|
|
183
216
|
useCreateProduct: () => useCreateProduct,
|
|
184
217
|
useCreateWithdrawInteraction: () => useCreateWithdrawInteraction,
|
|
218
|
+
useDeleteIncentive: () => useDeleteIncentive,
|
|
185
219
|
useDeleteProduct: () => useDeleteProduct,
|
|
186
220
|
useDepositAction: () => useDepositAction,
|
|
187
221
|
useDepositFlow: () => useDepositFlow,
|
|
@@ -194,7 +228,10 @@ __export(index_exports, {
|
|
|
194
228
|
useEnsoBalances: () => useEnsoBalances,
|
|
195
229
|
useGeocheck: () => useGeocheck,
|
|
196
230
|
useGetOnChainBalance: () => useGetOnChainBalance,
|
|
231
|
+
useIncentive: () => useIncentive,
|
|
232
|
+
useIncentives: () => useIncentives,
|
|
197
233
|
useLeaveOrganization: () => useLeaveOrganization,
|
|
234
|
+
useLiquidityProviders: () => useLiquidityProviders,
|
|
198
235
|
useMultiChainBalances: () => useMultiChainBalances,
|
|
199
236
|
useOpportunities: () => useOpportunities,
|
|
200
237
|
useOpportunitiesFilterOptions: () => useOpportunitiesFilterOptions,
|
|
@@ -214,7 +251,10 @@ __export(index_exports, {
|
|
|
214
251
|
useSwapRoute: () => useSwapRoute,
|
|
215
252
|
useTokenBalance: () => useTokenBalance,
|
|
216
253
|
useTurtleMembershipFlow: () => useTurtleMembershipFlow,
|
|
254
|
+
useUpdateDistributorEarnDetails: () => useUpdateDistributorEarnDetails,
|
|
255
|
+
useUpdateIncentive: () => useUpdateIncentive,
|
|
217
256
|
useUpdateProduct: () => useUpdateProduct,
|
|
257
|
+
useUploadIncentiveIcon: () => useUploadIncentiveIcon,
|
|
218
258
|
useUploadProductLogo: () => useUploadProductLogo,
|
|
219
259
|
useUserById: () => useUserById,
|
|
220
260
|
useUserNfts: () => useUserNfts,
|
|
@@ -235,10 +275,10 @@ __export(index_exports, {
|
|
|
235
275
|
module.exports = __toCommonJS(index_exports);
|
|
236
276
|
|
|
237
277
|
// src/v2/index.ts
|
|
238
|
-
var
|
|
278
|
+
var import_query_key_factory19 = require("@lukemorales/query-key-factory");
|
|
239
279
|
|
|
240
280
|
// src/v2/opportunities/queries.ts
|
|
241
|
-
var
|
|
281
|
+
var import_query_key_factory3 = require("@lukemorales/query-key-factory");
|
|
242
282
|
|
|
243
283
|
// src/v2/lib/api-client.ts
|
|
244
284
|
var API_BASE_URL = "https://api.turtle.xyz";
|
|
@@ -329,32 +369,20 @@ var ApiClient = class _ApiClient {
|
|
|
329
369
|
};
|
|
330
370
|
var apiClient = ApiClient.getInstance();
|
|
331
371
|
|
|
372
|
+
// src/v2/opportunities/schema.ts
|
|
373
|
+
var import_zod7 = require("zod");
|
|
374
|
+
|
|
375
|
+
// src/v2/supported-tokens/schema.ts
|
|
376
|
+
var import_zod4 = require("zod");
|
|
377
|
+
|
|
378
|
+
// src/v2/supported-chains/schema.ts
|
|
379
|
+
var import_zod3 = require("zod");
|
|
380
|
+
|
|
332
381
|
// src/v2/schemas/shared.ts
|
|
382
|
+
var import_zod2 = require("zod");
|
|
383
|
+
|
|
384
|
+
// src/v2/organizations/schema.ts
|
|
333
385
|
var import_zod = require("zod");
|
|
334
|
-
var chainSchema = import_zod.z.object({
|
|
335
|
-
id: import_zod.z.string().optional(),
|
|
336
|
-
name: import_zod.z.string(),
|
|
337
|
-
slug: import_zod.z.string().optional(),
|
|
338
|
-
chainId: import_zod.z.string(),
|
|
339
|
-
logoUrl: import_zod.z.string().optional(),
|
|
340
|
-
ecosystem: import_zod.z.string().optional(),
|
|
341
|
-
status: import_zod.z.string().optional(),
|
|
342
|
-
explorerUrl: import_zod.z.string().optional()
|
|
343
|
-
});
|
|
344
|
-
var tokenSchema = import_zod.z.object({
|
|
345
|
-
id: import_zod.z.string().optional(),
|
|
346
|
-
name: import_zod.z.string(),
|
|
347
|
-
symbol: import_zod.z.string(),
|
|
348
|
-
address: import_zod.z.string(),
|
|
349
|
-
chain: chainSchema,
|
|
350
|
-
decimals: import_zod.z.number(),
|
|
351
|
-
logoUrl: import_zod.z.string().optional(),
|
|
352
|
-
isNative: import_zod.z.boolean(),
|
|
353
|
-
priceUsd: import_zod.z.number().optional(),
|
|
354
|
-
price: import_zod.z.string().optional(),
|
|
355
|
-
amount: import_zod.z.string().optional(),
|
|
356
|
-
rawAmount: import_zod.z.string().optional()
|
|
357
|
-
});
|
|
358
386
|
var organizationSchema = import_zod.z.object({
|
|
359
387
|
id: import_zod.z.string(),
|
|
360
388
|
name: import_zod.z.string(),
|
|
@@ -367,360 +395,697 @@ var organizationSchema = import_zod.z.object({
|
|
|
367
395
|
status: import_zod.z.string().optional().nullable(),
|
|
368
396
|
featured: import_zod.z.boolean().optional().nullable()
|
|
369
397
|
});
|
|
370
|
-
var
|
|
371
|
-
|
|
372
|
-
name: import_zod.z.string(),
|
|
373
|
-
title: import_zod.z.string().optional().nullable(),
|
|
374
|
-
subtitle: import_zod.z.string().optional().nullable(),
|
|
375
|
-
description: import_zod.z.string().optional().nullable(),
|
|
376
|
-
logoUrl: import_zod.z.string().optional().nullable(),
|
|
377
|
-
productUrl: import_zod.z.string().optional().nullable(),
|
|
378
|
-
startedAt: import_zod.z.string().optional().nullable(),
|
|
379
|
-
status: import_zod.z.string().optional().nullable(),
|
|
380
|
-
productType: import_zod.z.string().optional().nullable(),
|
|
381
|
-
organization: organizationSchema,
|
|
382
|
-
createdAt: import_zod.z.string().optional().nullable()
|
|
383
|
-
});
|
|
384
|
-
var vaultConfigSchema = import_zod.z.object({
|
|
385
|
-
id: import_zod.z.string().uuid().optional(),
|
|
386
|
-
infraProvider: organizationSchema.optional().nullable(),
|
|
387
|
-
curator: organizationSchema.optional().nullable(),
|
|
388
|
-
withdrawalCooldownSecs: import_zod.z.number().int().min(0).optional().nullable(),
|
|
389
|
-
withdrawalContractAddress: import_zod.z.string().optional().nullable(),
|
|
390
|
-
withdrawalDetails: import_zod.z.any().optional().nullable(),
|
|
391
|
-
depositUrl: import_zod.z.string().optional().nullable(),
|
|
392
|
-
providerMetadata: import_zod.z.any().optional().nullable(),
|
|
393
|
-
performanceFee: import_zod.z.number().min(0).max(100).optional().nullable(),
|
|
394
|
-
managementFee: import_zod.z.number().min(0).max(100).optional().nullable(),
|
|
395
|
-
depositFee: import_zod.z.number().min(0).max(100).optional().nullable(),
|
|
396
|
-
withdrawalFee: import_zod.z.number().min(0).max(100).optional().nullable(),
|
|
397
|
-
minDepositAmount: import_zod.z.number().optional().nullable(),
|
|
398
|
-
minDepositValueUSD: import_zod.z.number().optional().nullable(),
|
|
399
|
-
depositCapAmount: import_zod.z.number().optional().nullable(),
|
|
400
|
-
depositCapValueUSD: import_zod.z.number().optional().nullable(),
|
|
401
|
-
depositFillSecs: import_zod.z.number().int().optional().nullable(),
|
|
402
|
-
lockupPeriodSecs: import_zod.z.number().int().optional().nullable(),
|
|
403
|
-
asyncDeposit: import_zod.z.boolean().optional().nullable(),
|
|
404
|
-
asyncWithdraw: import_zod.z.boolean().optional().nullable(),
|
|
405
|
-
secondaryOnly: import_zod.z.boolean().optional().nullable(),
|
|
406
|
-
createdAt: import_zod.z.string().datetime().optional(),
|
|
407
|
-
updatedAt: import_zod.z.string().datetime().optional()
|
|
408
|
-
});
|
|
409
|
-
var lendingConfigSchema = import_zod.z.object({
|
|
410
|
-
id: import_zod.z.string().uuid().optional(),
|
|
411
|
-
protocol: import_zod.z.object({ id: import_zod.z.string() }),
|
|
412
|
-
marketAddress: import_zod.z.string().min(1, "Market address is required"),
|
|
413
|
-
depositUrl: import_zod.z.string().optional().nullable(),
|
|
414
|
-
providerMetadata: import_zod.z.any().optional().nullable(),
|
|
415
|
-
createdAt: import_zod.z.string().datetime().optional(),
|
|
416
|
-
updatedAt: import_zod.z.string().datetime().optional()
|
|
417
|
-
});
|
|
418
|
-
var incentiveSchema = import_zod.z.object({
|
|
419
|
-
id: import_zod.z.string().uuid(),
|
|
420
|
-
name: import_zod.z.string(),
|
|
421
|
-
description: import_zod.z.string(),
|
|
422
|
-
iconUrl: import_zod.z.string(),
|
|
423
|
-
rewardType: import_zod.z.string(),
|
|
424
|
-
rewardTypeName: import_zod.z.string(),
|
|
425
|
-
boostPct: import_zod.z.number().nullable(),
|
|
426
|
-
totalCapacity: import_zod.z.number().nullable(),
|
|
427
|
-
maxCapacityPerLP: import_zod.z.number().nullable(),
|
|
428
|
-
lockup: import_zod.z.string().nullable(),
|
|
429
|
-
minCommitment: import_zod.z.number().nullable(),
|
|
430
|
-
baseYieldTarget: import_zod.z.number().nullable(),
|
|
431
|
-
baseYieldSource: import_zod.z.string().nullable(),
|
|
432
|
-
incentiveYieldTarget: import_zod.z.number().nullable(),
|
|
433
|
-
fdvEstimate: import_zod.z.number().nullable(),
|
|
434
|
-
isIncentiveYieldGuaranteed: import_zod.z.boolean().nullable(),
|
|
435
|
-
tokenSupplyAllocation: import_zod.z.number().nullable(),
|
|
436
|
-
yield: import_zod.z.number().nullable()
|
|
437
|
-
});
|
|
438
|
-
var opportunityTypeEnum = import_zod.z.enum(["vault", "lending", "staking", "stablecoin", "draft", ""]);
|
|
439
|
-
var opportunityStatusEnum = import_zod.z.enum(["active", "paused", "deprecated", "draft", "ended"]);
|
|
440
|
-
var opportunitySchema = import_zod.z.object({
|
|
441
|
-
id: import_zod.z.string().uuid().optional(),
|
|
442
|
-
name: import_zod.z.string(),
|
|
443
|
-
shortName: import_zod.z.string(),
|
|
444
|
-
type: opportunityTypeEnum,
|
|
445
|
-
description: import_zod.z.string().optional().default(""),
|
|
446
|
-
curator: import_zod.z.string().optional().default(""),
|
|
447
|
-
tvl: import_zod.z.number().min(0, "TVL must be positive"),
|
|
448
|
-
featured: import_zod.z.boolean().optional().default(false),
|
|
449
|
-
featuredOrder: import_zod.z.number().int().optional().nullable(),
|
|
450
|
-
originalConfig: import_zod.z.any().optional().nullable(),
|
|
451
|
-
exposures: import_zod.z.array(import_zod.z.string()).optional().default([]),
|
|
452
|
-
status: opportunityStatusEnum.optional().default("active"),
|
|
453
|
-
statusReason: import_zod.z.string().optional().default(""),
|
|
454
|
-
depositDisabled: import_zod.z.boolean().optional().default(false),
|
|
455
|
-
depositDisabledReason: import_zod.z.string().optional().default(""),
|
|
456
|
-
withdrawalDisabled: import_zod.z.boolean().optional().default(false),
|
|
457
|
-
withdrawalDisabledReason: import_zod.z.string().optional().default(""),
|
|
458
|
-
docsUrl: import_zod.z.string().optional().nullable(),
|
|
459
|
-
auditsUrl: import_zod.z.string().optional().nullable(),
|
|
460
|
-
turtleTvl: import_zod.z.number(),
|
|
461
|
-
turtleUsers: import_zod.z.number(),
|
|
462
|
-
earnEnabled: import_zod.z.boolean(),
|
|
463
|
-
createdAt: import_zod.z.string().datetime().optional(),
|
|
464
|
-
updatedAt: import_zod.z.string().datetime().optional(),
|
|
465
|
-
// Relationships
|
|
466
|
-
depositTokens: import_zod.z.array(tokenSchema),
|
|
467
|
-
baseTokens: tokenSchema,
|
|
468
|
-
receiptToken: tokenSchema,
|
|
469
|
-
incentives: import_zod.z.array(incentiveSchema),
|
|
470
|
-
products: import_zod.z.array(productSchema),
|
|
471
|
-
vaultConfig: vaultConfigSchema.optional().nullable(),
|
|
472
|
-
lendingConfig: lendingConfigSchema.optional().nullable(),
|
|
473
|
-
// Will be deprecated
|
|
474
|
-
exposure: import_zod.z.array(import_zod.z.string()),
|
|
475
|
-
explorerUrl: import_zod.z.string().nullable()
|
|
476
|
-
});
|
|
477
|
-
var paginationMetadataSchema = import_zod.z.object({
|
|
478
|
-
page: import_zod.z.number().int().min(1).catch(1),
|
|
479
|
-
limit: import_zod.z.number().int().min(1).max(100),
|
|
480
|
-
total: import_zod.z.number().int().min(0),
|
|
481
|
-
total_pages: import_zod.z.number().int().min(1),
|
|
482
|
-
has_next: import_zod.z.boolean(),
|
|
483
|
-
has_previous: import_zod.z.boolean()
|
|
484
|
-
});
|
|
485
|
-
|
|
486
|
-
// src/v2/opportunities/schema.ts
|
|
487
|
-
var import_zod2 = require("zod");
|
|
488
|
-
var opportunityFiltersSchema = import_zod2.z.object({
|
|
489
|
-
tokenId: import_zod2.z.string().uuid().optional(),
|
|
490
|
-
chain: import_zod2.z.string().optional(),
|
|
491
|
-
productId: import_zod2.z.string().uuid().optional()
|
|
492
|
-
});
|
|
493
|
-
var opportunitiesResponseSchema = import_zod2.z.object({
|
|
494
|
-
opportunities: import_zod2.z.array(opportunitySchema),
|
|
495
|
-
total: import_zod2.z.number().optional()
|
|
496
|
-
});
|
|
497
|
-
var getOpportunitiesPaginatedInputSchema = import_zod2.z.object({
|
|
498
|
-
page: import_zod2.z.number().min(1).default(1),
|
|
499
|
-
limit: import_zod2.z.number().min(1).max(100).default(10),
|
|
500
|
-
// Sorting
|
|
501
|
-
sortBy: import_zod2.z.enum([
|
|
502
|
-
"turtleTvl",
|
|
503
|
-
"tvl",
|
|
504
|
-
"name",
|
|
505
|
-
"turtleUsers",
|
|
506
|
-
"type",
|
|
507
|
-
"organization",
|
|
508
|
-
"curator",
|
|
509
|
-
"provider",
|
|
510
|
-
"apr"
|
|
511
|
-
]).optional(),
|
|
512
|
-
sortOrder: import_zod2.z.enum(["asc", "desc"]).optional(),
|
|
513
|
-
// Filter by receipt token chain (comma-separated)
|
|
514
|
-
receiptTokenChainId: import_zod2.z.string().optional(),
|
|
515
|
-
// Comma-separated UUIDs
|
|
516
|
-
receiptTokenChainSlug: import_zod2.z.string().optional(),
|
|
517
|
-
// Comma-separated slugs
|
|
518
|
-
// Filter by deposit token
|
|
519
|
-
depositTokenGroup: import_zod2.z.string().optional(),
|
|
520
|
-
depositTokenSymbols: import_zod2.z.string().optional(),
|
|
521
|
-
// Comma-separated symbols
|
|
522
|
-
depositTokenChainId: import_zod2.z.string().optional(),
|
|
523
|
-
// Filter by tags (comma-separated)
|
|
524
|
-
tags: import_zod2.z.string().optional(),
|
|
525
|
-
// Filter by IDs (comma-separated UUIDs)
|
|
526
|
-
productId: import_zod2.z.string().optional(),
|
|
527
|
-
// Comma-separated UUIDs
|
|
528
|
-
curatorId: import_zod2.z.string().optional(),
|
|
529
|
-
// Comma-separated UUIDs
|
|
530
|
-
providerId: import_zod2.z.string().optional(),
|
|
531
|
-
// Comma-separated UUIDs
|
|
532
|
-
partnerId: import_zod2.z.string().optional(),
|
|
533
|
-
// Comma-separated UUIDs
|
|
534
|
-
lendingProtocolId: import_zod2.z.string().optional(),
|
|
535
|
-
// Comma-separated UUIDs
|
|
536
|
-
// Status filters
|
|
537
|
-
withdrawalDisabled: import_zod2.z.boolean().optional(),
|
|
538
|
-
depositDisabled: import_zod2.z.boolean().optional(),
|
|
539
|
-
status: import_zod2.z.string().optional(),
|
|
540
|
-
earnEnabled: import_zod2.z.boolean().optional(),
|
|
541
|
-
featured: import_zod2.z.boolean().optional(),
|
|
542
|
-
// TVL filters
|
|
543
|
-
tvlGreaterThan: import_zod2.z.number().optional(),
|
|
544
|
-
turtleTvlGreaterThan: import_zod2.z.number().optional(),
|
|
545
|
-
tvlMin: import_zod2.z.number().optional(),
|
|
546
|
-
tvlMax: import_zod2.z.number().optional(),
|
|
547
|
-
// APR filters
|
|
548
|
-
minApr: import_zod2.z.number().optional(),
|
|
549
|
-
maxApr: import_zod2.z.number().optional(),
|
|
550
|
-
// Chain IDs (comma-separated)
|
|
551
|
-
chainIds: import_zod2.z.string().optional(),
|
|
552
|
-
// Search
|
|
553
|
-
search: import_zod2.z.string().optional()
|
|
554
|
-
});
|
|
555
|
-
var paginationMetadataSchema2 = import_zod2.z.object({
|
|
556
|
-
page: import_zod2.z.number(),
|
|
557
|
-
limit: import_zod2.z.number(),
|
|
558
|
-
total: import_zod2.z.number(),
|
|
559
|
-
totalPages: import_zod2.z.number()
|
|
560
|
-
});
|
|
561
|
-
var getOpportunitiesPaginatedSchema = import_zod2.z.object({
|
|
562
|
-
opportunities: import_zod2.z.array(opportunitySchema),
|
|
563
|
-
pagination: paginationMetadataSchema2
|
|
398
|
+
var LeaveOrganizationInputSchema = import_zod.z.object({
|
|
399
|
+
organizationId: import_zod.z.string().uuid()
|
|
564
400
|
});
|
|
565
|
-
var
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
slug: import_zod2.z.string(),
|
|
569
|
-
chainId: import_zod2.z.string(),
|
|
570
|
-
logoUrl: import_zod2.z.string(),
|
|
571
|
-
ecosystem: import_zod2.z.string(),
|
|
572
|
-
status: import_zod2.z.string(),
|
|
573
|
-
explorerUrl: import_zod2.z.string()
|
|
574
|
-
});
|
|
575
|
-
var filterOrganizationSchema = import_zod2.z.object({
|
|
576
|
-
id: import_zod2.z.string().uuid(),
|
|
577
|
-
name: import_zod2.z.string(),
|
|
578
|
-
description: import_zod2.z.string(),
|
|
579
|
-
landingUrl: import_zod2.z.string(),
|
|
580
|
-
iconUrl: import_zod2.z.string(),
|
|
581
|
-
organizationType: import_zod2.z.string(),
|
|
582
|
-
turtleRefCode: import_zod2.z.string(),
|
|
583
|
-
twitterHandle: import_zod2.z.string(),
|
|
584
|
-
status: import_zod2.z.string(),
|
|
585
|
-
featured: import_zod2.z.boolean()
|
|
586
|
-
});
|
|
587
|
-
var filterTagSchema = import_zod2.z.object({
|
|
588
|
-
id: import_zod2.z.string().uuid(),
|
|
589
|
-
code: import_zod2.z.string(),
|
|
590
|
-
name: import_zod2.z.string(),
|
|
591
|
-
description: import_zod2.z.string().optional().nullable(),
|
|
592
|
-
color: import_zod2.z.string().optional().nullable(),
|
|
593
|
-
type: import_zod2.z.string().optional().nullable()
|
|
594
|
-
});
|
|
595
|
-
var depositTokenSymbolSchema = import_zod2.z.object({
|
|
596
|
-
symbol: import_zod2.z.string(),
|
|
597
|
-
logoUrl: import_zod2.z.string()
|
|
598
|
-
});
|
|
599
|
-
var getOpportunitiesFilterOptionsSchema = import_zod2.z.object({
|
|
600
|
-
chains: import_zod2.z.array(filterChainSchema),
|
|
601
|
-
providers: import_zod2.z.array(filterOrganizationSchema),
|
|
602
|
-
curators: import_zod2.z.array(filterOrganizationSchema).optional().nullable(),
|
|
603
|
-
partners: import_zod2.z.array(filterOrganizationSchema).optional().nullable(),
|
|
604
|
-
tags: import_zod2.z.array(filterTagSchema).optional().nullable(),
|
|
605
|
-
lendingProtocols: import_zod2.z.array(filterOrganizationSchema),
|
|
606
|
-
depositTokenSymbols: import_zod2.z.array(depositTokenSymbolSchema).optional().nullable()
|
|
401
|
+
var LeaveOrganizationOutputSchema = import_zod.z.object({
|
|
402
|
+
success: import_zod.z.boolean(),
|
|
403
|
+
error: import_zod.z.string().optional()
|
|
607
404
|
});
|
|
608
405
|
|
|
609
|
-
// src/v2/
|
|
610
|
-
async function
|
|
611
|
-
const
|
|
612
|
-
if (filters?.tokenId) params.append("tokenId", filters.tokenId);
|
|
613
|
-
if (filters?.chain) params.append("chain", filters.chain);
|
|
614
|
-
if (filters?.productId) params.append("productId", filters.productId);
|
|
615
|
-
const queryString = params.toString();
|
|
616
|
-
const endpoint = `/turtle/opportunities${queryString ? `?${queryString}` : ""}`;
|
|
406
|
+
// src/v2/organizations/api.ts
|
|
407
|
+
async function leaveOrganization(input) {
|
|
408
|
+
const endpoint = `/organization/${input.organizationId}/leave`;
|
|
617
409
|
const data = await apiClient.fetch(endpoint, {
|
|
618
|
-
method: "
|
|
619
|
-
debug: options?.debug
|
|
410
|
+
method: "POST"
|
|
620
411
|
});
|
|
621
|
-
const result =
|
|
412
|
+
const result = LeaveOrganizationOutputSchema.safeParse(data);
|
|
622
413
|
if (result.success === false) {
|
|
623
414
|
console.log("[ZOD ERROR]", result.error);
|
|
624
|
-
throw new Error(`Failed to parse
|
|
415
|
+
throw new Error(`Failed to parse leave organization response: ${result.error.message}`);
|
|
625
416
|
}
|
|
626
417
|
return result.data;
|
|
627
418
|
}
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
419
|
+
|
|
420
|
+
// src/v2/organizations/hooks.ts
|
|
421
|
+
var import_react_query = require("@tanstack/react-query");
|
|
422
|
+
function useLeaveOrganization(options) {
|
|
423
|
+
return (0, import_react_query.useMutation)({
|
|
424
|
+
mutationFn: leaveOrganization,
|
|
425
|
+
...options
|
|
632
426
|
});
|
|
633
|
-
const result = opportunitySchema.safeParse(data);
|
|
634
|
-
if (result.success === false) {
|
|
635
|
-
console.log("[ZOD ERROR]", result.error);
|
|
636
|
-
throw new Error(`Failed to parse opportunity: ${result.error.message}`);
|
|
637
|
-
}
|
|
638
|
-
return result.data;
|
|
639
427
|
}
|
|
640
|
-
|
|
428
|
+
|
|
429
|
+
// src/v2/organizations/queries.ts
|
|
430
|
+
var organizationsMutations = {
|
|
431
|
+
leave: (input) => leaveOrganization(input)
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
// src/v2/schemas/shared.ts
|
|
435
|
+
var vaultConfigSchema = import_zod2.z.object({
|
|
436
|
+
id: import_zod2.z.string().uuid().optional(),
|
|
437
|
+
infraProvider: organizationSchema.optional().nullable(),
|
|
438
|
+
curator: organizationSchema.optional().nullable(),
|
|
439
|
+
withdrawalCooldownSecs: import_zod2.z.number().int().min(0).optional().nullable(),
|
|
440
|
+
withdrawalContractAddress: import_zod2.z.string().optional().nullable(),
|
|
441
|
+
withdrawalDetails: import_zod2.z.any().optional().nullable(),
|
|
442
|
+
depositUrl: import_zod2.z.string().optional().nullable(),
|
|
443
|
+
providerMetadata: import_zod2.z.any().optional().nullable(),
|
|
444
|
+
performanceFee: import_zod2.z.number().min(0).max(100).optional().nullable(),
|
|
445
|
+
managementFee: import_zod2.z.number().min(0).max(100).optional().nullable(),
|
|
446
|
+
depositFee: import_zod2.z.number().min(0).max(100).optional().nullable(),
|
|
447
|
+
withdrawalFee: import_zod2.z.number().min(0).max(100).optional().nullable(),
|
|
448
|
+
minDepositAmount: import_zod2.z.number().optional().nullable(),
|
|
449
|
+
minDepositValueUSD: import_zod2.z.number().optional().nullable(),
|
|
450
|
+
depositCapAmount: import_zod2.z.number().optional().nullable(),
|
|
451
|
+
depositCapValueUSD: import_zod2.z.number().optional().nullable(),
|
|
452
|
+
depositFillSecs: import_zod2.z.number().int().optional().nullable(),
|
|
453
|
+
lockupPeriodSecs: import_zod2.z.number().int().optional().nullable(),
|
|
454
|
+
asyncDeposit: import_zod2.z.boolean().optional().nullable(),
|
|
455
|
+
asyncWithdraw: import_zod2.z.boolean().optional().nullable(),
|
|
456
|
+
secondaryOnly: import_zod2.z.boolean().optional().nullable(),
|
|
457
|
+
createdAt: import_zod2.z.string().datetime().optional(),
|
|
458
|
+
updatedAt: import_zod2.z.string().datetime().optional()
|
|
459
|
+
});
|
|
460
|
+
var lendingConfigSchema = import_zod2.z.object({
|
|
461
|
+
id: import_zod2.z.string().uuid().optional(),
|
|
462
|
+
protocol: import_zod2.z.object({ id: import_zod2.z.string() }),
|
|
463
|
+
marketAddress: import_zod2.z.string().min(1, "Market address is required"),
|
|
464
|
+
depositUrl: import_zod2.z.string().optional().nullable(),
|
|
465
|
+
providerMetadata: import_zod2.z.any().optional().nullable(),
|
|
466
|
+
createdAt: import_zod2.z.string().datetime().optional(),
|
|
467
|
+
updatedAt: import_zod2.z.string().datetime().optional()
|
|
468
|
+
});
|
|
469
|
+
var paginationMetadataSchema = import_zod2.z.object({
|
|
470
|
+
page: import_zod2.z.number().int().min(1).catch(1),
|
|
471
|
+
limit: import_zod2.z.number().int().min(1).max(100),
|
|
472
|
+
total: import_zod2.z.number().int().min(0),
|
|
473
|
+
total_pages: import_zod2.z.number().int().min(1),
|
|
474
|
+
has_next: import_zod2.z.boolean(),
|
|
475
|
+
has_previous: import_zod2.z.boolean()
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
// src/v2/supported-chains/schema.ts
|
|
479
|
+
var chainSchema = import_zod3.z.object({
|
|
480
|
+
id: import_zod3.z.string().optional(),
|
|
481
|
+
name: import_zod3.z.string(),
|
|
482
|
+
slug: import_zod3.z.string().optional(),
|
|
483
|
+
chainId: import_zod3.z.string(),
|
|
484
|
+
logoUrl: import_zod3.z.string().optional(),
|
|
485
|
+
ecosystem: import_zod3.z.string().optional(),
|
|
486
|
+
status: import_zod3.z.string().optional(),
|
|
487
|
+
explorerUrl: import_zod3.z.string().optional()
|
|
488
|
+
});
|
|
489
|
+
var getSupportedChainsInputSchema = import_zod3.z.object({
|
|
490
|
+
page: import_zod3.z.number().min(1).default(1).optional(),
|
|
491
|
+
limit: import_zod3.z.number().min(1).max(100).default(50).optional(),
|
|
492
|
+
// Sorting
|
|
493
|
+
sortBy: import_zod3.z.enum(["name", "chainId", "ecosystem", "slug"]).optional(),
|
|
494
|
+
sortOrder: import_zod3.z.enum(["asc", "desc"]).optional(),
|
|
495
|
+
// Filters
|
|
496
|
+
ecosystem: import_zod3.z.string().optional(),
|
|
497
|
+
// Filter by ecosystem
|
|
498
|
+
status: import_zod3.z.string().optional(),
|
|
499
|
+
// Filter by status
|
|
500
|
+
chainId: import_zod3.z.string().optional(),
|
|
501
|
+
// Filter by specific chainId
|
|
502
|
+
slug: import_zod3.z.string().optional(),
|
|
503
|
+
// Filter by slug
|
|
504
|
+
search: import_zod3.z.string().optional()
|
|
505
|
+
// Search by name or slug
|
|
506
|
+
});
|
|
507
|
+
var supportedChainsResponseSchema = import_zod3.z.object({
|
|
508
|
+
chains: import_zod3.z.array(chainSchema),
|
|
509
|
+
pagination: paginationMetadataSchema.optional()
|
|
510
|
+
});
|
|
511
|
+
|
|
512
|
+
// src/v2/supported-chains/api.ts
|
|
513
|
+
async function getSupportedChains(params, options) {
|
|
641
514
|
const queryParams = new URLSearchParams();
|
|
642
515
|
if (params) {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
516
|
+
if (params.page !== void 0) queryParams.append("page", params.page.toString());
|
|
517
|
+
if (params.limit !== void 0) queryParams.append("limit", params.limit.toString());
|
|
518
|
+
if (params.sortBy) queryParams.append("sortBy", params.sortBy);
|
|
519
|
+
if (params.sortOrder) queryParams.append("sortOrder", params.sortOrder);
|
|
520
|
+
if (params.ecosystem) queryParams.append("ecosystem", params.ecosystem);
|
|
521
|
+
if (params.status) queryParams.append("status", params.status);
|
|
522
|
+
if (params.chainId) queryParams.append("chainId", params.chainId);
|
|
523
|
+
if (params.slug) queryParams.append("slug", params.slug);
|
|
524
|
+
if (params.search) queryParams.append("search", params.search);
|
|
648
525
|
}
|
|
649
526
|
const queryString = queryParams.toString();
|
|
650
|
-
const endpoint = `/turtle/
|
|
527
|
+
const endpoint = `/turtle/chains${queryString ? `?${queryString}` : ""}`;
|
|
651
528
|
const data = await apiClient.fetch(endpoint, {
|
|
652
529
|
method: "GET",
|
|
653
530
|
debug: options?.debug
|
|
654
531
|
});
|
|
655
|
-
const result =
|
|
532
|
+
const result = supportedChainsResponseSchema.safeParse(data);
|
|
656
533
|
if (result.success === false) {
|
|
657
534
|
console.log("[ZOD ERROR]", result.error);
|
|
658
|
-
throw new Error(`Failed to parse
|
|
535
|
+
throw new Error(`Failed to parse supported chains: ${result.error.message}`);
|
|
659
536
|
}
|
|
660
537
|
return result.data;
|
|
661
538
|
}
|
|
662
|
-
|
|
663
|
-
|
|
539
|
+
|
|
540
|
+
// src/v2/supported-chains/queries.ts
|
|
541
|
+
var import_query_key_factory = require("@lukemorales/query-key-factory");
|
|
542
|
+
var supportedChainsQueries = (0, import_query_key_factory.createQueryKeys)("supportedChains", {
|
|
543
|
+
all: (params, options) => ({
|
|
544
|
+
queryKey: [params],
|
|
545
|
+
queryFn: () => getSupportedChains(params, options)
|
|
546
|
+
})
|
|
547
|
+
});
|
|
548
|
+
|
|
549
|
+
// src/v2/supported-chains/hooks.ts
|
|
550
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
551
|
+
|
|
552
|
+
// src/v2/lib/query-config.ts
|
|
553
|
+
var queryDefaults = {
|
|
554
|
+
staleTime: 5 * 60 * 1e3,
|
|
555
|
+
// 5 minutes - data is fresh
|
|
556
|
+
gcTime: 10 * 60 * 1e3,
|
|
557
|
+
// 10 minutes - cache garbage collection (formerly cacheTime)
|
|
558
|
+
retry: 1,
|
|
559
|
+
// Retry failed requests once
|
|
560
|
+
refetchOnWindowFocus: false
|
|
561
|
+
// Don't refetch on tab focus
|
|
562
|
+
};
|
|
563
|
+
function createQueryOptions(queryConfig, options) {
|
|
564
|
+
return {
|
|
565
|
+
...queryDefaults,
|
|
566
|
+
...queryConfig,
|
|
567
|
+
...options
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
// src/v2/supported-chains/hooks.ts
|
|
572
|
+
function useSupportedChains(options) {
|
|
573
|
+
const { debug, enabled = true, ...params } = options || {};
|
|
574
|
+
const { data, isLoading, error, refetch, isFetching } = (0, import_react_query2.useQuery)({
|
|
575
|
+
...supportedChainsQueries.all(params, { debug }),
|
|
576
|
+
...queryDefaults,
|
|
577
|
+
enabled
|
|
578
|
+
});
|
|
579
|
+
const chains = data?.chains ?? [];
|
|
580
|
+
const pagination = data?.pagination;
|
|
581
|
+
return {
|
|
582
|
+
chains,
|
|
583
|
+
pagination,
|
|
584
|
+
getChainByChainId: (chainId) => chains.find((chain) => chain.chainId === chainId),
|
|
585
|
+
getChainBySlug: (slug) => chains.find((chain) => chain.slug === slug),
|
|
586
|
+
getChainsByEcosystem: (ecosystem) => chains.filter((chain) => chain.ecosystem === ecosystem),
|
|
587
|
+
isLoading,
|
|
588
|
+
error: error ? error : null,
|
|
589
|
+
refetch,
|
|
590
|
+
isFetching
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
// src/v2/supported-tokens/schema.ts
|
|
595
|
+
var tokenSchema = import_zod4.z.object({
|
|
596
|
+
id: import_zod4.z.string().optional(),
|
|
597
|
+
name: import_zod4.z.string(),
|
|
598
|
+
symbol: import_zod4.z.string(),
|
|
599
|
+
address: import_zod4.z.string(),
|
|
600
|
+
chain: chainSchema,
|
|
601
|
+
decimals: import_zod4.z.number(),
|
|
602
|
+
logoUrl: import_zod4.z.string().optional(),
|
|
603
|
+
isNative: import_zod4.z.boolean(),
|
|
604
|
+
priceUsd: import_zod4.z.number().optional(),
|
|
605
|
+
price: import_zod4.z.string().optional(),
|
|
606
|
+
amount: import_zod4.z.string().optional(),
|
|
607
|
+
rawAmount: import_zod4.z.string().optional()
|
|
608
|
+
});
|
|
609
|
+
var supportedTokenSchema = tokenSchema.extend({
|
|
610
|
+
active: import_zod4.z.boolean()
|
|
611
|
+
});
|
|
612
|
+
var supportedTokensResponseSchema = import_zod4.z.object({
|
|
613
|
+
tokens: import_zod4.z.array(supportedTokenSchema),
|
|
614
|
+
total: import_zod4.z.number().optional(),
|
|
615
|
+
limit: import_zod4.z.number().optional(),
|
|
616
|
+
page: import_zod4.z.number().optional()
|
|
617
|
+
});
|
|
618
|
+
|
|
619
|
+
// src/v2/supported-tokens/api.ts
|
|
620
|
+
async function getSupportedTokens(filters, options) {
|
|
621
|
+
const params = new URLSearchParams();
|
|
622
|
+
if (filters?.page !== void 0) params.append("page", filters.page.toString());
|
|
623
|
+
if (filters?.limit !== void 0) params.append("limit", filters.limit.toString());
|
|
624
|
+
if (filters?.search) params.append("search", filters.search);
|
|
625
|
+
if (filters?.chainId) params.append("chainId", filters.chainId);
|
|
626
|
+
const queryString = params.toString();
|
|
627
|
+
const endpoint = `/turtle/tokens${queryString ? `?${queryString}` : ""}`;
|
|
628
|
+
const data = await apiClient.fetch(endpoint, {
|
|
664
629
|
method: "GET",
|
|
665
630
|
debug: options?.debug
|
|
666
631
|
});
|
|
667
|
-
const result =
|
|
632
|
+
const result = supportedTokensResponseSchema.safeParse(data);
|
|
668
633
|
if (result.success === false) {
|
|
669
634
|
console.log("[ZOD ERROR]", result.error);
|
|
670
|
-
throw new Error(`Failed to parse
|
|
635
|
+
throw new Error(`Failed to parse supported tokens: ${result.error.message}`);
|
|
671
636
|
}
|
|
672
637
|
return result.data;
|
|
673
638
|
}
|
|
674
639
|
|
|
675
|
-
// src/v2/
|
|
676
|
-
var
|
|
677
|
-
|
|
678
|
-
all: {
|
|
679
|
-
queryKey: null,
|
|
680
|
-
queryFn: () => getOpportunities()
|
|
681
|
-
},
|
|
682
|
-
// Get opportunities with filters
|
|
640
|
+
// src/v2/supported-tokens/queries.ts
|
|
641
|
+
var import_query_key_factory2 = require("@lukemorales/query-key-factory");
|
|
642
|
+
var supportedTokensQueries = (0, import_query_key_factory2.createQueryKeys)("supportedTokens", {
|
|
683
643
|
list: (filters) => ({
|
|
684
|
-
queryKey: [
|
|
685
|
-
queryFn: () =>
|
|
686
|
-
})
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
644
|
+
queryKey: [filters],
|
|
645
|
+
queryFn: () => getSupportedTokens(filters)
|
|
646
|
+
})
|
|
647
|
+
});
|
|
648
|
+
|
|
649
|
+
// src/v2/supported-tokens/hooks.ts
|
|
650
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
651
|
+
var import_react = require("react");
|
|
652
|
+
function useSupportedTokens({
|
|
653
|
+
page = 0,
|
|
654
|
+
limit = 20,
|
|
655
|
+
search,
|
|
656
|
+
chainId,
|
|
657
|
+
enabled = true
|
|
658
|
+
} = {}) {
|
|
659
|
+
const { data, isLoading, error, refetch } = (0, import_react_query3.useQuery)({
|
|
660
|
+
...supportedTokensQueries.list({ page, limit, search, chainId }),
|
|
661
|
+
...queryDefaults,
|
|
662
|
+
staleTime: 5 * 60 * 1e3,
|
|
663
|
+
// 1 minutes
|
|
664
|
+
gcTime: 10 * 60 * 1e3,
|
|
665
|
+
// 10 minutes
|
|
666
|
+
refetchOnWindowFocus: false,
|
|
667
|
+
// Don't refetch on tab focus
|
|
668
|
+
enabled
|
|
669
|
+
});
|
|
670
|
+
const tokens = (0, import_react.useMemo)(() => {
|
|
671
|
+
if (!data?.tokens) return [];
|
|
672
|
+
return data.tokens;
|
|
673
|
+
}, [data?.tokens]);
|
|
674
|
+
return {
|
|
675
|
+
tokens,
|
|
676
|
+
total: data?.total ?? 0,
|
|
677
|
+
limit: data?.limit ?? limit,
|
|
678
|
+
page: data?.page ?? page,
|
|
679
|
+
isLoading,
|
|
680
|
+
error: error ? error : null,
|
|
681
|
+
refetch,
|
|
682
|
+
getTokenById: (id) => tokens.find((token) => token.id === id),
|
|
683
|
+
getToken: (address, chainId2) => tokens.find(
|
|
684
|
+
(token) => token.address.toLowerCase() === address.toLowerCase() && token.chain.chainId === chainId2
|
|
685
|
+
)
|
|
686
|
+
};
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
// src/v2/incentives/schema.ts
|
|
690
|
+
var import_zod5 = require("zod");
|
|
691
|
+
var incentiveSchema = import_zod5.z.object({
|
|
692
|
+
id: import_zod5.z.string().uuid(),
|
|
693
|
+
name: import_zod5.z.string(),
|
|
694
|
+
description: import_zod5.z.string(),
|
|
695
|
+
iconUrl: import_zod5.z.string(),
|
|
696
|
+
rewardType: import_zod5.z.string(),
|
|
697
|
+
rewardTypeName: import_zod5.z.string(),
|
|
698
|
+
boostPct: import_zod5.z.number().nullable(),
|
|
699
|
+
totalCapacity: import_zod5.z.number().nullable(),
|
|
700
|
+
maxCapacityPerLP: import_zod5.z.number().nullable(),
|
|
701
|
+
lockup: import_zod5.z.string().nullable(),
|
|
702
|
+
minCommitment: import_zod5.z.number().nullable(),
|
|
703
|
+
baseYieldTarget: import_zod5.z.number().nullable(),
|
|
704
|
+
baseYieldSource: import_zod5.z.string().nullable(),
|
|
705
|
+
incentiveYieldTarget: import_zod5.z.number().nullable(),
|
|
706
|
+
fdvEstimate: import_zod5.z.number().nullable(),
|
|
707
|
+
isIncentiveYieldGuaranteed: import_zod5.z.boolean().nullable(),
|
|
708
|
+
tokenSupplyAllocation: import_zod5.z.number().nullable(),
|
|
709
|
+
yield: import_zod5.z.number().nullable(),
|
|
710
|
+
indexed: import_zod5.z.boolean().nullable(),
|
|
711
|
+
minApr: import_zod5.z.number().nullable().optional(),
|
|
712
|
+
maxApr: import_zod5.z.number().nullable().optional()
|
|
713
|
+
});
|
|
714
|
+
var createIncentiveInputSchema = incentiveSchema.omit({
|
|
715
|
+
id: true
|
|
716
|
+
});
|
|
717
|
+
var updateIncentiveInputSchema = incentiveSchema.partial().extend({
|
|
718
|
+
id: import_zod5.z.string().uuid()
|
|
719
|
+
});
|
|
720
|
+
var incentivesResponseSchema = import_zod5.z.object({
|
|
721
|
+
incentives: import_zod5.z.array(incentiveSchema),
|
|
722
|
+
total: import_zod5.z.number().optional()
|
|
723
|
+
});
|
|
724
|
+
var uploadIncentiveIconRequestSchema = import_zod5.z.object({
|
|
725
|
+
file: import_zod5.z.object({
|
|
726
|
+
name: import_zod5.z.string(),
|
|
727
|
+
size: import_zod5.z.number().positive(),
|
|
728
|
+
type: import_zod5.z.string().refine((type) => type.startsWith("image/"), {
|
|
729
|
+
message: "File must be an image type"
|
|
730
|
+
}),
|
|
731
|
+
lastModified: import_zod5.z.number().optional()
|
|
732
|
+
}),
|
|
733
|
+
filename: import_zod5.z.string().optional(),
|
|
734
|
+
overwrite: import_zod5.z.boolean().optional()
|
|
735
|
+
});
|
|
736
|
+
var uploadIncentiveIconResponseSchema = import_zod5.z.object({
|
|
737
|
+
publicUrl: import_zod5.z.string().url()
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
// src/v2/products/schema.ts
|
|
741
|
+
var import_zod6 = require("zod");
|
|
742
|
+
var productTypeSchema = import_zod6.z.enum(["deal", "campaign"]);
|
|
743
|
+
var productStatusSchema = import_zod6.z.enum(["draft", "active", "paused", "ended"]);
|
|
744
|
+
var turtleOrganizationSchema = import_zod6.z.object({
|
|
745
|
+
id: import_zod6.z.string().uuid(),
|
|
746
|
+
name: import_zod6.z.string(),
|
|
747
|
+
iconUrl: import_zod6.z.string(),
|
|
748
|
+
landingUrl: import_zod6.z.string()
|
|
749
|
+
});
|
|
750
|
+
var productSchema = import_zod6.z.object({
|
|
751
|
+
id: import_zod6.z.string().uuid(),
|
|
752
|
+
name: import_zod6.z.string(),
|
|
753
|
+
title: import_zod6.z.string(),
|
|
754
|
+
subtitle: import_zod6.z.string(),
|
|
755
|
+
description: import_zod6.z.string(),
|
|
756
|
+
logoUrl: import_zod6.z.string(),
|
|
757
|
+
productUrl: import_zod6.z.string(),
|
|
758
|
+
startedAt: import_zod6.z.string().optional().nullable(),
|
|
759
|
+
endedAt: import_zod6.z.string().optional().nullable(),
|
|
760
|
+
status: productStatusSchema,
|
|
761
|
+
productType: productTypeSchema,
|
|
762
|
+
organization: turtleOrganizationSchema.nullable(),
|
|
763
|
+
opportunities: import_zod6.z.lazy(() => import_zod6.z.array(import_zod6.z.any())).nullish(),
|
|
764
|
+
createdAt: import_zod6.z.string()
|
|
765
|
+
});
|
|
766
|
+
var createProductInputSchema = import_zod6.z.object({
|
|
767
|
+
product: productSchema.omit({
|
|
768
|
+
id: true,
|
|
769
|
+
createdAt: true,
|
|
770
|
+
organization: true
|
|
771
|
+
}),
|
|
772
|
+
organizationId: import_zod6.z.string().uuid()
|
|
773
|
+
});
|
|
774
|
+
var updateProductInputSchema = import_zod6.z.object({
|
|
775
|
+
product: productSchema.partial().omit({
|
|
776
|
+
organization: true
|
|
777
|
+
})
|
|
778
|
+
// organizationId: z.string().uuid(),
|
|
779
|
+
});
|
|
780
|
+
var productsResponseSchema = import_zod6.z.object({
|
|
781
|
+
products: import_zod6.z.array(productSchema),
|
|
782
|
+
total: import_zod6.z.number().optional()
|
|
783
|
+
});
|
|
784
|
+
var productResponseSchema = import_zod6.z.object({
|
|
785
|
+
product: productSchema
|
|
786
|
+
});
|
|
787
|
+
var createProductResponseSchema = import_zod6.z.object({
|
|
788
|
+
id: import_zod6.z.string().uuid()
|
|
789
|
+
});
|
|
790
|
+
var updateProductResponseSchema = import_zod6.z.object({
|
|
791
|
+
success: import_zod6.z.boolean()
|
|
792
|
+
});
|
|
793
|
+
var fileSchema = import_zod6.z.any().refine((value) => {
|
|
794
|
+
if (!value) return false;
|
|
795
|
+
if (!(value instanceof File)) return false;
|
|
796
|
+
if (value.size > 10 * 1024 * 1024) return false;
|
|
797
|
+
return true;
|
|
798
|
+
}, "Invalid file");
|
|
799
|
+
var uploadProductLogoRequestSchema = import_zod6.z.object({
|
|
800
|
+
// Form data - file upload (required)
|
|
801
|
+
file: fileSchema,
|
|
802
|
+
// Form data - optional filename override
|
|
803
|
+
filename: import_zod6.z.string().optional()
|
|
804
|
+
});
|
|
805
|
+
var uploadProductLogoResponseSchema = import_zod6.z.object({
|
|
806
|
+
url: import_zod6.z.string().url(),
|
|
807
|
+
error: import_zod6.z.string().optional()
|
|
808
|
+
});
|
|
809
|
+
var productFiltersSchema = import_zod6.z.object({
|
|
810
|
+
organizationId: import_zod6.z.string().uuid().optional()
|
|
811
|
+
});
|
|
812
|
+
|
|
813
|
+
// src/v2/opportunities/schema.ts
|
|
814
|
+
var opportunityTypeEnum = import_zod7.z.enum(["vault", "lending", "staking", "stablecoin", "draft", ""]);
|
|
815
|
+
var opportunityStatusEnum = import_zod7.z.enum(["active", "paused", "deprecated", "draft", "ended"]);
|
|
816
|
+
var opportunitySchema = import_zod7.z.object({
|
|
817
|
+
id: import_zod7.z.string().uuid().optional(),
|
|
818
|
+
name: import_zod7.z.string(),
|
|
819
|
+
shortName: import_zod7.z.string(),
|
|
820
|
+
type: opportunityTypeEnum,
|
|
821
|
+
description: import_zod7.z.string().optional().default(""),
|
|
822
|
+
curator: import_zod7.z.string().optional().default(""),
|
|
823
|
+
tvl: import_zod7.z.number().min(0, "TVL must be positive"),
|
|
824
|
+
featured: import_zod7.z.boolean().optional().default(false),
|
|
825
|
+
featuredOrder: import_zod7.z.number().int().optional().nullable(),
|
|
826
|
+
originalConfig: import_zod7.z.any().optional().nullable(),
|
|
827
|
+
exposures: import_zod7.z.array(import_zod7.z.string()).optional().default([]),
|
|
828
|
+
status: opportunityStatusEnum.optional().default("active"),
|
|
829
|
+
statusReason: import_zod7.z.string().optional().default(""),
|
|
830
|
+
depositDisabled: import_zod7.z.boolean().optional().default(false),
|
|
831
|
+
depositDisabledReason: import_zod7.z.string().optional().default(""),
|
|
832
|
+
withdrawalDisabled: import_zod7.z.boolean().optional().default(false),
|
|
833
|
+
withdrawalDisabledReason: import_zod7.z.string().optional().default(""),
|
|
834
|
+
docsUrl: import_zod7.z.string().optional().nullable(),
|
|
835
|
+
auditsUrl: import_zod7.z.string().optional().nullable(),
|
|
836
|
+
turtleTvl: import_zod7.z.number(),
|
|
837
|
+
turtleUsers: import_zod7.z.number(),
|
|
838
|
+
earnEnabled: import_zod7.z.boolean(),
|
|
839
|
+
createdAt: import_zod7.z.string().datetime().optional(),
|
|
840
|
+
updatedAt: import_zod7.z.string().datetime().optional(),
|
|
841
|
+
// Relationships
|
|
842
|
+
depositTokens: import_zod7.z.array(supportedTokenSchema),
|
|
843
|
+
baseTokens: supportedTokenSchema,
|
|
844
|
+
receiptToken: supportedTokenSchema,
|
|
845
|
+
incentives: import_zod7.z.array(incentiveSchema),
|
|
846
|
+
products: import_zod7.z.array(productSchema),
|
|
847
|
+
vaultConfig: vaultConfigSchema.optional().nullable(),
|
|
848
|
+
lendingConfig: lendingConfigSchema.optional().nullable(),
|
|
849
|
+
// Will be deprecated
|
|
850
|
+
exposure: import_zod7.z.array(import_zod7.z.string()),
|
|
851
|
+
explorerUrl: import_zod7.z.string().nullable()
|
|
852
|
+
});
|
|
853
|
+
var opportunityFiltersSchema = import_zod7.z.object({
|
|
854
|
+
tokenId: import_zod7.z.string().uuid().optional(),
|
|
855
|
+
chain: import_zod7.z.string().optional(),
|
|
856
|
+
productId: import_zod7.z.string().uuid().optional()
|
|
857
|
+
});
|
|
858
|
+
var opportunitiesResponseSchema = import_zod7.z.object({
|
|
859
|
+
opportunities: import_zod7.z.array(opportunitySchema),
|
|
860
|
+
total: import_zod7.z.number().optional()
|
|
861
|
+
});
|
|
862
|
+
var getOpportunitiesPaginatedInputSchema = import_zod7.z.object({
|
|
863
|
+
page: import_zod7.z.number().min(1).default(1),
|
|
864
|
+
limit: import_zod7.z.number().min(1).max(100).default(10),
|
|
865
|
+
// Sorting
|
|
866
|
+
sortBy: import_zod7.z.enum([
|
|
867
|
+
"turtleTvl",
|
|
868
|
+
"tvl",
|
|
869
|
+
"name",
|
|
870
|
+
"turtleUsers",
|
|
871
|
+
"type",
|
|
872
|
+
"organization",
|
|
873
|
+
"curator",
|
|
874
|
+
"provider",
|
|
875
|
+
"apr"
|
|
876
|
+
]).optional(),
|
|
877
|
+
sortOrder: import_zod7.z.enum(["asc", "desc"]).optional(),
|
|
878
|
+
// Filter by receipt token chain (comma-separated)
|
|
879
|
+
receiptTokenChainId: import_zod7.z.string().optional(),
|
|
880
|
+
// Comma-separated UUIDs
|
|
881
|
+
receiptTokenChainSlug: import_zod7.z.string().optional(),
|
|
882
|
+
// Comma-separated slugs
|
|
883
|
+
// Filter by deposit token
|
|
884
|
+
depositTokenGroup: import_zod7.z.string().optional(),
|
|
885
|
+
depositTokenSymbols: import_zod7.z.string().optional(),
|
|
886
|
+
// Comma-separated symbols
|
|
887
|
+
depositTokenChainId: import_zod7.z.string().optional(),
|
|
888
|
+
// Filter by tags (comma-separated)
|
|
889
|
+
tags: import_zod7.z.string().optional(),
|
|
890
|
+
// Filter by IDs (comma-separated UUIDs)
|
|
891
|
+
productId: import_zod7.z.string().optional(),
|
|
892
|
+
// Comma-separated UUIDs
|
|
893
|
+
curatorId: import_zod7.z.string().optional(),
|
|
894
|
+
// Comma-separated UUIDs
|
|
895
|
+
providerId: import_zod7.z.string().optional(),
|
|
896
|
+
// Comma-separated UUIDs
|
|
897
|
+
partnerId: import_zod7.z.string().optional(),
|
|
898
|
+
// Comma-separated UUIDs
|
|
899
|
+
lendingProtocolId: import_zod7.z.string().optional(),
|
|
900
|
+
// Comma-separated UUIDs
|
|
901
|
+
// Status filters
|
|
902
|
+
withdrawalDisabled: import_zod7.z.boolean().optional(),
|
|
903
|
+
depositDisabled: import_zod7.z.boolean().optional(),
|
|
904
|
+
status: import_zod7.z.string().optional(),
|
|
905
|
+
earnEnabled: import_zod7.z.boolean().optional(),
|
|
906
|
+
featured: import_zod7.z.boolean().optional(),
|
|
907
|
+
// TVL filters
|
|
908
|
+
tvlGreaterThan: import_zod7.z.number().optional(),
|
|
909
|
+
turtleTvlGreaterThan: import_zod7.z.number().optional(),
|
|
910
|
+
tvlMin: import_zod7.z.number().optional(),
|
|
911
|
+
tvlMax: import_zod7.z.number().optional(),
|
|
912
|
+
// APR filters
|
|
913
|
+
minApr: import_zod7.z.number().optional(),
|
|
914
|
+
maxApr: import_zod7.z.number().optional(),
|
|
915
|
+
// Chain IDs (comma-separated)
|
|
916
|
+
chainIds: import_zod7.z.string().optional(),
|
|
917
|
+
// Search
|
|
918
|
+
search: import_zod7.z.string().optional()
|
|
919
|
+
});
|
|
920
|
+
var paginationMetadataSchema2 = import_zod7.z.object({
|
|
921
|
+
page: import_zod7.z.number(),
|
|
922
|
+
limit: import_zod7.z.number(),
|
|
923
|
+
total: import_zod7.z.number(),
|
|
924
|
+
totalPages: import_zod7.z.number()
|
|
925
|
+
});
|
|
926
|
+
var getOpportunitiesPaginatedSchema = import_zod7.z.object({
|
|
927
|
+
opportunities: import_zod7.z.array(opportunitySchema),
|
|
928
|
+
pagination: paginationMetadataSchema2
|
|
929
|
+
});
|
|
930
|
+
var filterChainSchema = import_zod7.z.object({
|
|
931
|
+
id: import_zod7.z.string().uuid(),
|
|
932
|
+
name: import_zod7.z.string(),
|
|
933
|
+
slug: import_zod7.z.string(),
|
|
934
|
+
chainId: import_zod7.z.string(),
|
|
935
|
+
logoUrl: import_zod7.z.string(),
|
|
936
|
+
ecosystem: import_zod7.z.string(),
|
|
937
|
+
status: import_zod7.z.string(),
|
|
938
|
+
explorerUrl: import_zod7.z.string()
|
|
939
|
+
});
|
|
940
|
+
var filterOrganizationSchema = import_zod7.z.object({
|
|
941
|
+
id: import_zod7.z.string().uuid(),
|
|
942
|
+
name: import_zod7.z.string(),
|
|
943
|
+
description: import_zod7.z.string(),
|
|
944
|
+
landingUrl: import_zod7.z.string(),
|
|
945
|
+
iconUrl: import_zod7.z.string(),
|
|
946
|
+
organizationType: import_zod7.z.string(),
|
|
947
|
+
turtleRefCode: import_zod7.z.string(),
|
|
948
|
+
twitterHandle: import_zod7.z.string(),
|
|
949
|
+
status: import_zod7.z.string(),
|
|
950
|
+
featured: import_zod7.z.boolean()
|
|
951
|
+
});
|
|
952
|
+
var filterTagSchema = import_zod7.z.object({
|
|
953
|
+
id: import_zod7.z.string().uuid(),
|
|
954
|
+
code: import_zod7.z.string(),
|
|
955
|
+
name: import_zod7.z.string(),
|
|
956
|
+
description: import_zod7.z.string().optional().nullable(),
|
|
957
|
+
color: import_zod7.z.string().optional().nullable(),
|
|
958
|
+
type: import_zod7.z.string().optional().nullable()
|
|
959
|
+
});
|
|
960
|
+
var depositTokenSymbolSchema = import_zod7.z.object({
|
|
961
|
+
symbol: import_zod7.z.string(),
|
|
962
|
+
logoUrl: import_zod7.z.string()
|
|
963
|
+
});
|
|
964
|
+
var getOpportunitiesFilterOptionsSchema = import_zod7.z.object({
|
|
965
|
+
chains: import_zod7.z.array(filterChainSchema),
|
|
966
|
+
providers: import_zod7.z.array(filterOrganizationSchema),
|
|
967
|
+
curators: import_zod7.z.array(filterOrganizationSchema).optional().nullable(),
|
|
968
|
+
partners: import_zod7.z.array(filterOrganizationSchema).optional().nullable(),
|
|
969
|
+
tags: import_zod7.z.array(filterTagSchema).optional().nullable(),
|
|
970
|
+
lendingProtocols: import_zod7.z.array(filterOrganizationSchema),
|
|
971
|
+
depositTokenSymbols: import_zod7.z.array(depositTokenSymbolSchema).optional().nullable()
|
|
972
|
+
});
|
|
973
|
+
|
|
974
|
+
// src/v2/opportunities/api.ts
|
|
975
|
+
async function getOpportunities(filters, options) {
|
|
976
|
+
const params = new URLSearchParams();
|
|
977
|
+
if (filters?.tokenId) params.append("tokenId", filters.tokenId);
|
|
978
|
+
if (filters?.chain) params.append("chain", filters.chain);
|
|
979
|
+
if (filters?.productId) params.append("productId", filters.productId);
|
|
980
|
+
const queryString = params.toString();
|
|
981
|
+
const endpoint = `/turtle/opportunities${queryString ? `?${queryString}` : ""}`;
|
|
982
|
+
const data = await apiClient.fetch(endpoint, {
|
|
983
|
+
method: "GET",
|
|
984
|
+
debug: options?.debug
|
|
985
|
+
});
|
|
986
|
+
const result = opportunitiesResponseSchema.safeParse(data);
|
|
987
|
+
if (result.success === false) {
|
|
988
|
+
console.log("[ZOD ERROR]", result.error);
|
|
989
|
+
throw new Error(`Failed to parse opportunities: ${result.error.message}`);
|
|
990
|
+
}
|
|
991
|
+
return result.data;
|
|
992
|
+
}
|
|
993
|
+
async function getOpportunityById(id, options) {
|
|
994
|
+
const data = await apiClient.fetch(`/turtle/opportunities/${id}`, {
|
|
995
|
+
method: "GET",
|
|
996
|
+
debug: options?.debug
|
|
997
|
+
});
|
|
998
|
+
const result = opportunitySchema.safeParse(data);
|
|
999
|
+
if (result.success === false) {
|
|
1000
|
+
console.log("[ZOD ERROR]", result.error);
|
|
1001
|
+
throw new Error(`Failed to parse opportunity: ${result.error.message}`);
|
|
1002
|
+
}
|
|
1003
|
+
return result.data;
|
|
1004
|
+
}
|
|
1005
|
+
async function getOpportunitiesPaginated(params, options) {
|
|
1006
|
+
const queryParams = new URLSearchParams();
|
|
1007
|
+
if (params) {
|
|
1008
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
1009
|
+
if (value !== void 0 && value !== null) {
|
|
1010
|
+
queryParams.append(key, String(value));
|
|
1011
|
+
}
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
const queryString = queryParams.toString();
|
|
1015
|
+
const endpoint = `/turtle/opportunities-paginated${queryString ? `?${queryString}` : ""}`;
|
|
1016
|
+
const data = await apiClient.fetch(endpoint, {
|
|
1017
|
+
method: "GET",
|
|
1018
|
+
debug: options?.debug
|
|
1019
|
+
});
|
|
1020
|
+
const result = getOpportunitiesPaginatedSchema.safeParse(data);
|
|
1021
|
+
if (result.success === false) {
|
|
1022
|
+
console.log("[ZOD ERROR]", result.error);
|
|
1023
|
+
throw new Error(`Failed to parse paginated opportunities: ${result.error.message}`);
|
|
1024
|
+
}
|
|
1025
|
+
return result.data;
|
|
1026
|
+
}
|
|
1027
|
+
async function getOpportunitiesFilterOptions(options) {
|
|
1028
|
+
const data = await apiClient.fetch("/turtle/opportunities-filter-options", {
|
|
1029
|
+
method: "GET",
|
|
1030
|
+
debug: options?.debug
|
|
1031
|
+
});
|
|
1032
|
+
const result = getOpportunitiesFilterOptionsSchema.safeParse(data);
|
|
1033
|
+
if (result.success === false) {
|
|
1034
|
+
console.log("[ZOD ERROR]", result.error);
|
|
1035
|
+
throw new Error(`Failed to parse opportunities filter options: ${result.error.message}`);
|
|
1036
|
+
}
|
|
1037
|
+
return result.data;
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
// src/v2/opportunities/queries.ts
|
|
1041
|
+
var opportunitiesQueries = (0, import_query_key_factory3.createQueryKeys)("opportunities", {
|
|
1042
|
+
// Get all opportunities (no filters)
|
|
1043
|
+
all: {
|
|
1044
|
+
queryKey: null,
|
|
1045
|
+
queryFn: () => getOpportunities()
|
|
1046
|
+
},
|
|
1047
|
+
// Get opportunities with filters
|
|
1048
|
+
list: (filters) => ({
|
|
1049
|
+
queryKey: [{ filters }],
|
|
1050
|
+
queryFn: () => getOpportunities(filters)
|
|
1051
|
+
}),
|
|
1052
|
+
// Get single opportunity by ID
|
|
1053
|
+
byId: (id) => ({
|
|
1054
|
+
queryKey: [id],
|
|
1055
|
+
queryFn: () => getOpportunityById(id)
|
|
1056
|
+
}),
|
|
1057
|
+
// Get paginated opportunities
|
|
1058
|
+
paginated: (params) => ({
|
|
1059
|
+
queryKey: [{ params }],
|
|
1060
|
+
queryFn: () => getOpportunitiesPaginated(params)
|
|
1061
|
+
}),
|
|
1062
|
+
// Get filter options for opportunities
|
|
1063
|
+
filterOptions: {
|
|
1064
|
+
queryKey: null,
|
|
700
1065
|
queryFn: () => getOpportunitiesFilterOptions()
|
|
701
1066
|
}
|
|
702
1067
|
});
|
|
703
1068
|
|
|
704
1069
|
// src/v2/earn-opportunities/queries.ts
|
|
705
|
-
var
|
|
1070
|
+
var import_query_key_factory4 = require("@lukemorales/query-key-factory");
|
|
706
1071
|
|
|
707
1072
|
// src/v2/earn-opportunities/schema.ts
|
|
708
|
-
var
|
|
709
|
-
var earnOpportunitySchema =
|
|
710
|
-
id:
|
|
711
|
-
name:
|
|
712
|
-
description:
|
|
713
|
-
type:
|
|
714
|
-
estimatedApr:
|
|
715
|
-
tvl:
|
|
716
|
-
featured:
|
|
1073
|
+
var import_zod8 = require("zod");
|
|
1074
|
+
var earnOpportunitySchema = import_zod8.z.object({
|
|
1075
|
+
id: import_zod8.z.string().uuid(),
|
|
1076
|
+
name: import_zod8.z.string(),
|
|
1077
|
+
description: import_zod8.z.string(),
|
|
1078
|
+
type: import_zod8.z.string(),
|
|
1079
|
+
estimatedApr: import_zod8.z.number(),
|
|
1080
|
+
tvl: import_zod8.z.number(),
|
|
1081
|
+
featured: import_zod8.z.boolean(),
|
|
717
1082
|
baseTokens: tokenSchema,
|
|
718
|
-
depositTokens:
|
|
1083
|
+
depositTokens: import_zod8.z.array(tokenSchema).nullable(),
|
|
719
1084
|
receiptToken: tokenSchema
|
|
720
1085
|
});
|
|
721
|
-
var earnOpportunitiesResponseSchema =
|
|
722
|
-
opportunities:
|
|
723
|
-
total:
|
|
1086
|
+
var earnOpportunitiesResponseSchema = import_zod8.z.object({
|
|
1087
|
+
opportunities: import_zod8.z.array(earnOpportunitySchema).nullable(),
|
|
1088
|
+
total: import_zod8.z.number().int()
|
|
724
1089
|
});
|
|
725
1090
|
|
|
726
1091
|
// src/v2/earn-opportunities/api.ts
|
|
@@ -739,7 +1104,7 @@ async function getEarnOpportunities(context) {
|
|
|
739
1104
|
}
|
|
740
1105
|
|
|
741
1106
|
// src/v2/earn-opportunities/queries.ts
|
|
742
|
-
var earnOpportunitiesQueries = (0,
|
|
1107
|
+
var earnOpportunitiesQueries = (0, import_query_key_factory4.createQueryKeys)("earnOpportunities", {
|
|
743
1108
|
all: {
|
|
744
1109
|
queryKey: null,
|
|
745
1110
|
queryFn: (context) => getEarnOpportunities(context)
|
|
@@ -747,86 +1112,86 @@ var earnOpportunitiesQueries = (0, import_query_key_factory2.createQueryKeys)("e
|
|
|
747
1112
|
});
|
|
748
1113
|
|
|
749
1114
|
// src/v2/earn-route/queries.ts
|
|
750
|
-
var
|
|
1115
|
+
var import_query_key_factory5 = require("@lukemorales/query-key-factory");
|
|
751
1116
|
|
|
752
1117
|
// src/v2/earn-route/schema.ts
|
|
753
1118
|
var import_utils = require("@turtleclub/utils");
|
|
754
|
-
var
|
|
755
|
-
var assetImageData =
|
|
756
|
-
kind:
|
|
757
|
-
url:
|
|
758
|
-
alt:
|
|
759
|
-
});
|
|
760
|
-
var assetERC20Data =
|
|
761
|
-
kind:
|
|
762
|
-
address:
|
|
763
|
-
name:
|
|
764
|
-
symbol:
|
|
765
|
-
decimals:
|
|
766
|
-
});
|
|
767
|
-
var assetData =
|
|
768
|
-
var asset =
|
|
769
|
-
id:
|
|
770
|
-
name:
|
|
771
|
-
slugs:
|
|
772
|
-
tags:
|
|
773
|
-
description:
|
|
774
|
-
data:
|
|
775
|
-
});
|
|
776
|
-
var routeToken =
|
|
777
|
-
address:
|
|
778
|
-
name:
|
|
779
|
-
symbol:
|
|
780
|
-
logos:
|
|
781
|
-
decimals:
|
|
782
|
-
chain:
|
|
783
|
-
price:
|
|
784
|
-
});
|
|
785
|
-
var swapSubstep =
|
|
786
|
-
kind:
|
|
787
|
-
from:
|
|
788
|
-
to:
|
|
789
|
-
protocol:
|
|
1119
|
+
var import_zod9 = require("zod");
|
|
1120
|
+
var assetImageData = import_zod9.z.object({
|
|
1121
|
+
kind: import_zod9.z.literal("image"),
|
|
1122
|
+
url: import_zod9.z.string(),
|
|
1123
|
+
alt: import_zod9.z.string()
|
|
1124
|
+
});
|
|
1125
|
+
var assetERC20Data = import_zod9.z.object({
|
|
1126
|
+
kind: import_zod9.z.literal("erc20"),
|
|
1127
|
+
address: import_zod9.z.string(),
|
|
1128
|
+
name: import_zod9.z.string(),
|
|
1129
|
+
symbol: import_zod9.z.string(),
|
|
1130
|
+
decimals: import_zod9.z.number()
|
|
1131
|
+
});
|
|
1132
|
+
var assetData = import_zod9.z.discriminatedUnion("kind", [assetImageData, assetERC20Data]);
|
|
1133
|
+
var asset = import_zod9.z.object({
|
|
1134
|
+
id: import_zod9.z.string().uuid(),
|
|
1135
|
+
name: import_zod9.z.string(),
|
|
1136
|
+
slugs: import_zod9.z.array(import_zod9.z.string()),
|
|
1137
|
+
tags: import_zod9.z.array(import_zod9.z.string()),
|
|
1138
|
+
description: import_zod9.z.string().nullable(),
|
|
1139
|
+
data: import_zod9.z.array(assetData)
|
|
1140
|
+
});
|
|
1141
|
+
var routeToken = import_zod9.z.object({
|
|
1142
|
+
address: import_zod9.z.string(),
|
|
1143
|
+
name: import_zod9.z.string(),
|
|
1144
|
+
symbol: import_zod9.z.string(),
|
|
1145
|
+
logos: import_zod9.z.array(import_zod9.z.string()),
|
|
1146
|
+
decimals: import_zod9.z.number(),
|
|
1147
|
+
chain: import_zod9.z.number(),
|
|
1148
|
+
price: import_zod9.z.number().nullable().optional()
|
|
1149
|
+
});
|
|
1150
|
+
var swapSubstep = import_zod9.z.object({
|
|
1151
|
+
kind: import_zod9.z.literal("swap"),
|
|
1152
|
+
from: import_zod9.z.array(routeToken),
|
|
1153
|
+
to: import_zod9.z.array(routeToken),
|
|
1154
|
+
protocol: import_zod9.z.string(),
|
|
790
1155
|
protocol_asset: asset.nullable(),
|
|
791
|
-
price_impact:
|
|
792
|
-
});
|
|
793
|
-
var depositSubstep =
|
|
794
|
-
kind:
|
|
795
|
-
vault:
|
|
796
|
-
from:
|
|
797
|
-
to:
|
|
798
|
-
amount:
|
|
799
|
-
protocol:
|
|
1156
|
+
price_impact: import_zod9.z.number().nullable()
|
|
1157
|
+
});
|
|
1158
|
+
var depositSubstep = import_zod9.z.object({
|
|
1159
|
+
kind: import_zod9.z.literal("deposit"),
|
|
1160
|
+
vault: import_zod9.z.string(),
|
|
1161
|
+
from: import_zod9.z.array(routeToken),
|
|
1162
|
+
to: import_zod9.z.array(routeToken),
|
|
1163
|
+
amount: import_zod9.z.string(),
|
|
1164
|
+
protocol: import_zod9.z.string(),
|
|
800
1165
|
protocol_asset: asset.nullable(),
|
|
801
|
-
price_impact:
|
|
1166
|
+
price_impact: import_zod9.z.number().nullable()
|
|
802
1167
|
});
|
|
803
|
-
var routerSubstep =
|
|
804
|
-
var stepTx =
|
|
1168
|
+
var routerSubstep = import_zod9.z.discriminatedUnion("kind", [swapSubstep, depositSubstep]);
|
|
1169
|
+
var stepTx = import_zod9.z.object({
|
|
805
1170
|
from: import_utils.ethz.address(),
|
|
806
1171
|
to: import_utils.ethz.address(),
|
|
807
1172
|
data: import_utils.ethz.hex(),
|
|
808
|
-
value:
|
|
809
|
-
gas:
|
|
1173
|
+
value: import_zod9.z.string(),
|
|
1174
|
+
gas: import_zod9.z.number()
|
|
810
1175
|
});
|
|
811
|
-
var approveStep =
|
|
812
|
-
kind:
|
|
813
|
-
owner:
|
|
814
|
-
spender:
|
|
1176
|
+
var approveStep = import_zod9.z.object({
|
|
1177
|
+
kind: import_zod9.z.literal("approve"),
|
|
1178
|
+
owner: import_zod9.z.string(),
|
|
1179
|
+
spender: import_zod9.z.string(),
|
|
815
1180
|
token: routeToken,
|
|
816
|
-
amount:
|
|
1181
|
+
amount: import_zod9.z.string(),
|
|
817
1182
|
tx: stepTx
|
|
818
1183
|
});
|
|
819
|
-
var ensoStep =
|
|
820
|
-
kind:
|
|
821
|
-
substeps:
|
|
1184
|
+
var ensoStep = import_zod9.z.object({
|
|
1185
|
+
kind: import_zod9.z.literal("enso"),
|
|
1186
|
+
substeps: import_zod9.z.array(routerSubstep),
|
|
822
1187
|
tx: stepTx,
|
|
823
1188
|
asset: asset.nullable()
|
|
824
1189
|
});
|
|
825
|
-
var routerStep =
|
|
826
|
-
var earnRouteResponseSchema =
|
|
827
|
-
steps:
|
|
828
|
-
amount_out:
|
|
829
|
-
price_impact:
|
|
1190
|
+
var routerStep = import_zod9.z.discriminatedUnion("kind", [approveStep, ensoStep]);
|
|
1191
|
+
var earnRouteResponseSchema = import_zod9.z.object({
|
|
1192
|
+
steps: import_zod9.z.array(routerStep),
|
|
1193
|
+
amount_out: import_zod9.z.string(),
|
|
1194
|
+
price_impact: import_zod9.z.number().nullable()
|
|
830
1195
|
});
|
|
831
1196
|
|
|
832
1197
|
// src/v2/earn-route/api.ts
|
|
@@ -857,7 +1222,7 @@ async function getEarnRoute(params, context) {
|
|
|
857
1222
|
}
|
|
858
1223
|
|
|
859
1224
|
// src/v2/earn-route/queries.ts
|
|
860
|
-
var earnRouteQueries = (0,
|
|
1225
|
+
var earnRouteQueries = (0, import_query_key_factory5.createQueryKeys)("earnRoute", {
|
|
861
1226
|
// Get earn route with specific parameters
|
|
862
1227
|
byParams: (params) => ({
|
|
863
1228
|
queryKey: [params],
|
|
@@ -866,33 +1231,33 @@ var earnRouteQueries = (0, import_query_key_factory3.createQueryKeys)("earnRoute
|
|
|
866
1231
|
});
|
|
867
1232
|
|
|
868
1233
|
// src/v2/earn-membership/queries.ts
|
|
869
|
-
var
|
|
1234
|
+
var import_query_key_factory6 = require("@lukemorales/query-key-factory");
|
|
870
1235
|
|
|
871
1236
|
// src/v2/earn-membership/schema.ts
|
|
872
|
-
var
|
|
873
|
-
var walletEcosystemEnum =
|
|
874
|
-
var checkMembershipResponseSchema =
|
|
875
|
-
isMember:
|
|
1237
|
+
var import_zod10 = require("zod");
|
|
1238
|
+
var walletEcosystemEnum = import_zod10.z.enum(["evm", "solana", "ton"]);
|
|
1239
|
+
var checkMembershipResponseSchema = import_zod10.z.object({
|
|
1240
|
+
isMember: import_zod10.z.boolean()
|
|
876
1241
|
});
|
|
877
|
-
var createAgreementRequestSchema =
|
|
878
|
-
address:
|
|
1242
|
+
var createAgreementRequestSchema = import_zod10.z.object({
|
|
1243
|
+
address: import_zod10.z.string(),
|
|
879
1244
|
walletEcosystem: walletEcosystemEnum,
|
|
880
|
-
url:
|
|
881
|
-
chainId:
|
|
1245
|
+
url: import_zod10.z.string(),
|
|
1246
|
+
chainId: import_zod10.z.string().default("1")
|
|
882
1247
|
});
|
|
883
|
-
var createAgreementResponseSchema =
|
|
884
|
-
message:
|
|
885
|
-
nonce:
|
|
1248
|
+
var createAgreementResponseSchema = import_zod10.z.object({
|
|
1249
|
+
message: import_zod10.z.string(),
|
|
1250
|
+
nonce: import_zod10.z.string()
|
|
886
1251
|
});
|
|
887
|
-
var createMembershipRequestSchema =
|
|
888
|
-
address:
|
|
889
|
-
walletEcosystem:
|
|
890
|
-
signature:
|
|
891
|
-
nonce:
|
|
1252
|
+
var createMembershipRequestSchema = import_zod10.z.object({
|
|
1253
|
+
address: import_zod10.z.string(),
|
|
1254
|
+
walletEcosystem: import_zod10.z.string(),
|
|
1255
|
+
signature: import_zod10.z.string(),
|
|
1256
|
+
nonce: import_zod10.z.string()
|
|
892
1257
|
});
|
|
893
|
-
var createMembershipResponseSchema =
|
|
894
|
-
isMember:
|
|
895
|
-
error:
|
|
1258
|
+
var createMembershipResponseSchema = import_zod10.z.object({
|
|
1259
|
+
isMember: import_zod10.z.boolean(),
|
|
1260
|
+
error: import_zod10.z.string().optional()
|
|
896
1261
|
});
|
|
897
1262
|
|
|
898
1263
|
// src/v2/earn-membership/api.ts
|
|
@@ -941,7 +1306,7 @@ async function createMembership(request) {
|
|
|
941
1306
|
}
|
|
942
1307
|
|
|
943
1308
|
// src/v2/earn-membership/queries.ts
|
|
944
|
-
var earnMembershipQueries = (0,
|
|
1309
|
+
var earnMembershipQueries = (0, import_query_key_factory6.createQueryKeys)("earnMembership", {
|
|
945
1310
|
// Check membership status
|
|
946
1311
|
check: (params) => ({
|
|
947
1312
|
queryKey: [params],
|
|
@@ -950,26 +1315,26 @@ var earnMembershipQueries = (0, import_query_key_factory4.createQueryKeys)("earn
|
|
|
950
1315
|
});
|
|
951
1316
|
|
|
952
1317
|
// src/v2/earn-deposits/queries.ts
|
|
953
|
-
var
|
|
1318
|
+
var import_query_key_factory7 = require("@lukemorales/query-key-factory");
|
|
954
1319
|
|
|
955
1320
|
// src/v2/earn-deposits/schema.ts
|
|
956
|
-
var
|
|
957
|
-
var depositSchema =
|
|
958
|
-
chain:
|
|
959
|
-
deposited_amount_usd:
|
|
960
|
-
deposited_token_address:
|
|
961
|
-
deposited_token_decimals:
|
|
962
|
-
deposited_token_logo:
|
|
963
|
-
deposited_token_name:
|
|
964
|
-
deposited_token_symbol:
|
|
965
|
-
deposited_value:
|
|
966
|
-
depositor:
|
|
967
|
-
target:
|
|
968
|
-
timestamp:
|
|
969
|
-
tx_hash:
|
|
970
|
-
});
|
|
971
|
-
var depositsResponseSchema =
|
|
972
|
-
deposits:
|
|
1321
|
+
var import_zod11 = require("zod");
|
|
1322
|
+
var depositSchema = import_zod11.z.object({
|
|
1323
|
+
chain: import_zod11.z.number().int(),
|
|
1324
|
+
deposited_amount_usd: import_zod11.z.string(),
|
|
1325
|
+
deposited_token_address: import_zod11.z.string(),
|
|
1326
|
+
deposited_token_decimals: import_zod11.z.number().int(),
|
|
1327
|
+
deposited_token_logo: import_zod11.z.string(),
|
|
1328
|
+
deposited_token_name: import_zod11.z.string(),
|
|
1329
|
+
deposited_token_symbol: import_zod11.z.string(),
|
|
1330
|
+
deposited_value: import_zod11.z.string(),
|
|
1331
|
+
depositor: import_zod11.z.string(),
|
|
1332
|
+
target: import_zod11.z.string(),
|
|
1333
|
+
timestamp: import_zod11.z.string(),
|
|
1334
|
+
tx_hash: import_zod11.z.string()
|
|
1335
|
+
});
|
|
1336
|
+
var depositsResponseSchema = import_zod11.z.object({
|
|
1337
|
+
deposits: import_zod11.z.array(depositSchema).nullable()
|
|
973
1338
|
});
|
|
974
1339
|
|
|
975
1340
|
// src/v2/earn-deposits/api.ts
|
|
@@ -996,7 +1361,7 @@ async function getDeposits(params, context) {
|
|
|
996
1361
|
}
|
|
997
1362
|
|
|
998
1363
|
// src/v2/earn-deposits/queries.ts
|
|
999
|
-
var earnDepositsQueries = (0,
|
|
1364
|
+
var earnDepositsQueries = (0, import_query_key_factory7.createQueryKeys)("earnDeposits", {
|
|
1000
1365
|
byParams: (params) => ({
|
|
1001
1366
|
queryKey: [params],
|
|
1002
1367
|
queryFn: (context) => getDeposits(params, context)
|
|
@@ -1004,88 +1369,15 @@ var earnDepositsQueries = (0, import_query_key_factory5.createQueryKeys)("earnDe
|
|
|
1004
1369
|
});
|
|
1005
1370
|
|
|
1006
1371
|
// src/v2/earn-actions/queries.ts
|
|
1007
|
-
var
|
|
1008
|
-
var earnActionsQueries = (0,
|
|
1372
|
+
var import_query_key_factory8 = require("@lukemorales/query-key-factory");
|
|
1373
|
+
var earnActionsQueries = (0, import_query_key_factory8.createQueryKeys)("earnActions", {
|
|
1009
1374
|
// Placeholder for potential future GET endpoints
|
|
1010
1375
|
// e.g., getting action history
|
|
1011
1376
|
});
|
|
1012
1377
|
var earnInteractionsQueries = earnActionsQueries;
|
|
1013
1378
|
|
|
1014
1379
|
// src/v2/products/queries.ts
|
|
1015
|
-
var
|
|
1016
|
-
|
|
1017
|
-
// src/v2/products/schema.ts
|
|
1018
|
-
var import_zod7 = require("zod");
|
|
1019
|
-
var ProductTypeSchema = import_zod7.z.enum(["deal", "campaign"]);
|
|
1020
|
-
var ProductStatusSchema = import_zod7.z.enum(["draft", "active", "paused", "ended"]);
|
|
1021
|
-
var TurtleOrganizationSchema = import_zod7.z.object({
|
|
1022
|
-
id: import_zod7.z.string().uuid(),
|
|
1023
|
-
name: import_zod7.z.string(),
|
|
1024
|
-
iconUrl: import_zod7.z.string(),
|
|
1025
|
-
landingUrl: import_zod7.z.string()
|
|
1026
|
-
});
|
|
1027
|
-
var ProductSchema = import_zod7.z.object({
|
|
1028
|
-
id: import_zod7.z.string().uuid(),
|
|
1029
|
-
name: import_zod7.z.string(),
|
|
1030
|
-
title: import_zod7.z.string(),
|
|
1031
|
-
subtitle: import_zod7.z.string(),
|
|
1032
|
-
description: import_zod7.z.string(),
|
|
1033
|
-
logoUrl: import_zod7.z.string(),
|
|
1034
|
-
productUrl: import_zod7.z.string(),
|
|
1035
|
-
startedAt: import_zod7.z.string().optional().nullable(),
|
|
1036
|
-
endedAt: import_zod7.z.string().optional().nullable(),
|
|
1037
|
-
status: ProductStatusSchema,
|
|
1038
|
-
productType: ProductTypeSchema,
|
|
1039
|
-
organization: TurtleOrganizationSchema.nullable(),
|
|
1040
|
-
opportunities: import_zod7.z.array(opportunitySchema).nullish(),
|
|
1041
|
-
createdAt: import_zod7.z.string()
|
|
1042
|
-
});
|
|
1043
|
-
var CreateProductInputSchema = import_zod7.z.object({
|
|
1044
|
-
product: ProductSchema.omit({
|
|
1045
|
-
id: true,
|
|
1046
|
-
createdAt: true,
|
|
1047
|
-
organization: true
|
|
1048
|
-
}),
|
|
1049
|
-
organizationId: import_zod7.z.string().uuid()
|
|
1050
|
-
});
|
|
1051
|
-
var UpdateProductInputSchema = import_zod7.z.object({
|
|
1052
|
-
product: ProductSchema.partial().omit({
|
|
1053
|
-
organization: true
|
|
1054
|
-
})
|
|
1055
|
-
// organizationId: z.string().uuid(),
|
|
1056
|
-
});
|
|
1057
|
-
var ProductsResponseSchema = import_zod7.z.object({
|
|
1058
|
-
products: import_zod7.z.array(ProductSchema),
|
|
1059
|
-
total: import_zod7.z.number().optional()
|
|
1060
|
-
});
|
|
1061
|
-
var ProductResponseSchema = import_zod7.z.object({
|
|
1062
|
-
product: ProductSchema
|
|
1063
|
-
});
|
|
1064
|
-
var CreateProductResponseSchema = import_zod7.z.object({
|
|
1065
|
-
id: import_zod7.z.string().uuid()
|
|
1066
|
-
});
|
|
1067
|
-
var UpdateProductResponseSchema = import_zod7.z.object({
|
|
1068
|
-
success: import_zod7.z.boolean()
|
|
1069
|
-
});
|
|
1070
|
-
var fileSchema = import_zod7.z.any().refine((value) => {
|
|
1071
|
-
if (!value) return false;
|
|
1072
|
-
if (!(value instanceof File)) return false;
|
|
1073
|
-
if (value.size > 10 * 1024 * 1024) return false;
|
|
1074
|
-
return true;
|
|
1075
|
-
}, "Invalid file");
|
|
1076
|
-
var UploadProductLogoRequestSchema = import_zod7.z.object({
|
|
1077
|
-
// Form data - file upload (required)
|
|
1078
|
-
file: fileSchema,
|
|
1079
|
-
// Form data - optional filename override
|
|
1080
|
-
filename: import_zod7.z.string().optional()
|
|
1081
|
-
});
|
|
1082
|
-
var UploadProductLogoResponseSchema = import_zod7.z.object({
|
|
1083
|
-
url: import_zod7.z.string().url(),
|
|
1084
|
-
error: import_zod7.z.string().optional()
|
|
1085
|
-
});
|
|
1086
|
-
var ProductFiltersSchema = import_zod7.z.object({
|
|
1087
|
-
organizationId: import_zod7.z.string().uuid().optional()
|
|
1088
|
-
});
|
|
1380
|
+
var import_query_key_factory9 = require("@lukemorales/query-key-factory");
|
|
1089
1381
|
|
|
1090
1382
|
// src/v2/products/api.ts
|
|
1091
1383
|
async function getProducts(filters) {
|
|
@@ -1096,7 +1388,7 @@ async function getProducts(filters) {
|
|
|
1096
1388
|
const data = await apiClient.fetch(endpoint, {
|
|
1097
1389
|
method: "GET"
|
|
1098
1390
|
});
|
|
1099
|
-
const result =
|
|
1391
|
+
const result = productsResponseSchema.safeParse(data);
|
|
1100
1392
|
if (result.success === false) {
|
|
1101
1393
|
console.log("[ZOD ERROR]", result.error);
|
|
1102
1394
|
throw new Error(`Failed to parse products: ${result.error.message}`);
|
|
@@ -1108,7 +1400,7 @@ async function getProduct(id) {
|
|
|
1108
1400
|
const data = await apiClient.fetch(endpoint, {
|
|
1109
1401
|
method: "GET"
|
|
1110
1402
|
});
|
|
1111
|
-
const result =
|
|
1403
|
+
const result = productResponseSchema.safeParse(data);
|
|
1112
1404
|
if (result.success === false) {
|
|
1113
1405
|
console.log("[ZOD ERROR]", result.error);
|
|
1114
1406
|
throw new Error(`Failed to parse product: ${result.error.message}`);
|
|
@@ -1121,7 +1413,7 @@ async function createProduct(input) {
|
|
|
1121
1413
|
method: "POST",
|
|
1122
1414
|
body: input
|
|
1123
1415
|
});
|
|
1124
|
-
const result =
|
|
1416
|
+
const result = createProductResponseSchema.safeParse(data);
|
|
1125
1417
|
if (result.success === false) {
|
|
1126
1418
|
console.log("[ZOD ERROR]", result.error);
|
|
1127
1419
|
throw new Error(`Failed to create product: ${result.error.message}`);
|
|
@@ -1134,7 +1426,7 @@ async function updateProduct(input) {
|
|
|
1134
1426
|
method: "PUT",
|
|
1135
1427
|
body: input
|
|
1136
1428
|
});
|
|
1137
|
-
const result =
|
|
1429
|
+
const result = updateProductResponseSchema.safeParse(data);
|
|
1138
1430
|
if (result.success === false) {
|
|
1139
1431
|
console.log("[ZOD ERROR]", result.error);
|
|
1140
1432
|
throw new Error(`Failed to update product: ${result.error.message}`);
|
|
@@ -1146,7 +1438,7 @@ async function deleteProduct(id) {
|
|
|
1146
1438
|
const data = await apiClient.fetch(endpoint, {
|
|
1147
1439
|
method: "DELETE"
|
|
1148
1440
|
});
|
|
1149
|
-
const result =
|
|
1441
|
+
const result = productResponseSchema.safeParse(data);
|
|
1150
1442
|
if (result.success === false) {
|
|
1151
1443
|
console.log("[ZOD ERROR]", result.error);
|
|
1152
1444
|
throw new Error(`Failed to delete product: ${result.error.message}`);
|
|
@@ -1163,7 +1455,7 @@ async function uploadProductLogo({
|
|
|
1163
1455
|
method: "POST",
|
|
1164
1456
|
body: formData
|
|
1165
1457
|
});
|
|
1166
|
-
const result =
|
|
1458
|
+
const result = uploadProductLogoResponseSchema.safeParse(data);
|
|
1167
1459
|
if (result.success === false) {
|
|
1168
1460
|
console.log("[ZOD ERROR]", result.error);
|
|
1169
1461
|
throw new Error(`Failed to upload product logo: ${result.error.message}`);
|
|
@@ -1172,7 +1464,7 @@ async function uploadProductLogo({
|
|
|
1172
1464
|
}
|
|
1173
1465
|
|
|
1174
1466
|
// src/v2/products/queries.ts
|
|
1175
|
-
var productsQueries = (0,
|
|
1467
|
+
var productsQueries = (0, import_query_key_factory9.createQueryKeys)("products", {
|
|
1176
1468
|
// Get all products (no filters)
|
|
1177
1469
|
all: () => ({
|
|
1178
1470
|
queryKey: ["all"],
|
|
@@ -1189,25 +1481,25 @@ var productsQueries = (0, import_query_key_factory7.createQueryKeys)("products",
|
|
|
1189
1481
|
});
|
|
1190
1482
|
|
|
1191
1483
|
// src/v2/enso-balances/queries.ts
|
|
1192
|
-
var
|
|
1484
|
+
var import_query_key_factory10 = require("@lukemorales/query-key-factory");
|
|
1193
1485
|
|
|
1194
1486
|
// src/v2/enso-balances/schemas.ts
|
|
1195
|
-
var
|
|
1196
|
-
var balanceTokenSchema =
|
|
1197
|
-
address:
|
|
1198
|
-
name:
|
|
1199
|
-
symbol:
|
|
1200
|
-
logos:
|
|
1201
|
-
decimals:
|
|
1202
|
-
chain:
|
|
1203
|
-
price:
|
|
1204
|
-
});
|
|
1205
|
-
var walletBalanceSchema =
|
|
1487
|
+
var import_zod12 = require("zod");
|
|
1488
|
+
var balanceTokenSchema = import_zod12.z.object({
|
|
1489
|
+
address: import_zod12.z.string(),
|
|
1490
|
+
name: import_zod12.z.string(),
|
|
1491
|
+
symbol: import_zod12.z.string(),
|
|
1492
|
+
logos: import_zod12.z.array(import_zod12.z.string()),
|
|
1493
|
+
decimals: import_zod12.z.number(),
|
|
1494
|
+
chain: import_zod12.z.number(),
|
|
1495
|
+
price: import_zod12.z.number().nullable().optional()
|
|
1496
|
+
});
|
|
1497
|
+
var walletBalanceSchema = import_zod12.z.object({
|
|
1206
1498
|
token: balanceTokenSchema,
|
|
1207
|
-
amount:
|
|
1499
|
+
amount: import_zod12.z.string()
|
|
1208
1500
|
});
|
|
1209
|
-
var walletBalancesResponseSchema =
|
|
1210
|
-
balances:
|
|
1501
|
+
var walletBalancesResponseSchema = import_zod12.z.object({
|
|
1502
|
+
balances: import_zod12.z.array(walletBalanceSchema)
|
|
1211
1503
|
});
|
|
1212
1504
|
|
|
1213
1505
|
// src/v2/enso-balances/api.ts
|
|
@@ -1232,7 +1524,7 @@ async function getWalletBalances(params, context) {
|
|
|
1232
1524
|
}
|
|
1233
1525
|
|
|
1234
1526
|
// src/v2/enso-balances/queries.ts
|
|
1235
|
-
var ensoBalancesQueries = (0,
|
|
1527
|
+
var ensoBalancesQueries = (0, import_query_key_factory10.createQueryKeys)("ensoBalances", {
|
|
1236
1528
|
byParams: (params) => ({
|
|
1237
1529
|
queryKey: [params],
|
|
1238
1530
|
queryFn: (context) => getWalletBalances(params, context)
|
|
@@ -1240,13 +1532,65 @@ var ensoBalancesQueries = (0, import_query_key_factory8.createQueryKeys)("ensoBa
|
|
|
1240
1532
|
});
|
|
1241
1533
|
|
|
1242
1534
|
// src/v2/widget/queries.ts
|
|
1243
|
-
var
|
|
1535
|
+
var import_query_key_factory11 = require("@lukemorales/query-key-factory");
|
|
1244
1536
|
|
|
1245
1537
|
// src/v2/widget/schema.ts
|
|
1246
|
-
var
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1538
|
+
var import_zod13 = require("zod");
|
|
1539
|
+
|
|
1540
|
+
// src/v2/opportunities/hooks.ts
|
|
1541
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
1542
|
+
function useOpportunities(options) {
|
|
1543
|
+
return (0, import_react_query4.useQuery)({
|
|
1544
|
+
...opportunitiesQueries.all,
|
|
1545
|
+
...queryDefaults,
|
|
1546
|
+
select: (data) => {
|
|
1547
|
+
const uniqueChainsMap = new Map(
|
|
1548
|
+
data.opportunities.map((opportunity) => opportunity.receiptToken?.chain).filter((chain) => chain !== void 0).map((chain) => [chain.id, chain])
|
|
1549
|
+
);
|
|
1550
|
+
const chains = Array.from(uniqueChainsMap.values());
|
|
1551
|
+
return {
|
|
1552
|
+
...data,
|
|
1553
|
+
chains
|
|
1554
|
+
};
|
|
1555
|
+
}
|
|
1556
|
+
});
|
|
1557
|
+
}
|
|
1558
|
+
function useOpportunity({ id, ...options }) {
|
|
1559
|
+
return (0, import_react_query4.useQuery)({
|
|
1560
|
+
...opportunitiesQueries.byId(id),
|
|
1561
|
+
...queryDefaults,
|
|
1562
|
+
select: (data) => {
|
|
1563
|
+
return {
|
|
1564
|
+
...data,
|
|
1565
|
+
chain: data.receiptToken?.chain
|
|
1566
|
+
};
|
|
1567
|
+
}
|
|
1568
|
+
});
|
|
1569
|
+
}
|
|
1570
|
+
function useOpportunitiesPaginated({
|
|
1571
|
+
params,
|
|
1572
|
+
enabled = true
|
|
1573
|
+
} = {}) {
|
|
1574
|
+
return (0, import_react_query4.useQuery)({
|
|
1575
|
+
...opportunitiesQueries.paginated(params),
|
|
1576
|
+
...queryDefaults,
|
|
1577
|
+
enabled
|
|
1578
|
+
});
|
|
1579
|
+
}
|
|
1580
|
+
function useOpportunitiesFilterOptions({
|
|
1581
|
+
enabled = true
|
|
1582
|
+
} = {}) {
|
|
1583
|
+
return (0, import_react_query4.useQuery)({
|
|
1584
|
+
...opportunitiesQueries.filterOptions,
|
|
1585
|
+
...queryDefaults,
|
|
1586
|
+
enabled
|
|
1587
|
+
});
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
// src/v2/widget/schema.ts
|
|
1591
|
+
var widgetOpportunitiesResponseSchema = import_zod13.z.object({
|
|
1592
|
+
opportunities: import_zod13.z.array(opportunitySchema).nullable(),
|
|
1593
|
+
total: import_zod13.z.number().int()
|
|
1250
1594
|
});
|
|
1251
1595
|
|
|
1252
1596
|
// src/v2/widget/api.ts
|
|
@@ -1264,7 +1608,7 @@ async function getWidgetOpportunities(distributorId, context) {
|
|
|
1264
1608
|
}
|
|
1265
1609
|
|
|
1266
1610
|
// src/v2/widget/queries.ts
|
|
1267
|
-
var widgetQueries = (0,
|
|
1611
|
+
var widgetQueries = (0, import_query_key_factory11.createQueryKeys)("widget", {
|
|
1268
1612
|
opportunities: (distributorId) => ({
|
|
1269
1613
|
queryKey: [distributorId],
|
|
1270
1614
|
queryFn: (context) => getWidgetOpportunities(distributorId, context)
|
|
@@ -1272,245 +1616,245 @@ var widgetQueries = (0, import_query_key_factory9.createQueryKeys)("widget", {
|
|
|
1272
1616
|
});
|
|
1273
1617
|
|
|
1274
1618
|
// src/v2/streams/queries.ts
|
|
1275
|
-
var
|
|
1619
|
+
var import_query_key_factory12 = require("@lukemorales/query-key-factory");
|
|
1276
1620
|
|
|
1277
1621
|
// src/v2/streams/schemas.ts
|
|
1278
|
-
var
|
|
1279
|
-
var snapshotSchema =
|
|
1280
|
-
amountBase:
|
|
1281
|
-
amountDistributed:
|
|
1282
|
-
createdAt:
|
|
1283
|
-
rootHash:
|
|
1284
|
-
timestamp:
|
|
1285
|
-
updatedAt:
|
|
1286
|
-
userCount:
|
|
1287
|
-
tvl:
|
|
1288
|
-
baseTvl:
|
|
1289
|
-
});
|
|
1290
|
-
var streamPointSchema =
|
|
1291
|
-
id:
|
|
1292
|
-
orgId:
|
|
1293
|
-
symbol:
|
|
1294
|
-
name:
|
|
1295
|
-
decimals:
|
|
1296
|
-
logoUrl:
|
|
1297
|
-
createdAt:
|
|
1298
|
-
updatedAt:
|
|
1299
|
-
deletedAt:
|
|
1622
|
+
var import_zod14 = require("zod");
|
|
1623
|
+
var snapshotSchema = import_zod14.z.object({
|
|
1624
|
+
amountBase: import_zod14.z.string(),
|
|
1625
|
+
amountDistributed: import_zod14.z.string(),
|
|
1626
|
+
createdAt: import_zod14.z.string().datetime(),
|
|
1627
|
+
rootHash: import_zod14.z.string().nullable(),
|
|
1628
|
+
timestamp: import_zod14.z.string().datetime(),
|
|
1629
|
+
updatedAt: import_zod14.z.string().datetime(),
|
|
1630
|
+
userCount: import_zod14.z.number().nullable().optional(),
|
|
1631
|
+
tvl: import_zod14.z.string().nullable().optional(),
|
|
1632
|
+
baseTvl: import_zod14.z.string().nullable().optional()
|
|
1633
|
+
});
|
|
1634
|
+
var streamPointSchema = import_zod14.z.object({
|
|
1635
|
+
id: import_zod14.z.string(),
|
|
1636
|
+
orgId: import_zod14.z.string().optional(),
|
|
1637
|
+
symbol: import_zod14.z.string(),
|
|
1638
|
+
name: import_zod14.z.string(),
|
|
1639
|
+
decimals: import_zod14.z.coerce.number().optional(),
|
|
1640
|
+
logoUrl: import_zod14.z.string().url().nullable().optional(),
|
|
1641
|
+
createdAt: import_zod14.z.string().optional(),
|
|
1642
|
+
updatedAt: import_zod14.z.string().optional(),
|
|
1643
|
+
deletedAt: import_zod14.z.string().nullable().optional(),
|
|
1300
1644
|
organization: organizationSchema.nullable().optional()
|
|
1301
1645
|
});
|
|
1302
|
-
var customArgsTokensPerUsdSchema =
|
|
1303
|
-
tokensPerUSD:
|
|
1304
|
-
targetChainId:
|
|
1305
|
-
targetTokenAddress:
|
|
1306
|
-
});
|
|
1307
|
-
var customArgsAprSchema =
|
|
1308
|
-
apr:
|
|
1309
|
-
targetChainId:
|
|
1310
|
-
targetTokenAddress:
|
|
1311
|
-
});
|
|
1312
|
-
var
|
|
1313
|
-
chainId:
|
|
1314
|
-
ecosystem:
|
|
1315
|
-
explorerUrl:
|
|
1316
|
-
id:
|
|
1317
|
-
isTestnet:
|
|
1318
|
-
logoUrl:
|
|
1319
|
-
name:
|
|
1320
|
-
slug:
|
|
1321
|
-
status:
|
|
1322
|
-
});
|
|
1323
|
-
var rewardTokenSchema =
|
|
1324
|
-
active:
|
|
1325
|
-
address:
|
|
1326
|
-
canonicalAssetId:
|
|
1327
|
-
chain:
|
|
1328
|
-
decimals:
|
|
1329
|
-
id:
|
|
1330
|
-
isNative:
|
|
1331
|
-
logoUrl:
|
|
1332
|
-
name:
|
|
1333
|
-
priceUsd:
|
|
1334
|
-
symbol:
|
|
1335
|
-
streamsMinAmount:
|
|
1646
|
+
var customArgsTokensPerUsdSchema = import_zod14.z.object({
|
|
1647
|
+
tokensPerUSD: import_zod14.z.string(),
|
|
1648
|
+
targetChainId: import_zod14.z.number(),
|
|
1649
|
+
targetTokenAddress: import_zod14.z.string()
|
|
1650
|
+
});
|
|
1651
|
+
var customArgsAprSchema = import_zod14.z.object({
|
|
1652
|
+
apr: import_zod14.z.string(),
|
|
1653
|
+
targetChainId: import_zod14.z.number(),
|
|
1654
|
+
targetTokenAddress: import_zod14.z.string()
|
|
1655
|
+
});
|
|
1656
|
+
var chainSchema2 = import_zod14.z.object({
|
|
1657
|
+
chainId: import_zod14.z.coerce.number(),
|
|
1658
|
+
ecosystem: import_zod14.z.string(),
|
|
1659
|
+
explorerUrl: import_zod14.z.string(),
|
|
1660
|
+
id: import_zod14.z.string().uuid(),
|
|
1661
|
+
isTestnet: import_zod14.z.boolean(),
|
|
1662
|
+
logoUrl: import_zod14.z.string(),
|
|
1663
|
+
name: import_zod14.z.string(),
|
|
1664
|
+
slug: import_zod14.z.string(),
|
|
1665
|
+
status: import_zod14.z.string()
|
|
1666
|
+
});
|
|
1667
|
+
var rewardTokenSchema = import_zod14.z.object({
|
|
1668
|
+
active: import_zod14.z.boolean(),
|
|
1669
|
+
address: import_zod14.z.string(),
|
|
1670
|
+
canonicalAssetId: import_zod14.z.string().uuid(),
|
|
1671
|
+
chain: chainSchema2,
|
|
1672
|
+
decimals: import_zod14.z.number(),
|
|
1673
|
+
id: import_zod14.z.string().uuid(),
|
|
1674
|
+
isNative: import_zod14.z.boolean(),
|
|
1675
|
+
logoUrl: import_zod14.z.string(),
|
|
1676
|
+
name: import_zod14.z.string(),
|
|
1677
|
+
priceUsd: import_zod14.z.number(),
|
|
1678
|
+
symbol: import_zod14.z.string(),
|
|
1679
|
+
streamsMinAmount: import_zod14.z.string().nullable().optional()
|
|
1336
1680
|
}).nullable();
|
|
1337
|
-
var adaptersSchema =
|
|
1338
|
-
|
|
1339
|
-
type:
|
|
1340
|
-
params:
|
|
1681
|
+
var adaptersSchema = import_zod14.z.array(
|
|
1682
|
+
import_zod14.z.object({
|
|
1683
|
+
type: import_zod14.z.string(),
|
|
1684
|
+
params: import_zod14.z.record(import_zod14.z.string(), import_zod14.z.number())
|
|
1341
1685
|
})
|
|
1342
1686
|
);
|
|
1343
|
-
var feeTierSchema =
|
|
1344
|
-
maxTVL:
|
|
1687
|
+
var feeTierSchema = import_zod14.z.object({
|
|
1688
|
+
maxTVL: import_zod14.z.string().nullable(),
|
|
1345
1689
|
// represents a USD amount
|
|
1346
|
-
feePct:
|
|
1690
|
+
feePct: import_zod14.z.string()
|
|
1347
1691
|
// represents a percentage (e.g. 0.15 means 15%)
|
|
1348
1692
|
});
|
|
1349
|
-
var feeScheduleSchema =
|
|
1350
|
-
feeTiers:
|
|
1351
|
-
until:
|
|
1693
|
+
var feeScheduleSchema = import_zod14.z.object({
|
|
1694
|
+
feeTiers: import_zod14.z.array(feeTierSchema),
|
|
1695
|
+
until: import_zod14.z.string().datetime().nullable()
|
|
1352
1696
|
});
|
|
1353
|
-
var feeSnapshotSchema =
|
|
1354
|
-
timestamp:
|
|
1355
|
-
tvl:
|
|
1697
|
+
var feeSnapshotSchema = import_zod14.z.object({
|
|
1698
|
+
timestamp: import_zod14.z.string().datetime(),
|
|
1699
|
+
tvl: import_zod14.z.string().nullable(),
|
|
1356
1700
|
// means USD amount
|
|
1357
|
-
accumulatedFee:
|
|
1701
|
+
accumulatedFee: import_zod14.z.string(),
|
|
1358
1702
|
// means USD amount
|
|
1359
|
-
createdAt:
|
|
1360
|
-
updatedAt:
|
|
1361
|
-
});
|
|
1362
|
-
var feeSchema =
|
|
1363
|
-
managementFeeSchedules:
|
|
1364
|
-
createdAt:
|
|
1365
|
-
updatedAt:
|
|
1366
|
-
lastFeeSnapshotTimestamp:
|
|
1367
|
-
feeComputationPaused:
|
|
1368
|
-
feeSnapshots:
|
|
1703
|
+
createdAt: import_zod14.z.string().datetime(),
|
|
1704
|
+
updatedAt: import_zod14.z.string().datetime()
|
|
1705
|
+
});
|
|
1706
|
+
var feeSchema = import_zod14.z.object({
|
|
1707
|
+
managementFeeSchedules: import_zod14.z.array(feeScheduleSchema),
|
|
1708
|
+
createdAt: import_zod14.z.string().datetime(),
|
|
1709
|
+
updatedAt: import_zod14.z.string().datetime(),
|
|
1710
|
+
lastFeeSnapshotTimestamp: import_zod14.z.string().datetime(),
|
|
1711
|
+
feeComputationPaused: import_zod14.z.boolean(),
|
|
1712
|
+
feeSnapshots: import_zod14.z.array(feeSnapshotSchema).optional(),
|
|
1369
1713
|
lastFeeSnapshot: feeSnapshotSchema.nullable()
|
|
1370
1714
|
});
|
|
1371
|
-
var streamSchema =
|
|
1715
|
+
var streamSchema = import_zod14.z.object({
|
|
1372
1716
|
adapters: adaptersSchema,
|
|
1373
|
-
admin:
|
|
1374
|
-
chainId:
|
|
1375
|
-
chargedFee:
|
|
1376
|
-
claimPaused:
|
|
1377
|
-
contractAddress:
|
|
1378
|
-
createdAt:
|
|
1379
|
-
creationConfirmedAt:
|
|
1380
|
-
customArgs:
|
|
1381
|
-
endTimestamp:
|
|
1717
|
+
admin: import_zod14.z.string().nullable(),
|
|
1718
|
+
chainId: import_zod14.z.number().nullable(),
|
|
1719
|
+
chargedFee: import_zod14.z.string().nullable(),
|
|
1720
|
+
claimPaused: import_zod14.z.boolean(),
|
|
1721
|
+
contractAddress: import_zod14.z.string().nullable(),
|
|
1722
|
+
createdAt: import_zod14.z.string().datetime(),
|
|
1723
|
+
creationConfirmedAt: import_zod14.z.string().datetime().nullable(),
|
|
1724
|
+
customArgs: import_zod14.z.union([customArgsTokensPerUsdSchema, customArgsAprSchema]),
|
|
1725
|
+
endTimestamp: import_zod14.z.string().datetime().nullable(),
|
|
1382
1726
|
fee: feeSchema.nullable(),
|
|
1383
|
-
hashCommitmentPaused:
|
|
1384
|
-
id:
|
|
1727
|
+
hashCommitmentPaused: import_zod14.z.boolean(),
|
|
1728
|
+
id: import_zod14.z.string().uuid(),
|
|
1385
1729
|
lastSnapshot: snapshotSchema.nullable(),
|
|
1386
|
-
merkleTreeComputationPaused:
|
|
1387
|
-
orgId:
|
|
1730
|
+
merkleTreeComputationPaused: import_zod14.z.boolean(),
|
|
1731
|
+
orgId: import_zod14.z.string().uuid(),
|
|
1388
1732
|
point: streamPointSchema.nullable().optional(),
|
|
1389
1733
|
rewardToken: rewardTokenSchema,
|
|
1390
|
-
snapshotComputationPaused:
|
|
1391
|
-
snapshots:
|
|
1392
|
-
startTimestamp:
|
|
1393
|
-
strategy:
|
|
1394
|
-
totalAmount:
|
|
1395
|
-
type:
|
|
1396
|
-
updatedAt:
|
|
1397
|
-
userId:
|
|
1398
|
-
});
|
|
1399
|
-
var getStreamsOutputSchema =
|
|
1400
|
-
streams:
|
|
1401
|
-
});
|
|
1402
|
-
var getStreamPointsOutputSchema =
|
|
1403
|
-
points:
|
|
1404
|
-
});
|
|
1405
|
-
var createStreamPointBodySchema =
|
|
1406
|
-
name:
|
|
1407
|
-
symbol:
|
|
1408
|
-
decimals:
|
|
1409
|
-
logoUrl:
|
|
1410
|
-
});
|
|
1411
|
-
var createStreamPointOutputSchema =
|
|
1734
|
+
snapshotComputationPaused: import_zod14.z.boolean(),
|
|
1735
|
+
snapshots: import_zod14.z.array(snapshotSchema).optional(),
|
|
1736
|
+
startTimestamp: import_zod14.z.string().datetime(),
|
|
1737
|
+
strategy: import_zod14.z.string(),
|
|
1738
|
+
totalAmount: import_zod14.z.string().nullable(),
|
|
1739
|
+
type: import_zod14.z.number(),
|
|
1740
|
+
updatedAt: import_zod14.z.string().datetime(),
|
|
1741
|
+
userId: import_zod14.z.string().uuid()
|
|
1742
|
+
});
|
|
1743
|
+
var getStreamsOutputSchema = import_zod14.z.object({
|
|
1744
|
+
streams: import_zod14.z.array(streamSchema)
|
|
1745
|
+
});
|
|
1746
|
+
var getStreamPointsOutputSchema = import_zod14.z.object({
|
|
1747
|
+
points: import_zod14.z.array(streamPointSchema)
|
|
1748
|
+
});
|
|
1749
|
+
var createStreamPointBodySchema = import_zod14.z.object({
|
|
1750
|
+
name: import_zod14.z.string(),
|
|
1751
|
+
symbol: import_zod14.z.string(),
|
|
1752
|
+
decimals: import_zod14.z.number().optional(),
|
|
1753
|
+
logoUrl: import_zod14.z.string().url().nullable().optional()
|
|
1754
|
+
});
|
|
1755
|
+
var createStreamPointOutputSchema = import_zod14.z.object({
|
|
1412
1756
|
point: streamPointSchema
|
|
1413
1757
|
});
|
|
1414
|
-
var getStreamsSupportedChainsOutputSchema =
|
|
1415
|
-
success:
|
|
1416
|
-
chains:
|
|
1417
|
-
|
|
1418
|
-
id:
|
|
1419
|
-
name:
|
|
1420
|
-
slug:
|
|
1421
|
-
chainId:
|
|
1422
|
-
logoUrl:
|
|
1423
|
-
ecosystem:
|
|
1424
|
-
status:
|
|
1425
|
-
explorerUrl:
|
|
1426
|
-
streamFactory:
|
|
1758
|
+
var getStreamsSupportedChainsOutputSchema = import_zod14.z.object({
|
|
1759
|
+
success: import_zod14.z.boolean(),
|
|
1760
|
+
chains: import_zod14.z.array(
|
|
1761
|
+
import_zod14.z.object({
|
|
1762
|
+
id: import_zod14.z.string(),
|
|
1763
|
+
name: import_zod14.z.string(),
|
|
1764
|
+
slug: import_zod14.z.string(),
|
|
1765
|
+
chainId: import_zod14.z.number(),
|
|
1766
|
+
logoUrl: import_zod14.z.string(),
|
|
1767
|
+
ecosystem: import_zod14.z.string(),
|
|
1768
|
+
status: import_zod14.z.string(),
|
|
1769
|
+
explorerUrl: import_zod14.z.string(),
|
|
1770
|
+
streamFactory: import_zod14.z.string()
|
|
1427
1771
|
// Address as string
|
|
1428
1772
|
})
|
|
1429
1773
|
)
|
|
1430
1774
|
});
|
|
1431
|
-
var streamSignatureRequestInputSchema =
|
|
1775
|
+
var streamSignatureRequestInputSchema = import_zod14.z.object({
|
|
1432
1776
|
adapters: adaptersSchema,
|
|
1433
|
-
chainId:
|
|
1434
|
-
customArgs:
|
|
1435
|
-
|
|
1436
|
-
targetChainId:
|
|
1437
|
-
targetTokenAddress:
|
|
1777
|
+
chainId: import_zod14.z.number().nullable(),
|
|
1778
|
+
customArgs: import_zod14.z.intersection(
|
|
1779
|
+
import_zod14.z.object({
|
|
1780
|
+
targetChainId: import_zod14.z.number(),
|
|
1781
|
+
targetTokenAddress: import_zod14.z.string()
|
|
1438
1782
|
}),
|
|
1439
|
-
|
|
1783
|
+
import_zod14.z.union([import_zod14.z.object({ tokensPerUSD: import_zod14.z.string() }), import_zod14.z.object({ apr: import_zod14.z.string() })])
|
|
1440
1784
|
),
|
|
1441
|
-
endTimestamp:
|
|
1442
|
-
pointId:
|
|
1443
|
-
rewardToken:
|
|
1444
|
-
startTimestamp:
|
|
1445
|
-
totalAmount:
|
|
1446
|
-
type:
|
|
1447
|
-
walletAddress:
|
|
1448
|
-
});
|
|
1449
|
-
var streamSignatureRequestOutputSchema =
|
|
1450
|
-
success:
|
|
1451
|
-
message:
|
|
1452
|
-
txParams:
|
|
1453
|
-
chainId:
|
|
1454
|
-
sender:
|
|
1455
|
-
params:
|
|
1456
|
-
deadline:
|
|
1457
|
-
params:
|
|
1458
|
-
StreamId:
|
|
1459
|
-
RewardToken:
|
|
1460
|
-
NetTotalAmount:
|
|
1461
|
-
FeeAmount:
|
|
1785
|
+
endTimestamp: import_zod14.z.string().nullable(),
|
|
1786
|
+
pointId: import_zod14.z.string().uuid().nullable(),
|
|
1787
|
+
rewardToken: import_zod14.z.string().nullable(),
|
|
1788
|
+
startTimestamp: import_zod14.z.string(),
|
|
1789
|
+
totalAmount: import_zod14.z.string().nullable(),
|
|
1790
|
+
type: import_zod14.z.number(),
|
|
1791
|
+
walletAddress: import_zod14.z.string().nullable()
|
|
1792
|
+
});
|
|
1793
|
+
var streamSignatureRequestOutputSchema = import_zod14.z.object({
|
|
1794
|
+
success: import_zod14.z.boolean(),
|
|
1795
|
+
message: import_zod14.z.string(),
|
|
1796
|
+
txParams: import_zod14.z.object({
|
|
1797
|
+
chainId: import_zod14.z.number(),
|
|
1798
|
+
sender: import_zod14.z.string(),
|
|
1799
|
+
params: import_zod14.z.object({
|
|
1800
|
+
deadline: import_zod14.z.number(),
|
|
1801
|
+
params: import_zod14.z.object({
|
|
1802
|
+
StreamId: import_zod14.z.array(import_zod14.z.number()),
|
|
1803
|
+
RewardToken: import_zod14.z.string(),
|
|
1804
|
+
NetTotalAmount: import_zod14.z.string(),
|
|
1805
|
+
FeeAmount: import_zod14.z.string()
|
|
1462
1806
|
}),
|
|
1463
|
-
signature:
|
|
1807
|
+
signature: import_zod14.z.string()
|
|
1464
1808
|
})
|
|
1465
1809
|
}).nullable()
|
|
1466
1810
|
});
|
|
1467
|
-
var getStreamsQuerySchema =
|
|
1468
|
-
streamId:
|
|
1469
|
-
userId:
|
|
1470
|
-
organizationId:
|
|
1471
|
-
withSnapshots:
|
|
1472
|
-
usersCount:
|
|
1473
|
-
});
|
|
1474
|
-
var getStreamPointsQuerySchema =
|
|
1475
|
-
id:
|
|
1476
|
-
organizationId:
|
|
1477
|
-
symbol:
|
|
1478
|
-
name:
|
|
1479
|
-
});
|
|
1480
|
-
var streamWalletSnapshotSchema =
|
|
1481
|
-
timestamp:
|
|
1482
|
-
rewardsAccumulated:
|
|
1483
|
-
rewardsAccumulatedBase:
|
|
1484
|
-
createdAt:
|
|
1485
|
-
updatedAt:
|
|
1486
|
-
tvl:
|
|
1487
|
-
});
|
|
1488
|
-
var streamWalletSchema =
|
|
1489
|
-
userAddress:
|
|
1811
|
+
var getStreamsQuerySchema = import_zod14.z.object({
|
|
1812
|
+
streamId: import_zod14.z.string().optional(),
|
|
1813
|
+
userId: import_zod14.z.string().optional(),
|
|
1814
|
+
organizationId: import_zod14.z.string().optional(),
|
|
1815
|
+
withSnapshots: import_zod14.z.boolean().optional(),
|
|
1816
|
+
usersCount: import_zod14.z.boolean().optional()
|
|
1817
|
+
});
|
|
1818
|
+
var getStreamPointsQuerySchema = import_zod14.z.object({
|
|
1819
|
+
id: import_zod14.z.string().optional().nullable(),
|
|
1820
|
+
organizationId: import_zod14.z.string().optional().nullable(),
|
|
1821
|
+
symbol: import_zod14.z.string().optional().nullable(),
|
|
1822
|
+
name: import_zod14.z.string().optional().nullable()
|
|
1823
|
+
});
|
|
1824
|
+
var streamWalletSnapshotSchema = import_zod14.z.object({
|
|
1825
|
+
timestamp: import_zod14.z.string().datetime(),
|
|
1826
|
+
rewardsAccumulated: import_zod14.z.string(),
|
|
1827
|
+
rewardsAccumulatedBase: import_zod14.z.string(),
|
|
1828
|
+
createdAt: import_zod14.z.string().datetime(),
|
|
1829
|
+
updatedAt: import_zod14.z.string().datetime(),
|
|
1830
|
+
tvl: import_zod14.z.string().nullable().optional()
|
|
1831
|
+
});
|
|
1832
|
+
var streamWalletSchema = import_zod14.z.object({
|
|
1833
|
+
userAddress: import_zod14.z.string(),
|
|
1490
1834
|
lastSnapshot: streamWalletSnapshotSchema
|
|
1491
1835
|
});
|
|
1492
|
-
var paginationSchema =
|
|
1493
|
-
limit:
|
|
1494
|
-
page:
|
|
1495
|
-
total:
|
|
1496
|
-
totalPages:
|
|
1836
|
+
var paginationSchema = import_zod14.z.object({
|
|
1837
|
+
limit: import_zod14.z.number(),
|
|
1838
|
+
page: import_zod14.z.number(),
|
|
1839
|
+
total: import_zod14.z.number(),
|
|
1840
|
+
totalPages: import_zod14.z.number()
|
|
1497
1841
|
});
|
|
1498
|
-
var getStreamWalletsResponseSchema =
|
|
1499
|
-
data:
|
|
1842
|
+
var getStreamWalletsResponseSchema = import_zod14.z.object({
|
|
1843
|
+
data: import_zod14.z.array(streamWalletSchema),
|
|
1500
1844
|
pagination: paginationSchema
|
|
1501
1845
|
});
|
|
1502
|
-
var getStreamWalletsQuerySchema =
|
|
1503
|
-
streamId:
|
|
1504
|
-
page:
|
|
1505
|
-
limit:
|
|
1846
|
+
var getStreamWalletsQuerySchema = import_zod14.z.object({
|
|
1847
|
+
streamId: import_zod14.z.string(),
|
|
1848
|
+
page: import_zod14.z.number().optional(),
|
|
1849
|
+
limit: import_zod14.z.number().optional()
|
|
1506
1850
|
});
|
|
1507
|
-
var streamWalletDetailsSchema =
|
|
1508
|
-
streamId:
|
|
1509
|
-
userAddress:
|
|
1510
|
-
snapshots:
|
|
1851
|
+
var streamWalletDetailsSchema = import_zod14.z.object({
|
|
1852
|
+
streamId: import_zod14.z.string(),
|
|
1853
|
+
userAddress: import_zod14.z.string(),
|
|
1854
|
+
snapshots: import_zod14.z.array(streamWalletSnapshotSchema),
|
|
1511
1855
|
stream: streamSchema
|
|
1512
1856
|
});
|
|
1513
|
-
var getStreamWalletDetailsResponseSchema =
|
|
1857
|
+
var getStreamWalletDetailsResponseSchema = import_zod14.z.object({
|
|
1514
1858
|
wallet: streamWalletDetailsSchema
|
|
1515
1859
|
});
|
|
1516
1860
|
|
|
@@ -1619,7 +1963,7 @@ async function requestStreamSignature(organizationId, input) {
|
|
|
1619
1963
|
}
|
|
1620
1964
|
|
|
1621
1965
|
// src/v2/streams/queries.ts
|
|
1622
|
-
var streamsQueries = (0,
|
|
1966
|
+
var streamsQueries = (0, import_query_key_factory12.createQueryKeys)("streams", {
|
|
1623
1967
|
list: (query) => ({
|
|
1624
1968
|
queryKey: [query ?? "all"],
|
|
1625
1969
|
queryFn: () => getStreams(query)
|
|
@@ -1642,180 +1986,73 @@ var streamsQueries = (0, import_query_key_factory10.createQueryKeys)("streams",
|
|
|
1642
1986
|
}
|
|
1643
1987
|
});
|
|
1644
1988
|
|
|
1645
|
-
// src/v2/supported-chains/queries.ts
|
|
1646
|
-
var import_query_key_factory11 = require("@lukemorales/query-key-factory");
|
|
1647
|
-
|
|
1648
|
-
// src/v2/supported-chains/schema.ts
|
|
1649
|
-
var import_zod11 = require("zod");
|
|
1650
|
-
var getSupportedChainsInputSchema = import_zod11.z.object({
|
|
1651
|
-
page: import_zod11.z.number().min(1).default(1).optional(),
|
|
1652
|
-
limit: import_zod11.z.number().min(1).max(100).default(50).optional(),
|
|
1653
|
-
// Sorting
|
|
1654
|
-
sortBy: import_zod11.z.enum(["name", "chainId", "ecosystem", "slug"]).optional(),
|
|
1655
|
-
sortOrder: import_zod11.z.enum(["asc", "desc"]).optional(),
|
|
1656
|
-
// Filters
|
|
1657
|
-
ecosystem: import_zod11.z.string().optional(),
|
|
1658
|
-
// Filter by ecosystem
|
|
1659
|
-
status: import_zod11.z.string().optional(),
|
|
1660
|
-
// Filter by status
|
|
1661
|
-
chainId: import_zod11.z.string().optional(),
|
|
1662
|
-
// Filter by specific chainId
|
|
1663
|
-
slug: import_zod11.z.string().optional(),
|
|
1664
|
-
// Filter by slug
|
|
1665
|
-
search: import_zod11.z.string().optional()
|
|
1666
|
-
// Search by name or slug
|
|
1667
|
-
});
|
|
1668
|
-
var supportedChainsResponseSchema = import_zod11.z.object({
|
|
1669
|
-
chains: import_zod11.z.array(chainSchema),
|
|
1670
|
-
pagination: paginationMetadataSchema.optional()
|
|
1671
|
-
});
|
|
1672
|
-
|
|
1673
|
-
// src/v2/supported-chains/api.ts
|
|
1674
|
-
async function getSupportedChains(params, options) {
|
|
1675
|
-
const queryParams = new URLSearchParams();
|
|
1676
|
-
if (params) {
|
|
1677
|
-
if (params.page !== void 0) queryParams.append("page", params.page.toString());
|
|
1678
|
-
if (params.limit !== void 0) queryParams.append("limit", params.limit.toString());
|
|
1679
|
-
if (params.sortBy) queryParams.append("sortBy", params.sortBy);
|
|
1680
|
-
if (params.sortOrder) queryParams.append("sortOrder", params.sortOrder);
|
|
1681
|
-
if (params.ecosystem) queryParams.append("ecosystem", params.ecosystem);
|
|
1682
|
-
if (params.status) queryParams.append("status", params.status);
|
|
1683
|
-
if (params.chainId) queryParams.append("chainId", params.chainId);
|
|
1684
|
-
if (params.slug) queryParams.append("slug", params.slug);
|
|
1685
|
-
if (params.search) queryParams.append("search", params.search);
|
|
1686
|
-
}
|
|
1687
|
-
const queryString = queryParams.toString();
|
|
1688
|
-
const endpoint = `/turtle/chains${queryString ? `?${queryString}` : ""}`;
|
|
1689
|
-
const data = await apiClient.fetch(endpoint, {
|
|
1690
|
-
method: "GET",
|
|
1691
|
-
debug: options?.debug
|
|
1692
|
-
});
|
|
1693
|
-
const result = supportedChainsResponseSchema.safeParse(data);
|
|
1694
|
-
if (result.success === false) {
|
|
1695
|
-
console.log("[ZOD ERROR]", result.error);
|
|
1696
|
-
throw new Error(`Failed to parse supported chains: ${result.error.message}`);
|
|
1697
|
-
}
|
|
1698
|
-
return result.data;
|
|
1699
|
-
}
|
|
1700
|
-
|
|
1701
|
-
// src/v2/supported-chains/queries.ts
|
|
1702
|
-
var supportedChainsQueries = (0, import_query_key_factory11.createQueryKeys)("supportedChains", {
|
|
1703
|
-
all: (params, options) => ({
|
|
1704
|
-
queryKey: [params],
|
|
1705
|
-
queryFn: () => getSupportedChains(params, options)
|
|
1706
|
-
})
|
|
1707
|
-
});
|
|
1708
|
-
|
|
1709
|
-
// src/v2/supported-tokens/queries.ts
|
|
1710
|
-
var import_query_key_factory12 = require("@lukemorales/query-key-factory");
|
|
1711
|
-
|
|
1712
|
-
// src/v2/supported-tokens/schema.ts
|
|
1713
|
-
var import_zod12 = require("zod");
|
|
1714
|
-
var supportedTokenSchema = tokenSchema.extend({
|
|
1715
|
-
active: import_zod12.z.boolean()
|
|
1716
|
-
});
|
|
1717
|
-
var supportedTokensResponseSchema = import_zod12.z.object({
|
|
1718
|
-
tokens: import_zod12.z.array(supportedTokenSchema),
|
|
1719
|
-
total: import_zod12.z.number().optional(),
|
|
1720
|
-
limit: import_zod12.z.number().optional(),
|
|
1721
|
-
page: import_zod12.z.number().optional()
|
|
1722
|
-
});
|
|
1723
|
-
|
|
1724
|
-
// src/v2/supported-tokens/api.ts
|
|
1725
|
-
async function getSupportedTokens(filters, options) {
|
|
1726
|
-
const params = new URLSearchParams();
|
|
1727
|
-
if (filters?.page !== void 0) params.append("page", filters.page.toString());
|
|
1728
|
-
if (filters?.limit !== void 0) params.append("limit", filters.limit.toString());
|
|
1729
|
-
if (filters?.search) params.append("search", filters.search);
|
|
1730
|
-
const queryString = params.toString();
|
|
1731
|
-
const endpoint = `/turtle/tokens${queryString ? `?${queryString}` : ""}`;
|
|
1732
|
-
const data = await apiClient.fetch(endpoint, {
|
|
1733
|
-
method: "GET",
|
|
1734
|
-
debug: options?.debug
|
|
1735
|
-
});
|
|
1736
|
-
const result = supportedTokensResponseSchema.safeParse(data);
|
|
1737
|
-
if (result.success === false) {
|
|
1738
|
-
console.log("[ZOD ERROR]", result.error);
|
|
1739
|
-
throw new Error(`Failed to parse supported tokens: ${result.error.message}`);
|
|
1740
|
-
}
|
|
1741
|
-
return result.data;
|
|
1742
|
-
}
|
|
1743
|
-
|
|
1744
|
-
// src/v2/supported-tokens/queries.ts
|
|
1745
|
-
var supportedTokensQueries = (0, import_query_key_factory12.createQueryKeys)("supportedTokens", {
|
|
1746
|
-
list: (filters) => ({
|
|
1747
|
-
queryKey: [filters],
|
|
1748
|
-
queryFn: () => getSupportedTokens(filters)
|
|
1749
|
-
})
|
|
1750
|
-
});
|
|
1751
|
-
|
|
1752
1989
|
// src/v2/users/queries.ts
|
|
1753
1990
|
var import_query_key_factory13 = require("@lukemorales/query-key-factory");
|
|
1754
1991
|
|
|
1755
1992
|
// src/v2/users/schemas.ts
|
|
1756
|
-
var
|
|
1757
|
-
var walletDataSchema =
|
|
1758
|
-
address:
|
|
1759
|
-
totalAmountInUSD:
|
|
1760
|
-
tokens:
|
|
1761
|
-
});
|
|
1762
|
-
var holdingsDataSchema =
|
|
1763
|
-
totalAmountInUSD:
|
|
1764
|
-
chains:
|
|
1765
|
-
wallets:
|
|
1766
|
-
});
|
|
1767
|
-
var userEarningsSchema =
|
|
1768
|
-
productId:
|
|
1769
|
-
value:
|
|
1770
|
-
referralsEarnings:
|
|
1771
|
-
rewardName:
|
|
1772
|
-
rewardType:
|
|
1773
|
-
});
|
|
1774
|
-
var portfolioSchema =
|
|
1775
|
-
productsEarnings:
|
|
1993
|
+
var import_zod15 = require("zod");
|
|
1994
|
+
var walletDataSchema = import_zod15.z.object({
|
|
1995
|
+
address: import_zod15.z.string(),
|
|
1996
|
+
totalAmountInUSD: import_zod15.z.string(),
|
|
1997
|
+
tokens: import_zod15.z.array(tokenSchema)
|
|
1998
|
+
});
|
|
1999
|
+
var holdingsDataSchema = import_zod15.z.object({
|
|
2000
|
+
totalAmountInUSD: import_zod15.z.string(),
|
|
2001
|
+
chains: import_zod15.z.array(chainSchema).nullish(),
|
|
2002
|
+
wallets: import_zod15.z.array(walletDataSchema).nullish()
|
|
2003
|
+
});
|
|
2004
|
+
var userEarningsSchema = import_zod15.z.object({
|
|
2005
|
+
productId: import_zod15.z.string().uuid(),
|
|
2006
|
+
value: import_zod15.z.number(),
|
|
2007
|
+
referralsEarnings: import_zod15.z.number().nullish(),
|
|
2008
|
+
rewardName: import_zod15.z.string().nullish(),
|
|
2009
|
+
rewardType: import_zod15.z.string().nullish()
|
|
2010
|
+
});
|
|
2011
|
+
var portfolioSchema = import_zod15.z.object({
|
|
2012
|
+
productsEarnings: import_zod15.z.array(userEarningsSchema),
|
|
1776
2013
|
holdings: holdingsDataSchema.nullish()
|
|
1777
2014
|
});
|
|
1778
|
-
var holdingInfoSchema =
|
|
1779
|
-
amount:
|
|
1780
|
-
usdValue:
|
|
2015
|
+
var holdingInfoSchema = import_zod15.z.object({
|
|
2016
|
+
amount: import_zod15.z.number(),
|
|
2017
|
+
usdValue: import_zod15.z.number(),
|
|
1781
2018
|
token: tokenSchema.nullish()
|
|
1782
2019
|
});
|
|
1783
|
-
var walletInfoSchema =
|
|
1784
|
-
address:
|
|
1785
|
-
ecosystem:
|
|
1786
|
-
isMain:
|
|
1787
|
-
holdings:
|
|
1788
|
-
});
|
|
1789
|
-
var userWithDetailsSchema =
|
|
1790
|
-
id:
|
|
1791
|
-
email:
|
|
1792
|
-
username:
|
|
1793
|
-
firstName:
|
|
1794
|
-
lastName:
|
|
1795
|
-
avatarUrl:
|
|
1796
|
-
telegramHandle:
|
|
1797
|
-
xUsername:
|
|
1798
|
-
role:
|
|
1799
|
-
createdAt:
|
|
1800
|
-
updatedAt:
|
|
1801
|
-
tags:
|
|
1802
|
-
wallets:
|
|
1803
|
-
});
|
|
1804
|
-
var getUserTurtlePortfolioInputSchema =
|
|
1805
|
-
userId:
|
|
1806
|
-
});
|
|
1807
|
-
var getUserTurtlePortfolioOutputSchema =
|
|
2020
|
+
var walletInfoSchema = import_zod15.z.object({
|
|
2021
|
+
address: import_zod15.z.string().nullish(),
|
|
2022
|
+
ecosystem: import_zod15.z.string().nullish(),
|
|
2023
|
+
isMain: import_zod15.z.boolean().nullish(),
|
|
2024
|
+
holdings: import_zod15.z.array(holdingInfoSchema).nullish()
|
|
2025
|
+
});
|
|
2026
|
+
var userWithDetailsSchema = import_zod15.z.object({
|
|
2027
|
+
id: import_zod15.z.string(),
|
|
2028
|
+
email: import_zod15.z.string().nullable(),
|
|
2029
|
+
username: import_zod15.z.string().nullish(),
|
|
2030
|
+
firstName: import_zod15.z.string().nullish(),
|
|
2031
|
+
lastName: import_zod15.z.string().nullish(),
|
|
2032
|
+
avatarUrl: import_zod15.z.string().nullish(),
|
|
2033
|
+
telegramHandle: import_zod15.z.string().nullish(),
|
|
2034
|
+
xUsername: import_zod15.z.string().nullish(),
|
|
2035
|
+
role: import_zod15.z.string(),
|
|
2036
|
+
createdAt: import_zod15.z.string(),
|
|
2037
|
+
updatedAt: import_zod15.z.string(),
|
|
2038
|
+
tags: import_zod15.z.array(import_zod15.z.string()).nullish(),
|
|
2039
|
+
wallets: import_zod15.z.array(walletInfoSchema).nullish()
|
|
2040
|
+
});
|
|
2041
|
+
var getUserTurtlePortfolioInputSchema = import_zod15.z.object({
|
|
2042
|
+
userId: import_zod15.z.string().uuid()
|
|
2043
|
+
});
|
|
2044
|
+
var getUserTurtlePortfolioOutputSchema = import_zod15.z.object({
|
|
1808
2045
|
portfolio: portfolioSchema
|
|
1809
2046
|
});
|
|
1810
|
-
var getUserTurtlePortfolioPathSchema =
|
|
1811
|
-
userId:
|
|
2047
|
+
var getUserTurtlePortfolioPathSchema = import_zod15.z.object({
|
|
2048
|
+
userId: import_zod15.z.string().uuid()
|
|
1812
2049
|
});
|
|
1813
|
-
var getUserByIdInputSchema =
|
|
1814
|
-
userId:
|
|
2050
|
+
var getUserByIdInputSchema = import_zod15.z.object({
|
|
2051
|
+
userId: import_zod15.z.string().uuid()
|
|
1815
2052
|
});
|
|
1816
|
-
var getUserByIdOutputSchema =
|
|
2053
|
+
var getUserByIdOutputSchema = import_zod15.z.object({
|
|
1817
2054
|
user: userWithDetailsSchema.nullable(),
|
|
1818
|
-
error:
|
|
2055
|
+
error: import_zod15.z.string().optional()
|
|
1819
2056
|
});
|
|
1820
2057
|
|
|
1821
2058
|
// src/v2/users/api.ts
|
|
@@ -1888,40 +2125,358 @@ var nftsQueries = (0, import_query_key_factory14.createQueryKeys)("nfts", {
|
|
|
1888
2125
|
})
|
|
1889
2126
|
});
|
|
1890
2127
|
|
|
1891
|
-
// src/v2/
|
|
1892
|
-
var
|
|
2128
|
+
// src/v2/balance/queries.ts
|
|
2129
|
+
var import_query_key_factory15 = require("@lukemorales/query-key-factory");
|
|
1893
2130
|
|
|
1894
|
-
// src/v2/
|
|
1895
|
-
var
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
2131
|
+
// src/v2/balance/schema.ts
|
|
2132
|
+
var import_zod16 = require("zod");
|
|
2133
|
+
var portfolioTokenSchema = import_zod16.z.object({
|
|
2134
|
+
id: import_zod16.z.string(),
|
|
2135
|
+
address: import_zod16.z.string(),
|
|
2136
|
+
name: import_zod16.z.string(),
|
|
2137
|
+
symbol: import_zod16.z.string(),
|
|
2138
|
+
decimals: import_zod16.z.number(),
|
|
2139
|
+
isNative: import_zod16.z.boolean(),
|
|
2140
|
+
logoUrl: import_zod16.z.string().nullable(),
|
|
2141
|
+
amount: import_zod16.z.string(),
|
|
2142
|
+
// Portfolio-specific field (decimal format)
|
|
2143
|
+
price: import_zod16.z.string().nullable().transform((val) => val ? parseFloat(val) : null),
|
|
2144
|
+
// Portfolio-specific field
|
|
2145
|
+
// Chain with optional fields to match Portfolio API response
|
|
2146
|
+
chain: chainSchema.partial().required({ chainId: true })
|
|
2147
|
+
});
|
|
2148
|
+
var portfolioWalletSchema = import_zod16.z.object({
|
|
2149
|
+
id: import_zod16.z.string().optional(),
|
|
2150
|
+
address: import_zod16.z.string(),
|
|
2151
|
+
blockchain: import_zod16.z.string().optional(),
|
|
2152
|
+
tokens: import_zod16.z.array(portfolioTokenSchema)
|
|
2153
|
+
});
|
|
2154
|
+
var portfolioHoldingsSchema = import_zod16.z.object({
|
|
2155
|
+
wallets: import_zod16.z.array(portfolioWalletSchema)
|
|
2156
|
+
});
|
|
2157
|
+
var portfolioBalanceResponseSchema = import_zod16.z.object({
|
|
2158
|
+
portfolio: import_zod16.z.object({
|
|
2159
|
+
holdings: portfolioHoldingsSchema
|
|
2160
|
+
})
|
|
2161
|
+
});
|
|
2162
|
+
|
|
2163
|
+
// src/v2/balance/api.ts
|
|
2164
|
+
async function getPortfolioBalance(address, options) {
|
|
2165
|
+
const data = await apiClient.fetch(`/wallet/${address}/balance`, {
|
|
2166
|
+
method: "GET",
|
|
2167
|
+
domain: "api",
|
|
2168
|
+
debug: options?.debug
|
|
2169
|
+
});
|
|
2170
|
+
const result = portfolioBalanceResponseSchema.safeParse(data);
|
|
2171
|
+
if (result.success === false) {
|
|
2172
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2173
|
+
throw new Error(`Failed to parse portfolio balance: ${result.error.message}`);
|
|
2174
|
+
}
|
|
2175
|
+
return result.data;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
// src/v2/balance/queries.ts
|
|
2179
|
+
var balanceQueries = (0, import_query_key_factory15.createQueryKeys)("balance", {
|
|
2180
|
+
// Portfolio balance by address
|
|
2181
|
+
portfolio: (address) => ({
|
|
2182
|
+
queryKey: [address],
|
|
2183
|
+
queryFn: () => getPortfolioBalance(address)
|
|
2184
|
+
})
|
|
2185
|
+
});
|
|
2186
|
+
|
|
2187
|
+
// src/v2/deposits/queries.ts
|
|
2188
|
+
var import_query_key_factory16 = require("@lukemorales/query-key-factory");
|
|
2189
|
+
|
|
2190
|
+
// src/v2/deposits/schemas.ts
|
|
2191
|
+
var import_zod17 = require("zod");
|
|
2192
|
+
var uuidSchema = import_zod17.z.string().uuid();
|
|
2193
|
+
var sortBySchema = import_zod17.z.enum(["date", "usd_value"]).optional();
|
|
2194
|
+
var sortOrderSchema = import_zod17.z.enum(["asc", "desc"]).optional();
|
|
2195
|
+
var getDepositsRequestSchema = import_zod17.z.object({
|
|
2196
|
+
// Filter by product or opportunity (optional, not mutually exclusive)
|
|
2197
|
+
product_id: import_zod17.z.string().uuid().optional(),
|
|
2198
|
+
opportunity_id: import_zod17.z.string().uuid().optional(),
|
|
2199
|
+
// Search query
|
|
2200
|
+
search: import_zod17.z.string().optional(),
|
|
2201
|
+
// Sorting options
|
|
2202
|
+
sort_by: sortBySchema,
|
|
2203
|
+
sort_order: sortOrderSchema,
|
|
2204
|
+
// Additional filters
|
|
2205
|
+
distributor_id: import_zod17.z.string().optional(),
|
|
2206
|
+
depositor_address: import_zod17.z.string().optional(),
|
|
2207
|
+
referral: import_zod17.z.string().optional(),
|
|
2208
|
+
// Pagination
|
|
2209
|
+
page: import_zod17.z.number().int().min(1).optional().default(1),
|
|
2210
|
+
page_limit: import_zod17.z.number().int().min(1).max(100).optional().default(20)
|
|
2211
|
+
}).refine(
|
|
2212
|
+
(data) => {
|
|
2213
|
+
const hasProductId = !!data.product_id;
|
|
2214
|
+
const hasOpportunityId = !!data.opportunity_id;
|
|
2215
|
+
return hasProductId !== hasOpportunityId;
|
|
2216
|
+
},
|
|
2217
|
+
{
|
|
2218
|
+
message: "Either product_id or opportunity_id must be provided (but not both)",
|
|
2219
|
+
path: ["product_id", "opportunity_id"]
|
|
2220
|
+
}
|
|
2221
|
+
);
|
|
2222
|
+
var depositResponseSchema = import_zod17.z.object({
|
|
2223
|
+
id: uuidSchema,
|
|
2224
|
+
opportunityId: uuidSchema,
|
|
2225
|
+
walletId: uuidSchema.nullable().optional(),
|
|
2226
|
+
crmWalletId: uuidSchema.nullable().optional(),
|
|
2227
|
+
depositorAddress: import_zod17.z.string(),
|
|
2228
|
+
amount: import_zod17.z.number(),
|
|
2229
|
+
usdValue: import_zod17.z.number(),
|
|
2230
|
+
depositTimestamp: import_zod17.z.string().datetime(),
|
|
2231
|
+
// ISO 8601 format
|
|
2232
|
+
txHash: import_zod17.z.string(),
|
|
2233
|
+
verified: import_zod17.z.boolean().nullable().optional(),
|
|
2234
|
+
distributorId: import_zod17.z.string().nullable().optional(),
|
|
2235
|
+
referral: import_zod17.z.string().nullable().optional(),
|
|
2236
|
+
explorerUrl: import_zod17.z.string().url().nullable().optional(),
|
|
2237
|
+
createdAt: import_zod17.z.string().datetime(),
|
|
2238
|
+
// ISO 8601 format
|
|
2239
|
+
updatedAt: import_zod17.z.string().datetime()
|
|
2240
|
+
// ISO 8601 format
|
|
2241
|
+
});
|
|
2242
|
+
var depositsMetadataSchema = import_zod17.z.object({
|
|
2243
|
+
totalUsdValue: import_zod17.z.number().int().min(0)
|
|
2244
|
+
});
|
|
2245
|
+
var getDepositsResponseSchema = import_zod17.z.object({
|
|
2246
|
+
deposits: import_zod17.z.array(depositResponseSchema),
|
|
2247
|
+
pagination: paginationMetadataSchema.partial(),
|
|
2248
|
+
metadata: depositsMetadataSchema
|
|
2249
|
+
});
|
|
2250
|
+
|
|
2251
|
+
// src/v2/deposits/api.ts
|
|
2252
|
+
async function getDeposits2(filters) {
|
|
2253
|
+
const params = new URLSearchParams();
|
|
2254
|
+
if (filters.product_id) params.append("product_id", filters.product_id);
|
|
2255
|
+
if (filters.opportunity_id) params.append("opportunity_id", filters.opportunity_id);
|
|
2256
|
+
if (filters.search) params.append("search", filters.search);
|
|
2257
|
+
if (filters.sort_by) params.append("sort_by", filters.sort_by);
|
|
2258
|
+
if (filters.sort_order) params.append("sort_order", filters.sort_order);
|
|
2259
|
+
if (filters.distributor_id) params.append("distributor_id", filters.distributor_id);
|
|
2260
|
+
if (filters.depositor_address) params.append("depositor_address", filters.depositor_address);
|
|
2261
|
+
if (filters.referral) params.append("referral", filters.referral);
|
|
2262
|
+
if (filters.page) params.append("page", filters.page.toString());
|
|
2263
|
+
if (filters.page_limit) params.append("page_limit", filters.page_limit.toString());
|
|
2264
|
+
const queryString = params.toString();
|
|
2265
|
+
const endpoint = `/turtle/deposits${queryString ? `?${queryString}` : ""}`;
|
|
2266
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2267
|
+
method: "GET"
|
|
2268
|
+
});
|
|
2269
|
+
const result = getDepositsResponseSchema.safeParse(data);
|
|
2270
|
+
if (result.success === false) {
|
|
2271
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2272
|
+
throw new Error(`Failed to parse deposits: ${result.error.message}`);
|
|
2273
|
+
}
|
|
2274
|
+
return result.data;
|
|
2275
|
+
}
|
|
2276
|
+
|
|
2277
|
+
// src/v2/deposits/queries.ts
|
|
2278
|
+
var depositsQueries = (0, import_query_key_factory16.createQueryKeys)("deposits", {
|
|
2279
|
+
list: (filters) => ({
|
|
2280
|
+
queryKey: [{ filters }],
|
|
2281
|
+
queryFn: () => getDeposits2(filters)
|
|
2282
|
+
})
|
|
2283
|
+
});
|
|
2284
|
+
|
|
2285
|
+
// src/v2/incentives/queries.ts
|
|
2286
|
+
var import_query_key_factory17 = require("@lukemorales/query-key-factory");
|
|
2287
|
+
|
|
2288
|
+
// src/v2/incentives/api.ts
|
|
2289
|
+
async function getIncentives() {
|
|
2290
|
+
const params = new URLSearchParams();
|
|
2291
|
+
const queryString = params.toString();
|
|
2292
|
+
const endpoint = `/turtle/incentives${queryString ? `?${queryString}` : ""}`;
|
|
2293
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2294
|
+
method: "GET"
|
|
2295
|
+
});
|
|
2296
|
+
const result = incentivesResponseSchema.safeParse(data);
|
|
2297
|
+
if (result.success === false) {
|
|
2298
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2299
|
+
throw new Error(`Failed to parse incentives: ${result.error.message}`);
|
|
2300
|
+
}
|
|
2301
|
+
return result.data;
|
|
2302
|
+
}
|
|
2303
|
+
async function getIncentive(id) {
|
|
2304
|
+
const endpoint = `/admin/incentives/${id}`;
|
|
2305
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2306
|
+
method: "GET"
|
|
2307
|
+
});
|
|
2308
|
+
const result = incentiveSchema.safeParse(data);
|
|
2309
|
+
if (result.success === false) {
|
|
2310
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2311
|
+
throw new Error(`Failed to parse incentive: ${result.error.message}`);
|
|
2312
|
+
}
|
|
2313
|
+
return result.data;
|
|
2314
|
+
}
|
|
2315
|
+
async function createIncentive(input) {
|
|
2316
|
+
const endpoint = `/admin/incentives`;
|
|
2317
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2318
|
+
method: "POST",
|
|
2319
|
+
body: JSON.stringify(input),
|
|
2320
|
+
headers: {
|
|
2321
|
+
"Content-Type": "application/json"
|
|
2322
|
+
}
|
|
2323
|
+
});
|
|
2324
|
+
const result = incentiveSchema.safeParse(data);
|
|
2325
|
+
if (result.success === false) {
|
|
2326
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2327
|
+
throw new Error(`Failed to create incentive: ${result.error.message}`);
|
|
2328
|
+
}
|
|
2329
|
+
return result.data;
|
|
2330
|
+
}
|
|
2331
|
+
async function updateIncentive(input) {
|
|
2332
|
+
const endpoint = `/admin/incentives/${input.id}`;
|
|
2333
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2334
|
+
method: "PUT",
|
|
2335
|
+
body: JSON.stringify({ incentive: input }),
|
|
2336
|
+
headers: {
|
|
2337
|
+
"Content-Type": "application/json"
|
|
2338
|
+
}
|
|
2339
|
+
});
|
|
2340
|
+
const result = incentiveSchema.safeParse(data);
|
|
2341
|
+
if (result.success === false) {
|
|
2342
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2343
|
+
throw new Error(`Failed to update incentive: ${result.error.message}`);
|
|
2344
|
+
}
|
|
2345
|
+
return result.data;
|
|
2346
|
+
}
|
|
2347
|
+
async function deleteIncentive(id) {
|
|
2348
|
+
const endpoint = `/admin/incentives/${id}`;
|
|
2349
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2350
|
+
method: "DELETE",
|
|
2351
|
+
headers: {
|
|
2352
|
+
"Content-Type": "application/json"
|
|
2353
|
+
}
|
|
2354
|
+
});
|
|
2355
|
+
const result = incentiveSchema.safeParse(data);
|
|
2356
|
+
if (result.success === false) {
|
|
2357
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2358
|
+
throw new Error(`Failed to delete incentive: ${result.error.message}`);
|
|
2359
|
+
}
|
|
2360
|
+
}
|
|
2361
|
+
async function uploadIncentiveIcon({
|
|
2362
|
+
file,
|
|
2363
|
+
filename,
|
|
2364
|
+
overwrite
|
|
2365
|
+
}) {
|
|
2366
|
+
const endpoint = `/admin/products/upload-logo`;
|
|
2367
|
+
const formData = new FormData();
|
|
2368
|
+
formData.append("file", file, filename || file.name);
|
|
2369
|
+
if (overwrite) {
|
|
2370
|
+
formData.append("overwrite", "true");
|
|
2371
|
+
}
|
|
2372
|
+
if (filename) {
|
|
2373
|
+
formData.append("filename", filename);
|
|
2374
|
+
}
|
|
2375
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2376
|
+
method: "POST",
|
|
2377
|
+
body: formData
|
|
2378
|
+
// Don't set Content-Type header - let the browser set it with boundary for multipart/form-data
|
|
2379
|
+
});
|
|
2380
|
+
const result = uploadIncentiveIconResponseSchema.safeParse(data);
|
|
2381
|
+
if (result.success === false) {
|
|
2382
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2383
|
+
throw new Error(`Failed to upload incentive icon: ${result.error.message}`);
|
|
2384
|
+
}
|
|
2385
|
+
return result.data;
|
|
2386
|
+
}
|
|
2387
|
+
|
|
2388
|
+
// src/v2/incentives/queries.ts
|
|
2389
|
+
var incentivesQueries = (0, import_query_key_factory17.createQueryKeys)("incentives", {
|
|
2390
|
+
// Get all incentives (no filters)
|
|
2391
|
+
all: {
|
|
2392
|
+
queryKey: null,
|
|
2393
|
+
queryFn: () => getIncentives()
|
|
2394
|
+
},
|
|
2395
|
+
byId: (id) => ({
|
|
2396
|
+
queryKey: [id],
|
|
2397
|
+
queryFn: () => getIncentive(id)
|
|
2398
|
+
})
|
|
2399
|
+
});
|
|
2400
|
+
|
|
2401
|
+
// src/v2/liquidity-providers/queries.ts
|
|
2402
|
+
var import_query_key_factory18 = require("@lukemorales/query-key-factory");
|
|
2403
|
+
|
|
2404
|
+
// src/v2/liquidity-providers/schema.ts
|
|
2405
|
+
var import_zod18 = require("zod");
|
|
2406
|
+
var sortBySchema2 = import_zod18.z.enum(["username", "telegram", "total_tvl", "active_tvl", "first_deposit", "wallet_count"]).optional();
|
|
2407
|
+
var sortOrderSchema2 = import_zod18.z.enum(["asc", "desc"]).optional();
|
|
2408
|
+
var getLiquidityProvidersInputSchema = import_zod18.z.object({
|
|
2409
|
+
organizationId: import_zod18.z.string().uuid().optional(),
|
|
2410
|
+
productId: import_zod18.z.string().uuid().optional(),
|
|
2411
|
+
opportunityId: import_zod18.z.string().uuid().optional(),
|
|
2412
|
+
sortBy: sortBySchema2,
|
|
2413
|
+
sortOrder: sortOrderSchema2,
|
|
2414
|
+
limit: import_zod18.z.number().int().min(1).max(100).optional().default(20),
|
|
2415
|
+
offset: import_zod18.z.number().int().min(0).optional().default(0)
|
|
2416
|
+
});
|
|
2417
|
+
var liquidityProviderSchema = import_zod18.z.object({
|
|
2418
|
+
username: import_zod18.z.string(),
|
|
2419
|
+
totalTvl: import_zod18.z.number(),
|
|
2420
|
+
activeTvl: import_zod18.z.number(),
|
|
2421
|
+
opportunities: import_zod18.z.array(import_zod18.z.string().uuid()),
|
|
2422
|
+
telegram: import_zod18.z.string(),
|
|
2423
|
+
firstDeposit: import_zod18.z.string().datetime(),
|
|
2424
|
+
// ISO 8601 format (time.Time in Go)
|
|
2425
|
+
walletCount: import_zod18.z.number().int()
|
|
2426
|
+
});
|
|
2427
|
+
var GetLiquidityProvidersResponseSchema = import_zod18.z.object({
|
|
2428
|
+
liquidityProviders: import_zod18.z.array(liquidityProviderSchema),
|
|
2429
|
+
pagination: paginationMetadataSchema
|
|
2430
|
+
});
|
|
2431
|
+
|
|
2432
|
+
// src/v2/liquidity-providers/api.ts
|
|
2433
|
+
async function getLiquidityProviders(input) {
|
|
2434
|
+
const params = new URLSearchParams();
|
|
2435
|
+
if (input.organizationId) params.append("organization_id", input.organizationId);
|
|
2436
|
+
if (input.productId) params.append("product_id", input.productId);
|
|
2437
|
+
if (input.opportunityId) params.append("opportunity_id", input.opportunityId);
|
|
2438
|
+
if (input.sortBy) params.append("sort_by", input.sortBy);
|
|
2439
|
+
if (input.sortOrder) params.append("sort_order", input.sortOrder);
|
|
2440
|
+
if (input.limit !== void 0) params.append("limit", input.limit.toString());
|
|
2441
|
+
if (input.offset !== void 0) params.append("offset", input.offset.toString());
|
|
2442
|
+
const queryString = params.toString();
|
|
2443
|
+
const endpoint = `/admin/deposits/liquidity-providers${queryString ? `?${queryString}` : ""}`;
|
|
2444
|
+
const data = await apiClient.fetch(endpoint, {
|
|
2445
|
+
method: "GET"
|
|
2446
|
+
});
|
|
2447
|
+
const result = GetLiquidityProvidersResponseSchema.safeParse(data);
|
|
2448
|
+
if (result.success === false) {
|
|
2449
|
+
console.log("[ZOD ERROR]", result.error);
|
|
2450
|
+
throw new Error(`Failed to parse liquidity providers: ${result.error.message}`);
|
|
2451
|
+
}
|
|
2452
|
+
return result.data;
|
|
1911
2453
|
}
|
|
1912
2454
|
|
|
2455
|
+
// src/v2/liquidity-providers/queries.ts
|
|
2456
|
+
var liquidityProvidersQueries = (0, import_query_key_factory18.createQueryKeys)(
|
|
2457
|
+
"liquidityProviders",
|
|
2458
|
+
{
|
|
2459
|
+
// Get liquidity providers with filters
|
|
2460
|
+
list: (input) => ({
|
|
2461
|
+
queryKey: [{ input }],
|
|
2462
|
+
queryFn: () => getLiquidityProviders(input)
|
|
2463
|
+
})
|
|
2464
|
+
}
|
|
2465
|
+
);
|
|
2466
|
+
|
|
1913
2467
|
// src/v2/earn-opportunities/hooks.ts
|
|
2468
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
1914
2469
|
function useEarnOpportunities() {
|
|
1915
|
-
return (0,
|
|
2470
|
+
return (0, import_react_query5.useQuery)({
|
|
1916
2471
|
...earnOpportunitiesQueries.all,
|
|
1917
2472
|
...queryDefaults
|
|
1918
2473
|
});
|
|
1919
2474
|
}
|
|
1920
2475
|
|
|
1921
2476
|
// src/v2/earn-route/hooks.ts
|
|
1922
|
-
var
|
|
2477
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
1923
2478
|
function useEarnRoute({ params, enabled = true }) {
|
|
1924
|
-
return (0,
|
|
2479
|
+
return (0, import_react_query6.useQuery)({
|
|
1925
2480
|
// Null assertion is safe because the query is enable only if params is provided
|
|
1926
2481
|
...earnRouteQueries.byParams(params),
|
|
1927
2482
|
...queryDefaults,
|
|
@@ -1930,25 +2485,25 @@ function useEarnRoute({ params, enabled = true }) {
|
|
|
1930
2485
|
}
|
|
1931
2486
|
|
|
1932
2487
|
// src/v2/earn-membership/hooks.ts
|
|
1933
|
-
var
|
|
2488
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
1934
2489
|
function useCheckMembership({
|
|
1935
2490
|
params,
|
|
1936
2491
|
enabled = true
|
|
1937
2492
|
}) {
|
|
1938
|
-
return (0,
|
|
2493
|
+
return (0, import_react_query7.useQuery)({
|
|
1939
2494
|
...earnMembershipQueries.check(params),
|
|
1940
2495
|
...queryDefaults,
|
|
1941
2496
|
enabled
|
|
1942
2497
|
});
|
|
1943
2498
|
}
|
|
1944
2499
|
function useCreateMembershipAgreement() {
|
|
1945
|
-
return (0,
|
|
2500
|
+
return (0, import_react_query7.useMutation)({
|
|
1946
2501
|
mutationFn: (request) => createMembershipAgreement(request)
|
|
1947
2502
|
});
|
|
1948
2503
|
}
|
|
1949
2504
|
function useCreateMembership() {
|
|
1950
|
-
const queryClient = (0,
|
|
1951
|
-
return (0,
|
|
2505
|
+
const queryClient = (0, import_react_query7.useQueryClient)();
|
|
2506
|
+
return (0, import_react_query7.useMutation)({
|
|
1952
2507
|
mutationFn: (request) => createMembership(request),
|
|
1953
2508
|
onSuccess: (data, variables) => {
|
|
1954
2509
|
queryClient.invalidateQueries({
|
|
@@ -1962,10 +2517,10 @@ function useCreateMembership() {
|
|
|
1962
2517
|
}
|
|
1963
2518
|
|
|
1964
2519
|
// src/v2/earn-deposits/hooks.ts
|
|
1965
|
-
var
|
|
2520
|
+
var import_react_query11 = require("@tanstack/react-query");
|
|
1966
2521
|
|
|
1967
2522
|
// src/v2/earn-deposits/hooks/useDepositValidation.ts
|
|
1968
|
-
var
|
|
2523
|
+
var import_react2 = require("react");
|
|
1969
2524
|
var import_viem = require("viem");
|
|
1970
2525
|
function calculateUsdValue(amount, token) {
|
|
1971
2526
|
if (!token.priceUsd) return null;
|
|
@@ -1980,7 +2535,7 @@ function useDepositValidation({
|
|
|
1980
2535
|
isConfirming = false,
|
|
1981
2536
|
walletChainId
|
|
1982
2537
|
}) {
|
|
1983
|
-
return (0,
|
|
2538
|
+
return (0, import_react2.useMemo)(() => {
|
|
1984
2539
|
if (!opportunity) {
|
|
1985
2540
|
return {
|
|
1986
2541
|
canDeposit: false,
|
|
@@ -2126,10 +2681,10 @@ function useDepositValidation({
|
|
|
2126
2681
|
}
|
|
2127
2682
|
|
|
2128
2683
|
// src/v2/earn-deposits/hooks/useDepositSelection.ts
|
|
2129
|
-
var
|
|
2684
|
+
var import_react4 = require("react");
|
|
2130
2685
|
|
|
2131
2686
|
// src/v2/balance/hooks/useTokenBalance.ts
|
|
2132
|
-
var
|
|
2687
|
+
var import_react3 = require("react");
|
|
2133
2688
|
var import_viem2 = require("viem");
|
|
2134
2689
|
var import_utils2 = require("@turtleclub/utils");
|
|
2135
2690
|
function checkInsufficientBalance(tokenBalance, amount) {
|
|
@@ -2145,20 +2700,20 @@ function checkInsufficientBalance(tokenBalance, amount) {
|
|
|
2145
2700
|
}
|
|
2146
2701
|
function useTokenBalance({ tokenBalance, amount, setAmount }) {
|
|
2147
2702
|
const token = tokenBalance?.token;
|
|
2148
|
-
const usdValue = (0,
|
|
2703
|
+
const usdValue = (0, import_react3.useMemo)(
|
|
2149
2704
|
() => (0, import_utils2.calculateUsdValue)(amount, token?.priceUsd),
|
|
2150
2705
|
[amount, token?.priceUsd]
|
|
2151
2706
|
);
|
|
2152
|
-
const hasInsufficientBalance = (0,
|
|
2707
|
+
const hasInsufficientBalance = (0, import_react3.useMemo)(
|
|
2153
2708
|
() => checkInsufficientBalance(tokenBalance, amount),
|
|
2154
2709
|
[tokenBalance, amount]
|
|
2155
2710
|
);
|
|
2156
|
-
const handleMaxClick = (0,
|
|
2711
|
+
const handleMaxClick = (0, import_react3.useCallback)(() => {
|
|
2157
2712
|
if (!tokenBalance?.token || !tokenBalance.amount) return;
|
|
2158
2713
|
const maxAmount = (0, import_utils2.calculateMaxAmount)(tokenBalance.amount, tokenBalance.token.decimals);
|
|
2159
2714
|
setAmount(maxAmount);
|
|
2160
2715
|
}, [tokenBalance, setAmount]);
|
|
2161
|
-
const amountBigInt = (0,
|
|
2716
|
+
const amountBigInt = (0, import_react3.useMemo)(() => {
|
|
2162
2717
|
if (!token || !amount) return void 0;
|
|
2163
2718
|
try {
|
|
2164
2719
|
return (0, import_viem2.parseUnits)(amount, token.decimals);
|
|
@@ -2179,13 +2734,13 @@ function useDepositSelection({
|
|
|
2179
2734
|
balances,
|
|
2180
2735
|
opportunityId
|
|
2181
2736
|
}) {
|
|
2182
|
-
const [selectedTokenAddress, setSelectedTokenAddress] = (0,
|
|
2183
|
-
const [amount, setAmount] = (0,
|
|
2184
|
-
(0,
|
|
2737
|
+
const [selectedTokenAddress, setSelectedTokenAddress] = (0, import_react4.useState)();
|
|
2738
|
+
const [amount, setAmount] = (0, import_react4.useState)();
|
|
2739
|
+
(0, import_react4.useEffect)(() => {
|
|
2185
2740
|
setSelectedTokenAddress(void 0);
|
|
2186
2741
|
setAmount(void 0);
|
|
2187
2742
|
}, [opportunityId]);
|
|
2188
|
-
(0,
|
|
2743
|
+
(0, import_react4.useEffect)(() => {
|
|
2189
2744
|
if (balances.length === 0) return;
|
|
2190
2745
|
const tokenExistsInBalances = balances.some(
|
|
2191
2746
|
(b) => b.token.address === selectedTokenAddress
|
|
@@ -2194,7 +2749,7 @@ function useDepositSelection({
|
|
|
2194
2749
|
setSelectedTokenAddress(balances[0].token.address);
|
|
2195
2750
|
}
|
|
2196
2751
|
}, [selectedTokenAddress, balances]);
|
|
2197
|
-
const selectedTokenBalance = (0,
|
|
2752
|
+
const selectedTokenBalance = (0, import_react4.useMemo)(
|
|
2198
2753
|
() => balances.find((b) => b.token.address === selectedTokenAddress) ?? null,
|
|
2199
2754
|
[balances, selectedTokenAddress]
|
|
2200
2755
|
);
|
|
@@ -2203,7 +2758,7 @@ function useDepositSelection({
|
|
|
2203
2758
|
amount,
|
|
2204
2759
|
setAmount
|
|
2205
2760
|
});
|
|
2206
|
-
const reset = (0,
|
|
2761
|
+
const reset = (0, import_react4.useCallback)(() => {
|
|
2207
2762
|
setSelectedTokenAddress(void 0);
|
|
2208
2763
|
setAmount(void 0);
|
|
2209
2764
|
}, []);
|
|
@@ -2222,55 +2777,55 @@ function useDepositSelection({
|
|
|
2222
2777
|
}
|
|
2223
2778
|
|
|
2224
2779
|
// src/v2/earn-deposits/hooks/useDepositFlow.ts
|
|
2225
|
-
var
|
|
2780
|
+
var import_react6 = require("react");
|
|
2226
2781
|
|
|
2227
2782
|
// src/v2/earn-actions/useEarnDeposit.ts
|
|
2228
|
-
var
|
|
2229
|
-
var
|
|
2783
|
+
var import_react5 = require("react");
|
|
2784
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
2230
2785
|
|
|
2231
2786
|
// src/v2/earn-actions/hooks.ts
|
|
2232
|
-
var
|
|
2787
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
2233
2788
|
|
|
2234
2789
|
// src/v2/earn-actions/schema.ts
|
|
2235
|
-
var
|
|
2236
|
-
var transactionSchema =
|
|
2237
|
-
chainId:
|
|
2238
|
-
data:
|
|
2239
|
-
to:
|
|
2240
|
-
value:
|
|
2241
|
-
gasLimit:
|
|
2242
|
-
});
|
|
2243
|
-
var routeTokenSchema =
|
|
2244
|
-
address:
|
|
2245
|
-
symbol:
|
|
2246
|
-
decimals:
|
|
2247
|
-
logoUrl:
|
|
2248
|
-
});
|
|
2249
|
-
var routeStepSchema =
|
|
2250
|
-
action:
|
|
2790
|
+
var import_zod19 = require("zod");
|
|
2791
|
+
var transactionSchema = import_zod19.z.object({
|
|
2792
|
+
chainId: import_zod19.z.number().int(),
|
|
2793
|
+
data: import_zod19.z.string(),
|
|
2794
|
+
to: import_zod19.z.string(),
|
|
2795
|
+
value: import_zod19.z.string(),
|
|
2796
|
+
gasLimit: import_zod19.z.string().optional()
|
|
2797
|
+
});
|
|
2798
|
+
var routeTokenSchema = import_zod19.z.object({
|
|
2799
|
+
address: import_zod19.z.string(),
|
|
2800
|
+
symbol: import_zod19.z.string(),
|
|
2801
|
+
decimals: import_zod19.z.number().int(),
|
|
2802
|
+
logoUrl: import_zod19.z.string()
|
|
2803
|
+
});
|
|
2804
|
+
var routeStepSchema = import_zod19.z.object({
|
|
2805
|
+
action: import_zod19.z.string(),
|
|
2251
2806
|
from: routeTokenSchema,
|
|
2252
2807
|
to: routeTokenSchema
|
|
2253
2808
|
});
|
|
2254
|
-
var routeMetadataSchema =
|
|
2255
|
-
provider:
|
|
2256
|
-
providerImg:
|
|
2257
|
-
amountOut:
|
|
2258
|
-
gas:
|
|
2259
|
-
route:
|
|
2809
|
+
var routeMetadataSchema = import_zod19.z.object({
|
|
2810
|
+
provider: import_zod19.z.string(),
|
|
2811
|
+
providerImg: import_zod19.z.string(),
|
|
2812
|
+
amountOut: import_zod19.z.string(),
|
|
2813
|
+
gas: import_zod19.z.string(),
|
|
2814
|
+
route: import_zod19.z.array(routeStepSchema)
|
|
2260
2815
|
});
|
|
2261
|
-
var txResponseItemSchema =
|
|
2262
|
-
type:
|
|
2263
|
-
description:
|
|
2816
|
+
var txResponseItemSchema = import_zod19.z.object({
|
|
2817
|
+
type: import_zod19.z.string().optional(),
|
|
2818
|
+
description: import_zod19.z.string().optional(),
|
|
2264
2819
|
transaction: transactionSchema,
|
|
2265
2820
|
metadata: routeMetadataSchema.optional()
|
|
2266
2821
|
});
|
|
2267
|
-
var actionResponseSchema =
|
|
2268
|
-
actionId:
|
|
2269
|
-
transactions:
|
|
2822
|
+
var actionResponseSchema = import_zod19.z.object({
|
|
2823
|
+
actionId: import_zod19.z.string().uuid().optional(),
|
|
2824
|
+
transactions: import_zod19.z.array(txResponseItemSchema).nullable()
|
|
2270
2825
|
});
|
|
2271
|
-
var attributeActionResponseSchema =
|
|
2272
|
-
success:
|
|
2273
|
-
message:
|
|
2826
|
+
var attributeActionResponseSchema = import_zod19.z.object({
|
|
2827
|
+
success: import_zod19.z.boolean(),
|
|
2828
|
+
message: import_zod19.z.string().optional()
|
|
2274
2829
|
});
|
|
2275
2830
|
|
|
2276
2831
|
// src/v2/earn-actions/api.ts
|
|
@@ -2339,7 +2894,7 @@ var createClaimWithdrawInteraction = createClaimWithdrawAction;
|
|
|
2339
2894
|
// src/v2/earn-actions/hooks.ts
|
|
2340
2895
|
function createActionHook(mutationFn) {
|
|
2341
2896
|
return function useAction(options) {
|
|
2342
|
-
return (0,
|
|
2897
|
+
return (0, import_react_query8.useMutation)({
|
|
2343
2898
|
mutationFn,
|
|
2344
2899
|
...options
|
|
2345
2900
|
});
|
|
@@ -2352,7 +2907,7 @@ var useClaimDepositAction = createActionHook(createClaimDepositAction);
|
|
|
2352
2907
|
var useCancelDepositAction = createActionHook(createCancelDepositAction);
|
|
2353
2908
|
var useCancelWithdrawAction = createActionHook(createCancelWithdrawAction);
|
|
2354
2909
|
function useAttributeAction(options) {
|
|
2355
|
-
return (0,
|
|
2910
|
+
return (0, import_react_query8.useMutation)({
|
|
2356
2911
|
mutationFn: attributeAction,
|
|
2357
2912
|
...options
|
|
2358
2913
|
});
|
|
@@ -2361,65 +2916,6 @@ var useCreateDepositInteraction = useDepositAction;
|
|
|
2361
2916
|
var useCreateWithdrawInteraction = useWithdrawAction;
|
|
2362
2917
|
var useCreateClaimWithdrawInteraction = useClaimWithdrawAction;
|
|
2363
2918
|
|
|
2364
|
-
// src/v2/balance/queries.ts
|
|
2365
|
-
var import_query_key_factory15 = require("@lukemorales/query-key-factory");
|
|
2366
|
-
|
|
2367
|
-
// src/v2/balance/schema.ts
|
|
2368
|
-
var import_zod15 = require("zod");
|
|
2369
|
-
var portfolioTokenSchema = import_zod15.z.object({
|
|
2370
|
-
id: import_zod15.z.string(),
|
|
2371
|
-
address: import_zod15.z.string(),
|
|
2372
|
-
name: import_zod15.z.string(),
|
|
2373
|
-
symbol: import_zod15.z.string(),
|
|
2374
|
-
decimals: import_zod15.z.number(),
|
|
2375
|
-
isNative: import_zod15.z.boolean(),
|
|
2376
|
-
logoUrl: import_zod15.z.string().nullable(),
|
|
2377
|
-
amount: import_zod15.z.string(),
|
|
2378
|
-
// Portfolio-specific field (decimal format)
|
|
2379
|
-
price: import_zod15.z.string().nullable().transform((val) => val ? parseFloat(val) : null),
|
|
2380
|
-
// Portfolio-specific field
|
|
2381
|
-
// Chain with optional fields to match Portfolio API response
|
|
2382
|
-
chain: chainSchema.partial().required({ chainId: true })
|
|
2383
|
-
});
|
|
2384
|
-
var portfolioWalletSchema = import_zod15.z.object({
|
|
2385
|
-
id: import_zod15.z.string().optional(),
|
|
2386
|
-
address: import_zod15.z.string(),
|
|
2387
|
-
blockchain: import_zod15.z.string().optional(),
|
|
2388
|
-
tokens: import_zod15.z.array(portfolioTokenSchema)
|
|
2389
|
-
});
|
|
2390
|
-
var portfolioHoldingsSchema = import_zod15.z.object({
|
|
2391
|
-
wallets: import_zod15.z.array(portfolioWalletSchema)
|
|
2392
|
-
});
|
|
2393
|
-
var portfolioBalanceResponseSchema = import_zod15.z.object({
|
|
2394
|
-
portfolio: import_zod15.z.object({
|
|
2395
|
-
holdings: portfolioHoldingsSchema
|
|
2396
|
-
})
|
|
2397
|
-
});
|
|
2398
|
-
|
|
2399
|
-
// src/v2/balance/api.ts
|
|
2400
|
-
async function getPortfolioBalance(address, options) {
|
|
2401
|
-
const data = await apiClient.fetch(`/wallet/${address}/balance`, {
|
|
2402
|
-
method: "GET",
|
|
2403
|
-
domain: "api",
|
|
2404
|
-
debug: options?.debug
|
|
2405
|
-
});
|
|
2406
|
-
const result = portfolioBalanceResponseSchema.safeParse(data);
|
|
2407
|
-
if (result.success === false) {
|
|
2408
|
-
console.log("[ZOD ERROR]", result.error);
|
|
2409
|
-
throw new Error(`Failed to parse portfolio balance: ${result.error.message}`);
|
|
2410
|
-
}
|
|
2411
|
-
return result.data;
|
|
2412
|
-
}
|
|
2413
|
-
|
|
2414
|
-
// src/v2/balance/queries.ts
|
|
2415
|
-
var balanceQueries = (0, import_query_key_factory15.createQueryKeys)("balance", {
|
|
2416
|
-
// Portfolio balance by address
|
|
2417
|
-
portfolio: (address) => ({
|
|
2418
|
-
queryKey: [address],
|
|
2419
|
-
queryFn: () => getPortfolioBalance(address)
|
|
2420
|
-
})
|
|
2421
|
-
});
|
|
2422
|
-
|
|
2423
2919
|
// src/v2/earn-actions/useEarnDeposit.ts
|
|
2424
2920
|
var DEFAULT_SLIPPAGE_BPS = 50;
|
|
2425
2921
|
function useEarnDeposit(options) {
|
|
@@ -2432,14 +2928,14 @@ function useEarnDeposit(options) {
|
|
|
2432
2928
|
onSuccess,
|
|
2433
2929
|
referralCode
|
|
2434
2930
|
} = options;
|
|
2435
|
-
const queryClient = (0,
|
|
2436
|
-
const [isConfirming, setIsConfirming] = (0,
|
|
2437
|
-
const [error, setError] = (0,
|
|
2438
|
-
const [metadata, setMetadata] = (0,
|
|
2439
|
-
const [hasApprove, setHasApprove] = (0,
|
|
2931
|
+
const queryClient = (0, import_react_query9.useQueryClient)();
|
|
2932
|
+
const [isConfirming, setIsConfirming] = (0, import_react5.useState)(false);
|
|
2933
|
+
const [error, setError] = (0, import_react5.useState)(null);
|
|
2934
|
+
const [metadata, setMetadata] = (0, import_react5.useState)(null);
|
|
2935
|
+
const [hasApprove, setHasApprove] = (0, import_react5.useState)(false);
|
|
2440
2936
|
const depositAction = useDepositAction();
|
|
2441
2937
|
const attributeAction2 = useAttributeAction();
|
|
2442
|
-
const toTransactionRequest = (0,
|
|
2938
|
+
const toTransactionRequest = (0, import_react5.useCallback)((txItem) => {
|
|
2443
2939
|
return {
|
|
2444
2940
|
to: txItem.transaction.to,
|
|
2445
2941
|
data: txItem.transaction.data,
|
|
@@ -2448,7 +2944,7 @@ function useEarnDeposit(options) {
|
|
|
2448
2944
|
type: txItem.type
|
|
2449
2945
|
};
|
|
2450
2946
|
}, []);
|
|
2451
|
-
const executeTransactionsSequentially = (0,
|
|
2947
|
+
const executeTransactionsSequentially = (0, import_react5.useCallback)(
|
|
2452
2948
|
async (transactions) => {
|
|
2453
2949
|
let lastTxHash;
|
|
2454
2950
|
for (const txItem of transactions) {
|
|
@@ -2463,7 +2959,7 @@ function useEarnDeposit(options) {
|
|
|
2463
2959
|
},
|
|
2464
2960
|
[executeTransactionAndWait, toTransactionRequest]
|
|
2465
2961
|
);
|
|
2466
|
-
const attributeTransactionSafely = (0,
|
|
2962
|
+
const attributeTransactionSafely = (0, import_react5.useCallback)(
|
|
2467
2963
|
async (actionId, txHash) => {
|
|
2468
2964
|
try {
|
|
2469
2965
|
await attributeAction2.mutateAsync({ actionId, txHash });
|
|
@@ -2473,7 +2969,7 @@ function useEarnDeposit(options) {
|
|
|
2473
2969
|
},
|
|
2474
2970
|
[attributeAction2]
|
|
2475
2971
|
);
|
|
2476
|
-
const deposit = (0,
|
|
2972
|
+
const deposit = (0, import_react5.useCallback)(
|
|
2477
2973
|
async (amount, tokenAddress, slippage = DEFAULT_SLIPPAGE_BPS) => {
|
|
2478
2974
|
setError(null);
|
|
2479
2975
|
if (!opportunity?.id) {
|
|
@@ -2544,7 +3040,7 @@ function useEarnDeposit(options) {
|
|
|
2544
3040
|
onSuccess
|
|
2545
3041
|
]
|
|
2546
3042
|
);
|
|
2547
|
-
const resetMetadata = (0,
|
|
3043
|
+
const resetMetadata = (0, import_react5.useCallback)(() => {
|
|
2548
3044
|
setMetadata(null);
|
|
2549
3045
|
setHasApprove(false);
|
|
2550
3046
|
}, []);
|
|
@@ -2606,7 +3102,7 @@ function useDepositFlow({
|
|
|
2606
3102
|
isConfirming,
|
|
2607
3103
|
walletChainId
|
|
2608
3104
|
});
|
|
2609
|
-
const execute = (0,
|
|
3105
|
+
const execute = (0, import_react6.useCallback)(async () => {
|
|
2610
3106
|
if (!selection.amountBigInt || !selection.selectedTokenAddress) {
|
|
2611
3107
|
return void 0;
|
|
2612
3108
|
}
|
|
@@ -2634,7 +3130,7 @@ var import_react10 = require("react");
|
|
|
2634
3130
|
// src/v2/balance/hooks/useGetOnChainBalance.ts
|
|
2635
3131
|
var import_wagmi = require("wagmi");
|
|
2636
3132
|
var import_viem3 = require("viem");
|
|
2637
|
-
var
|
|
3133
|
+
var import_react7 = require("react");
|
|
2638
3134
|
var NATIVE_TOKEN_ADDRESSES = [
|
|
2639
3135
|
"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
2640
3136
|
"0x0000000000000000000000000000000000000000"
|
|
@@ -2649,7 +3145,7 @@ function useGetOnChainBalance({
|
|
|
2649
3145
|
address,
|
|
2650
3146
|
enabled = true
|
|
2651
3147
|
}) {
|
|
2652
|
-
const { nativeTokens, erc20Tokens } = (0,
|
|
3148
|
+
const { nativeTokens, erc20Tokens } = (0, import_react7.useMemo)(() => {
|
|
2653
3149
|
const native = [];
|
|
2654
3150
|
const erc20 = [];
|
|
2655
3151
|
for (const token of tokens) {
|
|
@@ -2677,7 +3173,7 @@ function useGetOnChainBalance({
|
|
|
2677
3173
|
refetchOnWindowFocus: true
|
|
2678
3174
|
}
|
|
2679
3175
|
});
|
|
2680
|
-
const contracts = (0,
|
|
3176
|
+
const contracts = (0, import_react7.useMemo)(() => {
|
|
2681
3177
|
if (!address || !enabled) return [];
|
|
2682
3178
|
return erc20Tokens.map(
|
|
2683
3179
|
(token) => ({
|
|
@@ -2703,7 +3199,7 @@ function useGetOnChainBalance({
|
|
|
2703
3199
|
refetchOnWindowFocus: true
|
|
2704
3200
|
}
|
|
2705
3201
|
});
|
|
2706
|
-
const balances = (0,
|
|
3202
|
+
const balances = (0, import_react7.useMemo)(() => {
|
|
2707
3203
|
const result = [];
|
|
2708
3204
|
if (nativeToken && nativeBalanceData) {
|
|
2709
3205
|
result.push({
|
|
@@ -2730,7 +3226,7 @@ function useGetOnChainBalance({
|
|
|
2730
3226
|
}, [nativeToken, nativeBalanceData, erc20Results, erc20Tokens]);
|
|
2731
3227
|
const isLoading = nativeTokens.length > 0 && isNativeLoading || erc20Tokens.length > 0 && isErc20Loading;
|
|
2732
3228
|
const error = nativeError || erc20Error;
|
|
2733
|
-
const refetch = (0,
|
|
3229
|
+
const refetch = (0, import_react7.useCallback)(() => {
|
|
2734
3230
|
if (nativeTokens.length > 0) {
|
|
2735
3231
|
refetchNative();
|
|
2736
3232
|
}
|
|
@@ -2750,73 +3246,8 @@ function useGetOnChainBalance({
|
|
|
2750
3246
|
var import_react9 = require("react");
|
|
2751
3247
|
|
|
2752
3248
|
// src/v2/balance/hooks/usePortfolioBalance.ts
|
|
2753
|
-
var
|
|
3249
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
2754
3250
|
var import_react8 = require("react");
|
|
2755
|
-
|
|
2756
|
-
// src/v2/supported-chains/hooks.ts
|
|
2757
|
-
var import_react_query6 = require("@tanstack/react-query");
|
|
2758
|
-
function useSupportedChains(options) {
|
|
2759
|
-
const { debug, enabled = true, ...params } = options || {};
|
|
2760
|
-
const { data, isLoading, error, refetch, isFetching } = (0, import_react_query6.useQuery)({
|
|
2761
|
-
...supportedChainsQueries.all(params, { debug }),
|
|
2762
|
-
...queryDefaults,
|
|
2763
|
-
enabled
|
|
2764
|
-
});
|
|
2765
|
-
const chains = data?.chains ?? [];
|
|
2766
|
-
const pagination = data?.pagination;
|
|
2767
|
-
return {
|
|
2768
|
-
chains,
|
|
2769
|
-
pagination,
|
|
2770
|
-
getChainByChainId: (chainId) => chains.find((chain) => chain.chainId === chainId),
|
|
2771
|
-
getChainBySlug: (slug) => chains.find((chain) => chain.slug === slug),
|
|
2772
|
-
getChainsByEcosystem: (ecosystem) => chains.filter((chain) => chain.ecosystem === ecosystem),
|
|
2773
|
-
isLoading,
|
|
2774
|
-
error: error ? error : null,
|
|
2775
|
-
refetch,
|
|
2776
|
-
isFetching
|
|
2777
|
-
};
|
|
2778
|
-
}
|
|
2779
|
-
|
|
2780
|
-
// src/v2/supported-tokens/hooks.ts
|
|
2781
|
-
var import_react_query7 = require("@tanstack/react-query");
|
|
2782
|
-
var import_react7 = require("react");
|
|
2783
|
-
function useSupportedTokens({
|
|
2784
|
-
page = 0,
|
|
2785
|
-
limit = 20,
|
|
2786
|
-
search,
|
|
2787
|
-
enabled = true
|
|
2788
|
-
} = {}) {
|
|
2789
|
-
const { data, isLoading, error, refetch } = (0, import_react_query7.useQuery)({
|
|
2790
|
-
...supportedTokensQueries.list({ page, limit, search }),
|
|
2791
|
-
...queryDefaults,
|
|
2792
|
-
staleTime: 5 * 60 * 1e3,
|
|
2793
|
-
// 1 minutes
|
|
2794
|
-
gcTime: 10 * 60 * 1e3,
|
|
2795
|
-
// 10 minutes
|
|
2796
|
-
refetchOnWindowFocus: false,
|
|
2797
|
-
// Don't refetch on tab focus
|
|
2798
|
-
enabled
|
|
2799
|
-
});
|
|
2800
|
-
const tokens = (0, import_react7.useMemo)(() => {
|
|
2801
|
-
if (!data?.tokens) return [];
|
|
2802
|
-
return data.tokens.map(({ active, ...token }) => token);
|
|
2803
|
-
}, [data?.tokens]);
|
|
2804
|
-
return {
|
|
2805
|
-
tokens,
|
|
2806
|
-
total: data?.total ?? 0,
|
|
2807
|
-
limit: data?.limit ?? limit,
|
|
2808
|
-
page: data?.page ?? page,
|
|
2809
|
-
isLoading,
|
|
2810
|
-
error: error ? error : null,
|
|
2811
|
-
refetch,
|
|
2812
|
-
getTokenById: (id) => tokens.find((token) => token.id === id),
|
|
2813
|
-
getToken: (address, chainId) => tokens.find(
|
|
2814
|
-
(token) => token.address.toLowerCase() === address.toLowerCase() && token.chain.chainId === chainId
|
|
2815
|
-
)
|
|
2816
|
-
};
|
|
2817
|
-
}
|
|
2818
|
-
|
|
2819
|
-
// src/v2/balance/hooks/usePortfolioBalance.ts
|
|
2820
3251
|
var import_viem4 = require("viem");
|
|
2821
3252
|
function usePortfolioBalance({
|
|
2822
3253
|
address
|
|
@@ -2828,7 +3259,7 @@ function usePortfolioBalance({
|
|
|
2828
3259
|
isLoading,
|
|
2829
3260
|
error,
|
|
2830
3261
|
refetch
|
|
2831
|
-
} = (0,
|
|
3262
|
+
} = (0, import_react_query10.useQuery)({
|
|
2832
3263
|
...balanceQueries.portfolio(address || ""),
|
|
2833
3264
|
...queryDefaults,
|
|
2834
3265
|
enabled: !!address,
|
|
@@ -3108,7 +3539,7 @@ function useActionsDefaultParams({
|
|
|
3108
3539
|
|
|
3109
3540
|
// src/v2/earn-deposits/hooks.ts
|
|
3110
3541
|
function useDeposits({ params, enabled = true }) {
|
|
3111
|
-
return (0,
|
|
3542
|
+
return (0, import_react_query11.useQuery)({
|
|
3112
3543
|
...earnDepositsQueries.byParams(params),
|
|
3113
3544
|
...queryDefaults,
|
|
3114
3545
|
enabled
|
|
@@ -3117,12 +3548,12 @@ function useDeposits({ params, enabled = true }) {
|
|
|
3117
3548
|
|
|
3118
3549
|
// src/v2/enso-balances/hooks.ts
|
|
3119
3550
|
var import_react11 = require("react");
|
|
3120
|
-
var
|
|
3551
|
+
var import_react_query12 = require("@tanstack/react-query");
|
|
3121
3552
|
function useMultiChainBalances({
|
|
3122
3553
|
chainIds,
|
|
3123
3554
|
address
|
|
3124
3555
|
}) {
|
|
3125
|
-
const queries2 = (0,
|
|
3556
|
+
const queries2 = (0, import_react_query12.useQueries)({
|
|
3126
3557
|
queries: chainIds.map((chainId) => ({
|
|
3127
3558
|
...ensoBalancesQueries.byParams({ user: address || "", chain: chainId }),
|
|
3128
3559
|
enabled: !!address,
|
|
@@ -3157,92 +3588,42 @@ function useMultiChainBalances({
|
|
|
3157
3588
|
};
|
|
3158
3589
|
}
|
|
3159
3590
|
|
|
3160
|
-
// src/v2/opportunities/hooks.ts
|
|
3161
|
-
var import_react_query11 = require("@tanstack/react-query");
|
|
3162
|
-
function useOpportunities(options) {
|
|
3163
|
-
return (0, import_react_query11.useQuery)({
|
|
3164
|
-
...opportunitiesQueries.all,
|
|
3165
|
-
...queryDefaults,
|
|
3166
|
-
select: (data) => {
|
|
3167
|
-
const uniqueChainsMap = new Map(
|
|
3168
|
-
data.opportunities.map((opportunity) => opportunity.receiptToken?.chain).filter((chain) => chain !== void 0).map((chain) => [chain.id, chain])
|
|
3169
|
-
);
|
|
3170
|
-
const chains = Array.from(uniqueChainsMap.values());
|
|
3171
|
-
return {
|
|
3172
|
-
...data,
|
|
3173
|
-
chains
|
|
3174
|
-
};
|
|
3175
|
-
}
|
|
3176
|
-
});
|
|
3177
|
-
}
|
|
3178
|
-
function useOpportunity({ id, ...options }) {
|
|
3179
|
-
return (0, import_react_query11.useQuery)({
|
|
3180
|
-
...opportunitiesQueries.byId(id),
|
|
3181
|
-
...queryDefaults,
|
|
3182
|
-
select: (data) => {
|
|
3183
|
-
return {
|
|
3184
|
-
...data,
|
|
3185
|
-
chain: data.receiptToken?.chain
|
|
3186
|
-
};
|
|
3187
|
-
}
|
|
3188
|
-
});
|
|
3189
|
-
}
|
|
3190
|
-
function useOpportunitiesPaginated({
|
|
3191
|
-
params,
|
|
3192
|
-
enabled = true
|
|
3193
|
-
} = {}) {
|
|
3194
|
-
return (0, import_react_query11.useQuery)({
|
|
3195
|
-
...opportunitiesQueries.paginated(params),
|
|
3196
|
-
...queryDefaults,
|
|
3197
|
-
enabled
|
|
3198
|
-
});
|
|
3199
|
-
}
|
|
3200
|
-
function useOpportunitiesFilterOptions({
|
|
3201
|
-
enabled = true
|
|
3202
|
-
} = {}) {
|
|
3203
|
-
return (0, import_react_query11.useQuery)({
|
|
3204
|
-
...opportunitiesQueries.filterOptions,
|
|
3205
|
-
...queryDefaults,
|
|
3206
|
-
enabled
|
|
3207
|
-
});
|
|
3208
|
-
}
|
|
3209
|
-
|
|
3210
3591
|
// src/v2/products/hooks.ts
|
|
3211
|
-
var
|
|
3592
|
+
var import_react_query13 = require("@tanstack/react-query");
|
|
3212
3593
|
function useProducts({ filters, enabled = true }) {
|
|
3213
|
-
return (0,
|
|
3594
|
+
return (0, import_react_query13.useQuery)({
|
|
3214
3595
|
...productsQueries.list(filters),
|
|
3215
3596
|
...queryDefaults,
|
|
3216
3597
|
enabled
|
|
3217
3598
|
});
|
|
3218
3599
|
}
|
|
3219
3600
|
function useProduct({ id, enabled = true }) {
|
|
3220
|
-
return (0,
|
|
3601
|
+
return (0, import_react_query13.useQuery)({
|
|
3221
3602
|
...productsQueries.byId(id),
|
|
3222
3603
|
...queryDefaults,
|
|
3223
3604
|
enabled
|
|
3224
3605
|
});
|
|
3225
3606
|
}
|
|
3226
3607
|
function useCreateProduct(options) {
|
|
3227
|
-
return (0,
|
|
3608
|
+
return (0, import_react_query13.useMutation)({
|
|
3228
3609
|
mutationFn: (input) => createProduct(input),
|
|
3229
3610
|
...options
|
|
3230
3611
|
});
|
|
3231
3612
|
}
|
|
3232
3613
|
function useUpdateProduct(options) {
|
|
3233
|
-
return (0,
|
|
3614
|
+
return (0, import_react_query13.useMutation)({
|
|
3234
3615
|
mutationFn: (input) => updateProduct(input),
|
|
3235
3616
|
...options
|
|
3236
3617
|
});
|
|
3237
3618
|
}
|
|
3238
3619
|
function useDeleteProduct(options) {
|
|
3239
|
-
return (0,
|
|
3620
|
+
return (0, import_react_query13.useMutation)({
|
|
3240
3621
|
mutationFn: (id) => deleteProduct(id),
|
|
3241
3622
|
...options
|
|
3242
3623
|
});
|
|
3243
3624
|
}
|
|
3244
3625
|
function useUploadProductLogo(options) {
|
|
3245
|
-
return (0,
|
|
3626
|
+
return (0, import_react_query13.useMutation)({
|
|
3246
3627
|
mutationFn: (request) => uploadProductLogo(request),
|
|
3247
3628
|
...options
|
|
3248
3629
|
});
|
|
@@ -3290,9 +3671,9 @@ function useEnsoBalances({
|
|
|
3290
3671
|
}
|
|
3291
3672
|
|
|
3292
3673
|
// src/v2/widget/hooks.ts
|
|
3293
|
-
var
|
|
3674
|
+
var import_react_query14 = require("@tanstack/react-query");
|
|
3294
3675
|
function useWidgetOpportunities(distributorId) {
|
|
3295
|
-
return (0,
|
|
3676
|
+
return (0, import_react_query14.useQuery)({
|
|
3296
3677
|
...widgetQueries.opportunities(distributorId),
|
|
3297
3678
|
...queryDefaults,
|
|
3298
3679
|
select: (data) => {
|
|
@@ -3316,7 +3697,7 @@ function useWidgetOpportunities(distributorId) {
|
|
|
3316
3697
|
}
|
|
3317
3698
|
|
|
3318
3699
|
// src/v2/geocheck/useGeocheck.ts
|
|
3319
|
-
var
|
|
3700
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
3320
3701
|
var INDEXER_ENDPOINT = "https://api.turtle.xyz";
|
|
3321
3702
|
async function fetchGeocheck() {
|
|
3322
3703
|
const url = `${INDEXER_ENDPOINT}/turtle/geocheck`;
|
|
@@ -3332,13 +3713,13 @@ async function fetchGeocheck() {
|
|
|
3332
3713
|
}
|
|
3333
3714
|
return data;
|
|
3334
3715
|
}
|
|
3335
|
-
var geocheckQueryOptions = () => (0,
|
|
3716
|
+
var geocheckQueryOptions = () => (0, import_react_query15.queryOptions)({
|
|
3336
3717
|
queryKey: ["geocheck"],
|
|
3337
3718
|
queryFn: fetchGeocheck
|
|
3338
3719
|
});
|
|
3339
3720
|
function useGeocheck(options = {}) {
|
|
3340
3721
|
const { enabled = true, staleTime, gcTime } = options;
|
|
3341
|
-
return (0,
|
|
3722
|
+
return (0, import_react_query15.useQuery)({
|
|
3342
3723
|
...geocheckQueryOptions(),
|
|
3343
3724
|
enabled,
|
|
3344
3725
|
staleTime: staleTime ?? 5 * 60 * 1e3,
|
|
@@ -3351,35 +3732,35 @@ function useGeocheck(options = {}) {
|
|
|
3351
3732
|
}
|
|
3352
3733
|
|
|
3353
3734
|
// src/v2/streams/hooks.ts
|
|
3354
|
-
var
|
|
3735
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
3355
3736
|
function useStreams({
|
|
3356
3737
|
query,
|
|
3357
3738
|
options
|
|
3358
3739
|
} = {}) {
|
|
3359
|
-
return (0,
|
|
3740
|
+
return (0, import_react_query16.useQuery)(createQueryOptions(streamsQueries.list(query), options));
|
|
3360
3741
|
}
|
|
3361
3742
|
function useStreamPoints({
|
|
3362
3743
|
query,
|
|
3363
3744
|
options
|
|
3364
3745
|
} = {}) {
|
|
3365
|
-
return (0,
|
|
3746
|
+
return (0, import_react_query16.useQuery)(createQueryOptions(streamsQueries.points(query), options));
|
|
3366
3747
|
}
|
|
3367
3748
|
function useStreamWallets({
|
|
3368
3749
|
query,
|
|
3369
3750
|
options
|
|
3370
3751
|
}) {
|
|
3371
|
-
return (0,
|
|
3752
|
+
return (0, import_react_query16.useQuery)(createQueryOptions(streamsQueries.wallets(query), options));
|
|
3372
3753
|
}
|
|
3373
3754
|
function useStreamWalletDetails({
|
|
3374
3755
|
query,
|
|
3375
3756
|
options
|
|
3376
3757
|
}) {
|
|
3377
|
-
return (0,
|
|
3758
|
+
return (0, import_react_query16.useQuery)(createQueryOptions(streamsQueries.walletDetails(query), options));
|
|
3378
3759
|
}
|
|
3379
3760
|
function useStreamSupportedChains({
|
|
3380
3761
|
options
|
|
3381
3762
|
} = {}) {
|
|
3382
|
-
return (0,
|
|
3763
|
+
return (0, import_react_query16.useQuery)(createQueryOptions(streamsQueries.supportedChains, options));
|
|
3383
3764
|
}
|
|
3384
3765
|
|
|
3385
3766
|
// src/v2/swap/useSwapRoute.ts
|
|
@@ -3481,9 +3862,9 @@ function useSwapRoute(isEnabled, userAddress, distributorId, options, referralCo
|
|
|
3481
3862
|
}
|
|
3482
3863
|
|
|
3483
3864
|
// src/v2/users/hooks.ts
|
|
3484
|
-
var
|
|
3865
|
+
var import_react_query17 = require("@tanstack/react-query");
|
|
3485
3866
|
function useUserById({ userId, enabled = true }) {
|
|
3486
|
-
return (0,
|
|
3867
|
+
return (0, import_react_query17.useQuery)({
|
|
3487
3868
|
...usersQueries.byId({ userId }),
|
|
3488
3869
|
...queryDefaults,
|
|
3489
3870
|
enabled
|
|
@@ -3491,7 +3872,7 @@ function useUserById({ userId, enabled = true }) {
|
|
|
3491
3872
|
}
|
|
3492
3873
|
function useUserPortfolio({ userId, enabled = true }) {
|
|
3493
3874
|
const input = { userId };
|
|
3494
|
-
return (0,
|
|
3875
|
+
return (0, import_react_query17.useQuery)({
|
|
3495
3876
|
...usersQueries.portfolio(input),
|
|
3496
3877
|
...queryDefaults,
|
|
3497
3878
|
enabled
|
|
@@ -3499,30 +3880,30 @@ function useUserPortfolio({ userId, enabled = true }) {
|
|
|
3499
3880
|
}
|
|
3500
3881
|
|
|
3501
3882
|
// src/v2/nfts/hooks.ts
|
|
3502
|
-
var
|
|
3883
|
+
var import_react_query18 = require("@tanstack/react-query");
|
|
3503
3884
|
function useUserNfts({ userAddress, chain, tokenAddress }) {
|
|
3504
|
-
return (0,
|
|
3885
|
+
return (0, import_react_query18.useQuery)(
|
|
3505
3886
|
userAddress ? createQueryOptions(nftsQueries.byUser(userAddress, chain), {
|
|
3506
3887
|
select: (data) => tokenAddress ? data.filter((nft) => nft.token.toLowerCase() === tokenAddress.toLowerCase()) : data
|
|
3507
|
-
}) : { queryKey: ["nfts", "byUser", "skip"], queryFn:
|
|
3888
|
+
}) : { queryKey: ["nfts", "byUser", "skip"], queryFn: import_react_query18.skipToken }
|
|
3508
3889
|
);
|
|
3509
3890
|
}
|
|
3510
3891
|
|
|
3511
3892
|
// src/v2/covers/hooks.ts
|
|
3512
|
-
var
|
|
3893
|
+
var import_react_query19 = require("@tanstack/react-query");
|
|
3513
3894
|
|
|
3514
3895
|
// src/v2/covers/schema.ts
|
|
3515
|
-
var
|
|
3516
|
-
var coverRequestDataSchema =
|
|
3517
|
-
protocolName:
|
|
3518
|
-
coverageAmount:
|
|
3519
|
-
periodDays:
|
|
3520
|
-
desiredApySacrifice:
|
|
3521
|
-
calculatedEstimatedPremium:
|
|
3522
|
-
tokenSymbol:
|
|
3523
|
-
});
|
|
3524
|
-
var submitCoverRequestResponseSchema =
|
|
3525
|
-
success:
|
|
3896
|
+
var import_zod20 = require("zod");
|
|
3897
|
+
var coverRequestDataSchema = import_zod20.z.object({
|
|
3898
|
+
protocolName: import_zod20.z.string(),
|
|
3899
|
+
coverageAmount: import_zod20.z.string(),
|
|
3900
|
+
periodDays: import_zod20.z.number(),
|
|
3901
|
+
desiredApySacrifice: import_zod20.z.string(),
|
|
3902
|
+
calculatedEstimatedPremium: import_zod20.z.string(),
|
|
3903
|
+
tokenSymbol: import_zod20.z.string()
|
|
3904
|
+
});
|
|
3905
|
+
var submitCoverRequestResponseSchema = import_zod20.z.object({
|
|
3906
|
+
success: import_zod20.z.boolean()
|
|
3526
3907
|
});
|
|
3527
3908
|
|
|
3528
3909
|
// src/v2/covers/api.ts
|
|
@@ -3541,7 +3922,7 @@ async function submitCoverRequest(data) {
|
|
|
3541
3922
|
|
|
3542
3923
|
// src/v2/covers/hooks.ts
|
|
3543
3924
|
function useSubmitCoverRequest(options) {
|
|
3544
|
-
return (0,
|
|
3925
|
+
return (0, import_react_query19.useMutation)({
|
|
3545
3926
|
mutationFn: submitCoverRequest,
|
|
3546
3927
|
onSuccess: () => {
|
|
3547
3928
|
options?.onSuccess?.("Cover request submitted successfully!");
|
|
@@ -3671,43 +4052,95 @@ var useTurtleMembershipFlow = ({
|
|
|
3671
4052
|
};
|
|
3672
4053
|
};
|
|
3673
4054
|
|
|
3674
|
-
// src/v2/
|
|
3675
|
-
var
|
|
3676
|
-
|
|
3677
|
-
|
|
4055
|
+
// src/v2/incentives/hooks.ts
|
|
4056
|
+
var import_react_query20 = require("@tanstack/react-query");
|
|
4057
|
+
function useIncentives({ enabled = true }) {
|
|
4058
|
+
return (0, import_react_query20.useQuery)({
|
|
4059
|
+
...incentivesQueries.all,
|
|
4060
|
+
...queryDefaults,
|
|
4061
|
+
enabled
|
|
4062
|
+
});
|
|
4063
|
+
}
|
|
4064
|
+
function useIncentive({ id, enabled = true }) {
|
|
4065
|
+
return (0, import_react_query20.useQuery)({
|
|
4066
|
+
...incentivesQueries.byId(id),
|
|
4067
|
+
...queryDefaults,
|
|
4068
|
+
enabled
|
|
4069
|
+
});
|
|
4070
|
+
}
|
|
4071
|
+
function useCreateIncentive(options) {
|
|
4072
|
+
return (0, import_react_query20.useMutation)({
|
|
4073
|
+
mutationFn: createIncentive,
|
|
4074
|
+
...options
|
|
4075
|
+
});
|
|
4076
|
+
}
|
|
4077
|
+
function useUpdateIncentive(options) {
|
|
4078
|
+
return (0, import_react_query20.useMutation)({
|
|
4079
|
+
mutationFn: updateIncentive,
|
|
4080
|
+
...options
|
|
4081
|
+
});
|
|
4082
|
+
}
|
|
4083
|
+
function useDeleteIncentive(options) {
|
|
4084
|
+
return (0, import_react_query20.useMutation)({
|
|
4085
|
+
mutationFn: deleteIncentive,
|
|
4086
|
+
...options
|
|
4087
|
+
});
|
|
4088
|
+
}
|
|
4089
|
+
function useUploadIncentiveIcon(options) {
|
|
4090
|
+
return (0, import_react_query20.useMutation)({
|
|
4091
|
+
mutationFn: uploadIncentiveIcon,
|
|
4092
|
+
...options
|
|
4093
|
+
});
|
|
4094
|
+
}
|
|
4095
|
+
|
|
4096
|
+
// src/v2/distributors/hooks.ts
|
|
4097
|
+
var import_react_query21 = require("@tanstack/react-query");
|
|
4098
|
+
|
|
4099
|
+
// src/v2/distributors/schema.ts
|
|
4100
|
+
var import_zod21 = require("zod");
|
|
4101
|
+
var updateDistributorEarnDetailsInputSchema = import_zod21.z.object({
|
|
4102
|
+
organizationId: import_zod21.z.string().uuid(),
|
|
4103
|
+
distributorId: import_zod21.z.string().uuid(),
|
|
4104
|
+
earnDetails: import_zod21.z.any()
|
|
4105
|
+
// JSONB value - using any for now as requested
|
|
3678
4106
|
});
|
|
3679
|
-
var
|
|
3680
|
-
success:
|
|
3681
|
-
error: import_zod17.z.string().optional()
|
|
4107
|
+
var updateDistributorEarnDetailsResponseSchema = import_zod21.z.object({
|
|
4108
|
+
success: import_zod21.z.boolean()
|
|
3682
4109
|
});
|
|
3683
4110
|
|
|
3684
|
-
// src/v2/
|
|
3685
|
-
async function
|
|
3686
|
-
const
|
|
4111
|
+
// src/v2/distributors/api.ts
|
|
4112
|
+
async function updateDistributorEarnDetails(input) {
|
|
4113
|
+
const { organizationId, distributorId, earnDetails } = input;
|
|
4114
|
+
const endpoint = `/organization/${organizationId}/distributors/${distributorId}/earn-details`;
|
|
3687
4115
|
const data = await apiClient.fetch(endpoint, {
|
|
3688
|
-
method: "
|
|
4116
|
+
method: "PUT",
|
|
4117
|
+
body: JSON.stringify({ earnDetails })
|
|
3689
4118
|
});
|
|
3690
|
-
const result =
|
|
4119
|
+
const result = updateDistributorEarnDetailsResponseSchema.safeParse(data);
|
|
3691
4120
|
if (result.success === false) {
|
|
3692
4121
|
console.log("[ZOD ERROR]", result.error);
|
|
3693
|
-
throw new Error(`Failed to
|
|
4122
|
+
throw new Error(`Failed to update distributor earn details: ${result.error.message}`);
|
|
3694
4123
|
}
|
|
3695
4124
|
return result.data;
|
|
3696
4125
|
}
|
|
3697
4126
|
|
|
3698
|
-
// src/v2/
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
mutationFn: leaveOrganization,
|
|
4127
|
+
// src/v2/distributors/hooks.ts
|
|
4128
|
+
function useUpdateDistributorEarnDetails(options) {
|
|
4129
|
+
return (0, import_react_query21.useMutation)({
|
|
4130
|
+
mutationFn: updateDistributorEarnDetails,
|
|
3703
4131
|
...options
|
|
3704
4132
|
});
|
|
3705
4133
|
}
|
|
3706
4134
|
|
|
3707
|
-
// src/v2/
|
|
3708
|
-
var
|
|
3709
|
-
|
|
3710
|
-
|
|
4135
|
+
// src/v2/liquidity-providers/hooks.ts
|
|
4136
|
+
var import_react_query22 = require("@tanstack/react-query");
|
|
4137
|
+
function useLiquidityProviders({ input, enabled = true }) {
|
|
4138
|
+
return (0, import_react_query22.useQuery)({
|
|
4139
|
+
...liquidityProvidersQueries.list(input),
|
|
4140
|
+
...queryDefaults,
|
|
4141
|
+
enabled
|
|
4142
|
+
});
|
|
4143
|
+
}
|
|
3711
4144
|
|
|
3712
4145
|
// src/v2/lib/turtle-provider.tsx
|
|
3713
4146
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -3723,7 +4156,7 @@ function TurtleHooksProvider({
|
|
|
3723
4156
|
}
|
|
3724
4157
|
|
|
3725
4158
|
// src/v2/index.ts
|
|
3726
|
-
var queries = (0,
|
|
4159
|
+
var queries = (0, import_query_key_factory19.mergeQueryKeys)(
|
|
3727
4160
|
opportunitiesQueries,
|
|
3728
4161
|
earnOpportunitiesQueries,
|
|
3729
4162
|
earnRouteQueries,
|
|
@@ -3737,12 +4170,17 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3737
4170
|
supportedChainsQueries,
|
|
3738
4171
|
supportedTokensQueries,
|
|
3739
4172
|
usersQueries,
|
|
3740
|
-
nftsQueries
|
|
4173
|
+
nftsQueries,
|
|
4174
|
+
balanceQueries,
|
|
4175
|
+
depositsQueries,
|
|
4176
|
+
incentivesQueries,
|
|
4177
|
+
liquidityProvidersQueries
|
|
3741
4178
|
);
|
|
3742
4179
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3743
4180
|
0 && (module.exports = {
|
|
3744
4181
|
ApiError,
|
|
3745
4182
|
BalanceSourcePriority,
|
|
4183
|
+
GetLiquidityProvidersResponseSchema,
|
|
3746
4184
|
LeaveOrganizationInputSchema,
|
|
3747
4185
|
LeaveOrganizationOutputSchema,
|
|
3748
4186
|
TurtleHooksProvider,
|
|
@@ -3770,15 +4208,22 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3770
4208
|
createClaimWithdrawInteraction,
|
|
3771
4209
|
createDepositAction,
|
|
3772
4210
|
createDepositInteraction,
|
|
4211
|
+
createIncentive,
|
|
4212
|
+
createIncentiveInputSchema,
|
|
3773
4213
|
createMembership,
|
|
3774
4214
|
createMembershipAgreement,
|
|
3775
4215
|
createMembershipRequestSchema,
|
|
3776
4216
|
createMembershipResponseSchema,
|
|
4217
|
+
createProduct,
|
|
4218
|
+
createProductInputSchema,
|
|
4219
|
+
createProductResponseSchema,
|
|
3777
4220
|
createStreamPoint,
|
|
3778
4221
|
createStreamPointBodySchema,
|
|
3779
4222
|
createStreamPointOutputSchema,
|
|
3780
4223
|
createWithdrawAction,
|
|
3781
4224
|
createWithdrawInteraction,
|
|
4225
|
+
deleteIncentive,
|
|
4226
|
+
deleteProduct,
|
|
3782
4227
|
depositSchema,
|
|
3783
4228
|
depositSubstep,
|
|
3784
4229
|
depositsResponseSchema,
|
|
@@ -3803,6 +4248,10 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3803
4248
|
getDeposits,
|
|
3804
4249
|
getEarnOpportunities,
|
|
3805
4250
|
getEarnRoute,
|
|
4251
|
+
getIncentive,
|
|
4252
|
+
getIncentives,
|
|
4253
|
+
getLiquidityProviders,
|
|
4254
|
+
getLiquidityProvidersInputSchema,
|
|
3806
4255
|
getOpportunities,
|
|
3807
4256
|
getOpportunitiesFilterOptions,
|
|
3808
4257
|
getOpportunitiesFilterOptionsSchema,
|
|
@@ -3811,6 +4260,7 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3811
4260
|
getOpportunitiesPaginatedSchema,
|
|
3812
4261
|
getOpportunityById,
|
|
3813
4262
|
getPortfolioBalance,
|
|
4263
|
+
getProduct,
|
|
3814
4264
|
getProducts,
|
|
3815
4265
|
getSourcePriority,
|
|
3816
4266
|
getStreamPoints,
|
|
@@ -3840,8 +4290,12 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3840
4290
|
getWidgetOpportunities,
|
|
3841
4291
|
holdingsDataSchema,
|
|
3842
4292
|
incentiveSchema,
|
|
4293
|
+
incentivesQueries,
|
|
4294
|
+
incentivesResponseSchema,
|
|
3843
4295
|
leaveOrganization,
|
|
3844
4296
|
lendingConfigSchema,
|
|
4297
|
+
liquidityProviderSchema,
|
|
4298
|
+
liquidityProvidersQueries,
|
|
3845
4299
|
mergeBalancesByPriority,
|
|
3846
4300
|
nftsQueries,
|
|
3847
4301
|
opportunitiesQueries,
|
|
@@ -3858,8 +4312,11 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3858
4312
|
portfolioTokenSchema,
|
|
3859
4313
|
portfolioWalletSchema,
|
|
3860
4314
|
processRouteDetails,
|
|
4315
|
+
productFiltersSchema,
|
|
4316
|
+
productResponseSchema,
|
|
3861
4317
|
productSchema,
|
|
3862
4318
|
productsQueries,
|
|
4319
|
+
productsResponseSchema,
|
|
3863
4320
|
queries,
|
|
3864
4321
|
requestStreamSignature,
|
|
3865
4322
|
routeMetadataSchema,
|
|
@@ -3889,6 +4346,18 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3889
4346
|
tokenSchema,
|
|
3890
4347
|
transactionSchema,
|
|
3891
4348
|
txResponseItemSchema,
|
|
4349
|
+
updateDistributorEarnDetails,
|
|
4350
|
+
updateIncentive,
|
|
4351
|
+
updateIncentiveInputSchema,
|
|
4352
|
+
updateProduct,
|
|
4353
|
+
updateProductInputSchema,
|
|
4354
|
+
updateProductResponseSchema,
|
|
4355
|
+
uploadIncentiveIcon,
|
|
4356
|
+
uploadIncentiveIconRequestSchema,
|
|
4357
|
+
uploadIncentiveIconResponseSchema,
|
|
4358
|
+
uploadProductLogo,
|
|
4359
|
+
uploadProductLogoRequestSchema,
|
|
4360
|
+
uploadProductLogoResponseSchema,
|
|
3892
4361
|
useActionsDefaultParams,
|
|
3893
4362
|
useAttributeAction,
|
|
3894
4363
|
useBalance,
|
|
@@ -3899,10 +4368,12 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3899
4368
|
useClaimWithdrawAction,
|
|
3900
4369
|
useCreateClaimWithdrawInteraction,
|
|
3901
4370
|
useCreateDepositInteraction,
|
|
4371
|
+
useCreateIncentive,
|
|
3902
4372
|
useCreateMembership,
|
|
3903
4373
|
useCreateMembershipAgreement,
|
|
3904
4374
|
useCreateProduct,
|
|
3905
4375
|
useCreateWithdrawInteraction,
|
|
4376
|
+
useDeleteIncentive,
|
|
3906
4377
|
useDeleteProduct,
|
|
3907
4378
|
useDepositAction,
|
|
3908
4379
|
useDepositFlow,
|
|
@@ -3915,7 +4386,10 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3915
4386
|
useEnsoBalances,
|
|
3916
4387
|
useGeocheck,
|
|
3917
4388
|
useGetOnChainBalance,
|
|
4389
|
+
useIncentive,
|
|
4390
|
+
useIncentives,
|
|
3918
4391
|
useLeaveOrganization,
|
|
4392
|
+
useLiquidityProviders,
|
|
3919
4393
|
useMultiChainBalances,
|
|
3920
4394
|
useOpportunities,
|
|
3921
4395
|
useOpportunitiesFilterOptions,
|
|
@@ -3935,7 +4409,10 @@ var queries = (0, import_query_key_factory16.mergeQueryKeys)(
|
|
|
3935
4409
|
useSwapRoute,
|
|
3936
4410
|
useTokenBalance,
|
|
3937
4411
|
useTurtleMembershipFlow,
|
|
4412
|
+
useUpdateDistributorEarnDetails,
|
|
4413
|
+
useUpdateIncentive,
|
|
3938
4414
|
useUpdateProduct,
|
|
4415
|
+
useUploadIncentiveIcon,
|
|
3939
4416
|
useUploadProductLogo,
|
|
3940
4417
|
useUserById,
|
|
3941
4418
|
useUserNfts,
|