@merkl/api 0.19.7 → 0.19.9

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 (296) hide show
  1. package/dist/src/backgroundJobs/index.js +2 -2
  2. package/dist/src/backgroundJobs/jobs/campaignsCacheUpdater.js +4 -3
  3. package/dist/src/eden/index.d.ts +15 -48
  4. package/dist/src/engine/dynamicData/factory.d.ts +3 -0
  5. package/dist/src/engine/dynamicData/factory.js +54 -0
  6. package/dist/src/engine/dynamicData/implementations/Ajna.d.ts +7 -0
  7. package/dist/src/engine/dynamicData/implementations/Ajna.js +101 -0
  8. package/dist/src/engine/dynamicData/implementations/Ambiant.d.ts +7 -0
  9. package/dist/src/engine/dynamicData/implementations/Ambiant.js +227 -0
  10. package/dist/src/engine/dynamicData/implementations/Badger.d.ts +7 -0
  11. package/dist/src/engine/dynamicData/implementations/Badger.js +84 -0
  12. package/dist/src/engine/dynamicData/implementations/Clamm.d.ts +7 -0
  13. package/dist/src/engine/dynamicData/implementations/Clamm.js +970 -0
  14. package/dist/src/engine/dynamicData/implementations/Compound.d.ts +7 -0
  15. package/dist/src/engine/dynamicData/implementations/Compound.js +136 -0
  16. package/dist/src/engine/dynamicData/implementations/Dolomite.d.ts +7 -0
  17. package/dist/src/engine/dynamicData/implementations/Dolomite.js +53 -0
  18. package/dist/src/engine/dynamicData/implementations/EigenLayer.d.ts +7 -0
  19. package/dist/src/engine/dynamicData/implementations/EigenLayer.js +64 -0
  20. package/dist/src/engine/dynamicData/implementations/Encompassing.d.ts +7 -0
  21. package/dist/src/engine/dynamicData/implementations/Encompassing.js +26 -0
  22. package/dist/src/engine/dynamicData/implementations/Erc20.d.ts +6 -0
  23. package/dist/src/engine/dynamicData/implementations/Erc20.js +159 -0
  24. package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.d.ts +7 -0
  25. package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.js +32 -0
  26. package/dist/src/engine/dynamicData/implementations/EventBased.d.ts +7 -0
  27. package/dist/src/engine/dynamicData/implementations/EventBased.js +104 -0
  28. package/dist/src/engine/dynamicData/implementations/Hyperdrive.d.ts +7 -0
  29. package/dist/src/engine/dynamicData/implementations/Hyperdrive.js +96 -0
  30. package/dist/src/engine/dynamicData/implementations/Morpho.d.ts +7 -0
  31. package/dist/src/engine/dynamicData/implementations/Morpho.js +109 -0
  32. package/dist/src/engine/dynamicData/implementations/Radiant.d.ts +7 -0
  33. package/dist/src/engine/dynamicData/implementations/Radiant.js +117 -0
  34. package/dist/src/engine/dynamicData/implementations/Silo.d.ts +9 -0
  35. package/dist/src/engine/dynamicData/implementations/Silo.js +109 -0
  36. package/dist/src/engine/dynamicData/implementations/UniswapV4.d.ts +7 -0
  37. package/dist/src/engine/dynamicData/implementations/UniswapV4.js +249 -0
  38. package/dist/src/engine/dynamicData/implementations/Vest.d.ts +9 -0
  39. package/dist/src/engine/dynamicData/implementations/Vest.js +58 -0
  40. package/dist/src/engine/dynamicData/implementations/default.d.ts +5 -0
  41. package/dist/src/engine/dynamicData/implementations/default.js +5 -0
  42. package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.js +1 -1
  43. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.d.ts +1 -1
  44. package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.d.ts +1 -1
  45. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.d.ts +1 -1
  46. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.js +1 -1
  47. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.js +3 -3
  48. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.d.ts +1 -1
  49. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.js +7 -7
  50. package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.js +1 -1
  51. package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.js +1 -1
  52. package/dist/src/index.d.ts +5 -16
  53. package/dist/src/jobs/update-euler-vaults.js +2 -2
  54. package/dist/src/libs/positions/prepareFetch.js +1 -1
  55. package/dist/src/modules/v4/apr/apr.service.d.ts +1 -1
  56. package/dist/src/modules/v4/apr/apr.service.js +4 -4
  57. package/dist/src/modules/v4/campaign/campaign.service.d.ts +0 -8
  58. package/dist/src/modules/v4/campaign/campaign.service.js +0 -13
  59. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +3 -4
  60. package/dist/src/modules/v4/opportunity/opportunity.service.js +1 -1
  61. package/dist/src/modules/v4/programPayload/programPayload.repository.js +3 -3
  62. package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +2 -2
  63. package/dist/src/modules/v4/uniswapV4/uniswapV4.service.d.ts +2 -2
  64. package/dist/src/modules/v4/uniswapV4/uniswapV4.service.js +1 -1
  65. package/dist/src/routes/v3/campaigns.d.ts +1 -1
  66. package/dist/src/routes/v3/compoundV2.d.ts +2 -10
  67. package/dist/src/routes/v3/compoundV2.js +1 -1
  68. package/dist/src/routes/v3/dolomite.js +1 -1
  69. package/dist/src/routes/v3/euler.js +1 -1
  70. package/dist/src/routes/v3/router.d.ts +5 -16
  71. package/dist/src/routes/v3/uniswapv4.d.ts +2 -5
  72. package/dist/src/routes/v3/uniswapv4.js +1 -1
  73. package/dist/src/utils/decodeCalls.d.ts +1 -1
  74. package/dist/src/utils/decodeCalls.js +1 -1
  75. package/dist/src/utils/encodeCalls.d.ts +1 -1
  76. package/dist/src/utils/encodeCalls.js +1 -1
  77. package/dist/src/utils/generateCardName.d.ts +1 -1
  78. package/dist/src/utils/generateCardName.js +1 -1
  79. package/dist/src/utils/generateIcons.d.ts +1 -1
  80. package/dist/src/utils/generateIcons.js +1 -1
  81. package/dist/tsconfig.package.tsbuildinfo +1 -1
  82. package/package.json +1 -1
  83. package/dist/src/factories/dynamicData/factory.d.ts +0 -0
  84. package/dist/src/factories/dynamicData/factory.js +0 -10
  85. package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.d.ts +0 -5
  86. package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.js +0 -111
  87. package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.d.ts +0 -3
  88. package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.js +0 -245
  89. package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.d.ts +0 -5
  90. package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.js +0 -96
  91. package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.d.ts +0 -3
  92. package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.js +0 -988
  93. package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.d.ts +0 -3
  94. package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.js +0 -142
  95. package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.d.ts +0 -5
  96. package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.js +0 -63
  97. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.d.ts +0 -4
  98. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +0 -167
  99. package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.d.ts +0 -5
  100. package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.js +0 -38
  101. package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.d.ts +0 -3
  102. package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.js +0 -70
  103. package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.d.ts +0 -5
  104. package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.js +0 -34
  105. package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.d.ts +0 -3
  106. package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.js +0 -115
  107. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.d.ts +0 -5
  108. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.js +0 -102
  109. package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.d.ts +0 -5
  110. package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.js +0 -19
  111. package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.d.ts +0 -5
  112. package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.js +0 -115
  113. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.d.ts +0 -3
  114. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +0 -125
  115. package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.d.ts +0 -7
  116. package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.js +0 -118
  117. package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.d.ts +0 -3
  118. package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.js +0 -267
  119. package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.d.ts +0 -5
  120. package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.js +0 -64
  121. package/dist/src/libs/campaigns/campaignsDynamicData.d.ts +0 -3
  122. package/dist/src/libs/campaigns/campaignsDynamicData.js +0 -131
  123. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.d.ts +0 -0
  124. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.js +0 -0
  125. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.d.ts +0 -0
  126. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.js +0 -0
  127. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.d.ts +0 -0
  128. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.js +0 -0
  129. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.d.ts +0 -0
  130. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.js +0 -0
  131. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.d.ts +0 -0
  132. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.js +0 -0
  133. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.d.ts +0 -0
  134. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.js +0 -0
  135. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.d.ts +0 -0
  136. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.js +0 -0
  137. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.d.ts +0 -0
  138. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.d.ts +0 -0
  139. /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.js +0 -0
  140. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.js +0 -0
  141. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.d.ts +0 -0
  142. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.js +0 -0
  143. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.d.ts +0 -0
  144. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.js +0 -0
  145. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.d.ts +0 -0
  146. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.js +0 -0
  147. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.d.ts +0 -0
  148. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.js +0 -0
  149. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.d.ts +0 -0
  150. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.js +0 -0
  151. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.d.ts +0 -0
  152. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.js +0 -0
  153. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.d.ts +0 -0
  154. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.js +0 -0
  155. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.d.ts +0 -0
  156. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.js +0 -0
  157. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.d.ts +0 -0
  158. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.js +0 -0
  159. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.d.ts +0 -0
  160. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.js +0 -0
  161. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.d.ts +0 -0
  162. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.js +0 -0
  163. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.d.ts +0 -0
  164. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.js +0 -0
  165. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.d.ts +0 -0
  166. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.js +0 -0
  167. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.d.ts +0 -0
  168. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.js +0 -0
  169. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.d.ts +0 -0
  170. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.js +0 -0
  171. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.d.ts +0 -0
  172. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.js +0 -0
  173. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BunniV2Processor.d.ts +0 -0
  174. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BunniV2Processor.js +0 -0
  175. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.d.ts +0 -0
  176. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.js +0 -0
  177. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.d.ts +0 -0
  178. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.js +0 -0
  179. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.d.ts +0 -0
  180. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.js +0 -0
  181. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.d.ts +0 -0
  182. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.js +0 -0
  183. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.d.ts +0 -0
  184. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.js +0 -0
  185. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.d.ts +0 -0
  186. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.js +0 -0
  187. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.d.ts +0 -0
  188. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.js +0 -0
  189. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.d.ts +0 -0
  190. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.js +0 -0
  191. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.d.ts +0 -0
  192. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.js +0 -0
  193. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.d.ts +0 -0
  194. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.js +0 -0
  195. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.d.ts +0 -0
  196. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.js +0 -0
  197. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.d.ts +0 -0
  198. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.js +0 -0
  199. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.d.ts +0 -0
  200. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.js +0 -0
  201. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.d.ts +0 -0
  202. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.js +0 -0
  203. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.d.ts +0 -0
  204. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.js +0 -0
  205. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.d.ts +0 -0
  206. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.js +0 -0
  207. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.d.ts +0 -0
  208. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.js +0 -0
  209. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.d.ts +0 -0
  210. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.js +0 -0
  211. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.d.ts +0 -0
  212. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.js +0 -0
  213. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.d.ts +0 -0
  214. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.js +0 -0
  215. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.d.ts +0 -0
  216. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.js +0 -0
  217. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.d.ts +0 -0
  218. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.js +0 -0
  219. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.d.ts +0 -0
  220. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.js +0 -0
  221. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.d.ts +0 -0
  222. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.js +0 -0
  223. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.d.ts +0 -0
  224. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.js +0 -0
  225. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.d.ts +0 -0
  226. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.js +0 -0
  227. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.d.ts +0 -0
  228. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.js +0 -0
  229. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.d.ts +0 -0
  230. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.js +0 -0
  231. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.d.ts +0 -0
  232. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.js +0 -0
  233. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.d.ts +0 -0
  234. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.js +0 -0
  235. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.d.ts +0 -0
  236. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.js +0 -0
  237. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.d.ts +0 -0
  238. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.js +0 -0
  239. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.d.ts +0 -0
  240. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.js +0 -0
  241. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.d.ts +0 -0
  242. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.js +0 -0
  243. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.d.ts +0 -0
  244. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.js +0 -0
  245. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.d.ts +0 -0
  246. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.js +0 -0
  247. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.d.ts +0 -0
  248. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.js +0 -0
  249. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.d.ts +0 -0
  250. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.js +0 -0
  251. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.d.ts +0 -0
  252. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.js +0 -0
  253. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.js +0 -0
  254. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.d.ts +0 -0
  255. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.js +0 -0
  256. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.d.ts +0 -0
  257. /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.js +0 -0
  258. /package/dist/src/{factories → engine}/opportunityMetadata/factory.d.ts +0 -0
  259. /package/dist/src/{factories → engine}/opportunityMetadata/factory.js +0 -0
  260. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.d.ts +0 -0
  261. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.js +0 -0
  262. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.d.ts +0 -0
  263. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.js +0 -0
  264. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.d.ts +0 -0
  265. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.js +0 -0
  266. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.d.ts +0 -0
  267. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.js +0 -0
  268. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.d.ts +0 -0
  269. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.js +0 -0
  270. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.d.ts +0 -0
  271. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.js +0 -0
  272. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.d.ts +0 -0
  273. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.js +0 -0
  274. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.d.ts +0 -0
  275. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.js +0 -0
  276. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.d.ts +0 -0
  277. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.d.ts +0 -0
  278. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.js +0 -0
  279. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.d.ts +0 -0
  280. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.d.ts +0 -0
  281. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.js +0 -0
  282. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.d.ts +0 -0
  283. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.js +0 -0
  284. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.d.ts +0 -0
  285. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.js +0 -0
  286. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.d.ts +0 -0
  287. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.js +0 -0
  288. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.d.ts +0 -0
  289. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.js +0 -0
  290. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.d.ts +0 -0
  291. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.js +0 -0
  292. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.d.ts +0 -0
  293. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.js +0 -0
  294. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.d.ts +0 -0
  295. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.js +0 -0
  296. /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  // @ts-nocheck
