@merkl/api 0.10.231 → 0.10.233

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.
Files changed (54) hide show
  1. package/dist/database/api/.generated/edge.js +6 -12
  2. package/dist/database/api/.generated/index-browser.js +3 -8
  3. package/dist/database/api/.generated/index.d.ts +156 -124
  4. package/dist/database/api/.generated/index.js +6 -12
  5. package/dist/database/api/.generated/package.json +1 -1
  6. package/dist/database/api/.generated/schema.prisma +3 -10
  7. package/dist/database/api/.generated/wasm.js +3 -8
  8. package/dist/database/engine/.generated/edge.js +2 -3
  9. package/dist/database/engine/.generated/index.js +2 -3
  10. package/dist/database/engine/.generated/package.json +1 -1
  11. package/dist/database/engine/.generated/schema.prisma +1 -1
  12. package/dist/src/eden/index.d.ts +142 -155
  13. package/dist/src/index.d.ts +52 -55
  14. package/dist/src/modules/v4/campaign/campaign.repository.js +3 -1
  15. package/dist/src/modules/v4/enso/enso.service.d.ts +1 -1
  16. package/dist/src/modules/v4/interaction/interaction.controller.d.ts +2 -42
  17. package/dist/src/modules/v4/interaction/interaction.controller.js +2 -20
  18. package/dist/src/modules/v4/interaction/interaction.model.d.ts +1 -0
  19. package/dist/src/modules/v4/interaction/interaction.model.js +1 -0
  20. package/dist/src/modules/v4/interaction/interaction.service.d.ts +1 -1
  21. package/dist/src/modules/v4/interaction/interaction.service.js +2 -2
  22. package/dist/src/modules/v4/kyberzap/kyberzap.model.d.ts +1 -0
  23. package/dist/src/modules/v4/kyberzap/kyberzap.model.js +1 -0
  24. package/dist/src/modules/v4/kyberzap/kyberzap.service.d.ts +1 -1
  25. package/dist/src/modules/v4/kyberzap/kyberzap.service.js +6 -2
  26. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +5 -3
  27. package/dist/src/modules/v4/opportunity/opportunity.controller.js +1 -2
  28. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -14
  29. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +18 -8
  30. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +9 -4
  31. package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +3 -0
  32. package/dist/src/modules/v4/programPayload/programPayload.repository.js +95 -25
  33. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +6 -6
  34. package/dist/src/modules/v4/protocol/protocol.model.d.ts +3 -15
  35. package/dist/src/modules/v4/protocol/protocol.model.js +3 -4
  36. package/dist/src/modules/v4/protocol/protocol.repository.d.ts +5 -5
  37. package/dist/src/modules/v4/protocol/protocol.repository.js +11 -6
  38. package/dist/src/modules/v4/protocol/protocol.service.d.ts +2 -2
  39. package/dist/src/modules/v4/reward/reward.repository.d.ts +3 -2
  40. package/dist/src/modules/v4/reward/reward.service.d.ts +18 -12
  41. package/dist/src/modules/v4/router.d.ts +52 -55
  42. package/dist/src/modules/v4/token/token.controller.d.ts +33 -0
  43. package/dist/src/modules/v4/token/token.controller.js +14 -1
  44. package/dist/src/modules/v4/token/token.model.d.ts +8 -0
  45. package/dist/src/modules/v4/token/token.model.js +7 -0
  46. package/dist/src/modules/v4/token/token.service.d.ts +19 -1
  47. package/dist/src/modules/v4/token/token.service.js +10 -0
  48. package/dist/src/modules/v4/user/user.controller.d.ts +6 -4
  49. package/dist/tsconfig.package.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/dist/src/modules/v4/zyfi/zyfi.model.d.ts +0 -45
  52. package/dist/src/modules/v4/zyfi/zyfi.model.js +0 -1
  53. package/dist/src/modules/v4/zyfi/zyfi.service.d.ts +0 -30
  54. package/dist/src/modules/v4/zyfi/zyfi.service.js +0 -35
