@merkl/api 0.10.199 → 0.10.201

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 (216) 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 +6 -4
  39. package/dist/src/modules/v4/campaign/campaign.controller.js +14 -4
  40. package/dist/src/modules/v4/campaign/campaign.model.d.ts +51 -5
  41. package/dist/src/modules/v4/campaign/campaign.model.js +48 -13
  42. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -2
  43. package/dist/src/modules/v4/campaign/campaign.repository.js +10 -2
  44. package/dist/src/modules/v4/campaign/campaign.service.d.ts +2 -2
  45. package/dist/src/modules/v4/chain/chain.controller.d.ts +2 -2
  46. package/dist/src/modules/v4/chain/chain.controller.js +7 -2
  47. package/dist/src/modules/v4/chain/chain.model.d.ts +6 -1
  48. package/dist/src/modules/v4/chain/chain.model.js +8 -1
  49. package/dist/src/modules/v4/chain/chain.repository.js +1 -1
  50. package/dist/src/modules/v4/claims/claims.controller.js +1 -1
  51. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +4 -1
  52. package/dist/src/modules/v4/enso/enso.model.d.ts +1 -1
  53. package/dist/src/modules/v4/enso/enso.model.js +2 -1
  54. package/dist/src/modules/v4/enso/enso.service.d.ts +0 -1
  55. package/dist/src/modules/v4/enso/enso.service.js +4 -4
  56. package/dist/src/modules/v4/interaction/interaction.controller.d.ts +26 -17
  57. package/dist/src/modules/v4/interaction/interaction.controller.js +19 -28
  58. package/dist/src/modules/v4/interaction/interaction.model.d.ts +17 -5
  59. package/dist/src/modules/v4/interaction/interaction.model.js +3 -3
  60. package/dist/src/modules/v4/interaction/interaction.service.d.ts +18 -3
  61. package/dist/src/modules/v4/interaction/interaction.service.js +89 -11
  62. package/dist/src/modules/v4/kyberzap/kyberzap.model.d.ts +72 -0
  63. package/dist/src/modules/v4/kyberzap/kyberzap.model.js +79 -0
  64. package/dist/src/modules/v4/kyberzap/kyberzap.service.d.ts +15 -0
  65. package/dist/src/modules/v4/kyberzap/kyberzap.service.js +84 -0
  66. package/dist/src/modules/v4/liquidity/liquidity.controller.js +1 -1
  67. package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +1 -1
  68. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +224 -213
  69. package/dist/src/modules/v4/opportunity/opportunity.controller.js +39 -10
  70. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +252 -22
  71. package/dist/src/modules/v4/opportunity/opportunity.model.js +58 -15
  72. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +11 -11
  73. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +12 -232
  74. package/dist/src/modules/v4/opportunity/opportunity.service.js +0 -32
  75. package/dist/src/modules/v4/price/price.controller.js +1 -1
  76. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +23 -24
  77. package/dist/src/modules/v4/protocol/protocol.controller.js +15 -9
  78. package/dist/src/modules/v4/protocol/protocol.model.d.ts +13 -1
  79. package/dist/src/modules/v4/protocol/protocol.model.js +12 -8
  80. package/dist/src/modules/v4/reward/reward.controller.js +1 -1
  81. package/dist/src/modules/v4/reward/reward.model.d.ts +44 -1
  82. package/dist/src/modules/v4/reward/reward.model.js +15 -0
  83. package/dist/src/modules/v4/reward/reward.repository.d.ts +2 -2
  84. package/dist/src/modules/v4/reward/reward.service.d.ts +11 -11
  85. package/dist/src/modules/v4/reward/reward.service.js +1 -1
  86. package/dist/src/modules/v4/router.d.ts +289 -268
  87. package/dist/src/modules/v4/status/status.controller.js +2 -3
  88. package/dist/src/modules/v4/status/status.model.d.ts +12 -0
  89. package/dist/src/modules/v4/status/status.model.js +12 -0
  90. package/dist/src/modules/v4/token/token.controller.d.ts +4 -4
  91. package/dist/src/modules/v4/token/token.controller.js +1 -1
  92. package/dist/src/modules/v4/token/token.model.d.ts +12 -0
  93. package/dist/src/modules/v4/token/token.model.js +12 -0
  94. package/dist/src/modules/v4/token/token.repository.d.ts +2 -2
  95. package/dist/src/modules/v4/token/token.service.d.ts +7 -7
  96. package/dist/src/modules/v4/tvl/tvl.model.d.ts +24 -0
  97. package/dist/src/modules/v4/tvl/tvl.model.js +15 -1
  98. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +1 -1
  99. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +9 -8
  100. package/dist/src/modules/v4/user/user.controller.d.ts +4 -4
  101. package/dist/src/modules/v4/user/user.controller.js +20 -17
  102. package/dist/src/modules/v4/user/user.model.d.ts +30 -0
  103. package/dist/src/modules/v4/user/user.model.js +27 -0
  104. package/dist/src/modules/v4/zyfi/zyfi.model.d.ts +45 -0
  105. package/dist/src/modules/v4/zyfi/zyfi.model.js +1 -0
  106. package/dist/src/modules/v4/zyfi/zyfi.service.d.ts +30 -0
  107. package/dist/src/modules/v4/zyfi/zyfi.service.js +35 -0
  108. package/dist/src/plugins/error-handling.plugin.d.ts +2 -2
  109. package/dist/src/plugins/error-handling.plugin.js +9 -3
  110. package/dist/src/plugins/logger.plugin.js +1 -20
  111. package/dist/src/routes/v1/allowances.d.ts +1 -1
  112. package/dist/src/routes/v1/allowances.js +1 -1
  113. package/dist/src/routes/v1/balances.d.ts +1 -1
  114. package/dist/src/routes/v1/balances.js +1 -1
  115. package/dist/src/routes/v1/prices.d.ts +1 -1
  116. package/dist/src/routes/v1/prices.js +1 -1
  117. package/dist/src/routes/v1/router.d.ts +102 -0
  118. package/dist/src/routes/v1/router.js +6 -0
  119. package/dist/src/routes/v1/tokens.d.ts +1 -1
  120. package/dist/src/routes/v1/tokens.js +1 -1
  121. package/dist/src/routes/v2/merkl.d.ts +5 -5
  122. package/dist/src/routes/v2/merkl.js +1 -1
  123. package/dist/src/routes/v2/router.d.ts +46 -0
  124. package/dist/src/routes/v2/router.js +3 -0
  125. package/dist/src/routes/v3/app.d.ts +1 -1
  126. package/dist/src/routes/v3/app.js +1 -1
  127. package/dist/src/routes/v3/blacklist.d.ts +1 -2479
  128. package/dist/src/routes/v3/blacklist.js +1 -1
  129. package/dist/src/routes/v3/campaignClaims.d.ts +1 -1
  130. package/dist/src/routes/v3/campaignClaims.js +1 -1
  131. package/dist/src/routes/v3/campaignReport.d.ts +1 -1
  132. package/dist/src/routes/v3/campaignReport.js +1 -1
  133. package/dist/src/routes/v3/campaignUnclaimed.d.ts +1 -1
  134. package/dist/src/routes/v3/campaignUnclaimed.js +1 -1
  135. package/dist/src/routes/v3/campaigns.d.ts +1 -2483
  136. package/dist/src/routes/v3/campaigns.js +1 -1
  137. package/dist/src/routes/v3/campaignsForMainParameter.d.ts +1 -1
  138. package/dist/src/routes/v3/campaignsForMainParameter.js +1 -1
  139. package/dist/src/routes/v3/campaignsInfo.d.ts +1 -2481
  140. package/dist/src/routes/v3/campaignsInfo.js +1 -1
  141. package/dist/src/routes/v3/campaignsRewardsReport.d.ts +1 -1
  142. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -1
  143. package/dist/src/routes/v3/claims.d.ts +2 -2
  144. package/dist/src/routes/v3/claims.js +1 -1
  145. package/dist/src/routes/v3/compoundV2.d.ts +1 -1
  146. package/dist/src/routes/v3/compoundV2.js +1 -1
  147. package/dist/src/routes/v3/createCampaign.d.ts +1 -1
  148. package/dist/src/routes/v3/createCampaign.js +1 -1
  149. package/dist/src/routes/v3/dolomite.d.ts +1 -1
  150. package/dist/src/routes/v3/dolomite.js +1 -1
  151. package/dist/src/routes/v3/euler.d.ts +1 -1
  152. package/dist/src/routes/v3/euler.js +1 -1
  153. package/dist/src/routes/v3/fetch.d.ts +1 -1
  154. package/dist/src/routes/v3/fetch.js +1 -1
  155. package/dist/src/routes/v3/health.d.ts +1 -1
  156. package/dist/src/routes/v3/health.js +1 -1
  157. package/dist/src/routes/v3/lostyield.d.ts +1 -1
  158. package/dist/src/routes/v3/lostyield.js +1 -1
  159. package/dist/src/routes/v3/merkl.d.ts +1 -1
  160. package/dist/src/routes/v3/merkl.js +1 -1
  161. package/dist/src/routes/v3/morphoMarkets.d.ts +1 -1
  162. package/dist/src/routes/v3/morphoMarkets.js +1 -1
  163. package/dist/src/routes/v3/morphoVaults.d.ts +1 -1
  164. package/dist/src/routes/v3/morphoVaults.js +1 -1
  165. package/dist/src/routes/v3/multiChainPositions.d.ts +1 -2480
  166. package/dist/src/routes/v3/multiChainPositions.js +1 -1
  167. package/dist/src/routes/v3/opportunity.d.ts +1 -2483
  168. package/dist/src/routes/v3/opportunity.js +1 -1
  169. package/dist/src/routes/v3/overview.d.ts +1 -1
  170. package/dist/src/routes/v3/overview.js +1 -1
  171. package/dist/src/routes/v3/parse.d.ts +1 -1
  172. package/dist/src/routes/v3/parse.js +1 -1
  173. package/dist/src/routes/v3/payload.d.ts +1 -1
  174. package/dist/src/routes/v3/payload.js +1 -1
  175. package/dist/src/routes/v3/poolInfo.js +1 -1
  176. package/dist/src/routes/v3/positions.d.ts +1 -2479
  177. package/dist/src/routes/v3/positions.js +1 -1
  178. package/dist/src/routes/v3/radiant.d.ts +1 -1
  179. package/dist/src/routes/v3/radiant.js +1 -1
  180. package/dist/src/routes/v3/recipients.d.ts +1 -1
  181. package/dist/src/routes/v3/recipients.js +1 -1
  182. package/dist/src/routes/v3/rewards.d.ts +1 -2508
  183. package/dist/src/routes/v3/rewards.js +1 -1
  184. package/dist/src/routes/v3/rewardsReport.d.ts +1 -1
  185. package/dist/src/routes/v3/rewardsReport.js +1 -1
  186. package/dist/src/routes/v3/router.d.ts +1 -0
  187. package/dist/src/routes/v3/router.js +74 -0
  188. package/dist/src/routes/v3/silo.d.ts +1 -1
  189. package/dist/src/routes/v3/silo.js +1 -1
  190. package/dist/src/routes/v3/token.d.ts +1 -1
  191. package/dist/src/routes/v3/token.js +1 -1
  192. package/dist/src/routes/v3/tokenUnclaimed.d.ts +1 -1
  193. package/dist/src/routes/v3/tokenUnclaimed.js +1 -1
  194. package/dist/src/routes/v3/updates.d.ts +1 -2483
  195. package/dist/src/routes/v3/updates.js +1 -1
  196. package/dist/src/routes/v3/userRewards.d.ts +1 -2499
  197. package/dist/src/routes/v3/userRewards.js +1 -1
  198. package/dist/src/utils/decodeCalls.js +12 -1
  199. package/dist/src/utils/encodeCalls.js +26 -3
  200. package/dist/src/utils/generateCardName.js +2 -0
  201. package/dist/tsconfig.package.tsbuildinfo +1 -1
  202. package/package.json +2 -3
  203. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.d.ts +0 -3
  204. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +0 -155
  205. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.d.ts +0 -4
  206. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesPricesRefactoFinal.js +0 -24
  207. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.d.ts +0 -4
  208. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +0 -230
  209. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.d.ts +0 -3
  210. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound2RefactoFinal.js +0 -22
  211. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.d.ts +0 -3
  212. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound3RefactoFinal.js +0 -22
  213. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.d.ts +0 -4
  214. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound4RefactoFinal.js +0 -22
  215. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.d.ts +0 -3
  216. package/dist/src/libs/campaigns/campaignsDynamicDataRefacto.js +0 -75