2
2
  import { Redis } from "@/cache";
3
3
  import { redisClient } from "@/cache/redis";
4
- import { getEulerV2Vaults, updateEulerVaultsCollatInDatabase } from "@/libs/campaigns/utils/getEulerV2Vaults";
5
- import { getUniswapV4Pools } from "@/libs/campaigns/utils/getUniswapV4Pools";
4
+ import { getEulerV2Vaults, updateEulerVaultsCollatInDatabase } from "@/engine/dynamicData/utils/getEulerV2Vaults";
5
+ import { getUniswapV4Pools } from "@/engine/dynamicData/utils/getUniswapV4Pools";
6
6
  import { log } from "@/utils/logger";
7
7
  import { engineDbClient } from "@db";
8
8
  import { swagger } from "@elysiajs/swagger";
@@ -1,4 +1,5 @@
1
1
  import { Redis } from "@/cache";
2
+ import { dynamicDataBuilderFactory } from "@/engine/dynamicData/factory";
2
3
  import { campaignsToOldFormat } from "@/libs/deprecated-merklv3";
3
4
  import { AprService } from "@/modules/v4/apr";
4
5
  import { CacheService } from "@/modules/v4/cache";
@@ -12,11 +13,9 @@ import { engineDbClient } from "@db";
12
13
  import { Campaign, ChainId, NETWORK_LABELS, isSupportedChain, } from "@sdk";
