@merkl/api 0.10.199 → 0.10.200

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. package/dist/src/eden/index.d.ts +2 -6398
  2. package/dist/src/errors/HttpError.d.ts +5 -0
  3. package/dist/src/errors/HttpError.js +6 -0
  4. package/dist/src/errors/NotFound.error.d.ts +4 -0
  5. package/dist/src/errors/NotFound.error.js +5 -0
  6. package/dist/src/index.d.ts +1 -2464
  7. package/dist/src/index.js +56 -7
  8. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +15 -22
  9. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +1 -0
  10. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
  11. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +8 -0
  12. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GammaProcessor.d.ts +43 -0
  13. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GammaProcessor.js +63 -0
  14. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GenericProcessor.d.ts +3 -3
  15. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/GenericProcessor.js +3 -1
  16. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/NoLinkVaultProcessor.d.ts +36 -0
  17. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/NoLinkVaultProcessor.js +51 -0
  18. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.d.ts +0 -1
  19. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.js +15 -7
  20. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +4 -0
  21. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.d.ts +1 -1
  22. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPrices.js +13 -572
  23. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.d.ts +2 -21
  24. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +197 -1174
  25. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.d.ts +1 -5
  26. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2.js +11 -634
  27. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.d.ts +1 -4
  28. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3.js +10 -380
  29. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.d.ts +3 -3
  30. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4.js +11 -312
  31. package/dist/src/libs/campaigns/campaignTypes/EulerDynamicData.js +8 -8
  32. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +3 -4
  33. package/dist/src/libs/campaigns/campaignsDynamicData.js +0 -5
  34. package/dist/src/modules/v4/accounting/accounting.controller.js +1 -1
  35. package/dist/src/modules/v4/apr/apr.model.d.ts +26 -0
  36. package/dist/src/modules/v4/apr/apr.model.js +15 -1
  37. package/dist/src/modules/v4/blacklist/blacklist.controller.js +1 -1
  38. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +4 -4
  39. package/dist/src/modules/v4/campaign/campaign.controller.js +14 -4
  40. package/dist/src/modules/v4/campaign/campaign.model.d.ts +50 -5
  41. package/dist/src/modules/v4/campaign/campaign.model.js +47 -13
  42. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -2
  43. package/dist/src/modules/v4/campaign/campaign.service.d.ts +2 -2
  44. package/dist/src/modules/v4/chain/chain.controller.d.ts +2 -2
  45. package/dist/src/modules/v4/chain/chain.controller.js +7 -2
  46. package/dist/src/modules/v4/chain/chain.model.d.ts +6 -1
  47. package/dist/src/modules/v4/chain/chain.model.js +8 -1
  48. package/dist/src/modules/v4/chain/chain.repository.js +1 -1
  49. package/dist/src/modules/v4/claims/claims.controller.js +1 -1
  50. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +4 -1
  51. package/dist/src/modules/v4/enso/enso.model.d.ts +1 -1
  52. package/dist/src/modules/v4/enso/enso.model.js +2 -1
  53. package/dist/src/modules/v4/enso/enso.service.d.ts +0 -1
  54. package/dist/src/modules/v4/enso/enso.service.js +4 -4
  55. package/dist/src/modules/v4/interaction/interaction.controller.d.ts +26 -17
  56. package/dist/src/modules/v4/interaction/interaction.controller.js +19 -28
  57. package/dist/src/modules/v4/interaction/interaction.model.d.ts +17 -5
  58. package/dist/src/modules/v4/interaction/interaction.model.js +3 -3
  59. package/dist/src/modules/v4/interaction/interaction.service.d.ts +18 -3
  60. package/dist/src/modules/v4/interaction/interaction.service.js +89 -11
  61. package/dist/src/modules/v4/kyberzap/kyberzap.model.d.ts +72 -0
  62. package/dist/src/modules/v4/kyberzap/kyberzap.model.js +79 -0
  63. package/dist/src/modules/v4/kyberzap/kyberzap.service.d.ts +15 -0
  64. package/dist/src/modules/v4/kyberzap/kyberzap.service.js +84 -0
  65. package/dist/src/modules/v4/liquidity/liquidity.controller.js +1 -1
  66. package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +1 -1
  67. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +224 -213
  68. package/dist/src/modules/v4/opportunity/opportunity.controller.js +39 -10
  69. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +252 -22
  70. package/dist/src/modules/v4/opportunity/opportunity.model.js +58 -15
  71. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +11 -11
  72. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +12 -232
  73. package/dist/src/modules/v4/opportunity/opportunity.service.js +0 -32
  74. package/dist/src/modules/v4/price/price.controller.js +1 -1
  75. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +23 -24
  76. package/dist/src/modules/v4/protocol/protocol.controller.js +15 -9
  77. package/dist/src/modules/v4/protocol/protocol.model.d.ts +13 -1
  78. package/dist/src/modules/v4/protocol/protocol.model.js +12 -8
  79. package/dist/src/modules/v4/reward/reward.controller.js +1 -1
  80. package/dist/src/modules/v4/reward/reward.model.d.ts +44 -1
  81. package/dist/src/modules/v4/reward/reward.model.js +15 -0
  82. package/dist/src/modules/v4/reward/reward.repository.d.ts +2 -2
  83. package/dist/src/modules/v4/reward/reward.service.d.ts +11 -11
  84. package/dist/src/modules/v4/reward/reward.service.js +1 -1
  85. package/dist/src/modules/v4/router.d.ts +287 -268
  86. package/dist/src/modules/v4/status/status.controller.js +2 -3
  87. package/dist/src/modules/v4/status/status.model.d.ts +12 -0
  88. package/dist/src/modules/v4/status/status.model.js +12 -0
  89. package/dist/src/modules/v4/token/token.controller.d.ts +4 -4
  90. package/dist/src/modules/v4/token/token.controller.js +1 -1
  91. package/dist/src/modules/v4/token/token.model.d.ts +12 -0
  92. package/dist/src/modules/v4/token/token.model.js +12 -0
  93. package/dist/src/modules/v4/token/token.repository.d.ts +2 -2
  94. package/dist/src/modules/v4/token/token.service.d.ts +7 -7
  95. package/dist/src/modules/v4/tvl/tvl.model.d.ts +24 -0
  96. package/dist/src/modules/v4/tvl/tvl.model.js +15 -1
  97. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +1 -1
  98. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +9 -8
  99. package/dist/src/modules/v4/user/user.controller.d.ts +4 -4
  100. package/dist/src/modules/v4/user/user.controller.js +20 -17
  101. package/dist/src/modules/v4/user/user.model.d.ts +30 -0
  102. package/dist/src/modules/v4/user/user.model.js +27 -0
  103. package/dist/src/modules/v4/zyfi/zyfi.model.d.ts +45 -0
  104. package/dist/src/modules/v4/zyfi/zyfi.model.js +1 -0
  105. package/dist/src/modules/v4/zyfi/zyfi.service.d.ts +30 -0
  106. package/dist/src/modules/v4/zyfi/zyfi.service.js +35 -0
  107. package/dist/src/plugins/error-handling.plugin.d.ts +2 -2
  108. package/dist/src/plugins/error-handling.plugin.js +9 -3
  109. package/dist/src/plugins/logger.plugin.js +1 -20
  110. package/dist/src/routes/v1/allowances.d.ts +1 -1
  111. package/dist/src/routes/v1/allowances.js +1 -1
  112. package/dist/src/routes/v1/balances.d.ts +1 -1
  113. package/dist/src/routes/v1/balances.js +1 -1
  114. package/dist/src/routes/v1/prices.d.ts +1 -1
  115. package/dist/src/routes/v1/prices.js +1 -1
  116. package/dist/src/routes/v1/router.d.ts +102 -0
  117. package/dist/src/routes/v1/router.js +6 -0
  118. package/dist/src/routes/v1/tokens.d.ts +1 -1
  119. package/dist/src/routes/v1/tokens.js +1 -1
  120. package/dist/src/routes/v2/merkl.d.ts +5 -5
  121. package/dist/src/routes/v2/merkl.js +1 -1
  122. package/dist/src/routes/v2/router.d.ts +46 -0
  123. package/dist/src/routes/v2/router.js +3 -0
  124. package/dist/src/routes/v3/app.d.ts +1 -1
  125. package/dist/src/routes/v3/app.js +1 -1
  126. package/dist/src/routes/v3/blacklist.d.ts +1 -2479
  127. package/dist/src/routes/v3/blacklist.js +1 -1
  128. package/dist/src/routes/v3/campaignClaims.d.ts +1 -1
  129. package/dist/src/routes/v3/campaignClaims.js +1 -1
  130. package/dist/src/routes/v3/campaignReport.d.ts +1 -1
  131. package/dist/src/routes/v3/campaignReport.js +1 -1
  132. package/dist/src/routes/v3/campaignUnclaimed.d.ts +1 -1
  133. package/dist/src/routes/v3/campaignUnclaimed.js +1 -1
  134. package/dist/src/routes/v3/campaigns.d.ts +1 -2483
  135. package/dist/src/routes/v3/campaigns.js +1 -1
  136. package/dist/src/routes/v3/campaignsForMainParameter.d.ts +1 -1
  137. package/dist/src/routes/v3/campaignsForMainParameter.js +1 -1
  138. package/dist/src/routes/v3/campaignsInfo.d.ts +1 -2481
  139. package/dist/src/routes/v3/campaignsInfo.js +1 -1
  140. package/dist/src/routes/v3/campaignsRewardsReport.d.ts +1 -1
  141. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -1
  142. package/dist/src/routes/v3/claims.d.ts +1 -1
  143. package/dist/src/routes/v3/claims.js +1 -1
  144. package/dist/src/routes/v3/compoundV2.d.ts +1 -1
  145. package/dist/src/routes/v3/compoundV2.js +1 -1
  146. package/dist/src/routes/v3/createCampaign.d.ts +1 -1
  147. package/dist/src/routes/v3/createCampaign.js +1 -1
  148. package/dist/src/routes/v3/dolomite.d.ts +1 -1
  149. package/dist/src/routes/v3/dolomite.js +1 -1
  150. package/dist/src/routes/v3/euler.d.ts +1 -1
  151. package/dist/src/routes/v3/euler.js +1 -1
  152. package/dist/src/routes/v3/fetch.d.ts +1 -1
  153. package/dist/src/routes/v3/fetch.js +1 -1
  154. package/dist/src/routes/v3/health.d.ts +1 -1
  155. package/dist/src/routes/v3/health.js +1 -1
  156. package/dist/src/routes/v3/lostyield.d.ts +1 -1
  157. package/dist/src/routes/v3/lostyield.js +1 -1
  158. package/dist/src/routes/v3/merkl.d.ts +1 -1
  159. package/dist/src/routes/v3/merkl.js +1 -1
  160. package/dist/src/routes/v3/morphoMarkets.d.ts +1 -1
  161. package/dist/src/routes/v3/morphoMarkets.js +1 -1
  162. package/dist/src/routes/v3/morphoVaults.d.ts +1 -1
  163. package/dist/src/routes/v3/morphoVaults.js +1 -1
  164. package/dist/src/routes/v3/multiChainPositions.d.ts +1 -2480
  165. package/dist/src/routes/v3/multiChainPositions.js +1 -1
  166. package/dist/src/routes/v3/opportunity.d.ts +1 -2483
  167. package/dist/src/routes/v3/opportunity.js +1 -1
  168. package/dist/src/routes/v3/overview.d.ts +1 -1
  169. package/dist/src/routes/v3/overview.js +1 -1
  170. package/dist/src/routes/v3/parse.d.ts +1 -1
  171. package/dist/src/routes/v3/parse.js +1 -1
  172. package/dist/src/routes/v3/payload.d.ts +1 -1
  173. package/dist/src/routes/v3/payload.js +1 -1
  174. package/dist/src/routes/v3/poolInfo.js +1 -1
  175. package/dist/src/routes/v3/positions.d.ts +1 -2479
  176. package/dist/src/routes/v3/positions.js +1 -1
  177. package/dist/src/routes/v3/radiant.d.ts +1 -1
  178. package/dist/src/routes/v3/radiant.js +1 -1
  179. package/dist/src/routes/v3/recipients.d.ts +1 -1
  180. package/dist/src/routes/v3/recipients.js +1 -1
  181. package/dist/src/routes/v3/rewards.d.ts +1 -2508
  182. package/dist/src/routes/v3/rewards.js +1 -1
  183. package/dist/src/routes/v3/rewardsReport.d.ts +1 -1
  184. package/dist/src/routes/v3/rewardsReport.js +1 -1
  185. package/dist/src/routes/v3/router.d.ts +1 -0
  186. package/dist/src/routes/v3/router.js +74 -0
  187. package/dist/src/routes/v3/silo.d.ts +1 -1
  188. package/dist/src/routes/v3/silo.js +1 -1
  189. package/dist/src/routes/v3/token.d.ts +1 -1
  190. package/dist/src/routes/v3/token.js +1 -1
  191. package/dist/src/routes/v3/tokenUnclaimed.d.ts +1 -1
  192. package/dist/src/routes/v3/tokenUnclaimed.js +1 -1
  193. package/dist/src/routes/v3/updates.d.ts +1 -2483
  194. package/dist/src/routes/v3/updates.js +1 -1
  195. package/dist/src/routes/v3/userRewards.d.ts +1 -2499
  196. package/dist/src/routes/v3/userRewards.js +1 -1
  197. package/dist/src/utils/decodeCalls.js +12 -1
  198. package/dist/src/utils/encodeCalls.js +26 -3
  199. package/dist/src/utils/generateCardName.js +2 -0
  200. package/dist/tsconfig.package.tsbuildinfo +1 -1
  201. package/package.json +2 -3
  202. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.d.ts +0 -3
  203. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +0 -155
  204. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.d.ts +0 -4
  205. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.js +0 -24
  206. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.d.ts +0 -4
  207. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +0 -230
  208. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.d.ts +0 -3
  209. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.js +0 -22
  210. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.d.ts +0 -3
  211. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.js +0 -22
  212. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.d.ts +0 -4
  213. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.js +0 -22
  214. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.d.ts +0 -3
  215. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.js +0 -75