@@ -1,9 +1,9 @@
1
1
  import type { Resource } from "../prisma";
2
- import type { Token } from "../token";
2
+ import { type Token } from "../token";
3
3
  import { CampaignType } from "../../../../database/api/.generated";
4
4
  import { type CampaignParameters } from "@sdk";
5
- import type { Chain } from "../chain";
6
- import type { Status } from "../status";
5
+ import { type Chain } from "../chain";
6
+ import { type Status } from "../status";
7
7
  /**
8
8
  * Campaign
9
9
  * @description Target description of rewards campaigns
@@ -39,6 +39,51 @@ export declare const CampaignUniqueDto: import("@sinclair/typebox").TObject<{
39
39
  distributionChain: import("@sinclair/typebox").TNumber;
40
40
  campaignId: import("@sinclair/typebox").TString;
41
41
  }>;
42
+ export declare const CampaignResourceDto: import("@sinclair/typebox").TObject<{
43
+ id: import("@sinclair/typebox").TString;
44
+ computeChainId: import("@sinclair/typebox").TNumber;
45
+ distributionChainId: import("@sinclair/typebox").TNumber;
46
+ campaignId: import("@sinclair/typebox").TString;
47
+ type: import("@sinclair/typebox").TString;
48
+ subType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
49
+ rewardTokenId: import("@sinclair/typebox").TString;
50
+ amount: import("@sinclair/typebox").TString;
51
+ opportunityId: import("@sinclair/typebox").TString;
52
+ startTimestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
53
+ endTimestamp: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
54
+ creatorAddress: import("@sinclair/typebox").TString;
55
+ params: import("@sinclair/typebox").TAny;
56
+ chain: import("@sinclair/typebox").TObject<{
57
+ id: import("@sinclair/typebox").TNumber;
58
+ name: import("@sinclair/typebox").TString;
59
+ icon: import("@sinclair/typebox").TString;
60
+ }>;
61
+ rewardToken: import("@sinclair/typebox").TObject<{
62
+ id: import("@sinclair/typebox").TString;
63
+ name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
64
+ chainId: import("@sinclair/typebox").TNumber;
65
+ address: import("@sinclair/typebox").TString;
66
+ decimals: import("@sinclair/typebox").TNumber;
67
+ icon: import("@sinclair/typebox").TString;
68
+ verified: import("@sinclair/typebox").TBoolean;
69
+ isTest: import("@sinclair/typebox").TBoolean;
70
+ price: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
71
+ symbol: import("@sinclair/typebox").TString;
72
+ }>;
73
+ distributionChain: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
74
+ id: import("@sinclair/typebox").TNumber;
75
+ name: import("@sinclair/typebox").TString;
76
+ icon: import("@sinclair/typebox").TString;
77
+ }>>;
78
+ campaignStatus: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
79
+ campaignId: import("@sinclair/typebox").TString;
80
+ computedUntil: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
81
+ processingStarted: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>;
82
+ status: import("@sinclair/typebox").TString;
83
+ error: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
84
+ details: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
85
+ }>>;
86
+ }>;
42
87
  export declare const CreateCampaignDto: import("@sinclair/typebox").TObject<{
43
88
  computeChainId: import("@sinclair/typebox").TNumber;
44
89
  chainId: import("@sinclair/typebox").TNumber;
@@ -55,8 +100,7 @@ export declare const CreateCampaignDto: import("@sinclair/typebox").TObject<{
55
100
  params: import("@sinclair/typebox").TString;
56
101
  }>;
57
102
  export declare const GetCampaignQueryDto: import("@sinclair/typebox").TObject<{
58
- page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
59
- items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
103
+ creatorTag: import("@sinclair/typebox").TString;
60
104
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
61
105
  type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TEnum<{
62
106
  INVALID: "INVALID";
@@ -83,6 +127,8 @@ export declare const GetCampaignQueryDto: import("@sinclair/typebox").TObject<{
83
127
  opportunityId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
84
128
  startTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
85
129
  endTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
130
+ page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
131
+ items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
86
132
  }>;
87
133
  export type CampaignUnique = typeof CampaignUniqueDto.static;
88
134
  export type CreateCampaignModel = typeof CreateCampaignDto.static & {
@@ -1,6 +1,9 @@
1
+ import { TokenResourceDto } from "../token";
1
2
  import { CampaignType } from "../../../../database/api/.generated";
2
3
  import { Campaign as CampaignTypeEnum } from "@sdk";
3
4
  import { t } from "elysia";
5
+ import { ChainResourceDto } from "../chain";
6
+ import { CampaignStatusResourceDto } from "../status";
4
7
  // ─── Utils ───────────────────────────────────────────────────────────────────
5
8
  export const campaignTypeToEnumMap = {
6
9
  INVALID: CampaignTypeEnum.INVALID,
@@ -23,6 +26,25 @@ export const CampaignUniqueDto = t.Object({
23
26
  distributionChain: t.Numeric(),
24
27
  campaignId: t.String(),
25
28
  });
29
+ export const CampaignResourceDto = t.Object({
30
+ id: t.String(),
31
+ computeChainId: t.Number(),
32
+ distributionChainId: t.Number(),
33
+ campaignId: t.String(),
34
+ type: t.String(),
35
+ subType: t.Union([t.Number(), t.Null()]),
36
+ rewardTokenId: t.String(),
37
+ amount: t.String(),
38
+ opportunityId: t.String(),
39
+ startTimestamp: t.Union([t.BigInt(), t.String()]),
40
+ endTimestamp: t.Union([t.BigInt(), t.String()]),
41
+ creatorAddress: t.String(),
42
+ params: t.Any(),
43
+ chain: ChainResourceDto,
44
+ rewardToken: TokenResourceDto,
45
+ distributionChain: t.Optional(ChainResourceDto),
46
+ campaignStatus: t.Optional(CampaignStatusResourceDto),
47
+ });
26
48
  export const CreateCampaignDto = t.Object({
27
49
  computeChainId: t.Number(),
28
50
  chainId: t.Number(),
@@ -39,17 +61,30 @@ export const CreateCampaignDto = t.Object({
39
61
  params: t.String(),
40
62
  });
41
63
  export const GetCampaignQueryDto = t.Object({
42
- page: t.Optional(t.Numeric()),
43
- items: t.Optional(t.Numeric()),
44
- chainId: t.Optional(t.Numeric()),
45
- type: t.Optional(t.Enum(CampaignType)),
46
- subType: t.Optional(t.Number()),
47
- campaignId: t.Optional(t.String()),
48
- mainParameter: t.Optional(t.String()),
49
- tokenSymbol: t.Optional(t.String()),
50
- tokenAddress: t.Optional(t.String()),
51
- test: t.Optional(t.Boolean()),
52
- opportunityId: t.Optional(t.String()),
53
- startTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
54
- endTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
64
+ creatorTag: t.String({ description: "Filter campaigns created by a user who has a specific tag" }),
65
+ chainId: t.Optional(t.Numeric({
66
+ description: "Filter by chain.<br>You can get the list of all supported chains by calling [GET /v4/chains](#tag/chains/GET/v4/chains/)",
67
+ })),
68
+ type: t.Optional(t.Enum(CampaignType, { description: "Filter by type of campaign" })),
69
+ subType: t.Optional(t.Number({
70
+ description: "Silo, Radiant, Morpho, Dolomite, Compound, Ajna and Euler campaigns have a subtype attribute you can filter on",
71
+ })),
72
+ campaignId: t.Optional(t.String({
73
+ description: "Filter campaigns by campaignId. Some campaigns take place on different blockchains, one resource per chain will be returned, sharing the same campaignId",
74
+ })),
75
+ mainParameter: t.Optional(t.String({
76
+ description: "the mainParameter represents the address of the contract targeted by a campaign (e.g. a Uniswap pool)",
77
+ })),
78
+ tokenSymbol: t.Optional(t.String({ description: "Filter by reward token symbol (e.g. USDC for campaigns rewarding in USDC)" })),
79
+ tokenAddress: t.Optional(t.String({
80
+ description: "Filter results by the reward token address. Use in combination with chainId for accuracy",
81
+ })),
82
+ test: t.Optional(t.Boolean({ description: "Return campaigns rewarding in test tokens", default: false })),
83
+ opportunityId: t.Optional(t.String({
84
+ description: "Filter by opportunity. You can find opportunity ids by calling [GET /v4/opportunities](#tag/opportunities/GET/v4/opportunities)",
85
+ })),
86
+ startTimestamp: t.Optional(t.String({ pattern: "[0-9].*", description: "Returns campaigns starting *after* the given unix timestamp" })),
87
+ endTimestamp: t.Optional(t.String({ pattern: "[0-9].*", description: "Returns campaigns ending *after* the given unix timestamp" })),
88
+ page: t.Optional(t.Numeric({ description: "0-indexed page number", default: 0 })),
89
+ items: t.Optional(t.Numeric({ description: "Number of items returned by page", default: 20 })), // items per page
55
90
  });
@@ -32,6 +32,7 @@ export declare abstract class CampaignRepository {
32
32
  static getFromEngineDb(chainId: number, timestamp: number): Promise<CampaignParameters<CampaignV3>[]>;
33
33
  static getFromEngineDbWithId(campaignIds: CampaignUnique[]): Promise<{
34
34
  index: number;
35
+ creator: string;
35
36
  chainId: number;
36
37
  startTimestamp: number;
37
38
  endTimestamp: number;
@@ -40,7 +41,6 @@ export declare abstract class CampaignRepository {
40
41
  campaignId: string;
41
42
  amount: string;
42
43
  rewardToken: string;
43
- creator: string;
44
44
  campaignType: number;
45
45
  campaignSubType: number;
46
46
  campaignParameters: import("database/engine/.generated/runtime/library").JsonValue;
@@ -98,9 +98,9 @@ export declare abstract class CampaignRepository {
98
98
  symbol: string;
99
99
  name: string | null;
100
100
  id: string;
101
+ icon: string;
101
102
  chainId: number;
102
103
  address: string;
103
- icon: string;
104
104
  decimals: number;
105
105
  displaySymbol: string;
106
106
  verified: boolean;
@@ -10,7 +10,7 @@ import { TokenService } from "../token";
10
10
  export class CampaignRepository {
11
11
  // ─── Private Methods ─────────────────────────────────────────────────
12
12
  static #transformQueryToPrismaFilters(query) {
13
- const { chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, test, } = query;
13
+ const { creatorTag, chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, test, } = query;
14
14
  return {
15
15
  where: {
16
16
  computeChainId: chainId,
@@ -26,9 +26,17 @@ export class CampaignRepository {
26
26
  RewardToken: {
27
27
  address: tokenAddress ? tokenAddress : undefined,
28
28
  symbol: tokenSymbol ? tokenSymbol : undefined,
29
- displaySymbol: tokenSymbol ? tokenSymbol : undefined,
29
+ OR: tokenSymbol
30
+ ? [
31
+ { symbol: { equals: tokenSymbol, mode: "insensitive" } },
32
+ { displaySymbol: { equals: tokenSymbol, mode: "insensitive" } },
33
+ ]
34
+ : undefined,
30
35
  isTest: !test ? false : undefined,
31
36
  },
37
+ Creator: {
38
+ tags: { has: creatorTag },
39
+ },
32
40
  },
33
41
  };
34
42
  }
@@ -39,9 +39,9 @@ export declare abstract class CampaignService {
39
39
  symbol: string;
40
40
  name: string | null;
41
41
  id: string;
42
+ icon: string;
42
43
  chainId: number;
43
44
  address: string;
44
- icon: string;
45
45
  decimals: number;
46
46
  verified: boolean;
47
47
  isTest: boolean;
@@ -173,9 +173,9 @@ export declare abstract class CampaignService {
173
173
  symbol: string;
174
174
  name: string | null;
175
175
  id: string;
176
+ icon: string;
176
177
  chainId: number;
177
178
  address: string;
178
- icon: string;
179
179
  decimals: number;
180
180
  verified: boolean;
181
181
  isTest: boolean;
@@ -42,7 +42,7 @@ export declare const ChainController: Elysia<"/chains", false, {
42
42
  body: unknown;
43
43
  params: {};
44
44
  query: {
45
- search?: string | undefined;
45
+ name?: string | undefined;
46
46
  };
47
47
  headers: unknown;
48
48
  response: {
@@ -66,7 +66,7 @@ export declare const ChainController: Elysia<"/chains", false, {
66
66
  body: unknown;
67
67
  params: {};
68
68
  query: {
69
- search?: string | undefined;
69
+ name?: string | undefined;
70
70
  };
71
71
  headers: unknown;
72
72
  response: {
@@ -1,8 +1,8 @@
1
1
  import { AuthorizationHeadersDto, BackOfficeGuard } from "../../../guards/BackOffice.guard";
2
2
  import { TokenAuthGuard } from "../../../guards/TokenAuth.guard";
3
- import Elysia from "elysia";
3
+ import Elysia, { t } from "elysia";
4
4
  import { ExplorerService } from "../explorer";
5
- import { ChainUniqueDto, CreateChainExplorerDto, GetChainQueryDto, UpdateChainDto } from "./chain.model";
5
+ import { ChainResourceDto, ChainUniqueDto, CreateChainExplorerDto, GetChainQueryDto, UpdateChainDto, } from "./chain.model";
6
6
  import { ChainService } from "./chain.service";
7
7
  // ─── Chains Controller ───────────────────────────────────────────────────────
8
8
  export const ChainController = new Elysia({ prefix: "/chains", detail: { tags: ["Chains"] } })
@@ -15,6 +15,7 @@ export const ChainController = new Elysia({ prefix: "/chains", detail: { tags: [
15
15
  return { explorers: chain.Explorer, ...rest };
16
16
  }, {
17
17
  params: ChainUniqueDto,
18
+ detail: { hide: true },
18
19
  })
19
20
  // ─── Get All Supported Chains ────────────────────────────────────────
20
21
  .get("/", async ({ query }) => {
@@ -22,10 +23,13 @@ export const ChainController = new Elysia({ prefix: "/chains", detail: { tags: [
22
23
  return chains.map(({ Explorer, ...chain }) => ({ explorers: Explorer, ...chain }));
23
24
  }, {
24
25
  query: GetChainQueryDto,
26
+ response: t.Array(ChainResourceDto),
27
+ detail: { description: "List chains supported and integrated by Merkl." },
25
28
  })
26
29
  // ─── Count Chains ────────────────────────────────────────
27
30
  .get("/count", async ({ query }) => await ChainService.countMany(query), {
28
31
  query: GetChainQueryDto,
32
+ detail: { hide: true },
29
33
  })
30
34
  .group("/explorers", app => {
31
35
  // ─── Create An Explorer ──────────────────────────────────────
@@ -41,4 +45,5 @@ export const ChainController = new Elysia({ prefix: "/chains", detail: { tags: [
41
45
  body: UpdateChainDto,
42
46
  headers: AuthorizationHeadersDto,
43
47
  beforeHandle: BackOfficeGuard,
48
+ detail: { hide: true },
44
49
  });
@@ -5,8 +5,13 @@ import type { Resource } from "../prisma";
5
5
  * @see {@link Resource}
6
6
  */