@@ -267,7 +267,7 @@ declare const app: Elysia<"", false, {
267
267
  url: string;
268
268
  description: string;
269
269
  id: string;
270
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
270
+ tags: string[];
271
271
  icon: string;
272
272
  } | undefined;
273
273
  name: string;
@@ -277,6 +277,7 @@ declare const app: Elysia<"", false, {
277
277
  identifier: string;
278
278
  chainId: number;
279
279
  action: import("../database/api/.generated").$Enums.OpportunityAction;
280
+ depositUrl: string | null;
280
281
  tvl: number;
281
282
  apr: number;
282
283
  dailyRewards: number;
@@ -330,7 +331,7 @@ declare const app: Elysia<"", false, {
330
331
  url: string;
331
332
  description: string;
332
333
  id: string;
333
- tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
334
+ tags: string[];
334
335
  icon: string;
335
336
  } | null | undefined;
336
337
  aprRecord?: {
@@ -439,7 +440,7 @@ declare const app: Elysia<"", false, {
439
440
  url: string;
440
441
  description: string;
441
442
  id: string;
442
- tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
443
+ tags: string[];
443
444
  icon: string;
444
445
  } | null | undefined;
445
446
  aprRecord?: {
@@ -635,6 +636,7 @@ declare const app: Elysia<"", false, {
635
636
  identifier: string;
636
637
  chainId: number;
637
638
  action: import("../database/api/.generated").$Enums.OpportunityAction;
639
+ depositUrl: string | null;
638
640
  mainProtocolId: string | null;
639
641
  tvl: number;
640
642
  apr: number;
@@ -856,7 +858,7 @@ declare const app: Elysia<"", false, {
856
858
  query: {
857
859
  id?: string | undefined;
858
860
  items?: number | undefined;
859
- tags?: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[] | undefined;
861
+ tags?: string[] | undefined;
860
862
  page?: number | undefined;
861
863
  opportunityTag?: string | undefined;
862
864
  };
@@ -867,7 +869,7 @@ declare const app: Elysia<"", false, {
867
869
  url: string;
868
870
  description: string;
869
871
  id: string;
870
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
872
+ tags: string[];
871
873
  icon: string;
872
874
  } & {})[];
873
875
  };
@@ -904,7 +906,7 @@ declare const app: Elysia<"", false, {
904
906
  url: string;
905
907
  description: string;
906
908
  id: string;
907
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
909
+ tags: string[];
908
910
  icon: string;
909
911
  } | null;
910
912
  };
@@ -933,7 +935,7 @@ declare const app: Elysia<"", false, {
933
935
  url: string;
934
936
  description: string;
935
937
  id: string;
936
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
938
+ tags: string[];
937
939
  icon: string;
938
940
  };
939
941
  };
@@ -949,7 +951,7 @@ declare const app: Elysia<"", false, {
949
951
  url: string;
950
952
  description: string;
951
953
  id: string;
952
- tags: never[];
954
+ tags: string[];
953
955
  icon: string;
954
956
  };
955
957
  params: {};
@@ -963,7 +965,7 @@ declare const app: Elysia<"", false, {
963
965
  url: string;
964
966
  description: string;
965
967
  id: string;
966
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
968
+ tags: string[];
967
969
  icon: string;
968
970
  };
969
971
  };
@@ -1086,6 +1088,39 @@ declare const app: Elysia<"", false, {
1086
1088
  };
1087
1089
  };
1088
1090
  };