@@ -42,13 +42,25 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
42
42
  };
43
43
  } & {
44
44
  opportunities: {
45
- ":id": {
45
+ index: {
46
46
  get: {
47
47
  body: unknown;
48
- params: {
49
- id: string;
48
+ params: {};
49
+ query: {
50
+ sort?: string | undefined;
51
+ name?: string | undefined;
52
+ tokens?: string | undefined;
53
+ status?: string | undefined;
54
+ items?: number | undefined;
55
+ tags?: string | undefined;
56
+ page?: number | undefined;
57
+ chainId?: string | undefined;
58
+ action?: string | undefined;
59
+ mainProtocolId?: string | undefined;
60
+ order?: string | undefined;
61
+ test?: boolean | undefined;
62
+ minimumTvl?: number | undefined;
50
63
  };
51
- query: unknown;
52
64
  headers: unknown;
53
65
  response: {
54
66
  200: {
@@ -88,9 +100,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
88
100
  symbol: string;
89
101
  name: string | null;
90
102
  id: string;
103
+ icon: string;
91
104
  chainId: number;
92
105
  address: string;
93
- icon: string;
94
106
  decimals: number;
95
107
  displaySymbol: string;
96
108
  verified: boolean;
@@ -105,9 +117,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
105
117
  symbol: string;
106
118
  name: string | null;
107
119
  id: string;
120
+ icon: string;
108
121
  chainId: number;
109
122
  address: string;
110
- icon: string;
111
123
  decimals: number;
112
124
  verified: boolean;
113
125
  isTest: boolean;
@@ -137,7 +149,143 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
137
149
  tvl: number;
138
150
  apr: number;
139
151
  dailyRewards: number;
140
- } | undefined;
152
+ }[];
153
+ };
154
+ };
155
+ };
156
+ };
157
+ } & {
158
+ opportunities: {
159
+ count: {
160
+ get: {
161
+ body: unknown;
162
+ params: {};
163
+ query: {
164
+ sort?: string | undefined;
165
+ name?: string | undefined;
166
+ tokens?: string | undefined;
167
+ status?: string | undefined;
168
+ items?: number | undefined;
169
+ tags?: string | undefined;
170
+ page?: number | undefined;
171
+ chainId?: string | undefined;
172
+ action?: string | undefined;
173
+ mainProtocolId?: string | undefined;
174
+ order?: string | undefined;
175
+ test?: boolean | undefined;
176
+ minimumTvl?: number | undefined;
177
+ };
178
+ headers: unknown;
179
+ response: {
180
+ 200: number;
181
+ };
182
+ };
183
+ };
184
+ };
185
+ } & {
186
+ opportunities: {
187
+ ":id": {
188
+ get: {
189
+ body: unknown;
190
+ params: {
191
+ id: string;
192
+ };
193
+ query: unknown;
194
+ headers: unknown;
195
+ response: {
196
+ 200: {
197
+ protocol?: {
198
+ name: string;
199
+ url: string;
200
+ description: string;
201
+ id: string;
202
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
203
+ icon: string;
204
+ } | null | undefined;
205
+ aprRecord?: {
206
+ timestamp: string | bigint;
207
+ cumulated: number;
208
+ breakdowns: {
209
+ type: "CAMPAIGN" | "TOKEN" | "PROTOCOL";
210
+ id: number;
211
+ identifier: string;
212
+ value: number;
213
+ aprRecordId: string;
214
+ }[];
215
+ } | undefined;
216
+ tvlRecord?: {
217
+ total: number;
218
+ timestamp: string | bigint;
219
+ breakdowns: {
220
+ type: "TOKEN" | "PROTOCOL";
221
+ id: number;
222
+ identifier: string;
223
+ value: number;
224
+ tvlRecordId: string;
225
+ }[];
226
+ } | undefined;
227
+ rewardsRecord?: {
228
+ total: number;
229
+ id: string;
230
+ timestamp: string | bigint;
231
+ breakdowns: {
232
+ token: {
233
+ price?: number | null | undefined;
234
+ symbol: string;
235
+ name: string | null;
236
+ id: string;
237
+ icon: string;
238
+ chainId: number;
239
+ address: string;
240
+ decimals: number;
241
+ verified: boolean;
242
+ isTest: boolean;
243
+ };
244
+ id: number;
245
+ value: number;
246
+ campaignId: string;
247
+ amount: string | bigint;
248
+ dailyRewardsRecordId: string;
249
+ }[];
250
+ } | undefined;
251
+ name: string;
252
+ type: string;
253
+ tokens: {
254
+ price?: number | null | undefined;
255
+ symbol: string;
256
+ name: string | null;
257
+ id: string;
258
+ icon: string;
259
+ chainId: number;
260
+ address: string;
261
+ decimals: number;
262
+ verified: boolean;
263
+ isTest: boolean;
264
+ }[];
265
+ id: string;
266
+ status: string;
267
+ tags: string[];
268
+ identifier: string;
269
+ chain: {
270
+ name: string;
271
+ id: number;
272
+ icon: string;
273
+ };
274
+ chainId: number;
275
+ action: string;
276
+ tvl: number;
277
+ apr: number;
278
+ dailyRewards: number;
279
+ };
280
+ readonly 404: {
281
+ message: string;
282
+ name: string;
283
+ };
284
+ readonly 500: {
285
+ code: string;
286
+ info: string;
287
+ httpCode: number;
288
+ };
141
289
  };
142
290
  };
143
291
  };
@@ -155,129 +303,113 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
155
303
  headers: unknown;
156
304
  response: {
157
305
  200: {
158
- aprRecord: {
306
+ protocol?: {
307
+ name: string;
308
+ url: string;
309
+ description: string;
310
+ id: string;
311
+ tags: ("AMM" | "ALM" | "DEX" | "LENDING")[];
312
+ icon: string;
313
+ } | null | undefined;
314
+ aprRecord?: {
315
+ timestamp: string | bigint;
159
316
  cumulated: number;
160
- timestamp: bigint;
161
317
  breakdowns: {
162
- type: import("../../../../database/api/.generated").$Enums.AprType;
318
+ type: "CAMPAIGN" | "TOKEN" | "PROTOCOL";
163
319
  id: number;
164
320
  identifier: string;
165
321
  value: number;
166
322
  aprRecordId: string;
167
323
  }[];
168
- };
169
- tvlRecord: {
170
- id: string;
324
+ } | undefined;
325
+ tvlRecord?: {
171
326
  total: number;
172
- timestamp: bigint;
327
+ timestamp: string | bigint;
173
328
  breakdowns: {
174
- type: import("../../../../database/api/.generated").$Enums.TvlType;
329
+ type: "TOKEN" | "PROTOCOL";
175
330
  id: number;
176
331
  identifier: string;
177
332
  value: number;
178
333
  tvlRecordId: string;
179
334
  }[];
180
- };
181
- rewardsRecord: {
182
- id: string;
335
+ } | undefined;
336
+ rewardsRecord?: {
183
337
  total: number;
184
- timestamp: bigint;
338
+ id: string;
339
+ timestamp: string | bigint;
185
340
  breakdowns: {
186
- id: number;
187
- value: number;
188
- campaignId: string;
189
- dailyRewardsRecordId: string;
190
341
  token: {
342
+ price?: number | null | undefined;
191
343
  symbol: string;
192
344
  name: string | null;
193
345
  id: string;
346
+ icon: string;
194
347
  chainId: number;
195
348
  address: string;
196
- icon: string;
197
349
  decimals: number;
198
- displaySymbol: string;
199
350
  verified: boolean;
200
351
  isTest: boolean;
201
- price: number | null;
202
352
  };
203
- amount: bigint;
353
+ id: number;
354
+ value: number;
355
+ campaignId: string;
356
+ amount: string | bigint;
357
+ dailyRewardsRecordId: string;
204
358
  }[];
205
- };
206
- id: string;
207
- tokens: ({
359
+ } | undefined;
360
+ name: string;
361
+ type: string;
362
+ tokens: {
363
+ price?: number | null | undefined;
208
364
  symbol: string;
209
365
  name: string | null;
210
366
  id: string;
367
+ icon: string;
211
368
  chainId: number;
212
369
  address: string;
213
- icon: string;
214
370
  decimals: number;
215
371
  verified: boolean;
216
372
  isTest: boolean;
217
- } & {
218
- price?: number | null | undefined;
219
- })[];
373
+ }[];
374
+ id: string;
375
+ status: string;
376
+ tags: string[];
377
+ identifier: string;
220
378
  chain: {
221
379
  name: string;
222
380
  id: number;
223
381
  icon: string;
224
382
  };
225
- protocol: {
226
- name: string;
227
- url: string;
228
- description: string;
229
- id: string;
230
- tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
231
- icon: string;
232
- } | undefined;
233
- name: string;
234
- type: import("../../../../database/api/.generated").$Enums.CampaignType;
235
- status: import("../../../../database/api/.generated").$Enums.Status;
236
- tags: string[];
237
- identifier: string;
238
383
  chainId: number;
239
- action: import("../../../../database/api/.generated").$Enums.OpportunityAction;
384
+ action: string;
240
385
  tvl: number;
241
386
  apr: number;
242
387
  dailyRewards: number;
243
388
  campaigns: {
244
- params: any;
245
- chain: {
389
+ campaignStatus?: {
390
+ error?: string | undefined;
391
+ details?: any;
392
+ status: string;
393
+ campaignId: string;
394
+ computedUntil: string | bigint;
395
+ processingStarted: string | bigint;
396
+ } | undefined;
397
+ distributionChain?: {
246
398
  name: string;
247
399
  id: number;
248
400
  icon: string;
249
- };
250
- rewardToken: {
251
- symbol: string;
252
- name: string | null;
253
- id: string;
254
- chainId: number;
255
- address: string;
256
- icon: string;
257
- decimals: number;
258
- verified: boolean;
259
- isTest: boolean;
260
- } & {
261
- price?: number | null | undefined;
262
- };
263
- distributionChain: {
401
+ } | undefined;
402
+ type: string;
403
+ id: string;
404
+ params: any;
405
+ subType: number | null;
406
+ chain: {
264
407
  name: string;
265
408
  id: number;
266
409
  icon: string;
267
- } | undefined;
268
- campaignStatus: {
269
- error: string;
270
- details: import("database/api/.generated/runtime/library").JsonValue;
271
- status: import("../../../../database/api/.generated").$Enums.RunStatus;
272
- campaignId: string;
273
- computedUntil: bigint;
274
- processingStarted: bigint;
275
410
  };
276
- type: import("../../../../database/api/.generated").$Enums.CampaignType;
277
- id: string;
278
- subType: number | null;
279
- startTimestamp: bigint;
280
- endTimestamp: bigint;
411
+ startTimestamp: string | bigint;
412
+ endTimestamp: string | bigint;
281
413
  computeChainId: number;
282
414
  distributionChainId: number;
283
415
  campaignId: string;
@@ -285,151 +417,30 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
285
417
  amount: string;
286
418
  opportunityId: string;
287
419
  creatorAddress: string;
288
- }[];
289
- } | null | undefined;
290
- };
291
- };
292
- };
293
- };
294
- };
295
- } & {
296
- opportunities: {
297
- index: {
298
- get: {
299
- body: unknown;
300
- params: {};
301
- query: {
302
- sort?: "tvl" | "apr" | "rewards" | undefined;
303
- name?: string | undefined;
304
- tokens?: string | undefined;
305
- status?: string | undefined;
306
- items?: number | undefined;
307
- tags?: string | undefined;
308
- chainId?: string | undefined;
309
- page?: number | undefined;
310
- action?: string | undefined;
311
- mainProtocolId?: string | undefined;
312
- order?: "asc" | "desc" | undefined;
313
- test?: boolean | undefined;
314
- minimumTvl?: number | undefined;
315
- };
316
- headers: unknown;
317
- response: {
318
- 200: {
319
- aprRecord: {
320
- cumulated: number;
321
- timestamp: bigint;
322
- breakdowns: {
323
- type: import("../../../../database/api/.generated").$Enums.AprType;
324
- id: number;
325
- identifier: string;
326
- value: number;
327
- aprRecordId: string;
328
- }[];
329
- };
330
- tvlRecord: {
331
- id: string;
332
- total: number;
333
- timestamp: bigint;
334
- breakdowns: {
335
- type: import("../../../../database/api/.generated").$Enums.TvlType;
336
- id: number;
337
- identifier: string;
338
- value: number;
339
- tvlRecordId: string;
340
- }[];
341
- };
342
- rewardsRecord: {
343
- id: string;
344
- total: number;
345
- timestamp: bigint;
346
- breakdowns: {
347
- id: number;
348
- value: number;
349
- campaignId: string;
350
- dailyRewardsRecordId: string;
351
- token: {
420
+ rewardToken: {
421
+ price?: number | null | undefined;
352
422
  symbol: string;
353
423
  name: string | null;
354
424
  id: string;
425
+ icon: string;
355
426
  chainId: number;
356
427
  address: string;
357
- icon: string;
358
428
  decimals: number;
359
- displaySymbol: string;
360
429
  verified: boolean;
361
430
  isTest: boolean;
362
- price: number | null;
363
431
  };
364
- amount: bigint;
365
432
  }[];
366
433
  };
367
- id: string;
368
- tokens: ({
369
- symbol: string;
370
- name: string | null;
371
- id: string;
372
- chainId: number;
373
- address: string;
374
- icon: string;
375
- decimals: number;
376
- verified: boolean;
377
- isTest: boolean;
378
- } & {
379
- price?: number | null | undefined;
380
- })[];
381
- chain: {
434
+ readonly 404: {
435
+ message: string;
382
436
  name: string;
383
- id: number;
384
- icon: string;
385
437
  };
386
- protocol: {
387
- name: string;
388
- url: string;
389
- description: string;
390
- id: string;
391
- tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
392
- icon: string;
393
- } | undefined;
394
- name: string;
395
- type: import("../../../../database/api/.generated").$Enums.CampaignType;
396
- status: import("../../../../database/api/.generated").$Enums.Status;
397
- tags: string[];
398
- identifier: string;
399
- chainId: number;
400
- action: import("../../../../database/api/.generated").$Enums.OpportunityAction;
401
- tvl: number;
402
- apr: number;
403
- dailyRewards: number;
404
- }[];
405
- };
406
- };
407
- };
408
- };
409
- } & {
410
- opportunities: {
411
- count: {
412
- get: {
413
- body: unknown;
414
- params: {};
415
- query: {
416
- sort?: "tvl" | "apr" | "rewards" | undefined;
417
- name?: string | undefined;
418
- tokens?: string | undefined;
419
- status?: string | undefined;
420
- items?: number | undefined;
421
- tags?: string | undefined;
422
- chainId?: string | undefined;
423
- page?: number | undefined;
424
- action?: string | undefined;
425
- mainProtocolId?: string | undefined;
426
- order?: "asc" | "desc" | undefined;
427
- test?: boolean | undefined;
428
- minimumTvl?: number | undefined;
429
- };
430
- headers: unknown;
431
- response: {
432
- 200: number;
438
+ readonly 500: {
439
+ code: string;
440
+ info: string;
441
+ httpCode: number;
442
+ };
443
+ };
433
444
  };
434
445
  };
435
446
  };
@@ -444,17 +455,17 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
444
455
  field: never;
445
456
  };
446
457
  query: {
447
- sort?: "tvl" | "apr" | "rewards" | undefined;
458
+ sort?: string | undefined;
448
459
  name?: string | undefined;
449
460
  tokens?: string | undefined;
450
461
  status?: string | undefined;
451
462
  items?: number | undefined;
452
463
  tags?: string | undefined;
453
- chainId?: string | undefined;
454
464
  page?: number | undefined;
465
+ chainId?: string | undefined;
455
466
  action?: string | undefined;
456
467
  mainProtocolId?: string | undefined;
457
- order?: "asc" | "desc" | undefined;
468
+ order?: string | undefined;
458
469
  test?: boolean | undefined;
459
470
  minimumTvl?: number | undefined;
460
471
  };
@@ -1,15 +1,17 @@
1
- import { NotFoundError } from "../../../errors";
1
+ import { HttpErrorDto, NotFoundError, NotFoundErrorDto } from "../../../errors";
2
2
  import { BackOfficeGuard } from "../../../guards/BackOffice.guard";
3
3
  import { AuthorizationHeadersDto, TokenAuthGuard } from "../../../guards/TokenAuth.guard";
4
- import Elysia from "elysia";
5
- import { CreateOpportunityDto, GetOpportunitiesQueryDto, OpportunityAggregateFieldDto, OpportunityIdDto, OpportunityUniqueDto, UpdateOpportunityDto, } from "./opportunity.model";
4
+ import Elysia, { t } from "elysia";
5
+ import { AggregationResourceDto, 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";
9
9
  // ─── Opportunities Controller ────────────────────────────────────────────────
10
10
  export const OpportunityController = new Elysia({
11
11
  prefix: "/opportunities",
12
- detail: { tags: ["Opportunities"] },
12
+ detail: {
13
+ tags: ["Opportunities"],
14
+ },
13
15
  })
14
16
  // ─── Create An Opportunity ───────────────────────────────────────────
15
17
  .post("/", async ({ body }) => await OpportunityService.create(body), {
@@ -17,6 +19,21 @@ export const OpportunityController = new Elysia({
17
19
  headers: AuthorizationHeadersDto,
18
20
  body: CreateOpportunityDto,
19
21
  detail: { hide: true },
22
+ })
23
+ // ─── Get All Opportunities ───────────────────────────────────────────
24
+ .get("/", async ({ query }) => await OpportunityService.getMany(query), {
25
+ query: GetOpportunitiesQueryDto,
26
+ detail: {
27
+ description: `**Retrieve Multiple Opportunities**
28
+ <p>This endpoint enables you to search for opportunities by providing specific criteria through query parameters.</p>`,
29
+ },
30
+ response: t.Array(t.Union([OpportunityResourceDto, t.Null()])),
31
+ })
32
+ // ─── Get Opportunities Count ─────────────────────────────────────────
33
+ .get("/count", async ({ query }) => await OpportunityService.countMany(query), {
34
+ query: GetOpportunitiesQueryDto,
35
+ detail: { description: "Get the count of opportunities corresponding to the query." },
36
+ response: { 200: t.Number() },
20
37
  })
21
38
  // ─── Get An Opportunity By Id ────────────────────────────────────────
22
39
  .get("/:id", async ({ params }) => {
@@ -33,11 +50,18 @@ export const OpportunityController = new Elysia({
33
50
  catch (err) {
34
51
  if (err.code && err.code === "P2025")
35
52
  throw new NotFoundError();
53
+ throw err;
36
54
  }
37
55
  }, {
38
56
  params: OpportunityUniqueDto,
39
57
  transform: transformId,
40
58
  beforeHandle: validateId,
59
+ response: {
60
+ 200: OpportunityResourceDto,
61
+ 404: NotFoundErrorDto,
62
+ 500: HttpErrorDto,
63
+ },
64
+ detail: { description: "Get a unique opportunity." },
41
65
  })
42
66
  // ─── Get An Opportunity By Id With Related Campaigns ─────────────────
43
67
  .get("/:id/campaigns", async ({ params }) => {
@@ -54,22 +78,27 @@ export const OpportunityController = new Elysia({
54
78
  catch (err) {
55
79
  if (err.code && err.code === "P2025")
56
80
  throw new NotFoundError();
81
+ throw err;
57
82
  }
58
83
  }, {
59
84
  params: OpportunityUniqueDto,
60
85
  transform: transformId,
61
86
  beforeHandle: validateId,
87
+ response: {
88
+ 200: OpportunityWithCampaignsResourceDto,
89
+ 404: NotFoundErrorDto,
90
+ 500: HttpErrorDto,
91
+ },
92
+ detail: {
93
+ description: "Get a unique opportunity, including related [campaigns](#tag/campaigns/).",
94
+ },
62
95
  })
63
- // ─── Get All Opportunities ───────────────────────────────────────────
64
- .get("/", async ({ query }) => await OpportunityService.getMany(query), {
65
- query: GetOpportunitiesQueryDto,
66
- })
67
- // ─── Get Opportunities Count ─────────────────────────────────────────
68
- .get("/count", async ({ query }) => await OpportunityService.countMany(query), { query: GetOpportunitiesQueryDto })
69
96
  // ─── Get Aggregate Fields ────────────────────────────────────────────
70
97
  .get("/aggregate/:field", async ({ query, params }) => await OpportunityService.aggregate(query, params.field), {
71
98
  params: OpportunityAggregateFieldDto,
72
99
  query: GetOpportunitiesQueryDto,
100
+ response: AggregationResourceDto,
101
+ detail: { hide: true },
73
102
  })
74
103
  // ─── Update An Opportunity ───────────────────────────────────────────
75
104
  .patch("/:id", async ({ params, body }) => await OpportunityService.update(params.id, body), {