7
7
  export type Chain = Resource<"Chain">;
8
+ export declare const ChainResourceDto: import("@sinclair/typebox").TObject<{
9
+ id: import("@sinclair/typebox").TNumber;
10
+ name: import("@sinclair/typebox").TString;
11
+ icon: import("@sinclair/typebox").TString;
12
+ }>;
8
13
  export declare const GetChainQueryDto: import("@sinclair/typebox").TObject<{
9
- search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
15
  }>;
11
16
  export declare const ChainUniqueDto: import("@sinclair/typebox").TObject<{
12
17
  chainId: import("@sinclair/typebox").TNumber;
@@ -1,8 +1,13 @@
1
1
  import { ExplorerType } from "../../../../database/api/.generated";
2
2
  import { t } from "elysia";
3
3
  // ─── DTOs ────────────────────────────────────────────────────────────────────
4
+ export const ChainResourceDto = t.Object({
5
+ id: t.Number(),
6
+ name: t.String(),
7
+ icon: t.String(),
8
+ });
4
9
  export const GetChainQueryDto = t.Object({
5
- search: t.Optional(t.String()),
10
+ name: t.Optional(t.String({ description: "Search by blockchain name" })),
6
11
  });
7
12
  export const ChainUniqueDto = t.Object({
8
13
  chainId: t.Numeric(),
@@ -12,6 +17,8 @@ export const ChainArrayDto = t.Object({
12
17
  .Transform(t.Union([t.String(), t.Array(t.Numeric())]))
13
18
  .Decode(value => (typeof value === "string" ? value.split(",").map(v => Number.parseInt(v)) : value))
14
19
  .Encode(value => [...value]),
20
+ }, {
21
+ description: "A required comma separated list of chain ids.<br>You can get the list of all supported chains by calling [GET /v4/chains](#tag/chains/GET/v4/chains/)",
15
22
  });
16
23
  export const CreateChainExplorerDto = t.Object({
17
24
  type: t.Enum(ExplorerType),
@@ -12,7 +12,7 @@ export class ChainRepository {
12
12
  }
13
13
  static #transformQueryToPrismaFilters(query) {
14
14
  return {
15
- where: { name: { contains: query.search, mode: "insensitive" } },
15
+ where: { name: { contains: query.name, mode: "insensitive" } },
16
16
  };
17
17
  }
18
18
  /** Returns many chains based on query
@@ -3,7 +3,7 @@ import Elysia from "elysia";
3
3
  import { UserUniqueDto } from "../user";
4
4
  import { ClaimService } from "./claims.service";
5
5
  // ─── Claim Controller ───────────────────────────────────────────────────────
6
- export const ClaimController = new Elysia({ prefix: "/claims", detail: { tags: ["Claims"] } })
6
+ export const ClaimController = new Elysia({ prefix: "/claims", detail: { tags: ["Claims"], hide: true } })
7
7
  // ─── Get Historical Claims ────────────────────────────────────────────
8
8
  .get("/:address", async ({ params }) => await ClaimService.getHistoricalClaims(params), {
9
9
  params: UserUniqueDto,
@@ -4,7 +4,10 @@ import { throwOnUnsupportedChainId } from "src/utils/throw";
4
4
  import { DynamicDataSourceIdentifier } from "./dynamicData.model";
5
5
  import { DynamicDataService } from "./dynamicData.service";
6
6
  // ─── DynamicDatas Controller ───────────────────────────────────────────────────────
7
- export const DynamicDataController = new Elysia({ prefix: "/dynamic-data", detail: { tags: ["DynamicData"] } })
7
+ export const DynamicDataController = new Elysia({
8
+ prefix: "/dynamic-data",
9
+ detail: { tags: ["DynamicData"], hide: true },
10
+ })
8
11
  // ─── Get type Info By Token Address ───────────────────────────────────────
9
12
  .get("/", async ({ query }) => await DynamicDataService.queryERC20DynamicData(query.chainId, query.tokenAddress), {
10
13
  query: DynamicDataSourceIdentifier,
@@ -11,7 +11,7 @@ export declare const slugToProtocolId: {
11
11
  readonly "aura-lp": "aura";
12
12
  readonly aura: "aura";
13
13
  readonly beefy: "beefy";
14
- readonly "compound-v3": "compound";
14
+ readonly venus: "compound";
15
15
  readonly "curve-gauge": "curve";
16
16
  readonly "euler-v2": "euler";
17
17
  readonly fluid: "fluid";
@@ -12,7 +12,8 @@ export const slugToProtocolId = {
12
12
  "aura-lp": "aura",
13
13
  aura: "aura",
14
14
  beefy: "beefy",
15
- "compound-v3": "compound",
15
+ venus: "compound",
16
+ // "compound-v3": "compound",
16
17
  "curve-gauge": "curve",
17
18
  "euler-v2": "euler",
18
19
  fluid: "fluid",
@@ -44,5 +44,4 @@ export declare abstract class EnsoService {
44
44
  to: string;
45
45
  };
46
46
  }>;
47
- static getDepositSchema(protocolId: ProtocolId): void;
48
47
  }
@@ -9,9 +9,10 @@ export class EnsoService {
9
9
  "Content-Type": "application/json",
10
10
  }),
11
11
  });
12
- if (res?.status !== 200)
13
- throw "Unsucessful call";
14
- return (await res.json());
12
+ const json = await res.json();
13
+ if (res.status !== 200)
14
+ throw new Error(json?.message);
15
+ return json;
15
16
  }
16
17
  static getSlug(protocolId) {
17
18
  const slug = Object.entries(slugToProtocolId).find(([_slug, id]) => id === protocolId)?.[0];
@@ -42,5 +43,4 @@ export class EnsoService {
42
43
  static async getTransaction(query) {
43
44
  return await EnsoService.#fetch("/v1/shortcuts/route", { query });
44
45
  }
45
- static getDepositSchema(protocolId) { }
46
46
  }
@@ -18,13 +18,13 @@ export declare const InteractionController: Elysia<"/interaction", false, {
18
18
  body: unknown;
19
19
  params: {};
20
20
  query: {
21
- identifier?: string | undefined;
21
+ protocolId?: string | undefined;
22
+ identifier: string;
22
23
  chainId: number;
23
- protocolId: string;
24
24
  };
25
25
  headers: unknown;
26
26
  response: {
27
- 200: import("./interaction.model").InteractionTarget[] | undefined;
27
+ 200: import("./interaction.model").InteractionTarget[];
28
28
  };
29
29
  };
30
30
  };
@@ -54,7 +54,7 @@ export declare const InteractionController: Elysia<"/interaction", false, {
54
54
  };
55
55
  } & {
56
56
  interaction: {
57
- quote: {
57
+ transaction: {
58
58
  get: {
59
59
  body: unknown;
60
60
  params: {};
@@ -69,10 +69,11 @@ export declare const InteractionController: Elysia<"/interaction", false, {
69
69
  headers: unknown;
70
70
  response: {
71
71
  200: {
72
- amountOut: {};
73
- gas: string;
74
- feeAmount: string[];
75
- priceImpact: number;
72
+ amountIn: bigint;
73
+ allowance: bigint;
74
+ approved: boolean;
75
+ transaction: import("./interaction.model").UserTransaction;
76
+ approval: import("./interaction.model").UserTransaction;
76
77
  } | undefined;
77
78
  };
78
79
  };
@@ -80,7 +81,7 @@ export declare const InteractionController: Elysia<"/interaction", false, {
80
81
  };
81
82
  } & {
82
83
  interaction: {
83
- transaction: {
84
+ sponsored: {
84
85
  get: {
85
86
  body: unknown;
86
87
  params: {};
@@ -95,17 +96,25 @@ export declare const InteractionController: Elysia<"/interaction", false, {
95
96
  headers: unknown;
96
97
  response: {
97
98
  200: {
98
- amountOut: string;
99
- gas: string;
100
- feeAmount: string[];
101
- priceImpact: number;
102
- createAt: number;
103
- tx: {
104
- data: string;
99
+ expirationTime: string;
100
+ expiresIn: string;
101
+ feeTokenAmount: string;
102
+ feeTokendecimals: string;
103
+ feeUSD: string;
104
+ gasLimit: string;
105
+ gasPrice: string;
106
+ markup: string;
107
+ maxNonce: string;
108
+ protocolAddress: string;
109
+ sponsorshipRatio: string;
110
+ tokenAddress: string;
111
+ tokenPrice: string;
112
+ txData: {
105
113
  from: string;
106
- value: string;
107
114
  to: string;
115
+ data: string;
108
116
  };
117
+ warnings: string[];
109
118
  } | undefined;
110
119
  };
111
120
  };
@@ -1,13 +1,16 @@
1
+ import { ChainId } from "@sdk";
1
2
  import Elysia from "elysia";
2
3
  import { EnsoService } from "../enso/enso.service";
4
+ import { ZyfiService } from "../zyfi/zyfi.service";
3
5
  import { GetInteractionProtocolsQueryDto, GetInteractionQuoteQueryDto, GetInteractionTargetsQueryDto, } from "./interaction.model";
4
6
  import { InteractionService } from "./interaction.service";
5
7
  // ─── Interaction Controller ──────────────────────────────────────────────────
6
- export const InteractionController = new Elysia({ prefix: "/interaction", detail: { tags: ["Interaction"] } })
8
+ export const InteractionController = new Elysia({
9
+ prefix: "/interaction",
10
+ detail: { tags: ["Interaction"], hide: true },
11
+ })
7
12
  .get("/targets", async ({ query: { protocolId, chainId, identifier } }) => {
8
- if (identifier)
9
- return await InteractionService.getTarget(chainId, protocolId, identifier);
10
- return await InteractionService.getTargets(chainId, protocolId);
13
+ return await InteractionService.getTargets(chainId, protocolId, identifier);
11
14
  }, {
12
15
  query: GetInteractionTargetsQueryDto,
13
16
  detail: {
@@ -23,45 +26,33 @@ export const InteractionController = new Elysia({ prefix: "/interaction", detail
23
26
  description: "Retrieves protocols integrated by merkl which supports being interacted with",
24
27
  },
25
28
  })
26
- // ─── Get Quote ───────────────────────────────────────────────────────
27
- .get("/quote", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
28
- const [target] = (await InteractionService.getTarget(chainId, protocolId, identifier)) ?? [];
29
+ // ─── Get Transaction ─────────────────────────────────────────────────
30
+ .get("/transaction", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
31
+ const [target] = await InteractionService.getTargets(chainId, protocolId, identifier);
29
32
  //TODO: throw error
30
33
  if (!target)
31
34
  return;
32
- return await EnsoService.getQuote({
33
- fromAddress: userAddress,
34
- tokenIn: [fromTokenAddress],
35
- tokenOut: [target.identifier],
36
- amountIn: [fromAmount],
37
- routingStrategy: "router",
38
- chainId,
39
- });
35
+ return await InteractionService.getTransaction(target.provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, BigInt(fromAmount));
40
36
  }, {
41
37
  query: GetInteractionQuoteQueryDto,
42
38
  detail: {
43
- summary: "Preview participate transaction",
39
+ summary: "Get participate transaction",
44
40
  description: "",
45
41
  },
46
42
  })
47
- // ─── Get Transaction ─────────────────────────────────────────────────
48
- .get("/transaction", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
49
- const [target] = (await InteractionService.getTarget(chainId, protocolId, identifier)) ?? [];
43
+ .get("/sponsored", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
44
+ if (chainId !== ChainId.ZKSYNC)
45
+ return;
46
+ const [target] = await InteractionService.getTargets(chainId, protocolId, identifier);
50
47
  //TODO: throw error
51
48
  if (!target)
52
49
  return;
53
- return await EnsoService.getTransaction({
54
- fromAddress: userAddress,
55
- tokenIn: [fromTokenAddress],
56
- tokenOut: [target.identifier],
57
- amountIn: [fromAmount],
58
- routingStrategy: "router",
59
- chainId,
60
- });
50
+ const { transaction: tx } = await InteractionService.getTransaction(target.provider, chainId, protocolId, identifier, userAddress, fromTokenAddress, BigInt(fromAmount));
51
+ return ZyfiService.wrapTx({ data: tx.data, to: tx.to, from: userAddress });
61
52
  }, {
62
53
  query: GetInteractionQuoteQueryDto,
63
54
  detail: {
64
- summary: "Get participate transaction",
55
+ summary: "Get participate transaction wrapped by paymaster",
65
56
  description: "",
66
57
  },
67
58
  });
@@ -1,4 +1,3 @@
1
- import type { Token } from "../token";
2
1
  export declare const participateInputTypes: readonly ["tokenAmount", "token"];
3
2
  export type InteractionInputType = (typeof participateInputTypes)[number];
4
3
  export type InteractionInput<T extends InteractionInputType = InteractionInputType> = {
@@ -25,17 +24,30 @@ export type InteractionSchema<T extends InteractionType> = {
25
24
  };
26
25
  }[T];
27
26
  export type InteractionTarget = {
27
+ provider: "enso" | "zap";
28
28
  identifier: string;
29
- name: string;
30
- tokens: Token["model"][];
29
+ chainId: number;
31
30
  };
32
31
  export type InteractionSchemas = {
33
32
  [T in InteractionType]?: InteractionSchema<T>;
34
33
  };
34
+ export type UserTransaction = {
35
+ data: string;
36
+ to: string;
37
+ from?: string;
38
+ value?: bigint;
39
+ };
40
+ export type InteractionQuote = {
41
+ amountIn: bigint;
42
+ allowance: bigint;
43
+ approved: boolean;
44
+ transaction: UserTransaction;
45
+ approval: UserTransaction;
46
+ };
35
47
  export declare const GetInteractionTargetsQueryDto: import("@sinclair/typebox").TObject<{
36
48
  chainId: import("@sinclair/typebox").TNumber;
37
- protocolId: import("@sinclair/typebox").TString;
38
- identifier: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
49
+ protocolId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
50
+ identifier: import("@sinclair/typebox").TString;
39
51
  }>;
40
52
  export declare const GetInteractionQuoteQueryDto: import("@sinclair/typebox").TObject<{
41
53
  chainId: import("@sinclair/typebox").TNumber;
@@ -4,10 +4,10 @@ export const participateInputTypes = ["tokenAmount", "token"];
4
4
  export const participateTypes = ["link", "deposit", "withdraw"];
5
5
  export const GetInteractionTargetsQueryDto = t.Object({
6
6
  chainId: t.Numeric(),
7
- protocolId: t.String({
7
+ protocolId: t.Optional(t.String({
8
8
  examples: Object.values(protocol).reduce((obj, i) => Object.assign(obj, { [i.name]: { value: i.id } }), {}),
9
- }),
10
- identifier: t.Optional(t.String()),
9
+ })),
10
+ identifier: t.String(),
11
11
  });
12
12
  export const GetInteractionQuoteQueryDto = t.Object({
13
13
  chainId: t.Numeric(),