1091
+ } & {
1092
+ tokens: {
1093
+ index: {
1094
+ post: {
1095
+ body: {
1096
+ isTest?: boolean | undefined;
1097
+ icon: string;
1098
+ chainId: number;
1099
+ address: string;
1100
+ verified: boolean;
1101
+ };
1102
+ params: {};
1103
+ query: unknown;
1104
+ headers: {
1105
+ authorization: string;
1106
+ };
1107
+ response: {
1108
+ 200: {
1109
+ symbol: string;
1110
+ name: string | null;
1111
+ id: string;
1112
+ icon: string;
1113
+ chainId: number;
1114
+ address: string;
1115
+ decimals: number;
1116
+ verified: boolean;
1117
+ isTest: boolean;
1118
+ price?: number | null | undefined;
1119
+ } | undefined;
1120
+ };
1121
+ };
1122
+ };
1123
+ };
1089
1124
  } & {
1090
1125
  tokens: {
1091
1126
  ":id": {
@@ -1834,7 +1869,7 @@ declare const app: Elysia<"", false, {
1834
1869
  url: string;
1835
1870
  description: string;
1836
1871
  id: string;
1837
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
1872
+ tags: string[];
1838
1873
  icon: string;
1839
1874
  }[];
1840
1875
  MainProtocol: {
@@ -1842,7 +1877,7 @@ declare const app: Elysia<"", false, {
1842
1877
  url: string;
1843
1878
  description: string;
1844
1879
  id: string;
1845
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
1880
+ tags: string[];
1846
1881
  icon: string;
1847
1882
  } | null;
1848
1883
  } & {
@@ -1854,6 +1889,7 @@ declare const app: Elysia<"", false, {
1854
1889
  identifier: string;
1855
1890
  chainId: number;
1856
1891
  action: import("../database/api/.generated").$Enums.OpportunityAction;
1892
+ depositUrl: string | null;
1857
1893
  mainProtocolId: string | null;
1858
1894
  tvl: number;
1859
1895
  apr: number;
@@ -1949,7 +1985,7 @@ declare const app: Elysia<"", false, {
1949
1985
  url: string;
1950
1986
  description: string;
1951
1987
  id: string;
1952
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
1988
+ tags: string[];
1953
1989
  icon: string;
1954
1990
  }[];
1955
1991
  MainProtocol: {
@@ -1957,7 +1993,7 @@ declare const app: Elysia<"", false, {
1957
1993
  url: string;
1958
1994
  description: string;
1959
1995
  id: string;
1960
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
1996
+ tags: string[];
1961
1997
  icon: string;
1962
1998
  } | null;
1963
1999
  } & {
@@ -1969,6 +2005,7 @@ declare const app: Elysia<"", false, {
1969
2005
  identifier: string;
1970
2006
  chainId: number;
1971
2007
  action: import("../database/api/.generated").$Enums.OpportunityAction;
2008
+ depositUrl: string | null;
1972
2009
  mainProtocolId: string | null;
1973
2010
  tvl: number;
1974
2011
  apr: number;
@@ -2172,7 +2209,7 @@ declare const app: Elysia<"", false, {
2172
2209
  url: string;
2173
2210
  description: string;
2174
2211
  id: string;
2175
- tags: import("../database/api/.generated").$Enums.ProtocolTag[];
2212
+ tags: string[];
2176
2213
  icon: string;
2177
2214
  } & {})[];
2178
2215
  };
@@ -2186,6 +2223,7 @@ declare const app: Elysia<"", false, {
2186
2223
  body: unknown;
2187
2224
  params: {};
2188
2225
  query: {
2226
+ slippage?: number | undefined;
2189
2227
  identifier: string;
2190
2228
  chainId: number;
2191
2229
  protocolId: string;
@@ -2206,47 +2244,6 @@ declare const app: Elysia<"", false, {
2206
2244
  };
2207
2245
  };
2208
2246
  };
2209
- } & {
2210
- interaction: {
2211
- sponsored: {
2212
- get: {
2213
- body: unknown;
2214
- params: {};
2215
- query: {
2216
- identifier: string;
2217
- chainId: number;
2218
- protocolId: string;
2219
- userAddress: string;
2220
- fromAmount: string;
2221
- fromTokenAddress: string;
2222
- };
2223
- headers: unknown;
2224
- response: {
2225
- 200: {
2226
- expirationTime: string;
2227
- expiresIn: string;
2228
- feeTokenAmount: string;
2229
- feeTokendecimals: string;
2230
- feeUSD: string;
2231
- gasLimit: string;
2232
- gasPrice: string;
2233
- markup: string;
2234
- maxNonce: string;
2235
- protocolAddress: string;
2236
- sponsorshipRatio: string;
2237
- tokenAddress: string;
2238
- tokenPrice: string;
2239
- txData: {
2240
- from: string;
2241
- to: string;
2242
- data: string;
2243
- };
2244
- warnings: string[];
2245
- } | undefined;
2246
- };
2247
- };
2248
- };
2249
- };
2250
2247
  };
2251
2248
  } & {
2252
2249
  v4: {
@@ -54,6 +54,7 @@ export class CampaignRepository {
54
54
  throw new Error(`unable to fetch data for token ${campaign.rewardTokenAddress}`);
55
55
  }
56
56
  tokens = tokens.filter(t => t !== undefined);
57
+ const params = JSON.parse(campaign.params);
57
58
  const opportunityId = OpportunityService.hashId({
58
59
  chainId: campaign.computeChainId,
59
60
  identifier: campaign.opportunityIdentifier,
@@ -69,7 +70,7 @@ export class CampaignRepository {
69
70
  amount: campaign.amount,
70
71
  campaignId: campaign.campaignId,
71
72
  endTimestamp: BigInt(campaign.endTimestamp),
72
- params: JSON.parse(campaign.params),
73
+ params,
73
74
  startTimestamp: BigInt(campaign.startTimestamp),
74
75
  type: campaignType,
75
76
  ComputeChain: {
@@ -104,6 +105,7 @@ export class CampaignRepository {
104
105
  MainProtocol: {
105
106
  connect: metadata.mainProtocol && { id: metadata.mainProtocol },
106
107
  },
108
+ depositUrl: !!params.url ? params.url : undefined,
107
109
  },
108
110
  },
109
111
  },
@@ -10,7 +10,7 @@ export declare abstract class EnsoService {
10
10
  url: string;
11
11
  description: string;
12
12
  id: string;
13
- tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
13
+ tags: string[];
14
14
  icon: string;
15
15
  } & {})[]>;
16
16
  static getTokens(chainId: number, slug: EnsoSlug, identifier?: string): Promise<{
@@ -45,7 +45,7 @@ export declare const InteractionController: Elysia<"/interaction", false, {
45
45
  url: string;
46
46
  description: string;
47
47
  id: string;
48
- tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
48
+ tags: string[];
49
49
  icon: string;
50
50
  } & {})[];
51
51
  };
@@ -59,6 +59,7 @@ export declare const InteractionController: Elysia<"/interaction", false, {
59
59
  body: unknown;
60
60
  params: {};
61
61
  query: {
62
+ slippage?: number | undefined;
62
63
  identifier: string;
63
64
  chainId: number;
64
65
  protocolId: string;
@@ -79,47 +80,6 @@ export declare const InteractionController: Elysia<"/interaction", false, {
79
80
  };
80
81
  };
81
82
  };
82
- } & {
83
- interaction: {
84
- sponsored: {
85
- get: {
86
- body: unknown;
87
- params: {};
88
- query: {
89
- identifier: string;
90
- chainId: number;
91
- protocolId: string;
92
- userAddress: string;
93
- fromAmount: string;
94
- fromTokenAddress: string;
95
- };
96
- headers: unknown;
97
- response: {
98
- 200: {
99
- expirationTime: string;
100
- expiresIn: string;
101
- feeTokenAmount: string;
102
- feeTokendecimals: string;
103
- feeUSD: string;
104
- gasLimit: string;
105
- gasPrice: string;
106
- markup: string;
107
- maxNonce: string;
108
- protocolAddress: string;
109
- sponsorshipRatio: string;
110
- tokenAddress: string;
111
- tokenPrice: string;
112
- txData: {
113
- from: string;
114
- to: string;
115
- data: string;
116
- };
117
- warnings: string[];
118
- } | undefined;
119
- };
120
- };
121
- };
122
- };
123
83
  }, {
124
84
  derive: {};
125
85
  resolve: {};
@@ -1,7 +1,5 @@
1
- import { ChainId } from "@sdk";
2
1
  import Elysia from "elysia";
3
2
  import { EnsoService } from "../enso/enso.service";
4
- import { ZyfiService } from "../zyfi/zyfi.service";
5
3
  import { GetInteractionProtocolsQueryDto, GetInteractionQuoteQueryDto, GetInteractionTargetsQueryDto, } from "./interaction.model";
6
4
  import { InteractionService } from "./interaction.service";
7
5
  // ─── Interaction Controller ──────────────────────────────────────────────────
@@ -27,32 +25,16 @@ export const InteractionController = new Elysia({
27
25
  },
28
26
  })
29
27
  // ─── Get Transaction ─────────────────────────────────────────────────
30
- .get("/transaction", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
28
+ .get("/transaction", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress, slippage } }) => {
31
29
  const [target] = await InteractionService.getTargets(chainId, protocolId, identifier);
32
30
  //TODO: throw error
33
31
  if (!target)
34
32
  return;
35
- return await InteractionService.getTransaction(target.provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, BigInt(fromAmount));
33
+ return await InteractionService.getTransaction(target.provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, BigInt(fromAmount), slippage);
36
34
  }, {
37
35
  query: GetInteractionQuoteQueryDto,
38
36
  detail: {
39
37
  summary: "Get participate transaction",
40
38
  description: "",
41
39
  },
42
- })
43
- .get("/sponsored", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
44
- if (chainId !== ChainId.ZKSYNC)
45
- return;
46
- const [target] = await InteractionService.getTargets(chainId, protocolId, identifier);
47
- //TODO: throw error
48
- if (!target)
49
- return;
50
- const { transaction: tx } = await InteractionService.getTransaction(target.provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, BigInt(fromAmount));
51
- return ZyfiService.wrapTx({ data: tx.data, to: tx.to, from: userAddress });
52
- }, {
53
- query: GetInteractionQuoteQueryDto,
54
- detail: {
55
- summary: "Get participate transaction wrapped by paymaster",
56
- description: "",
57
- },
58
40
  });
@@ -56,6 +56,7 @@ export declare const GetInteractionQuoteQueryDto: import("@sinclair/typebox").TO
56
56
  userAddress: import("@sinclair/typebox").TString;
57
57
  fromTokenAddress: import("@sinclair/typebox").TString;
58
58
  fromAmount: import("@sinclair/typebox").TString;
59
+ slippage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
59
60
  }>;