13
14
  import { Elysia, t } from "elysia";
14
15
  import moment from "moment";
15
- import { campaignsDynamicData } from "../../libs/campaigns/campaignsDynamicData";
16
16
  import { merklChainData } from "../../libs/merklChainData";
17
17
  import { staticCampaignWithCache } from "../../libs/staticCampaigns";
18
18
  import { InvalidParameter, UnsupportedNetwork } from "../../utils/error";
19
- import { executeSimple } from "../../utils/execute";
20
19
  import { log } from "../../utils/logger";
21
20
  import { ALL_CAMPAIGNS_FOR_CHAIN_AFTER } from "../../utils/queries/allCampaigns";
22
21
  const highCampaignsChains = [ChainId.ARBITRUM, ChainId.POLYGON, ChainId.BLAST, ChainId.BASE];
@@ -83,7 +82,9 @@ export const campaignCacheUpdate = async (rawChainId, queryCampaignTypes, highCa
83
82
  // Fetch dynamic data for all these types
84
83
  const promisesPerType = campaignTypes.map(async (campaignType) => {
85
84
  const campaigns = staticData.filter(campaign => campaign.campaignType === campaignType);
86
- await executeSimple(chainId, campaignsDynamicData(chainId, campaigns, campaignType)).then(r => {
85
+ await dynamicDataBuilderFactory(campaignType)
86
+ .build(chainId, campaigns)
87
+ .then(r => {
87
88
  for (const d of r) {
88
89
  if (!!d) {
89
90
  // Main Parameter OVERRIDING
@@ -7340,8 +7340,8 @@ declare const eden: {
7340
7340
  query: {
7341
7341
  types?: string | number | string[] | number[] | undefined;
7342
7342
  chainIds?: string | string[] | undefined;
7343
- live?: boolean | undefined;
7344
7343
  creatorTag?: string | undefined;
7344
+ live?: boolean | undefined;
7345
7345
  hideTestTokens?: string | undefined;
7346
7346
  };
7347
7347
  fetch?: RequestInit | undefined;
@@ -7419,16 +7419,8 @@ declare const eden: {
7419
7419
  query: {};
7420
7420
  fetch?: RequestInit | undefined;
7421
7421
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
7422
- 200: {
7423
- [x: string]: {
7424
- address: string;
7425
- symbolCToken: string;
7426
- decimalsCToken: number;
7427
- underlying: string;
7428
- symbolUnderlying: string;
7429
- decimalsUnderlying: number;
7430
- }[];
7431
- };
7422
+ [x: string]: any;
7423
+ 200: any;
7432
7424
  }>>;
7433
7425
  };
7434
7426
  createCampaign: {
@@ -7854,11 +7846,8 @@ declare const eden: {
7854
7846
  query: {};
7855
7847
  fetch?: RequestInit | undefined;
7856
7848
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
7857
- 200: {
7858
- [x: string]: {
7859
- [poolId: string]: UniswapV4PoolType;
7860
- } | undefined;
7861
- };
7849
+ [x: string]: any;
7850
+ 200: any;
7862
7851
  }>>;
7863
7852
  };
7864
7853
  };
@@ -12423,8 +12412,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12423
12412
  query: {
12424
12413
  types?: string | number | string[] | number[] | undefined;
12425
12414
  chainIds?: string | string[] | undefined;
12426
- live?: boolean | undefined;
12427
12415
  creatorTag?: string | undefined;
12416
+ live?: boolean | undefined;
12428
12417
  hideTestTokens?: string | undefined;
12429
12418
  };
12430
12419
  headers: unknown;
@@ -12527,16 +12516,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12527
12516
  query: {};
12528
12517
  headers: unknown;
12529
12518
  response: {
12530
- 200: {
12531
- [x: string]: {
12532
- address: string;
12533
- symbolCToken: string;
12534
- decimalsCToken: number;
12535
- underlying: string;
12536
- symbolUnderlying: string;
12537
- decimalsUnderlying: number;
12538
- }[];
12539
- };
12519
+ [x: string]: any;
12520
+ 200: any;
12540
12521
  };
12541
12522
  };
12542
12523
  };
@@ -13090,11 +13071,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
13090
13071
  query: {};
13091
13072
  headers: unknown;
13092
13073
  response: {
13093
- 200: {
13094
- [x: string]: {
13095
- [poolId: string]: UniswapV4PoolType;
13096
- } | undefined;
13097
- };
13074
+ [x: string]: any;
13075
+ 200: any;
13098
13076
  };
13099
13077
  };
13100
13078
  };
@@ -20447,8 +20425,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
20447
20425
  query: {
20448
20426
  types?: string | number | string[] | number[] | undefined;
20449
20427
  chainIds?: string | string[] | undefined;
20450
- live?: boolean | undefined;
20451
20428
  creatorTag?: string | undefined;
20429
+ live?: boolean | undefined;
20452
20430
  hideTestTokens?: string | undefined;
20453
20431
  };
20454
20432
  fetch?: RequestInit | undefined;
@@ -20526,16 +20504,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
20526
20504
  query: {};
20527
20505
  fetch?: RequestInit | undefined;
20528
20506
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
20529
- 200: {
20530
- [x: string]: {
20531
- address: string;
20532
- symbolCToken: string;
20533
- decimalsCToken: number;
20534
- underlying: string;
20535
- symbolUnderlying: string;
20536
- decimalsUnderlying: number;
20537
- }[];
20538
- };
20507
+ [x: string]: any;
20508
+ 200: any;
20539
20509
  }>>;
20540
20510
  };
20541
20511
  createCampaign: {
@@ -20961,11 +20931,8 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
20961
20931
  query: {};
20962
20932
  fetch?: RequestInit | undefined;
20963
20933
  }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
20964
- 200: {
20965
- [x: string]: {
20966
- [poolId: string]: UniswapV4PoolType;
20967
- } | undefined;
20968
- };
20934
+ [x: string]: any;
20935
+ 200: any;
20969
20936
  }>>;
20970
20937
  };
