@merkl/api 0.10.199 → 0.10.200

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 (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
@@ -1,13 +1,13 @@
1
- import type { AprRecord } from "../apr/apr.model";
1
+ import { type AprRecord } from "../apr/apr.model";
2
2
  import type { Resource } from "../prisma";
3
- import type { Protocol, ProtocolId } from "../protocol/protocol.model";
4
- import type { DailyRewardsRecord } from "../reward";
3
+ import { type Protocol, type ProtocolId } from "../protocol/protocol.model";
4
+ import { type DailyRewardsRecord } from "../reward";
5
5
  import { type Token } from "../token/token.model";
6
- import type { TvlRecord } from "../tvl/tvl.model";
6
+ import { type TvlRecord } from "../tvl/tvl.model";
7
7
  import { CampaignType, OpportunityAction } from "../../../../database/api/.generated";
8
8
  import type { ChainId } from "@sdk";
9
- import type { Campaign } from "../campaign";
10
- import type { Chain } from "../chain/chain.model";
9
+ import { type Campaign } from "../campaign";
10
+ import { type Chain } from "../chain/chain.model";
11
11
  import type { OpportunityRepository } from "./opportunity.repository";
12
12
  /**
13
13
  * Opportunity
@@ -38,32 +38,260 @@ export type OpportunityUnique = {
38
38
  type: CampaignType;
39
39
  identifier: string;
40
40
  };
41
+ export declare const OpportunityResourceDto: import("@sinclair/typebox").TObject<{
42
+ chainId: import("@sinclair/typebox").TNumber;
43
+ type: import("@sinclair/typebox").TString;
44
+ identifier: import("@sinclair/typebox").TString;
45
+ name: import("@sinclair/typebox").TString;
46
+ status: import("@sinclair/typebox").TString;
47
+ action: import("@sinclair/typebox").TString;
48
+ tvl: import("@sinclair/typebox").TNumber;
49
+ apr: import("@sinclair/typebox").TNumber;
50
+ dailyRewards: import("@sinclair/typebox").TNumber;
51
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
52
+ id: import("@sinclair/typebox").TString;
53
+ tokens: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
54
+ id: import("@sinclair/typebox").TString;
55
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
56
+ chainId: import("@sinclair/typebox").TNumber;
57
+ address: import("@sinclair/typebox").TString;
58
+ decimals: import("@sinclair/typebox").TNumber;
59
+ icon: import("@sinclair/typebox").TString;
60
+ verified: import("@sinclair/typebox").TBoolean;
61
+ isTest: import("@sinclair/typebox").TBoolean;
62
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
63
+ symbol: import("@sinclair/typebox").TString;
64
+ }>>;
65
+ chain: import("@sinclair/typebox").TObject<{
66
+ id: import("@sinclair/typebox").TNumber;
67
+ name: import("@sinclair/typebox").TString;
68
+ icon: import("@sinclair/typebox").TString;
69
+ }>;
70
+ aprRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
71
+ cumulated: import("@sinclair/typebox").TNumber;
72
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
73
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
74
+ id: import("@sinclair/typebox").TNumber;
75
+ type: import("@sinclair/typebox").TEnum<{
76
+ CAMPAIGN: "CAMPAIGN";
77
+ TOKEN: "TOKEN";
78
+ PROTOCOL: "PROTOCOL";
79
+ }>;
80
+ identifier: import("@sinclair/typebox").TString;
81
+ value: import("@sinclair/typebox").TNumber;
82
+ aprRecordId: import("@sinclair/typebox").TString;
83
+ }>>;
84
+ }>>;
85
+ tvlRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
86
+ total: import("@sinclair/typebox").TNumber;
87
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
88
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
89
+ id: import("@sinclair/typebox").TNumber;
90
+ type: import("@sinclair/typebox").TEnum<{
91
+ TOKEN: "TOKEN";
92
+ PROTOCOL: "PROTOCOL";
93
+ }>;
94
+ identifier: import("@sinclair/typebox").TString;
95
+ value: import("@sinclair/typebox").TNumber;
96
+ tvlRecordId: import("@sinclair/typebox").TString;
97
+ }>>;
98
+ }>>;
99
+ rewardsRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
100
+ id: import("@sinclair/typebox").TString;
101
+ total: import("@sinclair/typebox").TNumber;
102
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
103
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
104
+ id: import("@sinclair/typebox").TNumber;
105
+ campaignId: import("@sinclair/typebox").TString;
106
+ value: import("@sinclair/typebox").TNumber;
107
+ dailyRewardsRecordId: import("@sinclair/typebox").TString;
108
+ token: import("@sinclair/typebox").TObject<{
109
+ id: import("@sinclair/typebox").TString;
110
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
111
+ chainId: import("@sinclair/typebox").TNumber;
112
+ address: import("@sinclair/typebox").TString;
113
+ decimals: import("@sinclair/typebox").TNumber;
114
+ icon: import("@sinclair/typebox").TString;
115
+ verified: import("@sinclair/typebox").TBoolean;
116
+ isTest: import("@sinclair/typebox").TBoolean;
117
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
118
+ symbol: import("@sinclair/typebox").TString;
119
+ }>;
120
+ amount: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
121
+ }>>;
122
+ }>>;
123
+ protocol: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
124
+ id: import("@sinclair/typebox").TString;
125
+ name: import("@sinclair/typebox").TString;
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
+ }>>;
133
+ description: import("@sinclair/typebox").TString;
134
+ url: import("@sinclair/typebox").TString;
135
+ }>, import("@sinclair/typebox").TNull]>>;
136
+ }>;
137
+ export declare const OpportunityWithCampaignsResourceDto: import("@sinclair/typebox").TObject<{
138
+ protocol: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
139
+ id: import("@sinclair/typebox").TString;
140
+ name: import("@sinclair/typebox").TString;
141
+ icon: import("@sinclair/typebox").TString;
142
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TEnum<{
143
+ AMM: "AMM";
144
+ ALM: "ALM";
145
+ DEX: "DEX";
146
+ LENDING: "LENDING";
147
+ }>>;
148
+ description: import("@sinclair/typebox").TString;
149
+ url: import("@sinclair/typebox").TString;
150
+ }>, import("@sinclair/typebox").TNull]>>;
151
+ name: import("@sinclair/typebox").TString;
152
+ type: import("@sinclair/typebox").TString;
153
+ tokens: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
154
+ id: import("@sinclair/typebox").TString;
155
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
156
+ chainId: import("@sinclair/typebox").TNumber;
157
+ address: import("@sinclair/typebox").TString;
158
+ decimals: import("@sinclair/typebox").TNumber;
159
+ icon: import("@sinclair/typebox").TString;
160
+ verified: import("@sinclair/typebox").TBoolean;
161
+ isTest: import("@sinclair/typebox").TBoolean;
162
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
163
+ symbol: import("@sinclair/typebox").TString;
164
+ }>>;
165
+ id: import("@sinclair/typebox").TString;
166
+ status: import("@sinclair/typebox").TString;
167
+ tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
168
+ identifier: import("@sinclair/typebox").TString;
169
+ chain: import("@sinclair/typebox").TObject<{
170
+ id: import("@sinclair/typebox").TNumber;
171
+ name: import("@sinclair/typebox").TString;
172
+ icon: import("@sinclair/typebox").TString;
173
+ }>;
174
+ chainId: import("@sinclair/typebox").TNumber;
175
+ action: import("@sinclair/typebox").TString;
176
+ tvl: import("@sinclair/typebox").TNumber;
177
+ apr: import("@sinclair/typebox").TNumber;
178
+ dailyRewards: import("@sinclair/typebox").TNumber;
179
+ aprRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
180
+ cumulated: import("@sinclair/typebox").TNumber;
181
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
182
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
183
+ id: import("@sinclair/typebox").TNumber;
184
+ type: import("@sinclair/typebox").TEnum<{
185
+ CAMPAIGN: "CAMPAIGN";
186
+ TOKEN: "TOKEN";
187
+ PROTOCOL: "PROTOCOL";
188
+ }>;
189
+ identifier: import("@sinclair/typebox").TString;
190
+ value: import("@sinclair/typebox").TNumber;
191
+ aprRecordId: import("@sinclair/typebox").TString;
192
+ }>>;
193
+ }>>;
194
+ tvlRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
195
+ total: import("@sinclair/typebox").TNumber;
196
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
197
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
198
+ id: import("@sinclair/typebox").TNumber;
199
+ type: import("@sinclair/typebox").TEnum<{
200
+ TOKEN: "TOKEN";
201
+ PROTOCOL: "PROTOCOL";
202
+ }>;
203
+ identifier: import("@sinclair/typebox").TString;
204
+ value: import("@sinclair/typebox").TNumber;
205
+ tvlRecordId: import("@sinclair/typebox").TString;
206
+ }>>;
207
+ }>>;
208
+ rewardsRecord: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
209
+ id: import("@sinclair/typebox").TString;
210
+ total: import("@sinclair/typebox").TNumber;
211
+ timestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
212
+ breakdowns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
213
+ id: import("@sinclair/typebox").TNumber;
214
+ campaignId: import("@sinclair/typebox").TString;
215
+ value: import("@sinclair/typebox").TNumber;
216
+ dailyRewardsRecordId: import("@sinclair/typebox").TString;
217
+ token: import("@sinclair/typebox").TObject<{
218
+ id: import("@sinclair/typebox").TString;
219
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
220
+ chainId: import("@sinclair/typebox").TNumber;
221
+ address: import("@sinclair/typebox").TString;
222
+ decimals: import("@sinclair/typebox").TNumber;
223
+ icon: import("@sinclair/typebox").TString;
224
+ verified: import("@sinclair/typebox").TBoolean;
225
+ isTest: import("@sinclair/typebox").TBoolean;
226
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
227
+ symbol: import("@sinclair/typebox").TString;
228
+ }>;
229
+ amount: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
230
+ }>>;
231
+ }>>;
232
+ campaigns: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
233
+ id: import("@sinclair/typebox").TString;
234
+ computeChainId: import("@sinclair/typebox").TNumber;
235
+ distributionChainId: import("@sinclair/typebox").TNumber;
236
+ campaignId: import("@sinclair/typebox").TString;
237
+ type: import("@sinclair/typebox").TString;
238
+ subType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
239
+ rewardTokenId: import("@sinclair/typebox").TString;
240
+ amount: import("@sinclair/typebox").TString;
241
+ opportunityId: import("@sinclair/typebox").TString;
242
+ startTimestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
243
+ endTimestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
244
+ creatorAddress: import("@sinclair/typebox").TString;
245
+ params: import("@sinclair/typebox").TAny;
246
+ chain: import("@sinclair/typebox").TObject<{
247
+ id: import("@sinclair/typebox").TNumber;
248
+ name: import("@sinclair/typebox").TString;
249
+ icon: import("@sinclair/typebox").TString;
250
+ }>;
251
+ rewardToken: import("@sinclair/typebox").TObject<{
252
+ id: import("@sinclair/typebox").TString;
253
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
254
+ chainId: import("@sinclair/typebox").TNumber;
255
+ address: import("@sinclair/typebox").TString;
256
+ decimals: import("@sinclair/typebox").TNumber;
257
+ icon: import("@sinclair/typebox").TString;
258
+ verified: import("@sinclair/typebox").TBoolean;
259
+ isTest: import("@sinclair/typebox").TBoolean;
260
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
261
+ symbol: import("@sinclair/typebox").TString;
262
+ }>;
263
+ distributionChain: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
264
+ id: import("@sinclair/typebox").TNumber;
265
+ name: import("@sinclair/typebox").TString;
266
+ icon: import("@sinclair/typebox").TString;
267
+ }>>;
268
+ campaignStatus: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
269
+ campaignId: import("@sinclair/typebox").TString;
270
+ computedUntil: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
271
+ processingStarted: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
272
+ status: import("@sinclair/typebox").TString;
273
+ error: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
274
+ details: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
275
+ }>>;
276
+ }>>;
277
+ }>;
41
278
  export declare const OpportunityUniqueDto: import("@sinclair/typebox").TObject<{
42
279
  id: import("@sinclair/typebox").TString;
43
280
  }>;
281
+ export declare const AggregationResourceDto: import("@sinclair/typebox").TObject<{
282
+ sum: import("@sinclair/typebox").TNumber;
283
+ }>;
44
284
  export declare const GetOpportunitiesQueryDto: import("@sinclair/typebox").TObject<{
45
285
  name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
46
286
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRegExp>;
47
- action: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<{
48
- POOL: "POOL";
49
- HOLD: "HOLD";
50
- DROP: "DROP";
51
- LEND: "LEND";
52
- BORROW: "BORROW";
53
- INVALID: "INVALID";
54
- }>, import("@sinclair/typebox").TRegExp]>>;
287
+ action: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRegExp>;
55
288
  tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
56
289
  test: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
57
290
  minimumTvl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
291
+ status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRegExp>;
58
292
  tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
59
- status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<{
60
- NONE: "NONE";
61
- PAST: "PAST";
62
- LIVE: "LIVE";
63
- SOON: "SOON";
64
- }>, import("@sinclair/typebox").TRegExp]>>;
65
- sort: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"apr">, import("@sinclair/typebox").TLiteral<"tvl">, import("@sinclair/typebox").TLiteral<"rewards">]>>;
66
- order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"asc">, import("@sinclair/typebox").TLiteral<"desc">]>>;
293
+ sort: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRegExp>;
294
+ order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRegExp>;
67
295
  mainProtocolId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
68
296
  page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
69
297
  items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -125,3 +353,5 @@ export type CreateOpportunityModel = typeof CreateOpportunityDto.static & {
125
353
  };
126
354
  export type OpportunityAggregateField = typeof OpportunityAggregateFieldDto.static;
127
355
  export type UpdateOpportunityModel = typeof UpdateOpportunityDto.static;
356
+ export type OpportunityResourceModel = typeof OpportunityResourceDto.static;
357
+ export type OpportunityWithCampaignsResourceModel = typeof OpportunityWithCampaignsResourceDto.static;
@@ -1,29 +1,72 @@
1
- import { TokenDto } from "../token/token.model";
1
+ import { AprRecordResourceDto } from "../apr/apr.model";
2
+ import { ProtocolResourceDto } from "../protocol/protocol.model";
3
+ import { DailyRewardsRecordResourceDto } from "../reward";
4
+ import { TokenDto, TokenResourceDto } from "../token/token.model";
5
+ import { TvlRecordResourceDto } from "../tvl/tvl.model";
2
6
  import { CampaignType, OpportunityAction, Status } from "../../../../database/api/.generated";
3
7
  import { t } from "elysia";
8
+ import { CampaignResourceDto } from "../campaign";
9
+ import { ChainResourceDto } from "../chain/chain.model";
4
10
  // ─── DTOs ────────────────────────────────────────────────────────────────────
11
+ export const OpportunityResourceDto = t.Object({
12
+ chainId: t.Number(),
13
+ type: t.String(),
14
+ identifier: t.String(),
15
+ name: t.String(),
16
+ status: t.String(),
17
+ action: t.String(),
18
+ tvl: t.Number(),
19
+ apr: t.Number(),
20
+ dailyRewards: t.Number(),
21
+ tags: t.Array(t.String()),
22
+ id: t.String(),
23
+ tokens: t.Array(TokenResourceDto),
24
+ chain: ChainResourceDto,
25
+ aprRecord: t.Optional(AprRecordResourceDto),
26
+ tvlRecord: t.Optional(TvlRecordResourceDto),
27
+ rewardsRecord: t.Optional(DailyRewardsRecordResourceDto),
28
+ protocol: t.Optional(t.Union([ProtocolResourceDto, t.Null()])),
29
+ });
30
+ export const OpportunityWithCampaignsResourceDto = t.Composite([
31
+ OpportunityResourceDto,
32
+ t.Object({ campaigns: t.Array(CampaignResourceDto) }),
33
+ ]);
5
34
  export const OpportunityUniqueDto = t.Object({
6
35
  id: t.String({
7
36
  pattern: "(([0-9]*)-([0-9A-Z]*)-(0x([0-9A-Za-z])*))|([0-9]{1,20})",
8
- default: undefined,
37
+ description: "The id of the opportunity. You can find opportunities including their id at [GET /v4/opportunities](#tag/opportunities/GET/v4/opportunities/)",
9
38
  }),
10
39
  });
40
+ export const AggregationResourceDto = t.Object({
41
+ sum: t.Number(),
42
+ });
11
43
  export const GetOpportunitiesQueryDto = t.Object({
12
- name: t.Optional(t.String()),
44
+ name: t.Optional(t.String({ description: "Filter by name" })),
13
45
  //TODO: find a systemic way of handling query param arrays
14
- chainId: t.Optional(t.RegExp(/^\d+(,\d+)*$/)),
46
+ chainId: t.Optional(t.RegExp(/^\d+(,\d+)*$/, {
47
+ description: "A comma separated list of chain ids. Example: ?chainId=1,42161<br>You can get the list of all supported chains by calling [GET /v4/chains](#tag/chains/GET/v4/chains/)",
48
+ })),
15
49
  //TODO: find a systemic way of handling query param arrays
16
- action: t.Optional(t.Union([t.Enum(OpportunityAction), t.RegExp(/^(POOL|HOLD|DROP|LEND|BORROW)+(,(POOL|HOLD|DROP|LEND|BORROW)+)*$/)])),
17
- tags: t.Optional(t.String()),
18
- test: t.Optional(t.Boolean()),
19
- minimumTvl: t.Optional(t.Number()),
20
- tokens: t.Optional(t.String({ title: "Symbol" })),
21
- status: t.Optional(t.Union([t.Enum(Status), t.RegExp(/^(LIVE|PAST|SOON)+(,(LIVE|PAST|SOON)+)*$/)])),
22
- sort: t.Optional(t.Union([t.Literal("apr"), t.Literal("tvl"), t.Literal("rewards")])),
23
- order: t.Optional(t.Union([t.Literal("asc"), t.Literal("desc")])),
24
- mainProtocolId: t.Optional(t.String()),
25
- page: t.Optional(t.Numeric()), // 0-indexed
26
- items: t.Optional(t.Numeric()), // items per page
50
+ action: t.Optional(t.RegExp(/^(POOL|HOLD|DROP|LEND|BORROW)(,(POOL|HOLD|DROP|LEND|BORROW)){0,4}$/, {
51
+ description: "A comma seprated list actions. Legal values are: `POOL`, `HOLD`, `DROP`, `LEND`, `BORROW`",
52
+ })),
53
+ tags: t.Optional(t.String({ description: "Filter by tag" })),
54
+ test: t.Optional(t.Boolean({ description: "Include opportunities with test campaigns" })),
55
+ minimumTvl: t.Optional(t.Number({ description: "Minimum TVL threshhold in USD" })),
56
+ status: t.Optional(t.RegExp(/^(LIVE|PAST|SOON)(,(LIVE|PAST|SOON)){0,2}$/, {
57
+ description: "A comma separeted list of status. Legal values are: `LIVE`, `PAST`, `SOON`",
58
+ })),
59
+ tokens: t.Optional(t.String({ description: "A comma separated list of token symbol. Use to filter by token" })),
60
+ sort: t.Optional(t.RegExp(/(apr|tvl|rewards)/, { description: "Sort by `apr`, `tvl` or `rewards`" })),
61
+ order: t.Optional(t.RegExp(/desc|asc/, {
62
+ description: "`asc` to sort in ascending order or `desc` to sort in descending order.",
63
+ default: "desc",
64
+ })),
65
+ mainProtocolId: t.Optional(t.String({
66
+ description: "A comma separated list of protocol ids. You can get the list of all supported protocols by calling [GET /v4/protocols](#tag/protocols/GET/v4/protocols/)",
67
+ })),
68
+ page: t.Optional(t.Numeric({ description: "0-indexed page number", default: 0 })),
69
+ items: t.Optional(t.Numeric({ description: "Number of items returned by page", default: 20 })), // items per page
27
70
  });
28
71
  export const CreateOpportunityDto = t.Object({
29
72
  chainId: t.Number(),
@@ -17,9 +17,9 @@ export declare abstract class OpportunityRepository {
17
17
  symbol: string;
18
18
  name: string | null;
19
19
  id: string;
20
+ icon: string;
20
21
  chainId: number;
21
22
  address: string;
22
- icon: string;
23
23
  decimals: number;
24
24
  displaySymbol: string;
25
25
  verified: boolean;
@@ -80,9 +80,9 @@ export declare abstract class OpportunityRepository {
80
80
  symbol: string;
81
81
  name: string | null;
82
82
  id: string;
83
+ icon: string;
83
84
  chainId: number;
84
85
  address: string;
85
- icon: string;
86
86
  decimals: number;
87
87
  displaySymbol: string;
88
88
  verified: boolean;
@@ -145,9 +145,9 @@ export declare abstract class OpportunityRepository {
145
145
  symbol: string;
146
146
  name: string | null;
147
147
  id: string;
148
+ icon: string;
148
149
  chainId: number;
149
150
  address: string;
150
- icon: string;
151
151
  decimals: number;
152
152
  displaySymbol: string;
153
153
  verified: boolean;
@@ -181,9 +181,9 @@ export declare abstract class OpportunityRepository {
181
181
  symbol: string;
182
182
  name: string | null;
183
183
  id: string;
184
+ icon: string;
184
185
  chainId: number;
185
186
  address: string;
186
- icon: string;
187
187
  decimals: number;
188
188
  displaySymbol: string;
189
189
  verified: boolean;
@@ -244,9 +244,9 @@ export declare abstract class OpportunityRepository {
244
244
  symbol: string;
245
245
  name: string | null;
246
246
  id: string;
247
+ icon: string;
247
248
  chainId: number;
248
249
  address: string;
249
- icon: string;
250
250
  decimals: number;
251
251
  displaySymbol: string;
252
252
  verified: boolean;
@@ -294,9 +294,9 @@ export declare abstract class OpportunityRepository {
294
294
  symbol: string;
295
295
  name: string | null;
296
296
  id: string;
297
+ icon: string;
297
298
  chainId: number;
298
299
  address: string;
299
- icon: string;
300
300
  decimals: number;
301
301
  displaySymbol: string;
302
302
  verified: boolean;
@@ -342,9 +342,9 @@ export declare abstract class OpportunityRepository {
342
342
  symbol: string;
343
343
  name: string | null;
344
344
  id: string;
345
+ icon: string;
345
346
  chainId: number;
346
347
  address: string;
347
- icon: string;
348
348
  decimals: number;
349
349
  displaySymbol: string;
350
350
  verified: boolean;
@@ -405,9 +405,9 @@ export declare abstract class OpportunityRepository {
405
405
  symbol: string;
406
406
  name: string | null;
407
407
  id: string;
408
+ icon: string;
408
409
  chainId: number;
409
410
  address: string;
410
- icon: string;
411
411
  decimals: number;
412
412
  displaySymbol: string;
413
413
  verified: boolean;
@@ -470,9 +470,9 @@ export declare abstract class OpportunityRepository {
470
470
  symbol: string;
471
471
  name: string | null;
472
472
  id: string;
473
+ icon: string;
473
474
  chainId: number;
474
475
  address: string;
475
- icon: string;
476
476
  decimals: number;
477
477
  displaySymbol: string;
478
478
  verified: boolean;
@@ -506,9 +506,9 @@ export declare abstract class OpportunityRepository {
506
506
  symbol: string;
507
507
  name: string | null;
508
508
  id: string;
509
+ icon: string;
509
510
  chainId: number;
510
511
  address: string;
511
- icon: string;
512
512
  decimals: number;
513
513
  displaySymbol: string;
514
514
  verified: boolean;
@@ -569,9 +569,9 @@ export declare abstract class OpportunityRepository {
569
569
  symbol: string;
570
570
  name: string | null;
571
571
  id: string;
572
+ icon: string;
572
573
  chainId: number;
573
574
  address: string;
574
- icon: string;
575
575
  decimals: number;
576
576
  displaySymbol: string;
577
577
  verified: boolean;