60
61
  export declare const GetInteractionProtocolsQueryDto: import("@sinclair/typebox").TObject<{
61
62
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -18,6 +18,7 @@ export const GetInteractionQuoteQueryDto = t.Object({
18
18
  userAddress: t.String(),
19
19
  fromTokenAddress: t.String(),
20
20
  fromAmount: t.String(),
21
+ slippage: t.Optional(t.Number({ description: "Slippage in basis points (O.1%)" })),
21
22
  });
22
23
  export const GetInteractionProtocolsQueryDto = t.Object({
23
24
  chainId: t.Optional(t.Numeric()),
@@ -19,5 +19,5 @@ export declare abstract class InteractionService {
19
19
  data: `0x${string}`;
20
20
  };
21
21
  }>;
22
- static getTransaction(provider: InteractionTarget["provider"], chainId: number, protocolId: ProtocolId, identifier: string, userAddress: string, fromTokenAddress: string, fromTokenAmount: bigint): Promise<InteractionQuote>;
22
+ static getTransaction(provider: InteractionTarget["provider"], chainId: number, protocolId: ProtocolId, identifier: string, userAddress: string, fromTokenAddress: string, fromTokenAmount: bigint, slippage?: number): Promise<InteractionQuote>;
23
23
  }
@@ -94,9 +94,9 @@ export class InteractionService {
94
94
  },
95
95
  };