20971
20938
  };
@@ -0,0 +1,3 @@
1
+ import { Campaign } from "@sdk";
2
+ import type { DynamicDataBuilder } from "./interface";
3
+ export declare const dynamicDataBuilderFactory: (campaignType: Campaign) => DynamicDataBuilder<typeof campaignType>;
@@ -0,0 +1,54 @@
1
+ import { Campaign } from "@sdk";
2
+ import { AjnaDynamicData } from "./implementations/Ajna";
3
+ import { AmbiantDynamicData } from "./implementations/Ambiant";
4
+ import { BadgerDynamicData } from "./implementations/Badger";
5
+ import { ClammDynamicData } from "./implementations/Clamm";
6
+ import { CompoundDynamicData } from "./implementations/Compound";
7
+ import { DolomiteDynamicData } from "./implementations/Dolomite";
8
+ import { EigenLayerDynamicData } from "./implementations/EigenLayer";
9
+ import { EncompassingDynamicData } from "./implementations/Encompassing";
10
+ import { Erc20DynamicData } from "./implementations/Erc20";
11
+ import { Erc20SnapshotDynamicData } from "./implementations/Erc20Snapshot";
12
+ import { EventBasedDynamicData } from "./implementations/EventBased";
13
+ import { HyperdriveDynamicData } from "./implementations/Hyperdrive";
14
+ import { MorphoDynamicData } from "./implementations/Morpho";
15
+ import { RadiantDynamicData } from "./implementations/Radiant";
16
+ import { SiloDynamicData } from "./implementations/Silo";
17
+ import { UniswapV4DynamicData } from "./implementations/UniswapV4";
18
+ import { VestDynamicData } from "./implementations/Vest";
19
+ import { DefaultDynamicData } from "./implementations/default";
20
+ // @dev Casts are made to enforce type safety
21
+ // @dev A type error must be thrown if a new campaign type is added and the corresponding builder is not implemented
22
+ const map = {
23
+ [Campaign.INVALID]: new DefaultDynamicData(),
24
+ [Campaign.JSON_AIRDROP]: new DefaultDynamicData(),
25
+ [Campaign.AJNA]: new AjnaDynamicData(),
26
+ [Campaign.AMBIENTPROCESSOR]: new AmbiantDynamicData(),
27
+ [Campaign.BADGER]: new BadgerDynamicData(),
28
+ [Campaign.CLAMM]: new ClammDynamicData(),
29
+ [Campaign.COMPOUND]: new CompoundDynamicData(),
30
+ [Campaign.DOLOMITE]: new DolomiteDynamicData(),
31
+ [Campaign.EIGENLAYER]: new EigenLayerDynamicData(),
32
+ [Campaign.ENCOMPASSING]: new EncompassingDynamicData(),
33
+ [Campaign.ERC20_SNAPSHOT]: new Erc20SnapshotDynamicData(),
34
+ [Campaign.EVENT_BASED]: new EventBasedDynamicData(),
35
+ [Campaign.HYPERDRIVELOGFIXPROCESSOR]: new HyperdriveDynamicData(),
36
+ [Campaign.HYPERDRIVELOGPROCESSOR]: new HyperdriveDynamicData(),
37
+ [Campaign.ERC20]: new Erc20DynamicData(),
38
+ [Campaign.ERC20LOGPROCESSOR]: new Erc20DynamicData(),
39
+ [Campaign.ERC20REBASEFIXAPR]: new Erc20DynamicData(),
40
+ [Campaign.ERC20REBASELOGPROCESSOR]: new Erc20DynamicData(),
41
+ [Campaign.ERC20_FIX_APR]: new Erc20DynamicData(),
42
+ [Campaign.EULER]: new Erc20DynamicData(),
43
+ [Campaign.MORPHO]: new MorphoDynamicData(),
44
+ [Campaign.RADIANT]: new RadiantDynamicData(),
45
+ [Campaign.SILO]: new SiloDynamicData(),
46
+ [Campaign.UNISWAP_V4]: new UniswapV4DynamicData(),
47
+ [Campaign.VEST]: new VestDynamicData(),
48
+ [Campaign.ION]: new DefaultDynamicData(), // TODO
49
+ [Campaign.ERC20TRANSFERS]: new DefaultDynamicData(), // TODO
50
+ [Campaign.M0]: new DefaultDynamicData(), // TODO
51
+ [Campaign.MORPHOSUPPLY]: new DefaultDynamicData(), // TODO
52
+ [Campaign.SYNCSWAP_VAULT]: new DefaultDynamicData(), // TODO
53
+ };
54
+ export const dynamicDataBuilderFactory = (campaignType) => map[campaignType];
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.AJNA;
4
+ export declare class AjnaDynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.AJNA>[]>;
6
+ }
7
+ export {};
@@ -0,0 +1,101 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { providers } from "@/utils/providers";
3
+ import { AjnaSubCampaignType, BN2Number, ChainInteractionService, ERC20Pool__factory, NETWORK_LABELS, PoolInfoUtilsInterface, YEAR, } from "@sdk";
4
+ import { POOL_INFO_UTILS } from "@sdk";
5
+ import axios from "axios";
6
+ import { log } from "../../../utils/logger";
7
+ export class AjnaDynamicData {
8
+ async build(chainId, campaigns) {
9
+ const calls = [];
10
+ for (const campaign of campaigns) {
11
+ if (campaign.campaignParameters.subCampaignType === AjnaSubCampaignType.lend) {
12
+ calls.push({
13
+ allowFailure: true,
14
+ callData: PoolInfoUtilsInterface.encodeFunctionData("poolPricesInfo", [campaign.campaignParameters.poolId]),
15
+ target: POOL_INFO_UTILS[campaign.computeChainId],
16
+ });
17
+ }
18
+ }
19
+ const result = await ChainInteractionService(chainId).fetchState(calls);
20
+ const dynamicData = [];
21
+ let index = 0;
22
+ for (const campaign of campaigns) {
23
+ const res = await axios.get(`https://ajna-api.blockanalitica.com/v4/${NETWORK_LABELS[chainId].toLowerCase()}/pools/${campaign.campaignParameters.poolId.toLowerCase()}`);
24
+ try {
25
+ let totalSupplyTargetToken = 0;
26
+ let totalComputedTargetToken = 0;
27
+ let blacklistedSupply = 0;
28
+ let blacklistedPosition;
29
+ if (campaign.campaignParameters.subCampaignType === AjnaSubCampaignType.lend) {
30
+ totalSupplyTargetToken = res?.data.results?.quote_token_balance;
31
+ const htpIndex = PoolInfoUtilsInterface.decodeFunctionResult("poolPricesInfo", result[index].returnData)[3];
32
+ const lupIndex = PoolInfoUtilsInterface.decodeFunctionResult("poolPricesInfo", result[index].returnData)[5];
33
+ const threshold = BN2Number(lupIndex, 0) === 0 ? lupIndex : lupIndex.gt(htpIndex) ? lupIndex.add(22) : htpIndex.add(22);
34
+ const InterestEarningSupplyRes = await ERC20Pool__factory.connect(campaign.campaignParameters.poolId, providers[campaign.computeChainId]).depositUpToIndex(threshold);
35
+ totalComputedTargetToken = BN2Number(InterestEarningSupplyRes, 18);
36
+ index++;
37
+ }
38
+ else {
39
+ totalSupplyTargetToken = res?.data.results?.debt;
40
+ }
41
+ totalComputedTargetToken =
42
+ campaign.campaignSubType === AjnaSubCampaignType.lend ? totalComputedTargetToken : totalSupplyTargetToken;
43
+ if (campaign.campaignParameters.blacklist.length !== 0 && totalComputedTargetToken !== 0) {
44
+ for (const blacklisted of campaign.campaignParameters.blacklist) {
45
+ const res = await axios.get(`https://ajna-api.blockanalitica.com/v4/${NETWORK_LABELS[chainId].toLowerCase()}/wallets/${blacklisted}/pools/?days_ago=1&order=-debt&p_size=50`);
46
+ let nextRoute = null;
47
+ if (!!res.data.next) {
48
+ nextRoute = `https://${res.data.next.slice(res.data.next.indexOf(":") + 1)}`;
49
+ }
50
+ blacklistedPosition = res.data.results.find((position) => position.pool_address === campaign.campaignParameters.poolId);
51
+ blacklistedSupply = !blacklistedPosition
52
+ ? 0
53
+ : campaign.campaignSubType === AjnaSubCampaignType.lend
54
+ ? Number(blacklistedPosition.supply)
55
+ : Number(blacklistedPosition.debt);
56
+ while (nextRoute !== null && blacklistedSupply !== 0) {
57
+ const res = await axios.get(nextRoute);
58
+ blacklistedPosition = res.data.results.find((position) => position.pool_address === campaign.campaignParameters.poolId);
59
+ blacklistedSupply = !blacklistedPosition
60
+ ? 0
61
+ : campaign.campaignSubType === AjnaSubCampaignType.lend
62
+ ? Number(blacklistedPosition.supply)
63
+ : Number(blacklistedPosition.debt);
64
+ if (!!res.data.next) {
65
+ nextRoute = `https://${res.data.next.slice(res.data.next.indexOf(":") + 1)}`;
66
+ }
67
+ else {
68
+ nextRoute = null;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ totalComputedTargetToken -= blacklistedSupply;
74
+ const priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
75
+ // (await pricer.get({
76
+ // address: campaign.rewardToken,
77
+ // chainId,
78
+ // symbol: campaign.campaignParameters.symbolRewardToken,
79
+ // })) ?? 0;
80
+ dynamicData.push({
81
+ ...campaign,
82
+ apr: (priceRewardToken *
83
+ BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
84
+ YEAR *
85
+ 100) /
86
+ campaign.campaignParameters.duration /
87
+ (totalComputedTargetToken * res?.data.results?.quote_token_underlying_price),
88
+ totalSupplyTargetToken,
89
+ tvl: res?.data.results?.tvl,
90
+ computedtotalSupply: totalComputedTargetToken,
91
+ });
92
+ }
93
+ catch (e) {
94
+ log.error("Failed to fetch Ajna data", e);
95
+ // In this case we return just the staticData
96
+ dynamicData.push({ ...campaign });
97
+ }
98
+ }
99
+ return dynamicData;
100
+ }
101
+ }
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.AMBIENTPROCESSOR;
4
+ export declare class AmbiantDynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<AmbientCampaignDynamicData[]>;
6
+ }
7
+ export {};
@@ -0,0 +1,227 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { AmbientAddresses, AmbientLens, BN2Number, ChainInteractionService, EAprBreakdownType, NETWORK_LABELS, YEAR, } from "@sdk";
3
+ import moment from "moment";
4
+ import { log } from "../../../utils/logger";
5
+ import { Pricer } from "../../../utils/pricer";
6
+ import { fetchAmbientPotentialPositions } from "../utils/fetchAmbientInfo";
7
+ var AmbiantPositionType;
8
+ (function (AmbiantPositionType) {
9
+ AmbiantPositionType["Concentrated"] = "concentrated";
10
+ AmbiantPositionType["Ambient"] = "ambient";
11
+ AmbiantPositionType["Knockout"] = "knockout";
12
+ })(AmbiantPositionType || (AmbiantPositionType = {}));
13
+ function encodeCall(chainId, holder) {
14
+ if (holder.positionType === AmbiantPositionType.Concentrated) {
15
+ return [
16
+ {
17
+ allowFailure: true,
18
+ callData: AmbientLens.encodeFunctionData("queryRangeTokens", [
19
+ holder.owner,
20
+ holder.base,
21
+ holder.quote,
22
+ holder.poolIdx,
23
+ holder.lowerTick,
24
+ holder.upperTick,
25
+ ]),
26
+ target: AmbientAddresses[chainId].CrocQuery,
27
+ },
28
+ ];
29
+ }
30
+ return [
31
+ {
32
+ allowFailure: true,
33
+ callData: AmbientLens.encodeFunctionData("queryAmbientTokens", [
34
+ holder.owner,
35
+ holder.base,
36
+ holder.quote,
37
+ holder.poolIdx,
38
+ ]),
39
+ target: AmbientAddresses[chainId].CrocQuery,
40
+ },
41
+ ];
42
+ }
43
+ async function decodeCall(result, holder) {
44
+ let amount0 = BigInt(0n);
45
+ let amount1 = BigInt(0n);
46
+ if (holder.positionType === AmbiantPositionType.Concentrated) {
47
+ const resTok = AmbientLens.decodeFunctionResult("queryRangeTokens", result);
48
+ amount0 = BigInt(resTok[1]);
49
+ amount1 = BigInt(resTok[2]);
50
+ }
51
+ if (holder.positionType === AmbiantPositionType.Ambient) {
52
+ const resTok = AmbientLens.decodeFunctionResult("queryAmbientTokens", result);
53
+ amount0 = BigInt(resTok[1]);
54
+ amount1 = BigInt(resTok[2]);
55
+ }
56
+ return { amount0, amount1 };
57
+ }
58
+ export class AmbiantDynamicData {
59
+ async build(chainId, campaigns) {
60
+ const dynamicData = [];
61
+ const pricer = await Pricer.load();
62
+ let calls = [];
63
+ /** Dedupe pools from campaigns to build pool list */
64
+ const poolList = [];
65
+ for (const campaign of campaigns ?? []) {
66
+ /** Loop through all campaigns to add pools */
67
+ if (!poolList?.map(p => p.mainParameter.toLowerCase()).includes(campaign.mainParameter.toLowerCase())) {
68
+ poolList.push({
69
+ id: campaign.campaignParameters.poolId,
70
+ mainParameter: campaign.mainParameter, // main parameter containes info of poolAddress + AMM (in case its a priority AMM)
71
+ baseToken: campaign.campaignParameters.baseToken,
72
+ quoteToken: campaign.campaignParameters.quoteToken,
73
+ poolIdx: campaign.campaignParameters.poolIdx,
74
+ potentialHolders: await fetchAmbientPotentialPositions(campaign.campaignParameters.poolId, campaign.computeChainId),
75
+ });
76
+ }
77
+ }
78
+ if (!!poolList) {
79
+ for (const pool of poolList) {
80
+ calls.push({
81
+ allowFailure: true,
82
+ callData: AmbientLens.encodeFunctionData("queryLiquidity", [pool.baseToken, pool.quoteToken, pool.poolIdx]),
83
+ target: AmbientAddresses[chainId].CrocQuery,
84
+ }, {
85
+ allowFailure: true,
86
+ callData: AmbientLens.encodeFunctionData("queryCurveTick", [pool.baseToken, pool.quoteToken, pool.poolIdx]),
87
+ target: AmbientAddresses[chainId].CrocQuery,
88
+ });
89
+ calls = calls.concat(...pool.potentialHolders.map(holder => encodeCall(chainId, holder)));
90
+ }
91
+ const result = await ChainInteractionService(chainId).fetchState(calls);
92
+ let i = 0;
93
+ if (!!poolList) {
94
+ for (const pool of poolList) {
95
+ // This liquidity call gives the active liquidity on the pool. To get the total liquidity we would need to loop over all positions
96
+ let poolTotalLiquidity;
97
+ let activeTick;
98
+ let poolBalanceToken0 = 0;
99
+ let poolBalanceToken1 = 0;
100
+ const d = campaigns?.filter(campaign => campaign.mainParameter.toLowerCase() === pool.mainParameter.toLowerCase())[0];
101
+ const decimalsBaseToken = d.campaignParameters.decimalsBaseToken;
102
+ const decimalsQuoteToken = d.campaignParameters.decimalsQuoteToken;
103
+ const symbolBaseToken = d.campaignParameters.symbolBaseToken;
104
+ const symbolQuoteToken = d.campaignParameters.symbolQuoteToken;
105
+ const prevI = i;
106
+ try {
107
+ poolTotalLiquidity = BN2Number(AmbientLens.decodeFunctionResult("queryLiquidity", result[i++].returnData)[0]);
108
+ activeTick = Number(AmbientLens.decodeFunctionResult("queryCurveTick", result[i++].returnData)[0]);
109
+ for (let index = 0; index < pool.potentialHolders.length; index++) {
110
+ // to verify
111
+ if (calls.length === 0) {
112
+ break;
113
+ }
114
+ const res = await decodeCall(result[i++].returnData, pool.potentialHolders[index]);
115
+ poolBalanceToken0 += BN2Number(res.amount0, decimalsBaseToken);
116
+ poolBalanceToken1 += BN2Number(res.amount1, decimalsQuoteToken);
117
+ }
118
+ }
119
+ catch (e) {
120
+ log.warn(`merklDynamic data - failed to decode state of pool ${pool.id} on ${NETWORK_LABELS[chainId]}`);
121
+ i = prevI + 2 + pool.potentialHolders.length;
122
+ continue;
123
+ }
124
+ const priceToken0 = (await pricer.get({
125
+ address: d.campaignParameters.baseToken,
126
+ chainId: chainId,
127
+ symbol: symbolBaseToken,
128
+ }));
129
+ const priceToken1 = (await pricer.get({
130
+ address: d.campaignParameters.quoteToken,
131
+ chainId: chainId,
132
+ symbol: symbolQuoteToken,
133
+ }));
134
+ /** Iterate over distributions to compute APRs */
135
+ for (const campaign of campaigns.filter(campaign => campaign.mainParameter.toLowerCase() === pool.mainParameter.toLowerCase())) {
136
+ const c = campaign;
137
+ const amount = BN2Number(c.amount, c.campaignParameters.decimalsRewardToken);
138
+ const startTimestamp = BN2Number(c.startTimestamp, 0);
139
+ const endTimestamp = BN2Number(c.endTimestamp, 0);
140
+ const isLive = moment().unix() >= startTimestamp && moment().unix() < endTimestamp;
141
+ const totalWeight = BN2Number(c.campaignParameters.weightFees, 4) +
142
+ BN2Number(c.campaignParameters.weightToken0, 4) +
143
+ BN2Number(c.campaignParameters.weightToken1, 4);
144
+ // Proportions in percentage
145
+ const propFees = (BN2Number(c.campaignParameters.weightFees, 4) / totalWeight) * 100;
146
+ const propToken0 = (BN2Number(c.campaignParameters.weightToken0, 4) / totalWeight) * 100;
147
+ const propToken1 = (BN2Number(c.campaignParameters.weightToken1, 4) / totalWeight) * 100;
148
+ let distributionMeanAPR = 0;
149
+ const aprs = {};
150
+ const aprBreakdowns = [];
151
+ let priceRewardToken = 0;
152
+ if (isLive && c.campaignParameters.symbolRewardToken !== "aglaMerkl") {
153
+ // priceRewardToken = (await pricer.get({
154
+ // address: c.rewardToken,
155
+ // chainId: chainId,
156
+ // symbol: c.campaignParameters.symbolRewardToken,
157
+ // })) as number;
158
+ priceRewardToken = await TokenService.getRewardTokenPrice(campaign);
159
+ /** Yearly rewards in $ */
160
+ const yearlyToken0Rewards = (propToken0 * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
161
+ const yearlyToken1Rewards = (propToken1 * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
162
+ const yearlyFeeRewards = (propFees * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
163
+ let poolAPRkey = "";
164
+ const tvl = poolBalanceToken0 * priceToken0 + poolBalanceToken1 * priceToken1;
165
+ distributionMeanAPR = (yearlyToken0Rewards + yearlyToken1Rewards + yearlyFeeRewards) / tvl;
166
+ distributionMeanAPR = !distributionMeanAPR || Number.isNaN(distributionMeanAPR) ? 0 : distributionMeanAPR;
167
+ /**
168
+ * @dev We cannot include a whitelisted distrib apr into the mean APR
169
+ */
170
+ if (c.campaignParameters.whitelist.length === 0) {
171
+ poolAPRkey = "Average APR (rewards / pool TVL)";
172
+ if (!aprs[poolAPRkey])
173
+ aprs[poolAPRkey] = 0;
174
+ aprs[poolAPRkey] += distributionMeanAPR;
175
+ // @Hugo wip: new way to structure aprBreakdowns
176
+ aprBreakdowns.push({
177
+ address: pool.id,
178
+ value: distributionMeanAPR,
179
+ type: EAprBreakdownType.AVERAGE,
180
+ label: "Average APR (rewards / pool TVL)",
181
+ });
182
+ // APR per token
183
+ poolAPRkey = `APR for holding ${c.campaignParameters.symbolBaseToken} in pool`;
184
+ if (!aprs[poolAPRkey])
185
+ aprs[poolAPRkey] = 0;
186
+ aprs[poolAPRkey] += yearlyToken0Rewards / (poolBalanceToken0 * priceToken0);
187
+ // @Hugo wip: new way to structure aprBreakdowns
188
+ aprBreakdowns.push({
189
+ address: pool.id,
190
+ value: yearlyToken0Rewards / (poolBalanceToken0 * priceToken0),
191
+ type: EAprBreakdownType.TOKEN1,
192
+ label: c.campaignParameters.symbolBaseToken,
193
+ });
194
+ poolAPRkey = `APR for holding ${c.campaignParameters.symbolQuoteToken} in pool`;
195
+ if (!aprs[poolAPRkey])
196
+ aprs[poolAPRkey] = 0;
197
+ aprs[poolAPRkey] += yearlyToken1Rewards / (poolBalanceToken1 * priceToken1);
198
+ // @Hugo wip: new way to structure aprBreakdowns
199
+ aprBreakdowns.push({
200
+ address: pool.id,
201
+ value: yearlyToken1Rewards / (poolBalanceToken1 * priceToken1),
202
+ type: EAprBreakdownType.TOKEN2,
203
+ label: c.campaignParameters.symbolQuoteToken,
204
+ });
205
+ }
206
+ else {
207
+ }
208
+ }
209
+ dynamicData.push({
210
+ ...campaign,
211
+ apr: distributionMeanAPR,
212
+ aprs,
213
+ forwarders: [],
214
+ poolBalanceToken0,
215
+ poolBalanceToken1,
216
+ poolTotalLiquidity,
217
+ tick: activeTick,
218
+ priceRewardToken: priceRewardToken,
219
+ tvl: poolBalanceToken0 * priceToken0 + poolBalanceToken1 * priceToken1,
220
+ });
221
+ }
222
+ }
223
+ }
224
+ }
225
+ return dynamicData;
226
+ }
227
+ }
@@ -0,0 +1,7 @@
1
+ import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
2
+ import type { DynamicDataBuilder } from "../interface";
3
+ type campaignType = Campaign.BADGER;
4
+ export declare class BadgerDynamicData implements DynamicDataBuilder<campaignType> {
5
+ build(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<CampaignDynamicData<Campaign.BADGER>[]>;
6
+ }
7
+ export {};