@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
@@ -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;