96
96
  }
97
- static async getTransaction(provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, fromTokenAmount) {
97
+ static async getTransaction(provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, fromTokenAmount, slippage) {
98
98
  if (provider === "zap")
99
- return await KyberZapService.getTransaction(chainId, protocolId, identifier, userAddress, fromTokenAddress, fromTokenAmount);
99
+ return await KyberZapService.getTransaction(chainId, protocolId, identifier, userAddress, fromTokenAddress, fromTokenAmount, slippage);
100
100
  const { tx, ...quote } = await EnsoService.getTransaction({
101
101
  fromAddress: userAddress,
102
102
  tokenIn: [fromTokenAddress],
@@ -28,6 +28,7 @@ export declare const apiTypes: {
28
28
  amountIn: import("@sinclair/typebox").TString;
29
29
  feeAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
30
  feePcm: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
31
+ sipplage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
31
32
  }>;
32
33
  readonly response: import("@sinclair/typebox").TObject<{
33
34
  message: import("@sinclair/typebox").TString;
@@ -40,6 +40,7 @@ export const apiTypes = {
40
40
  amountIn: t.String(),
41
41
  feeAddress: t.Optional(t.String()),
42
42
  feePcm: t.Optional(t.Number()),
43
+ sipplage: t.Optional(t.Number()),
43
44
  }),
44
45
  response: t.Object({
45
46
  message: t.String({ example: "OK" }),
@@ -11,5 +11,5 @@ export declare abstract class KyberZapService {
11
11
  * @param param0
12
12
  */
13
13
  static getFullRangeTicks(): number[];
14
- static getTransaction(chainId: number, protocol: ProtocolId, identifier: string, userAddress: string, fromTokenAddress: string, fromTokenAmount: bigint): Promise<InteractionQuote>;
14
+ static getTransaction(chainId: number, protocol: ProtocolId, identifier: string, userAddress: string, fromTokenAddress: string, fromTokenAmount: bigint, slippage?: number): Promise<InteractionQuote>;
15
15
  }
@@ -7,6 +7,7 @@ export class KyberZapService {
7
7
  headers: new Headers({
8
8
  Authorization: `Bearer ${process.env.KYBERSWAP_ZAP_API_KEY}`,
9
9
  "Content-Type": "application/json",
10
+ "X-Client-Id": "merkl",
10
11
  }),
11
12
  });
12
13
  if (res.status !== 200)
@@ -18,8 +19,9 @@ export class KyberZapService {
18
19
  method: "POST",
19
20
  body: JSON.stringify(params?.body),
20
21
  headers: new Headers({
21
- Authorization: `Bearer ${"8dbbda50-6ed5-4bda-bf54-ea2796602057"}`,
22
+ Authorization: `Bearer ${process.env.KYBERSWAP_ZAP_API_KEY}`,
22
23
  "Content-Type": "application/json",
24
+ "X-Client-Id": "merkl",
23
25
  }),
24
26
  });
25
27
  if (res.status !== 200)
@@ -43,7 +45,7 @@ export class KyberZapService {
43
45
  static getFullRangeTicks() {
44
46
  return [-886800, 886800];
45
47
  }
46
- static async getTransaction(chainId, protocol, identifier, userAddress, fromTokenAddress, fromTokenAmount) {
48
+ static async getTransaction(chainId, protocol, identifier, userAddress, fromTokenAddress, fromTokenAmount, slippage) {
47
49
  const [lower, upper] = KyberZapService.getFullRangeTicks();
48
50
  const { data: route } = await KyberZapService.#fetch("/api/v1/in/route", {
49
51
  query: {
@@ -53,6 +55,8 @@ export class KyberZapService {
53
55
  "position.tickLower": lower?.toString(),
54
56
  "position.tickUpper": upper?.toString(),
55
57
  dex: KyberZapService.getDexId(protocol),
58
+ //TODO: add a lesser value here (2% by default)
59
+ sipplage: slippage ?? 200,
56
60
  },
57
61
  chainId,
58
62
  });
@@ -136,7 +136,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
136
136
  url: string;
137
137
  description: string;
138
138
  id: string;
139
- tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
139
+ tags: string[];
140
140
  icon: string;
141
141
  } | undefined;
142
142
  name: string;
@@ -146,6 +146,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
146
146
  identifier: string;
147
147
  chainId: number;
148
148
  action: import("../../../../database/api/.generated").$Enums.OpportunityAction;
149
+ depositUrl: string | null;
149
150
  tvl: number;
150
151
  apr: number;
151
152
  dailyRewards: number;
@@ -199,7 +200,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
199
200
  url: string;
200
201
  description: string;
201
202
  id: string;
202
- tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
203
+ tags: string[];
203
204
  icon: string;
204
205
  } | null | undefined;
205
206
  aprRecord?: {
@@ -308,7 +309,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
308
309
  url: string;
309
310
  description: string;
310
311
  id: string;
311
- tags: ("AMM" | "ALM" | "DEX" | "LENDING" | "PERPETUAL")[];
312
+ tags: string[];
312
313
  icon: string;
313
314
  } | null | undefined;
314
315
  aprRecord?: {
@@ -504,6 +505,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
504
505
  identifier: string;
505
506
  chainId: number;
506
507
  action: import("../../../../database/api/.generated").$Enums.OpportunityAction;
508
+ depositUrl: string | null;
507
509
  mainProtocolId: string | null;
508
510
  tvl: number;
509
511
  apr: number;
@@ -2,7 +2,7 @@ import { HttpErrorDto, NotFoundError, NotFoundErrorDto } from "../../../errors";
2
2
  import { BackOfficeGuard } from "../../../guards/BackOffice.guard";
3
3
  import { AuthorizationHeadersDto, TokenAuthGuard } from "../../../guards/TokenAuth.guard";
4
4
  import Elysia, { t } from "elysia";
5
- import { AggregationResourceDto, CreateOpportunityDto, GetOpportunitiesQueryDto, OpportunityAggregateFieldDto, OpportunityIdDto, OpportunityResourceDto, OpportunityUniqueDto, OpportunityWithCampaignsResourceDto, UpdateOpportunityDto, } from "./opportunity.model";
5
+ import { CreateOpportunityDto, GetOpportunitiesQueryDto, OpportunityAggregateFieldDto, OpportunityIdDto, OpportunityResourceDto, OpportunityUniqueDto, OpportunityWithCampaignsResourceDto, UpdateOpportunityDto, } from "./opportunity.model";
6
6
  import { OpportunityService } from "./opportunity.service";
7
7
  import { transformId } from "./transform-id.pipe";
8
8
  import { validateId } from "./validate-id.pipe";
@@ -106,7 +106,6 @@ export const OpportunityController = new Elysia({
106
106
  .get("/aggregate/:field", async ({ query, params }) => await OpportunityService.aggregate(query, params.field), {
107
107
  params: OpportunityAggregateFieldDto,
108
108
  query: GetOpportunitiesQueryDto,
109
- response: AggregationResourceDto,
110
109
  })
111
110
  // ─── Update An Opportunity ───────────────────────────────────────────
112
111
  .patch("/:id", async ({ params, body }) => await OpportunityService.update(params.id, body), {
@@ -124,13 +124,7 @@ export declare const OpportunityResourceDto: import("@sinclair/typebox").TObject
124
124
  id: import("@sinclair/typebox").TString;
125
125
  name: import("@sinclair/typebox").TString;
126
126
  icon: import("@sinclair/typebox").TString;
127
- tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TEnum<{
128
- AMM: "AMM";
129
- ALM: "ALM";
130
- DEX: "DEX";
131
- LENDING: "LENDING";
132
- PERPETUAL: "PERPETUAL";
133
- }>>;
127
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
134
128
  description: import("@sinclair/typebox").TString;
135
129
  url: import("@sinclair/typebox").TString;
136
130
  }>, import("@sinclair/typebox").TNull]>>;
@@ -140,13 +134,7 @@ export declare const OpportunityWithCampaignsResourceDto: import("@sinclair/type
140
134
  id: import("@sinclair/typebox").TString;
141
135
  name: import("@sinclair/typebox").TString;
142
136
  icon: import("@sinclair/typebox").TString;
143
- tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TEnum<{
144
- AMM: "AMM";
145
- ALM: "ALM";
146
- DEX: "DEX";
147
- LENDING: "LENDING";
148
- PERPETUAL: "PERPETUAL";
149
- }>>;
137
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
150
138
  description: import("@sinclair/typebox").TString;
151
139
  url: import("@sinclair/typebox").TString;
152
140
  }>, import("@sinclair/typebox").TNull]>>;